mirror of
https://codeberg.org/uzu/strudel
synced 2026-07-22 05:05:26 -04:00
425 lines
1.7 MiB
Plaintext
425 lines
1.7 MiB
Plaintext
var vr=Object.defineProperty,_r=Object.defineProperties;var Or=Object.getOwnPropertyDescriptors;var Sn=Object.getOwnPropertySymbols;var hr=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var cr=(o,e,s)=>e in o?vr(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,Ot=(o,e)=>{for(var s in e||(e={}))hr.call(e,s)&&cr(o,s,e[s]);if(Sn)for(var s of Sn(e))dr.call(e,s)&&cr(o,s,e[s]);return o},wt=(o,e)=>_r(o,Or(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};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
|
|
*/var getOwnPropertySymbols$1=Object.getOwnPropertySymbols,hasOwnProperty$2=Object.prototype.hasOwnProperty,propIsEnumerable$1=Object.prototype.propertyIsEnumerable;function toObject$1(o){if(o==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(o)}function shouldUseNative$1(){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$1=shouldUseNative$1()?Object.assign:function(o,e){for(var s,a=toObject$1(o),c,d=1;d<arguments.length;d++){s=Object(arguments[d]);for(var _ in s)hasOwnProperty$2.call(s,_)&&(a[_]=s[_]);if(getOwnPropertySymbols$1){c=getOwnPropertySymbols$1(s);for(var b=0;b<c.length;b++)propIsEnumerable$1.call(s,c[b])&&(a[c[b]]=s[c[b]])}}return a};/** @license React v17.0.2
|
|
* react.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 l=objectAssign$1,n$1=60103,p$2=60106;react_production_min.Fragment=60107;react_production_min.StrictMode=60108;react_production_min.Profiler=60114;var q$1=60109,r$1=60110,t$2=60112;react_production_min.Suspense=60113;var u=60115,v=60116;if(typeof Symbol=="function"&&Symbol.for){var w=Symbol.for;n$1=w("react.element"),p$2=w("react.portal"),react_production_min.Fragment=w("react.fragment"),react_production_min.StrictMode=w("react.strict_mode"),react_production_min.Profiler=w("react.profiler"),q$1=w("react.provider"),r$1=w("react.context"),t$2=w("react.forward_ref"),react_production_min.Suspense=w("react.suspense"),u=w("react.memo"),v=w("react.lazy")}var x=typeof Symbol=="function"&&Symbol.iterator;function y$1(o){return o===null||typeof o!="object"?null:(o=x&&o[x]||o["@@iterator"],typeof o=="function"?o:null)}function z(o){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+o,s=1;s<arguments.length;s++)e+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+o+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B$1={};function C$1(o,e,s){this.props=o,this.context=e,this.refs=B$1,this.updater=s||A}C$1.prototype.isReactComponent={};C$1.prototype.setState=function(o,e){if(typeof o!="object"&&typeof o!="function"&&o!=null)throw Error(z(85));this.updater.enqueueSetState(this,o,e,"setState")};C$1.prototype.forceUpdate=function(o){this.updater.enqueueForceUpdate(this,o,"forceUpdate")};function D$1(){}D$1.prototype=C$1.prototype;function E$1(o,e,s){this.props=o,this.context=e,this.refs=B$1,this.updater=s||A}var F$2=E$1.prototype=new D$1;F$2.constructor=E$1;l(F$2,C$1.prototype);F$2.isPureReactComponent=!0;var G$1={current:null},H$1=Object.prototype.hasOwnProperty,I$2={key:!0,ref:!0,__self:!0,__source:!0};function J(o,e,s){var a,c={},d=null,_=null;if(e!=null)for(a in e.ref!==void 0&&(_=e.ref),e.key!==void 0&&(d=""+e.key),e)H$1.call(e,a)&&!I$2.hasOwnProperty(a)&&(c[a]=e[a]);var b=arguments.length-2;if(b===1)c.children=s;else if(1<b){for(var k=Array(b),$=0;$<b;$++)k[$]=arguments[$+2];c.children=k}if(o&&o.defaultProps)for(a in b=o.defaultProps,b)c[a]===void 0&&(c[a]=b[a]);return{$$typeof:n$1,type:o,key:d,ref:_,props:c,_owner:G$1.current}}function K(o,e){return{$$typeof:n$1,type:o.type,key:e,ref:o.ref,props:o.props,_owner:o._owner}}function L(o){return typeof o=="object"&&o!==null&&o.$$typeof===n$1}function escape(o){var e={"=":"=0",":":"=2"};return"$"+o.replace(/[=:]/g,function(s){return e[s]})}var M$1=/\/+/g;function N$1(o,e){return typeof o=="object"&&o!==null&&o.key!=null?escape(""+o.key):e.toString(36)}function O$1(o,e,s,a,c){var d=typeof o;(d==="undefined"||d==="boolean")&&(o=null);var _=!1;if(o===null)_=!0;else switch(d){case"string":case"number":_=!0;break;case"object":switch(o.$$typeof){case n$1:case p$2:_=!0}}if(_)return _=o,c=c(_),o=a===""?"."+N$1(_,0):a,Array.isArray(c)?(s="",o!=null&&(s=o.replace(M$1,"$&/")+"/"),O$1(c,e,s,"",function($){return $})):c!=null&&(L(c)&&(c=K(c,s+(!c.key||_&&_.key===c.key?"":(""+c.key).replace(M$1,"$&/")+"/")+o)),e.push(c)),1;if(_=0,a=a===""?".":a+":",Array.isArray(o))for(var b=0;b<o.length;b++){d=o[b];var k=a+N$1(d,b);_+=O$1(d,e,s,k,c)}else if(k=y$1(o),typeof k=="function")for(o=k.call(o),b=0;!(d=o.next()).done;)d=d.value,k=a+N$1(d,b++),_+=O$1(d,e,s,k,c);else if(d==="object")throw e=""+o,Error(z(31,e==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":e));return _}function P$1(o,e,s){if(o==null)return o;var a=[],c=0;return O$1(o,a,"","",function(d){return e.call(s,d,c++)}),a}function Q(o){if(o._status===-1){var e=o._result;e=e(),o._status=0,o._result=e,e.then(function(s){o._status===0&&(s=s.default,o._status=1,o._result=s)},function(s){o._status===0&&(o._status=2,o._result=s)})}if(o._status===1)return o._result;throw o._result}var R$2={current:null};function S$1(){var o=R$2.current;if(o===null)throw Error(z(321));return o}var T$2={ReactCurrentDispatcher:R$2,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G$1,IsSomeRendererActing:{current:!1},assign:l};react_production_min.Children={map:P$1,forEach:function(o,e,s){P$1(o,function(){e.apply(this,arguments)},s)},count:function(o){var e=0;return P$1(o,function(){e++}),e},toArray:function(o){return P$1(o,function(e){return e})||[]},only:function(o){if(!L(o))throw Error(z(143));return o}};react_production_min.Component=C$1;react_production_min.PureComponent=E$1;react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T$2;react_production_min.cloneElement=function(o,e,s){if(o==null)throw Error(z(267,o));var a=l({},o.props),c=o.key,d=o.ref,_=o._owner;if(e!=null){if(e.ref!==void 0&&(d=e.ref,_=G$1.current),e.key!==void 0&&(c=""+e.key),o.type&&o.type.defaultProps)var b=o.type.defaultProps;for(k in e)H$1.call(e,k)&&!I$2.hasOwnProperty(k)&&(a[k]=e[k]===void 0&&b!==void 0?b[k]:e[k])}var k=arguments.length-2;if(k===1)a.children=s;else if(1<k){b=Array(k);for(var $=0;$<k;$++)b[$]=arguments[$+2];a.children=b}return{$$typeof:n$1,type:o.type,key:c,ref:d,props:a,_owner:_}};react_production_min.createContext=function(o,e){return e===void 0&&(e=null),o={$$typeof:r$1,_calculateChangedBits:e,_currentValue:o,_currentValue2:o,_threadCount:0,Provider:null,Consumer:null},o.Provider={$$typeof:q$1,_context:o},o.Consumer=o};react_production_min.createElement=J;react_production_min.createFactory=function(o){var e=J.bind(null,o);return e.type=o,e};react_production_min.createRef=function(){return{current:null}};react_production_min.forwardRef=function(o){return{$$typeof:t$2,render:o}};react_production_min.isValidElement=L;react_production_min.lazy=function(o){return{$$typeof:v,_payload:{_status:-1,_result:o},_init:Q}};react_production_min.memo=function(o,e){return{$$typeof:u,type:o,compare:e===void 0?null:e}};react_production_min.useCallback=function(o,e){return S$1().useCallback(o,e)};react_production_min.useContext=function(o,e){return S$1().useContext(o,e)};react_production_min.useDebugValue=function(){};react_production_min.useEffect=function(o,e){return S$1().useEffect(o,e)};react_production_min.useImperativeHandle=function(o,e,s){return S$1().useImperativeHandle(o,e,s)};react_production_min.useLayoutEffect=function(o,e){return S$1().useLayoutEffect(o,e)};react_production_min.useMemo=function(o,e){return S$1().useMemo(o,e)};react_production_min.useReducer=function(o,e,s){return S$1().useReducer(o,e,s)};react_production_min.useRef=function(o){return S$1().useRef(o)};react_production_min.useState=function(o){return S$1().useState(o)};react_production_min.version="17.0.2";react.exports=react_production_min;var React=react.exports,reactDom={exports:{}},reactDom_production_min={},scheduler={exports:{}},scheduler_production_min={};/** @license React v0.20.2
|
|
* scheduler.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.
|
|
*/(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 St=o.unstable_now();k(!0,St),k=null}catch(Ct){throw setTimeout(j,0),Ct}};e=function(St){k!==null?setTimeout(e,0,St):(k=St,setTimeout(j,0))},s=function(St,Ct){$=setTimeout(St,Ct)},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(St){0>St||125<St?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):it=0<St?Math.floor(1e3/St):5};var ot=new MessageChannel,ht=ot.port2;ot.port1.onmessage=function(){if(st!==null){var St=o.unstable_now();at=St+it;try{st(!0,St)?ht.postMessage(null):(nt=!1,st=null)}catch(Ct){throw ht.postMessage(null),Ct}}else nt=!1},e=function(St){st=St,nt||(nt=!0,ht.postMessage(null))},s=function(St,Ct){rt=_e(function(){St(o.unstable_now())},Ct)},a=function(){et(rt),rt=-1}}function ct(St,Ct){var xt=St.length;St.push(Ct);e:for(;;){var Rt=xt-1>>>1,Mt=St[Rt];if(Mt!==void 0&&0<pt(Mt,Ct))St[Rt]=Ct,St[xt]=Mt,xt=Rt;else break e}}function lt(St){return St=St[0],St===void 0?null:St}function ut(St){var Ct=St[0];if(Ct!==void 0){var xt=St.pop();if(xt!==Ct){St[0]=xt;e:for(var Rt=0,Mt=St.length;Rt<Mt;){var It=2*(Rt+1)-1,Ft=St[It],Vt=It+1,jt=St[Vt];if(Ft!==void 0&&0>pt(Ft,xt))jt!==void 0&&0>pt(jt,Ft)?(St[Rt]=jt,St[Vt]=xt,Rt=Vt):(St[Rt]=Ft,St[It]=xt,Rt=It);else if(jt!==void 0&&0>pt(jt,xt))St[Rt]=jt,St[Vt]=xt,Rt=Vt;else break e}}return Ct}return null}function pt(St,Ct){var xt=St.sortIndex-Ct.sortIndex;return xt!==0?xt:St.id-Ct.id}var dt=[],gt=[],yt=1,ft=null,mt=3,Et=!1,vt=!1,At=!1;function _t(St){for(var Ct=lt(gt);Ct!==null;){if(Ct.callback===null)ut(gt);else if(Ct.startTime<=St)ut(gt),Ct.sortIndex=Ct.expirationTime,ct(dt,Ct);else break;Ct=lt(gt)}}function Dt(St){if(At=!1,_t(St),!vt)if(lt(dt)!==null)vt=!0,e(bt);else{var Ct=lt(gt);Ct!==null&&s(Dt,Ct.startTime-St)}}function bt(St,Ct){vt=!1,At&&(At=!1,a()),Et=!0;var xt=mt;try{for(_t(Ct),ft=lt(dt);ft!==null&&(!(ft.expirationTime>Ct)||St&&!o.unstable_shouldYield());){var Rt=ft.callback;if(typeof Rt=="function"){ft.callback=null,mt=ft.priorityLevel;var Mt=Rt(ft.expirationTime<=Ct);Ct=o.unstable_now(),typeof Mt=="function"?ft.callback=Mt:ft===lt(dt)&&ut(dt),_t(Ct)}else ut(dt);ft=lt(dt)}if(ft!==null)var It=!0;else{var Ft=lt(gt);Ft!==null&&s(Dt,Ft.startTime-Ct),It=!1}return It}finally{ft=null,mt=xt,Et=!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(St){St.callback=null},o.unstable_continueExecution=function(){vt||Et||(vt=!0,e(bt))},o.unstable_getCurrentPriorityLevel=function(){return mt},o.unstable_getFirstCallbackNode=function(){return lt(dt)},o.unstable_next=function(St){switch(mt){case 1:case 2:case 3:var Ct=3;break;default:Ct=mt}var xt=mt;mt=Ct;try{return St()}finally{mt=xt}},o.unstable_pauseExecution=function(){},o.unstable_requestPaint=Tt,o.unstable_runWithPriority=function(St,Ct){switch(St){case 1:case 2:case 3:case 4:case 5:break;default:St=3}var xt=mt;mt=St;try{return Ct()}finally{mt=xt}},o.unstable_scheduleCallback=function(St,Ct,xt){var Rt=o.unstable_now();switch(typeof xt=="object"&&xt!==null?(xt=xt.delay,xt=typeof xt=="number"&&0<xt?Rt+xt:Rt):xt=Rt,St){case 1:var Mt=-1;break;case 2:Mt=250;break;case 5:Mt=1073741823;break;case 4:Mt=1e4;break;default:Mt=5e3}return Mt=xt+Mt,St={id:yt++,callback:Ct,priorityLevel:St,startTime:xt,expirationTime:Mt,sortIndex:-1},xt>Rt?(St.sortIndex=xt,ct(gt,St),lt(dt)===null&&St===lt(gt)&&(At?a():At=!0,s(Dt,xt-Rt))):(St.sortIndex=Mt,ct(dt,St),vt||Et||(vt=!0,e(bt))),St},o.unstable_wrapCallback=function(St){var Ct=mt;return function(){var xt=mt;mt=Ct;try{return St.apply(this,arguments)}finally{mt=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.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/var aa=react.exports,m$1=objectAssign$1,r=scheduler.exports;function y(o){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+o,s=1;s<arguments.length;s++)e+="&args[]="+encodeURIComponent(arguments[s]);return"Minified React error #"+o+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(o,e){ea(o,e),ea(o+"Capture",e)}function ea(o,e){for(ca[o]=e,o=0;o<e.length;o++)ba.add(e[o])}var fa=!(typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"),ha=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ia=Object.prototype.hasOwnProperty,ja={},ka={};function la(o){return ia.call(ka,o)?!0:ia.call(ja,o)?!1:ha.test(o)?ka[o]=!0:(ja[o]=!0,!1)}function ma(o,e,s,a){if(s!==null&&s.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return a?!1:s!==null?!s.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function na(o,e,s,a){if(e===null||typeof e=="undefined"||ma(o,e,s,a))return!0;if(a)return!1;if(s!==null)switch(s.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function B(o,e,s,a,c,d,_){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=a,this.attributeNamespace=c,this.mustUseProperty=s,this.propertyName=o,this.type=e,this.sanitizeURL=d,this.removeEmptyString=_}var D={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){D[o]=new B(o,0,!1,o,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var e=o[0];D[e]=new B(e,1,!1,o[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(o){D[o]=new B(o,2,!1,o.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){D[o]=new B(o,2,!1,o,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(o){D[o]=new B(o,3,!1,o.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(o){D[o]=new B(o,3,!0,o,null,!1,!1)});["capture","download"].forEach(function(o){D[o]=new B(o,4,!1,o,null,!1,!1)});["cols","rows","size","span"].forEach(function(o){D[o]=new B(o,6,!1,o,null,!1,!1)});["rowSpan","start"].forEach(function(o){D[o]=new B(o,5,!1,o.toLowerCase(),null,!1,!1)});var oa=/[\-:]([a-z])/g;function pa(o){return o[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(o){var e=o.replace(oa,pa);D[e]=new B(e,1,!1,o,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var e=o.replace(oa,pa);D[e]=new B(e,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(o){var e=o.replace(oa,pa);D[e]=new B(e,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(o){D[o]=new B(o,1,!1,o.toLowerCase(),null,!1,!1)});D.xlinkHref=new B("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(o){D[o]=new B(o,1,!1,o.toLowerCase(),null,!0,!0)});function qa(o,e,s,a){var c=D.hasOwnProperty(e)?D[e]:null,d=c!==null?c.type===0:a?!1:!(!(2<e.length)||e[0]!=="o"&&e[0]!=="O"||e[1]!=="n"&&e[1]!=="N");d||(na(e,s,c,a)&&(s=null),a||c===null?la(e)&&(s===null?o.removeAttribute(e):o.setAttribute(e,""+s)):c.mustUseProperty?o[c.propertyName]=s===null?c.type===3?!1:"":s:(e=c.attributeName,a=c.attributeNamespace,s===null?o.removeAttribute(e):(c=c.type,s=c===3||c===4&&s===!0?"":""+s,a?o.setAttributeNS(a,e,s):o.setAttribute(e,s))))}var ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;if(typeof Symbol=="function"&&Symbol.for){var E=Symbol.for;sa=E("react.element"),ta=E("react.portal"),ua=E("react.fragment"),wa=E("react.strict_mode"),xa=E("react.profiler"),ya=E("react.provider"),za=E("react.context"),Aa=E("react.forward_ref"),Ba=E("react.suspense"),Ca=E("react.suspense_list"),Da=E("react.memo"),Ea=E("react.lazy"),Fa=E("react.block"),E("react.scope"),Ga=E("react.opaque.id"),Ha=E("react.debug_trace_mode"),Ia=E("react.offscreen"),Ja=E("react.legacy_hidden")}var Ka=typeof Symbol=="function"&&Symbol.iterator;function La(o){return o===null||typeof o!="object"?null:(o=Ka&&o[Ka]||o["@@iterator"],typeof o=="function"?o:null)}var Ma;function Na(o){if(Ma===void 0)try{throw Error()}catch(s){var e=s.stack.trim().match(/\n( *(at )?)/);Ma=e&&e[1]||""}return`
|
|
`+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;c++)e["$"+s[c]]=!0;for(s=0;s<o.length;s++)c=e.hasOwnProperty("$"+o[s].value),o[s].selected!==c&&(o[s].selected=c),c&&a&&(o[s].defaultSelected=!0)}else{for(s=""+Sa(s),e=null,c=0;c<o.length;c++){if(o[c].value===s){o[c].selected=!0,a&&(o[c].defaultSelected=!0);return}e!==null||o[c].disabled||(e=o[c])}e!==null&&(e.selected=!0)}}function gb(o,e){if(e.dangerouslySetInnerHTML!=null)throw Error(y(91));return m$1({},e,{value:void 0,defaultValue:void 0,children:""+o._wrapperState.initialValue})}function hb(o,e){var s=e.value;if(s==null){if(s=e.children,e=e.defaultValue,s!=null){if(e!=null)throw Error(y(92));if(Array.isArray(s)){if(!(1>=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="<svg>"+e.valueOf().toString()+"</svg>",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;o<e.length;o++)Bb(e[o])}}function Gb(o,e){return o(e)}function Hb(o,e,s,a,c){return o(e,s,a,c)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){(zb!==null||Ab!==null)&&(Ib(),Fb())}function Nb(o,e,s){if(Lb)return o(e,s);Lb=!0;try{return Jb(o,e,s)}finally{Lb=!1,Mb()}}function Ob(o,e){var s=o.stateNode;if(s===null)return null;var a=Db(s);if(a===null)return null;s=a[e];e:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(o=o.type,a=!(o==="button"||o==="input"||o==="select"||o==="textarea")),o=!a;break e;default:o=!1}if(o)return null;if(s&&typeof s!="function")throw Error(y(231,e,typeof s));return s}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,"passive",{get:function(){Pb=!0}}),window.addEventListener("test",Qb,Qb),window.removeEventListener("test",Qb,Qb)}catch{Pb=!1}function Rb(o,e,s,a,c,d,_,b,k){var $=Array.prototype.slice.call(arguments,3);try{e.apply(s,$)}catch(j){this.onError(j)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(o){Sb=!0,Tb=o}};function Xb(o,e,s,a,c,d,_,b,k){Sb=!1,Tb=null,Rb.apply(Wb,arguments)}function Yb(o,e,s,a,c,d,_,b,k){if(Xb.apply(this,arguments),Sb){if(Sb){var $=Tb;Sb=!1,Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=$)}}function Zb(o){var e=o,s=o;if(o.alternate)for(;e.return;)e=e.return;else{o=e;do e=o,(e.flags&1026)!==0&&(s=e.return),o=e.return;while(o)}return e.tag===3?s:null}function $b(o){if(o.tag===13){var e=o.memoizedState;if(e===null&&(o=o.alternate,o!==null&&(e=o.memoizedState)),e!==null)return e.dehydrated}return null}function ac(o){if(Zb(o)!==o)throw Error(y(188))}function bc(o){var e=o.alternate;if(!e){if(e=Zb(o),e===null)throw Error(y(188));return e!==o?null:o}for(var s=o,a=e;;){var c=s.return;if(c===null)break;var d=c.alternate;if(d===null){if(a=c.return,a!==null){s=a;continue}break}if(c.child===d.child){for(d=c.child;d;){if(d===s)return ac(c),o;if(d===a)return ac(c),e;d=d.sibling}throw Error(y(188))}if(s.return!==a.return)s=c,a=d;else{for(var _=!1,b=c.child;b;){if(b===s){_=!0,s=c,a=d;break}if(b===a){_=!0,a=c,s=d;break}b=b.sibling}if(!_){for(b=d.child;b;){if(b===s){_=!0,s=d,a=c;break}if(b===a){_=!0,a=d,s=c;break}b=b.sibling}if(!_)throw Error(y(189))}}if(s.alternate!==a)throw Error(y(190))}if(s.tag!==3)throw Error(y(188));return s.stateNode.current===s?o:e}function cc(o){if(o=bc(o),!o)return null;for(var e=o;;){if(e.tag===5||e.tag===6)return e;if(e.child)e.child.return=e,e=e.child;else{if(e===o)break;for(;!e.sibling;){if(!e.return||e.return===o)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}}return null}function dc(o,e){for(var s=o.alternate;e!==null;){if(e===o||e===s)return!0;e=e.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function rc(o,e,s,a,c){return{blockedOn:o,domEventName:e,eventSystemFlags:s|16,nativeEvent:c,targetContainers:[a]}}function sc(o,e){switch(o){case"focusin":case"focusout":kc=null;break;case"dragenter":case"dragleave":lc=null;break;case"mouseover":case"mouseout":mc=null;break;case"pointerover":case"pointerout":nc.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":oc.delete(e.pointerId)}}function tc(o,e,s,a,c,d){return o===null||o.nativeEvent!==d?(o=rc(e,s,a,c,d),e!==null&&(e=Cb(e),e!==null&&fc(e)),o):(o.eventSystemFlags|=a,e=o.targetContainers,c!==null&&e.indexOf(c)===-1&&e.push(c),o)}function uc(o,e,s,a,c){switch(e){case"focusin":return kc=tc(kc,o,e,s,a,c),!0;case"dragenter":return lc=tc(lc,o,e,s,a,c),!0;case"mouseover":return mc=tc(mc,o,e,s,a,c),!0;case"pointerover":var d=c.pointerId;return nc.set(d,tc(nc.get(d)||null,o,e,s,a,c)),!0;case"gotpointercapture":return d=c.pointerId,oc.set(d,tc(oc.get(d)||null,o,e,s,a,c)),!0}return!1}function vc(o){var e=wc(o.target);if(e!==null){var s=Zb(e);if(s!==null){if(e=s.tag,e===13){if(e=$b(s),e!==null){o.blockedOn=e,hc(o.lanePriority,function(){r.unstable_runWithPriority(o.priority,function(){gc(s)})});return}}else if(e===3&&s.stateNode.hydrate){o.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}o.blockedOn=null}function xc(o){if(o.blockedOn!==null)return!1;for(var e=o.targetContainers;0<e.length;){var s=yc(o.domEventName,o.eventSystemFlags,e[0],o.nativeEvent);if(s!==null)return e=Cb(s),e!==null&&fc(e),o.blockedOn=s,!1;e.shift()}return!0}function zc(o,e,s){xc(o)&&s.delete(e)}function Ac(){for(ic=!1;0<jc.length;){var o=jc[0];if(o.blockedOn!==null){o=Cb(o.blockedOn),o!==null&&ec(o);break}for(var e=o.targetContainers;0<e.length;){var s=yc(o.domEventName,o.eventSystemFlags,e[0],o.nativeEvent);if(s!==null){o.blockedOn=s;break}e.shift()}o.blockedOn===null&&jc.shift()}kc!==null&&xc(kc)&&(kc=null),lc!==null&&xc(lc)&&(lc=null),mc!==null&&xc(mc)&&(mc=null),nc.forEach(zc),oc.forEach(zc)}function Bc(o,e){o.blockedOn===e&&(o.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}function Cc(o){function e(c){return Bc(c,o)}if(0<jc.length){Bc(jc[0],o);for(var s=1;s<jc.length;s++){var a=jc[s];a.blockedOn===o&&(a.blockedOn=null)}}for(kc!==null&&Bc(kc,o),lc!==null&&Bc(lc,o),mc!==null&&Bc(mc,o),nc.forEach(e),oc.forEach(e),s=0;s<pc.length;s++)a=pc[s],a.blockedOn===o&&(a.blockedOn=null);for(;0<pc.length&&(s=pc[0],s.blockedOn===null);)vc(s),s.blockedOn===null&&pc.shift()}function Dc(o,e){var s={};return s[o.toLowerCase()]=e.toLowerCase(),s["Webkit"+o]="webkit"+e,s["Moz"+o]="moz"+e,s}var Ec={animationend:Dc("Animation","AnimationEnd"),animationiteration:Dc("Animation","AnimationIteration"),animationstart:Dc("Animation","AnimationStart"),transitionend:Dc("Transition","TransitionEnd")},Fc={},Gc={};fa&&(Gc=document.createElement("div").style,"AnimationEvent"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),"TransitionEvent"in window||delete Ec.transitionend.transition);function Hc(o){if(Fc[o])return Fc[o];if(!Ec[o])return o;var e=Ec[o],s;for(s in e)if(e.hasOwnProperty(s)&&s in Gc)return Fc[o]=e[s];return o}var Ic=Hc("animationend"),Jc=Hc("animationiteration"),Kc=Hc("animationstart"),Lc=Hc("transitionend"),Mc=new Map,Nc=new Map,Oc=["abort","abort",Ic,"animationEnd",Jc,"animationIteration",Kc,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Lc,"transitionEnd","waiting","waiting"];function Pc(o,e){for(var s=0;s<o.length;s+=2){var a=o[s],c=o[s+1];c="on"+(c[0].toUpperCase()+c.slice(1)),Nc.set(a,e),Mc.set(a,c),da(c,[a])}}var Qc=r.unstable_now;Qc();var F$1=8;function Rc(o){if((1&o)!==0)return F$1=15,1;if((2&o)!==0)return F$1=14,2;if((4&o)!==0)return F$1=13,4;var e=24&o;return e!==0?(F$1=12,e):(o&32)!==0?(F$1=11,32):(e=192&o,e!==0?(F$1=10,e):(o&256)!==0?(F$1=9,256):(e=3584&o,e!==0?(F$1=8,e):(o&4096)!==0?(F$1=7,4096):(e=4186112&o,e!==0?(F$1=6,e):(e=62914560&o,e!==0?(F$1=5,e):o&67108864?(F$1=4,67108864):(o&134217728)!==0?(F$1=3,134217728):(e=805306368&o,e!==0?(F$1=2,e):(1073741824&o)!==0?(F$1=1,1073741824):(F$1=8,o))))))}function Sc(o){switch(o){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(o){switch(o){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,o))}}function Uc(o,e){var s=o.pendingLanes;if(s===0)return F$1=0;var a=0,c=0,d=o.expiredLanes,_=o.suspendedLanes,b=o.pingedLanes;if(d!==0)a=d,c=F$1=15;else if(d=s&134217727,d!==0){var k=d&~_;k!==0?(a=Rc(k),c=F$1):(b&=d,b!==0&&(a=Rc(b),c=F$1))}else d=s&~_,d!==0?(a=Rc(d),c=F$1):b!==0&&(a=Rc(b),c=F$1);if(a===0)return 0;if(a=31-Vc(a),a=s&((0>a?0:1<<a)<<1)-1,e!==0&&e!==a&&(e&_)===0){if(Rc(e),c<=F$1)return e;F$1=c}if(e=o.entangledLanes,e!==0)for(o=o.entanglements,e&=a;0<e;)s=31-Vc(e),c=1<<s,a|=o[s],e&=~c;return a}function Wc(o){return o=o.pendingLanes&-1073741825,o!==0?o:o&1073741824?1073741824:0}function Xc(o,e){switch(o){case 15:return 1;case 14:return 2;case 12:return o=Yc(24&~e),o===0?Xc(10,e):o;case 10:return o=Yc(192&~e),o===0?Xc(8,e):o;case 8:return o=Yc(3584&~e),o===0&&(o=Yc(4186112&~e),o===0&&(o=512)),o;case 2:return e=Yc(805306368&~e),e===0&&(e=268435456),e}throw Error(y(358,o))}function Yc(o){return o&-o}function Zc(o){for(var e=[],s=0;31>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<jc.length&&-1<qc.indexOf(o))o=rc(null,o,e,s,a),jc.push(o);else{var d=yc(o,e,s,a);if(d===null)c&&sc(o,a);else{if(c){if(-1<qc.indexOf(o)){o=rc(d,o,e,s,a),jc.push(o);return}if(uc(d,o,e,s,a))return;sc(o,a)}jd(o,e,a,null,s)}}}}function yc(o,e,s,a){var c=xb(a);if(c=wc(c),c!==null){var d=Zb(c);if(d===null)c=null;else{var _=d.tag;if(_===13){if(c=$b(d),c!==null)return c;c=null}else if(_===3){if(d.stateNode.hydrate)return d.tag===3?d.stateNode.containerInfo:null;c=null}else d!==c&&(c=null)}}return jd(o,e,a,c,s),null}var kd=null,ld=null,md=null;function nd(){if(md)return md;var o,e=ld,s=e.length,a,c="value"in kd?kd.value:kd.textContent,d=c.length;for(o=0;o<s&&e[o]===c[o];o++);var _=s-o;for(a=1;a<=_&&e[s-a]===c[d-a];a++);return md=c.slice(o,1<a?1-a:void 0)}function od(o){var e=o.keyCode;return"charCode"in o?(o=o.charCode,o===0&&e===13&&(o=13)):o=e,o===10&&(o=13),32<=o||o===13?o:0}function pd(){return!0}function qd(){return!1}function rd(o){function e(s,a,c,d,_){this._reactName=s,this._targetInst=c,this.type=a,this.nativeEvent=d,this.target=_,this.currentTarget=null;for(var b in o)o.hasOwnProperty(b)&&(s=o[b],this[b]=s?s(d):d[b]);return this.isDefaultPrevented=(d.defaultPrevented!=null?d.defaultPrevented:d.returnValue===!1)?pd:qd,this.isPropagationStopped=qd,this}return m$1(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd}),e}var sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(o){return o.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m$1({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m$1({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(o){return o.relatedTarget===void 0?o.fromElement===o.srcElement?o.toElement:o.fromElement:o.relatedTarget},movementX:function(o){return"movementX"in o?o.movementX:(o!==yd&&(yd&&o.type==="mousemove"?(wd=o.screenX-yd.screenX,xd=o.screenY-yd.screenY):xd=wd=0,yd=o),wd)},movementY:function(o){return"movementY"in o?o.movementY:xd}}),Bd=rd(Ad),Cd=m$1({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m$1({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m$1({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m$1({},sd,{clipboardData:function(o){return"clipboardData"in o?o.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m$1({},sd,{data:0}),Ld=rd(Kd),Md={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Od={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Pd(o){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(o):(o=Od[o])?!!e[o]:!1}function zd(){return Pd}var Qd=m$1({},ud,{key:function(o){if(o.key){var e=Md[o.key]||o.key;if(e!=="Unidentified")return e}return o.type==="keypress"?(o=od(o),o===13?"Enter":String.fromCharCode(o)):o.type==="keydown"||o.type==="keyup"?Nd[o.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(o){return o.type==="keypress"?od(o):0},keyCode:function(o){return o.type==="keydown"||o.type==="keyup"?o.keyCode:0},which:function(o){return o.type==="keypress"?od(o):o.type==="keydown"||o.type==="keyup"?o.keyCode:0}}),Rd=rd(Qd),Sd=m$1({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m$1({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m$1({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m$1({},Ad,{deltaX:function(o){return"deltaX"in o?o.deltaX:"wheelDeltaX"in o?-o.wheelDeltaX:0},deltaY:function(o){return"deltaY"in o?o.deltaY:"wheelDeltaY"in o?-o.wheelDeltaY:"wheelDelta"in o?-o.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&"CompositionEvent"in window,be=null;fa&&"documentMode"in document&&(be=document.documentMode);var ce=fa&&"TextEvent"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=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.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return de&&e.locale!=="ko"?null:e.data;default:return null}}var le={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(o){var e=o&&o.nodeName&&o.nodeName.toLowerCase();return e==="input"?!!le[o.type]:e==="textarea"}function ne(o,e,s,a){Eb(a),e=oe(e,"onChange"),0<e.length&&(s=new td("onChange","change",null,s,a),o.push({event:s,listeners:e}))}var pe=null,qe=null;function re(o){se(o,0)}function te(o){var e=ue(o);if(Wa(e))return o}function ve(o,e){if(o==="change")return e}var we=!1;if(fa){var xe;if(fa){var ye="oninput"in document;if(!ye){var ze=document.createElement("div");ze.setAttribute("oninput","return;"),ye=typeof ze.oninput=="function"}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent("onpropertychange",Be),qe=pe=null)}function Be(o){if(o.propertyName==="value"&&te(qe)){var e=[];if(ne(e,qe,o,xb(o)),o=re,Kb)o(e);else{Kb=!0;try{Gb(o,e)}finally{Kb=!1,Mb()}}}}function Ce(o,e,s){o==="focusin"?(Ae(),pe=e,qe=s,pe.attachEvent("onpropertychange",Be)):o==="focusout"&&Ae()}function De(o){if(o==="selectionchange"||o==="keyup"||o==="keydown")return te(qe)}function Ee(o,e){if(o==="click")return te(e)}function Fe(o,e){if(o==="input"||o==="change")return te(e)}function Ge(o,e){return o===e&&(o!==0||1/o===1/e)||o!==o&&e!==e}var He=typeof Object.is=="function"?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;function Je(o,e){if(He(o,e))return!0;if(typeof o!="object"||o===null||typeof e!="object"||e===null)return!1;var s=Object.keys(o),a=Object.keys(e);if(s.length!==a.length)return!1;for(a=0;a<s.length;a++)if(!Ie.call(e,s[a])||!He(o[s[a]],e[s[a]]))return!1;return!0}function Ke(o){for(;o&&o.firstChild;)o=o.firstChild;return o}function Le(o,e){var s=Ke(o);o=0;for(var a;s;){if(s.nodeType===3){if(a=o+s.textContent.length,o<=e&&a>=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"),0<a.length&&(e=new td("onSelect","select",null,e,s),o.push({event:e,listeners:a}),e.target=Qe)))}Pc("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0);Pc("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1);Pc(Oc,2);for(var Ve="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea("onMouseEnter",["mouseout","mouseover"]);ea("onMouseLeave",["mouseout","mouseover"]);ea("onPointerEnter",["pointerout","pointerover"]);ea("onPointerLeave",["pointerout","pointerover"]);da("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));da("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));da("onBeforeInput",["compositionend","keypress","textInput","paste"]);da("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));da("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));da("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Xe="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ye=new Set("cancel close invalid load scroll toggle".split(" ").concat(Xe));function Ze(o,e,s){var a=o.type||"unknown-event";o.currentTarget=s,Yb(a,e,void 0,o),o.currentTarget=null}function se(o,e){e=(e&4)!==0;for(var s=0;s<o.length;s++){var a=o[s],c=a.event;a=a.listeners;e:{var d=void 0;if(e)for(var _=a.length-1;0<=_;_--){var b=a[_],k=b.instance,$=b.currentTarget;if(b=b.listener,k!==d&&c.isPropagationStopped())break e;Ze(c,b,$),d=k}else for(_=0;_<a.length;_++){if(b=a[_],k=b.instance,$=b.currentTarget,b=b.listener,k!==d&&c.isPropagationStopped())break e;Ze(c,b,$),d=k}}}if(Ub)throw o=Vb,Ub=!1,Vb=null,o}function G(o,e){var s=$e(e),a=o+"__bubble";s.has(a)||(af(e,o,2,!1),s.add(a))}var bf="_reactListening"+Math.random().toString(36).slice(2);function cf(o){o[bf]||(o[bf]=!0,ba.forEach(function(e){Ye.has(e)||df(e,!1,o,null),df(e,!0,o,null)}))}function df(o,e,s,a){var c=4<arguments.length&&arguments[4]!==void 0?arguments[4]:0,d=s;if(o==="selectionchange"&&s.nodeType!==9&&(d=s.ownerDocument),a!==null&&!e&&Ye.has(o)){if(o!=="scroll")return;c|=2,d=a}var _=$e(d),b=o+"__"+(e?"capture":"bubble");_.has(b)||(e&&(c|=4),af(d,o,c,e),_.add(b))}function af(o,e,s,a){var c=Nc.get(e);switch(c===void 0?2:c){case 0:c=gd;break;case 1:c=id$2;break;default:c=hd}s=c.bind(null,e,s,o),c=void 0,!Pb||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(c=!0),a?c!==void 0?o.addEventListener(e,s,{capture:!0,passive:c}):o.addEventListener(e,s,!0):c!==void 0?o.addEventListener(e,s,{passive:c}):o.addEventListener(e,s,!1)}function jd(o,e,s,a,c){var d=a;if((e&1)===0&&(e&2)===0&&a!==null)e:for(;;){if(a===null)return;var _=a.tag;if(_===3||_===4){var b=a.stateNode.containerInfo;if(b===c||b.nodeType===8&&b.parentNode===c)break;if(_===4)for(_=a.return;_!==null;){var k=_.tag;if((k===3||k===4)&&(k=_.stateNode.containerInfo,k===c||k.nodeType===8&&k.parentNode===c))return;_=_.return}for(;b!==null;){if(_=wc(b),_===null)return;if(k=_.tag,k===5||k===6){a=d=_;continue e}b=b.parentNode}}a=a.return}Nb(function(){var $=d,j=xb(s),_e=[];e:{var et=Mc.get(o);if(et!==void 0){var tt=td,nt=o;switch(o){case"keypress":if(od(s)===0)break e;case"keydown":case"keyup":tt=Rd;break;case"focusin":nt="focus",tt=Fd;break;case"focusout":nt="blur",tt=Fd;break;case"beforeblur":case"afterblur":tt=Fd;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":tt=Bd;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":tt=Dd;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":tt=Vd;break;case Ic:case Jc:case Kc:tt=Hd;break;case Lc:tt=Xd;break;case"scroll":tt=vd;break;case"wheel":tt=Zd;break;case"copy":case"cut":case"paste":tt=Jd;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":tt=Td}var st=(e&4)!==0,rt=!st&&o==="scroll",it=st?et!==null?et+"Capture":null:et;st=[];for(var at=$,ot;at!==null;){ot=at;var ht=ot.stateNode;if(ot.tag===5&&ht!==null&&(ot=ht,it!==null&&(ht=Ob(at,it),ht!=null&&st.push(ef(at,ht,ot)))),rt)break;at=at.return}0<st.length&&(et=new tt(et,nt,null,s,j),_e.push({event:et,listeners:st}))}}if((e&7)===0){e:{if(et=o==="mouseover"||o==="pointerover",tt=o==="mouseout"||o==="pointerout",et&&(e&16)===0&&(nt=s.relatedTarget||s.fromElement)&&(wc(nt)||nt[ff]))break e;if((tt||et)&&(et=j.window===j?j:(et=j.ownerDocument)?et.defaultView||et.parentWindow:window,tt?(nt=s.relatedTarget||s.toElement,tt=$,nt=nt?wc(nt):null,nt!==null&&(rt=Zb(nt),nt!==rt||nt.tag!==5&&nt.tag!==6)&&(nt=null)):(tt=null,nt=$),tt!==nt)){if(st=Bd,ht="onMouseLeave",it="onMouseEnter",at="mouse",(o==="pointerout"||o==="pointerover")&&(st=Td,ht="onPointerLeave",it="onPointerEnter",at="pointer"),rt=tt==null?et:ue(tt),ot=nt==null?et:ue(nt),et=new st(ht,at+"leave",tt,s,j),et.target=rt,et.relatedTarget=ot,ht=null,wc(j)===$&&(st=new st(it,at+"enter",nt,s,j),st.target=ot,st.relatedTarget=rt,ht=st),rt=ht,tt&&nt)t:{for(st=tt,it=nt,at=0,ot=st;ot;ot=gf(ot))at++;for(ot=0,ht=it;ht;ht=gf(ht))ot++;for(;0<at-ot;)st=gf(st),at--;for(;0<ot-at;)it=gf(it),ot--;for(;at--;){if(st===it||it!==null&&st===it.alternate)break t;st=gf(st),it=gf(it)}st=null}else st=null;tt!==null&&hf(_e,et,tt,st,!1),nt!==null&&rt!==null&&hf(_e,rt,nt,st,!0)}}e:{if(et=$?ue($):window,tt=et.nodeName&&et.nodeName.toLowerCase(),tt==="select"||tt==="input"&&et.type==="file")var ct=ve;else if(me(et))if(we)ct=Fe;else{ct=De;var lt=Ce}else(tt=et.nodeName)&&tt.toLowerCase()==="input"&&(et.type==="checkbox"||et.type==="radio")&&(ct=Ee);if(ct&&(ct=ct(o,$))){ne(_e,ct,s,j);break e}lt&<(o,et,$),o==="focusout"&&(lt=et._wrapperState)&<.controlled&&et.type==="number"&&bb(et,"number",et.value)}switch(lt=$?ue($):window,o){case"focusin":(me(lt)||lt.contentEditable==="true")&&(Qe=lt,Re=$,Se=null);break;case"focusout":Se=Re=Qe=null;break;case"mousedown":Te=!0;break;case"contextmenu":case"mouseup":case"dragend":Te=!1,Ue(_e,s,j);break;case"selectionchange":if(Pe)break;case"keydown":case"keyup":Ue(_e,s,j)}var ut;if(ae)e:{switch(o){case"compositionstart":var pt="onCompositionStart";break e;case"compositionend":pt="onCompositionEnd";break e;case"compositionupdate":pt="onCompositionUpdate";break e}pt=void 0}else ie$2?ge(o,s)&&(pt="onCompositionEnd"):o==="keydown"&&s.keyCode===229&&(pt="onCompositionStart");pt&&(de&&s.locale!=="ko"&&(ie$2||pt!=="onCompositionStart"?pt==="onCompositionEnd"&&ie$2&&(ut=nd()):(kd=j,ld="value"in kd?kd.value:kd.textContent,ie$2=!0)),lt=oe($,pt),0<lt.length&&(pt=new Ld(pt,o,null,s,j),_e.push({event:pt,listeners:lt}),ut?pt.data=ut:(ut=he(s),ut!==null&&(pt.data=ut)))),(ut=ce?je(o,s):ke(o,s))&&($=oe($,"onBeforeInput"),0<$.length&&(j=new Ld("onBeforeInput","beforeinput",null,s,j),_e.push({event:j,listeners:$}),j.data=ut))}se(_e,e)})}function ef(o,e,s){return{instance:o,listener:e,currentTarget:s}}function oe(o,e){for(var s=e+"Capture",a=[];o!==null;){var c=o,d=c.stateNode;c.tag===5&&d!==null&&(c=d,d=Ob(o,s),d!=null&&a.unshift(ef(o,d,c)),d=Ob(o,e),d!=null&&a.push(ef(o,d,c))),o=o.return}return a}function gf(o){if(o===null)return null;do o=o.return;while(o&&o.tag!==5);return o||null}function hf(o,e,s,a,c){for(var d=e._reactName,_=[];s!==null&&s!==a;){var b=s,k=b.alternate,$=b.stateNode;if(k!==null&&k===a)break;b.tag===5&&$!==null&&(b=$,c?(k=Ob(s,d),k!=null&&_.unshift(ef(s,k,b))):c||(k=Ob(s,d),k!=null&&_.push(ef(s,k,b)))),s=s.return}_.length!==0&&o.push({event:e,listeners:_})}function jf(){}var kf=null,lf=null;function mf(o,e){switch(o){case"button":case"input":case"select":case"textarea":return!!e.autoFocus}return!1}function nf(o,e){return o==="textarea"||o==="option"||o==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var of=typeof setTimeout=="function"?setTimeout:void 0,pf=typeof clearTimeout=="function"?clearTimeout:void 0;function qf(o){o.nodeType===1?o.textContent="":o.nodeType===9&&(o=o.body,o!=null&&(o.textContent=""))}function rf(o){for(;o!=null;o=o.nextSibling){var e=o.nodeType;if(e===1||e===3)break}return o}function sf(o){o=o.previousSibling;for(var e=0;o;){if(o.nodeType===8){var s=o.data;if(s==="$"||s==="$!"||s==="$?"){if(e===0)return o;e--}else s==="/$"&&e++}o=o.previousSibling}return null}var tf=0;function uf(o){return{$$typeof:Ga,toString:o,valueOf:o}}var vf=Math.random().toString(36).slice(2),wf="__reactFiber$"+vf,xf="__reactProps$"+vf,ff="__reactContainer$"+vf,yf="__reactEvents$"+vf;function wc(o){var e=o[wf];if(e)return e;for(var s=o.parentNode;s;){if(e=s[ff]||s[wf]){if(s=e.alternate,e.child!==null||s!==null&&s.child!==null)for(o=sf(o);o!==null;){if(s=o[wf])return s;o=sf(o)}return e}o=s,s=o.parentNode}return null}function Cb(o){return o=o[wf]||o[ff],!o||o.tag!==5&&o.tag!==6&&o.tag!==13&&o.tag!==3?null:o}function ue(o){if(o.tag===5||o.tag===6)return o.stateNode;throw Error(y(33))}function Db(o){return o[xf]||null}function $e(o){var e=o[yf];return e===void 0&&(e=o[yf]=new Set),e}var zf=[],Af=-1;function Bf(o){return{current:o}}function H(o){0>Af||(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(;o<e.length;o++){var s=e[o];do s=s(!0);while(s!==null)}}),ag=null}catch(s){throw ag!==null&&(ag=ag.slice(o+1)),Of(Uf,ig),s}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(o,e){if(o&&o.defaultProps){e=m$1({},e),o=o.defaultProps;for(var s in o)e[s]===void 0&&(e[s]=o[s]);return e}return e}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}function rg(o){var e=mg.current;H(mg),o.type._context._currentValue=e}function sg(o,e){for(;o!==null;){var s=o.alternate;if((o.childLanes&e)===e){if(s===null||(s.childLanes&e)===e)break;s.childLanes|=e}else o.childLanes|=e,s!==null&&(s.childLanes|=e);o=o.return}}function tg(o,e){ng=o,pg=og=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&e)!==0&&(ug=!0),o.firstContext=null)}function vg(o,e){if(pg!==o&&e!==!1&&e!==0)if((typeof e!="number"||e===1073741823)&&(pg=o,e=1073741823),e={context:o,observedBits:e,next:null},og===null){if(ng===null)throw Error(y(308));og=e,ng.dependencies={lanes:0,firstContext:e,responders:null}}else og=og.next=e;return o._currentValue}var wg=!1;function xg(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function yg(o,e){o=o.updateQueue,e.updateQueue===o&&(e.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function zg(o,e){return{eventTime:o,lane:e,tag:0,payload:null,callback:null,next:null}}function Ag(o,e){if(o=o.updateQueue,o!==null){o=o.shared;var s=o.pending;s===null?e.next=e:(e.next=s.next,s.next=e),o.pending=e}}function Bg(o,e){var s=o.updateQueue,a=o.alternate;if(a!==null&&(a=a.updateQueue,s===a)){var c=null,d=null;if(s=s.firstBaseUpdate,s!==null){do{var _={eventTime:s.eventTime,lane:s.lane,tag:s.tag,payload:s.payload,callback:s.callback,next:null};d===null?c=d=_:d=d.next=_,s=s.next}while(s!==null);d===null?c=d=e:d=d.next=e}else c=d=e;s={baseState:a.baseState,firstBaseUpdate:c,lastBaseUpdate:d,shared:a.shared,effects:a.effects},o.updateQueue=s;return}o=s.lastBaseUpdate,o===null?s.firstBaseUpdate=e:o.next=e,s.lastBaseUpdate=e}function Cg(o,e,s,a){var c=o.updateQueue;wg=!1;var d=c.firstBaseUpdate,_=c.lastBaseUpdate,b=c.shared.pending;if(b!==null){c.shared.pending=null;var k=b,$=k.next;k.next=null,_===null?d=$:_.next=$,_=k;var j=o.alternate;if(j!==null){j=j.updateQueue;var _e=j.lastBaseUpdate;_e!==_&&(_e===null?j.firstBaseUpdate=$:_e.next=$,j.lastBaseUpdate=k)}}if(d!==null){_e=c.baseState,_=0,j=$=k=null;do{b=d.lane;var et=d.eventTime;if((a&b)===b){j!==null&&(j=j.next={eventTime:et,lane:0,tag:d.tag,payload:d.payload,callback:d.callback,next:null});e:{var tt=o,nt=d;switch(b=e,et=s,nt.tag){case 1:if(tt=nt.payload,typeof tt=="function"){_e=tt.call(et,_e,b);break e}_e=tt;break e;case 3:tt.flags=tt.flags&-4097|64;case 0:if(tt=nt.payload,b=typeof tt=="function"?tt.call(et,_e,b):tt,b==null)break e;_e=m$1({},_e,b);break e;case 2:wg=!0}}d.callback!==null&&(o.flags|=32,b=c.effects,b===null?c.effects=[d]:b.push(d))}else et={eventTime:et,lane:b,tag:d.tag,payload:d.payload,callback:d.callback,next:null},j===null?($=j=et,k=_e):j=j.next=et,_|=b;if(d=d.next,d===null){if(b=c.shared.pending,b===null)break;d=b.next,b.next=null,c.lastBaseUpdate=b,c.shared.pending=null}}while(1);j===null&&(k=_e),c.baseState=k,c.firstBaseUpdate=$,c.lastBaseUpdate=j,Dg|=_,o.lanes=_,o.memoizedState=_e}}function Eg(o,e,s){if(o=e.effects,e.effects=null,o!==null)for(e=0;e<o.length;e++){var a=o[e],c=a.callback;if(c!==null){if(a.callback=null,a=s,typeof c!="function")throw Error(y(191,c));c.call(a)}}}var Fg=new aa.Component().refs;function Gg(o,e,s,a){e=o.memoizedState,s=s(a,e),s=s==null?e:m$1({},e,s),o.memoizedState=s,o.lanes===0&&(o.updateQueue.baseState=s)}var Kg={isMounted:function(o){return(o=o._reactInternals)?Zb(o)===o:!1},enqueueSetState:function(o,e,s){o=o._reactInternals;var a=Hg(),c=Ig(o),d=zg(a,c);d.payload=e,s!=null&&(d.callback=s),Ag(o,d),Jg(o,c,a)},enqueueReplaceState:function(o,e,s){o=o._reactInternals;var a=Hg(),c=Ig(o),d=zg(a,c);d.tag=1,d.payload=e,s!=null&&(d.callback=s),Ag(o,d),Jg(o,c,a)},enqueueForceUpdate:function(o,e){o=o._reactInternals;var s=Hg(),a=Ig(o),c=zg(s,a);c.tag=2,e!=null&&(c.callback=e),Ag(o,c),Jg(o,a,s)}};function Lg(o,e,s,a,c,d,_){return o=o.stateNode,typeof o.shouldComponentUpdate=="function"?o.shouldComponentUpdate(a,d,_):e.prototype&&e.prototype.isPureReactComponent?!Je(s,a)||!Je(c,d):!0}function Mg(o,e,s){var a=!1,c=Cf,d=e.contextType;return typeof d=="object"&&d!==null?d=vg(d):(c=Ff(e)?Df:M.current,a=e.contextTypes,d=(a=a!=null)?Ef(o,c):Cf),e=new e(s,d),o.memoizedState=e.state!==null&&e.state!==void 0?e.state:null,e.updater=Kg,o.stateNode=e,e._reactInternals=o,a&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=c,o.__reactInternalMemoizedMaskedChildContext=d),e}function Ng(o,e,s,a){o=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(s,a),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(s,a),e.state!==o&&Kg.enqueueReplaceState(e,e.state,null)}function Og(o,e,s,a){var c=o.stateNode;c.props=s,c.state=o.memoizedState,c.refs=Fg,xg(o);var d=e.contextType;typeof d=="object"&&d!==null?c.context=vg(d):(d=Ff(e)?Df:M.current,c.context=Ef(o,d)),Cg(o,s,c,a),c.state=o.memoizedState,d=e.getDerivedStateFromProps,typeof d=="function"&&(Gg(o,e,d,s),c.state=o.memoizedState),typeof e.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(e=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),e!==c.state&&Kg.enqueueReplaceState(c,c.state,null),Cg(o,s,c,a),c.state=o.memoizedState),typeof c.componentDidMount=="function"&&(o.flags|=4)}var Pg=Array.isArray;function Qg(o,e,s){if(o=s.ref,o!==null&&typeof o!="function"&&typeof o!="object"){if(s._owner){if(s=s._owner,s){if(s.tag!==1)throw Error(y(309));var a=s.stateNode}if(!a)throw Error(y(147,o));var c=""+o;return e!==null&&e.ref!==null&&typeof e.ref=="function"&&e.ref._stringRef===c?e.ref:(e=function(d){var _=a.refs;_===Fg&&(_=a.refs={}),d===null?delete _[c]:_[c]=d},e._stringRef=c,e)}if(typeof o!="string")throw Error(y(284));if(!s._owner)throw Error(y(290,o))}return o}function Rg(o,e){if(o.type!=="textarea")throw Error(y(31,Object.prototype.toString.call(e)==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":e))}function Sg(o){function e(rt,it){if(o){var at=rt.lastEffect;at!==null?(at.nextEffect=it,rt.lastEffect=it):rt.firstEffect=rt.lastEffect=it,it.nextEffect=null,it.flags=8}}function s(rt,it){if(!o)return null;for(;it!==null;)e(rt,it),it=it.sibling;return null}function a(rt,it){for(rt=new Map;it!==null;)it.key!==null?rt.set(it.key,it):rt.set(it.index,it),it=it.sibling;return rt}function c(rt,it){return rt=Tg(rt,it),rt.index=0,rt.sibling=null,rt}function d(rt,it,at){return rt.index=at,o?(at=rt.alternate,at!==null?(at=at.index,at<it?(rt.flags=2,it):at):(rt.flags=2,it)):it}function _(rt){return o&&rt.alternate===null&&(rt.flags=2),rt}function b(rt,it,at,ot){return it===null||it.tag!==6?(it=Ug(at,rt.mode,ot),it.return=rt,it):(it=c(it,at),it.return=rt,it)}function k(rt,it,at,ot){return it!==null&&it.elementType===at.type?(ot=c(it,at.props),ot.ref=Qg(rt,it,at),ot.return=rt,ot):(ot=Vg(at.type,at.key,at.props,null,rt.mode,ot),ot.ref=Qg(rt,it,at),ot.return=rt,ot)}function $(rt,it,at,ot){return it===null||it.tag!==4||it.stateNode.containerInfo!==at.containerInfo||it.stateNode.implementation!==at.implementation?(it=Wg(at,rt.mode,ot),it.return=rt,it):(it=c(it,at.children||[]),it.return=rt,it)}function j(rt,it,at,ot,ht){return it===null||it.tag!==7?(it=Xg(at,rt.mode,ot,ht),it.return=rt,it):(it=c(it,at),it.return=rt,it)}function _e(rt,it,at){if(typeof it=="string"||typeof it=="number")return it=Ug(""+it,rt.mode,at),it.return=rt,it;if(typeof it=="object"&&it!==null){switch(it.$$typeof){case sa:return at=Vg(it.type,it.key,it.props,null,rt.mode,at),at.ref=Qg(rt,null,it),at.return=rt,at;case ta:return it=Wg(it,rt.mode,at),it.return=rt,it}if(Pg(it)||La(it))return it=Xg(it,rt.mode,at,null),it.return=rt,it;Rg(rt,it)}return null}function et(rt,it,at,ot){var ht=it!==null?it.key:null;if(typeof at=="string"||typeof at=="number")return ht!==null?null:b(rt,it,""+at,ot);if(typeof at=="object"&&at!==null){switch(at.$$typeof){case sa:return at.key===ht?at.type===ua?j(rt,it,at.props.children,ot,ht):k(rt,it,at,ot):null;case ta:return at.key===ht?$(rt,it,at,ot):null}if(Pg(at)||La(at))return ht!==null?null:j(rt,it,at,ot,null);Rg(rt,at)}return null}function tt(rt,it,at,ot,ht){if(typeof ot=="string"||typeof ot=="number")return rt=rt.get(at)||null,b(it,rt,""+ot,ht);if(typeof ot=="object"&&ot!==null){switch(ot.$$typeof){case sa:return rt=rt.get(ot.key===null?at:ot.key)||null,ot.type===ua?j(it,rt,ot.props.children,ht,ot.key):k(it,rt,ot,ht);case ta:return rt=rt.get(ot.key===null?at:ot.key)||null,$(it,rt,ot,ht)}if(Pg(ot)||La(ot))return rt=rt.get(at)||null,j(it,rt,ot,ht,null);Rg(it,ot)}return null}function nt(rt,it,at,ot){for(var ht=null,ct=null,lt=it,ut=it=0,pt=null;lt!==null&&ut<at.length;ut++){lt.index>ut?(pt=lt,lt=null):pt=lt.sibling;var dt=et(rt,lt,at[ut],ot);if(dt===null){lt===null&&(lt=pt);break}o&<&&dt.alternate===null&&e(rt,lt),it=d(dt,it,ut),ct===null?ht=dt:ct.sibling=dt,ct=dt,lt=pt}if(ut===at.length)return s(rt,lt),ht;if(lt===null){for(;ut<at.length;ut++)lt=_e(rt,at[ut],ot),lt!==null&&(it=d(lt,it,ut),ct===null?ht=lt:ct.sibling=lt,ct=lt);return ht}for(lt=a(rt,lt);ut<at.length;ut++)pt=tt(lt,rt,ut,at[ut],ot),pt!==null&&(o&&pt.alternate!==null&<.delete(pt.key===null?ut:pt.key),it=d(pt,it,ut),ct===null?ht=pt:ct.sibling=pt,ct=pt);return o&<.forEach(function(gt){return e(rt,gt)}),ht}function st(rt,it,at,ot){var ht=La(at);if(typeof ht!="function")throw Error(y(150));if(at=ht.call(at),at==null)throw Error(y(151));for(var ct=ht=null,lt=it,ut=it=0,pt=null,dt=at.next();lt!==null&&!dt.done;ut++,dt=at.next()){lt.index>ut?(pt=lt,lt=null):pt=lt.sibling;var gt=et(rt,lt,dt.value,ot);if(gt===null){lt===null&&(lt=pt);break}o&<&>.alternate===null&&e(rt,lt),it=d(gt,it,ut),ct===null?ht=gt:ct.sibling=gt,ct=gt,lt=pt}if(dt.done)return s(rt,lt),ht;if(lt===null){for(;!dt.done;ut++,dt=at.next())dt=_e(rt,dt.value,ot),dt!==null&&(it=d(dt,it,ut),ct===null?ht=dt:ct.sibling=dt,ct=dt);return ht}for(lt=a(rt,lt);!dt.done;ut++,dt=at.next())dt=tt(lt,rt,ut,dt.value,ot),dt!==null&&(o&&dt.alternate!==null&<.delete(dt.key===null?ut:dt.key),it=d(dt,it,ut),ct===null?ht=dt:ct.sibling=dt,ct=dt);return o&<.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;o<th.length;o++)th[o]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R$1=null,S=null,T$1=null,yh=!1,zh=!1;function Ah(){throw Error(y(321))}function Bh(o,e){if(e===null)return!1;for(var s=0;s<e.length&&s<o.length;s++)if(!He(o[s],e[s]))return!1;return!0}function Ch(o,e,s,a,c,d){if(xh=d,R$1=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,vh.current=o===null||o.memoizedState===null?Dh:Eh,o=s(a,c),zh){d=0;do{if(zh=!1,!(25>d))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;0<at;){var ot=31-Vc(at),ht=1<<ot;it[ot]|=rt,at&=~ht}}},[s,e,a]),b.useEffect(function(){return a(e._source,function(){var rt=et.getSnapshot,it=et.setSnapshot;try{it(rt(e._source));var at=Ig(st);c.mutableReadLanes|=at&c.pendingLanes}catch(ot){it(function(){throw ot})}})},[e,a]),He(tt,s)&&He(nt,e)&&He(_e,a)||(o={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:j},o.dispatch=$=Oh.bind(null,R$1,o),k.queue=o,k.baseQueue=null,j=Mh(c,e,s),k.memoizedState=k.baseState=j),j}function Ph(o,e,s){var a=Ih();return Nh(a,o,e,s)}function Qh(o){var e=Hh();return typeof o=="function"&&(o=o()),e.memoizedState=e.baseState=o,o=e.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:o},o=o.dispatch=Oh.bind(null,R$1,o),[e.memoizedState,o]}function Rh(o,e,s,a){return o={tag:o,create:e,destroy:s,deps:a,next:null},e=R$1.updateQueue,e===null?(e={lastEffect:null},R$1.updateQueue=e,e.lastEffect=o.next=o):(s=e.lastEffect,s===null?e.lastEffect=o.next=o:(a=s.next,s.next=o,o.next=a,e.lastEffect=o)),o}function Sh(o){var e=Hh();return o={current:o},e.memoizedState=o}function Th(){return Ih().memoizedState}function Uh(o,e,s,a){var c=Hh();R$1.flags|=o,c.memoizedState=Rh(1|e,s,void 0,a===void 0?null:a)}function Vh(o,e,s,a){var c=Ih();a=a===void 0?null:a;var d=void 0;if(S!==null){var _=S.memoizedState;if(d=_.destroy,a!==null&&Bh(a,_.deps)){Rh(e,s,d,a);return}}R$1.flags|=o,c.memoizedState=Rh(1|e,s,d,a)}function Wh(o,e){return Uh(516,4,o,e)}function Xh(o,e){return Vh(516,4,o,e)}function Yh(o,e){return Vh(4,2,o,e)}function Zh(o,e){if(typeof e=="function")return o=o(),e(o),function(){e(null)};if(e!=null)return o=o(),e.current=o,function(){e.current=null}}function $h(o,e,s){return s=s!=null?s.concat([o]):null,Vh(4,2,Zh.bind(null,e,o),s)}function ai(){}function bi(o,e){var s=Ih();e=e===void 0?null:e;var a=s.memoizedState;return a!==null&&e!==null&&Bh(e,a[1])?a[0]:(s.memoizedState=[o,e],o)}function ci(o,e){var s=Ih();e=e===void 0?null:e;var a=s.memoizedState;return a!==null&&e!==null&&Bh(e,a[1])?a[0]:(o=o(),s.memoizedState=[o,e],o)}function di(o,e){var s=eg();gg(98>s?98:s,function(){o(!0)}),gg(97<s?97:s,function(){var a=wh.transition;wh.transition=1;try{o(!1),e()}finally{wh.transition=a}})}function Oh(o,e,s){var a=Hg(),c=Ig(o),d={lane:c,action:s,eagerReducer:null,eagerState:null,next:null},_=e.pending;if(_===null?d.next=d:(d.next=_.next,_.next=d),e.pending=d,_=o.alternate,o===R$1||_!==null&&_===R$1)zh=yh=!0;else{if(o.lanes===0&&(_===null||_.lanes===0)&&(_=e.lastRenderedReducer,_!==null))try{var b=e.lastRenderedState,k=_(b,s);if(d.eagerReducer=_,d.eagerState=k,He(k,b))return}catch{}finally{}Jg(o,c,a)}}var Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(o,e){return Hh().memoizedState=[o,e===void 0?null:e],o},useContext:vg,useEffect:Wh,useImperativeHandle:function(o,e,s){return s=s!=null?s.concat([o]):null,Uh(4,2,Zh.bind(null,e,o),s)},useLayoutEffect:function(o,e){return Uh(4,2,o,e)},useMemo:function(o,e){var s=Hh();return e=e===void 0?null:e,o=o(),s.memoizedState=[o,e],o},useReducer:function(o,e,s){var a=Hh();return e=s!==void 0?s(e):e,a.memoizedState=a.baseState=e,o=a.queue={pending:null,dispatch:null,lastRenderedReducer:o,lastRenderedState:e},o=o.dispatch=Oh.bind(null,R$1,o),[a.memoizedState,o]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(o){var e=Qh(o),s=e[0],a=e[1];return Wh(function(){var c=wh.transition;wh.transition=1;try{a(o)}finally{wh.transition=c}},[o]),s},useTransition:function(){var o=Qh(!1),e=o[0];return o=di.bind(null,o[1]),Sh(o),[o,e]},useMutableSource:function(o,e,s){var a=Hh();return a.memoizedState={refs:{getSnapshot:e,setSnapshot:null},source:o,subscribe:s},Nh(a,o,e,s)},useOpaqueIdentifier:function(){if(lh){var o=!1,e=uf(function(){throw o||(o=!0,s("r:"+(tf++).toString(36))),Error(y(355))}),s=Qh(e)[1];return(R$1.mode&2)===0&&(R$1.flags|=516,Rh(5,function(){s("r:"+(tf++).toString(36))},void 0,null)),e}return e="r:"+(tf++).toString(36),Qh(e),e},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(o){var e=Kh(Jh),s=e[0],a=e[1];return Xh(function(){var c=wh.transition;wh.transition=1;try{a(o)}finally{wh.transition=c}},[o]),s},useTransition:function(){var o=Kh(Jh)[0];return[Th().current,o]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(o){var e=Lh(Jh),s=e[0],a=e[1];return Xh(function(){var c=wh.transition;wh.transition=1;try{a(o)}finally{wh.transition=c}},[o]),s},useTransition:function(){var o=Lh(Jh)[0];return[Th().current,o]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(o,e,s,a){e.child=o===null?Zg(e,null,s,a):Yg(e,o.child,s,a)}function gi(o,e,s,a,c){s=s.render;var d=e.ref;return tg(e,c),a=Ch(o,e,s,a,d,c),o!==null&&!ug?(e.updateQueue=o.updateQueue,e.flags&=-517,o.lanes&=~c,hi(o,e,c)):(e.flags|=1,fi(o,e,a,c),e.child)}function ii(o,e,s,a,c,d){if(o===null){var _=s.type;return typeof _=="function"&&!ji(_)&&_.defaultProps===void 0&&s.compare===null&&s.defaultProps===void 0?(e.tag=15,e.type=_,ki(o,e,_,a,c,d)):(o=Vg(s.type,null,a,e,e.mode,d),o.ref=e.ref,o.return=e,e.child=o)}return _=o.child,(c&d)===0&&(c=_.memoizedProps,s=s.compare,s=s!==null?s:Je,s(c,a)&&o.ref===e.ref)?hi(o,e,d):(e.flags|=1,o=Tg(_,a),o.ref=e.ref,o.return=e,e.child=o)}function ki(o,e,s,a,c,d){if(o!==null&&Je(o.memoizedProps,a)&&o.ref===e.ref)if(ug=!1,(d&c)!==0)(o.flags&16384)!==0&&(ug=!0);else return e.lanes=o.lanes,hi(o,e,d);return li(o,e,s,a,d)}function mi(o,e,s){var a=e.pendingProps,c=a.children,d=o!==null?o.memoizedState:null;if(a.mode==="hidden"||a.mode==="unstable-defer-without-hiding")if((e.mode&4)===0)e.memoizedState={baseLanes:0},ni(e,s);else if((s&1073741824)!==0)e.memoizedState={baseLanes:0},ni(e,d!==null?d.baseLanes:s);else return o=d!==null?d.baseLanes|s:s,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:o},ni(e,o),null;else d!==null?(a=d.baseLanes|s,e.memoizedState=null):a=s,ni(e,a);return fi(o,e,c,s),e.child}function oi(o,e){var s=e.ref;(o===null&&s!==null||o!==null&&o.ref!==s)&&(e.flags|=128)}function li(o,e,s,a,c){var d=Ff(s)?Df:M.current;return d=Ef(e,d),tg(e,c),s=Ch(o,e,s,a,d,c),o!==null&&!ug?(e.updateQueue=o.updateQueue,e.flags&=-517,o.lanes&=~c,hi(o,e,c)):(e.flags|=1,fi(o,e,s,c),e.child)}function pi(o,e,s,a,c){if(Ff(s)){var d=!0;Jf(e)}else d=!1;if(tg(e,c),e.stateNode===null)o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),Mg(e,s,a),Og(e,s,a,c),a=!0;else if(o===null){var _=e.stateNode,b=e.memoizedProps;_.props=b;var k=_.context,$=s.contextType;typeof $=="object"&&$!==null?$=vg($):($=Ff(s)?Df:M.current,$=Ef(e,$));var j=s.getDerivedStateFromProps,_e=typeof j=="function"||typeof _.getSnapshotBeforeUpdate=="function";_e||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(b!==a||k!==$)&&Ng(e,_,a,$),wg=!1;var et=e.memoizedState;_.state=et,Cg(e,a,_,c),k=e.memoizedState,b!==a||et!==k||N.current||wg?(typeof j=="function"&&(Gg(e,s,j,a),k=e.memoizedState),(b=wg||Lg(e,s,b,a,et,k,$))?(_e||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount()),typeof _.componentDidMount=="function"&&(e.flags|=4)):(typeof _.componentDidMount=="function"&&(e.flags|=4),e.memoizedProps=a,e.memoizedState=k),_.props=a,_.state=k,_.context=$,a=b):(typeof _.componentDidMount=="function"&&(e.flags|=4),a=!1)}else{_=e.stateNode,yg(o,e),b=e.memoizedProps,$=e.type===e.elementType?b:lg(e.type,b),_.props=$,_e=e.pendingProps,et=_.context,k=s.contextType,typeof k=="object"&&k!==null?k=vg(k):(k=Ff(s)?Df:M.current,k=Ef(e,k));var tt=s.getDerivedStateFromProps;(j=typeof tt=="function"||typeof _.getSnapshotBeforeUpdate=="function")||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(b!==_e||et!==k)&&Ng(e,_,a,k),wg=!1,et=e.memoizedState,_.state=et,Cg(e,a,_,c);var nt=e.memoizedState;b!==_e||et!==nt||N.current||wg?(typeof tt=="function"&&(Gg(e,s,tt,a),nt=e.memoizedState),($=wg||Lg(e,s,$,a,et,nt,k))?(j||typeof _.UNSAFE_componentWillUpdate!="function"&&typeof _.componentWillUpdate!="function"||(typeof _.componentWillUpdate=="function"&&_.componentWillUpdate(a,nt,k),typeof _.UNSAFE_componentWillUpdate=="function"&&_.UNSAFE_componentWillUpdate(a,nt,k)),typeof _.componentDidUpdate=="function"&&(e.flags|=4),typeof _.getSnapshotBeforeUpdate=="function"&&(e.flags|=256)):(typeof _.componentDidUpdate!="function"||b===o.memoizedProps&&et===o.memoizedState||(e.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||b===o.memoizedProps&&et===o.memoizedState||(e.flags|=256),e.memoizedProps=a,e.memoizedState=nt),_.props=a,_.state=nt,_.context=k,a=$):(typeof _.componentDidUpdate!="function"||b===o.memoizedProps&&et===o.memoizedState||(e.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||b===o.memoizedProps&&et===o.memoizedState||(e.flags|=256),a=!1)}return qi(o,e,s,a,d,c)}function qi(o,e,s,a,c,d){oi(o,e);var _=(e.flags&64)!==0;if(!a&&!_)return c&&Kf(e,s,!1),hi(o,e,d);a=e.stateNode,ei.current=e;var b=_&&typeof s.getDerivedStateFromError!="function"?null:a.render();return e.flags|=1,o!==null&&_?(e.child=Yg(e,o.child,null,d),e.child=Yg(e,null,b,d)):fi(o,e,b,d),e.memoizedState=a.state,c&&Kf(e,s,!0),e.child}function ri(o){var e=o.stateNode;e.pendingContext?Hf(o,e.pendingContext,e.pendingContext!==e.context):e.context&&Hf(o,e.context,!1),eh(o,e.containerInfo)}var si={dehydrated:null,retryLane:0};function ti(o,e,s){var a=e.pendingProps,c=P.current,d=!1,_;return(_=(e.flags&64)!==0)||(_=o!==null&&o.memoizedState===null?!1:(c&2)!==0),_?(d=!0,e.flags&=-65):o!==null&&o.memoizedState===null||a.fallback===void 0||a.unstable_avoidThisFallback===!0||(c|=1),I$1(P,c&1),o===null?(a.fallback!==void 0&&ph(e),o=a.children,c=a.fallback,d?(o=ui(e,o,c,s),e.child.memoizedState={baseLanes:s},e.memoizedState=si,o):typeof a.unstable_expectedLoadTime=="number"?(o=ui(e,o,c,s),e.child.memoizedState={baseLanes:s},e.memoizedState=si,e.lanes=33554432,o):(s=vi({mode:"visible",children:o},e.mode,s,null),s.return=e,e.child=s)):o.memoizedState!==null?d?(a=wi(o,e,a.children,a.fallback,s),d=e.child,c=o.child.memoizedState,d.memoizedState=c===null?{baseLanes:s}:{baseLanes:c.baseLanes|s},d.childLanes=o.childLanes&~s,e.memoizedState=si,a):(s=xi(o,e,a.children,s),e.memoizedState=null,s):d?(a=wi(o,e,a.children,a.fallback,s),d=e.child,c=o.child.memoizedState,d.memoizedState=c===null?{baseLanes:s}:{baseLanes:c.baseLanes|s},d.childLanes=o.childLanes&~s,e.memoizedState=si,a):(s=xi(o,e,a.children,s),e.memoizedState=null,s)}function ui(o,e,s,a){var c=o.mode,d=o.child;return e={mode:"hidden",children:e},(c&2)===0&&d!==null?(d.childLanes=0,d.pendingProps=e):d=vi(e,c,0,null),s=Xg(s,c,a,null),d.return=o,s.return=o,d.sibling=s,o.child=d,s}function xi(o,e,s,a){var c=o.child;return o=c.sibling,s=Tg(c,{mode:"visible",children:s}),(e.mode&2)===0&&(s.lanes=a),s.return=e,s.sibling=null,o!==null&&(o.nextEffect=null,o.flags=8,e.firstEffect=e.lastEffect=o),e.child=s}function wi(o,e,s,a,c){var d=e.mode,_=o.child;o=_.sibling;var b={mode:"hidden",children:s};return(d&2)===0&&e.child!==_?(s=e.child,s.childLanes=0,s.pendingProps=b,_=s.lastEffect,_!==null?(e.firstEffect=s.firstEffect,e.lastEffect=_,_.nextEffect=null):e.firstEffect=e.lastEffect=null):s=Tg(_,b),o!==null?a=Tg(o,a):(a=Xg(a,d,c,null),a.flags|=2),a.return=e,s.return=e,s.sibling=a,e.child=s,a}function yi(o,e){o.lanes|=e;var s=o.alternate;s!==null&&(s.lanes|=e),sg(o.return,e)}function zi(o,e,s,a,c,d){var _=o.memoizedState;_===null?o.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:a,tail:s,tailMode:c,lastEffect:d}:(_.isBackwards=e,_.rendering=null,_.renderingStartTime=0,_.last=a,_.tail=s,_.tailMode=c,_.lastEffect=d)}function Ai(o,e,s){var a=e.pendingProps,c=a.revealOrder,d=a.tail;if(fi(o,e,a.children,s),a=P.current,(a&2)!==0)a=a&1|2,e.flags|=64;else{if(o!==null&&(o.flags&64)!==0)e:for(o=e.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&yi(o,s);else if(o.tag===19)yi(o,s);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===e)break e;for(;o.sibling===null;){if(o.return===null||o.return===e)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}a&=1}if(I$1(P,a),(e.mode&2)===0)e.memoizedState=null;else switch(c){case"forwards":for(s=e.child,c=null;s!==null;)o=s.alternate,o!==null&&ih(o)===null&&(c=s),s=s.sibling;s=c,s===null?(c=e.child,e.child=null):(c=s.sibling,s.sibling=null),zi(e,!1,c,s,d,e.lastEffect);break;case"backwards":for(s=null,c=e.child,e.child=null;c!==null;){if(o=c.alternate,o!==null&&ih(o)===null){e.child=c;break}o=c.sibling,c.sibling=s,s=c,c=o}zi(e,!0,s,null,d,e.lastEffect);break;case"together":zi(e,!1,null,null,void 0,e.lastEffect);break;default:e.memoizedState=null}return e.child}function hi(o,e,s){if(o!==null&&(e.dependencies=o.dependencies),Dg|=e.lanes,(s&e.childLanes)!==0){if(o!==null&&e.child!==o.child)throw Error(y(153));if(e.child!==null){for(o=e.child,s=Tg(o,o.pendingProps),e.child=s,s.return=e;o.sibling!==null;)o=o.sibling,s=s.sibling=Tg(o,o.pendingProps),s.return=e;s.sibling=null}return e.child}return null}var Bi,Ci,Di,Ei;Bi=function(o,e){for(var s=e.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&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.sibling.return=s.return,s=s.sibling}};Ci=function(){};Di=function(o,e,s,a){var c=o.memoizedProps;if(c!==a){o=e.stateNode,dh(ah.current);var d=null;switch(s){case"input":c=Ya(o,c),a=Ya(o,a),d=[];break;case"option":c=eb(o,c),a=eb(o,a),d=[];break;case"select":c=m$1({},c,{value:void 0}),a=m$1({},a,{value:void 0}),d=[];break;case"textarea":c=gb(o,c),a=gb(o,a),d=[];break;default:typeof c.onClick!="function"&&typeof a.onClick=="function"&&(o.onclick=jf)}vb(s,a);var _;s=null;for($ in c)if(!a.hasOwnProperty($)&&c.hasOwnProperty($)&&c[$]!=null)if($==="style"){var b=c[$];for(_ in b)b.hasOwnProperty(_)&&(s||(s={}),s[_]="")}else $!=="dangerouslySetInnerHTML"&&$!=="children"&&$!=="suppressContentEditableWarning"&&$!=="suppressHydrationWarning"&&$!=="autoFocus"&&(ca.hasOwnProperty($)?d||(d=[]):(d=d||[]).push($,null));for($ in a){var k=a[$];if(b=c!=null?c[$]:void 0,a.hasOwnProperty($)&&k!==b&&(k!=null||b!=null))if($==="style")if(b){for(_ in b)!b.hasOwnProperty(_)||k&&k.hasOwnProperty(_)||(s||(s={}),s[_]="");for(_ in k)k.hasOwnProperty(_)&&b[_]!==k[_]&&(s||(s={}),s[_]=k[_])}else s||(d||(d=[]),d.push($,s)),s=k;else $==="dangerouslySetInnerHTML"?(k=k?k.__html:void 0,b=b?b.__html:void 0,k!=null&&b!==k&&(d=d||[]).push($,k)):$==="children"?typeof k!="string"&&typeof k!="number"||(d=d||[]).push($,""+k):$!=="suppressContentEditableWarning"&&$!=="suppressHydrationWarning"&&(ca.hasOwnProperty($)?(k!=null&&$==="onScroll"&&G("scroll",o),d||b===k||(d=[])):typeof k=="object"&&k!==null&&k.$$typeof===Ga?k.toString():(d=d||[]).push($,k))}s&&(d=d||[]).push("style",s);var $=d;(e.updateQueue=$)&&(e.flags|=4)}};Ei=function(o,e,s,a){s!==a&&(e.flags|=4)};function Fi(o,e){if(!lh)switch(o.tailMode){case"hidden":e=o.tail;for(var s=null;e!==null;)e.alternate!==null&&(s=e),e=e.sibling;s===null?o.tail=null:s.sibling=null;break;case"collapsed":s=o.tail;for(var a=null;s!==null;)s.alternate!==null&&(a=s),s=s.sibling;a===null?e||o.tail===null?o.tail=null:o.tail.sibling=null:a.sibling=null}}function Gi(o,e,s){var a=e.pendingProps;switch(e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(e.type)&&Gf(),null;case 3:return fh(),H(N),H(M),uh(),a=e.stateNode,a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(o===null||o.child===null)&&(rh(e)?e.flags|=4:a.hydrate||(e.flags|=256)),Ci(e),null;case 5:hh(e);var c=dh(ch.current);if(s=e.type,o!==null&&e.stateNode!=null)Di(o,e,s,a,c),o.ref!==e.ref&&(e.flags|=128);else{if(!a){if(e.stateNode===null)throw Error(y(166));return null}if(o=dh(ah.current),rh(e)){a=e.stateNode,s=e.type;var d=e.memoizedProps;switch(a[wf]=e,a[xf]=d,s){case"dialog":G("cancel",a),G("close",a);break;case"iframe":case"object":case"embed":G("load",a);break;case"video":case"audio":for(o=0;o<Xe.length;o++)G(Xe[o],a);break;case"source":G("error",a);break;case"img":case"image":case"link":G("error",a),G("load",a);break;case"details":G("toggle",a);break;case"input":Za(a,d),G("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!d.multiple},G("invalid",a);break;case"textarea":hb(a,d),G("invalid",a)}vb(s,d),o=null;for(var _ in d)d.hasOwnProperty(_)&&(c=d[_],_==="children"?typeof c=="string"?a.textContent!==c&&(o=["children",c]):typeof c=="number"&&a.textContent!==""+c&&(o=["children",""+c]):ca.hasOwnProperty(_)&&c!=null&&_==="onScroll"&&G("scroll",a));switch(s){case"input":Va(a),cb(a,d,!0);break;case"textarea":Va(a),jb(a);break;case"select":case"option":break;default:typeof d.onClick=="function"&&(a.onclick=jf)}a=o,e.updateQueue=a,a!==null&&(e.flags|=4)}else{switch(_=c.nodeType===9?c:c.ownerDocument,o===kb.html&&(o=lb(s)),o===kb.html?s==="script"?(o=_.createElement("div"),o.innerHTML="<script><\/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;c<Xe.length;c++)G(Xe[c],o);c=a;break;case"source":G("error",o),c=a;break;case"img":case"image":case"link":G("error",o),G("load",o),c=a;break;case"details":G("toggle",o),c=a;break;case"input":Za(o,a),c=Ya(o,a),G("invalid",o);break;case"option":c=eb(o,a);break;case"select":o._wrapperState={wasMultiple:!!a.multiple},c=m$1({},a,{value:void 0}),G("invalid",o);break;case"textarea":hb(o,a),c=gb(o,a),G("invalid",o);break;default:c=a}vb(s,c);var b=c;for(d in b)if(b.hasOwnProperty(d)){var k=b[d];d==="style"?tb(o,k):d==="dangerouslySetInnerHTML"?(k=k?k.__html:void 0,k!=null&&ob(o,k)):d==="children"?typeof k=="string"?(s!=="textarea"||k!=="")&&pb(o,k):typeof k=="number"&&pb(o,""+k):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(ca.hasOwnProperty(d)?k!=null&&d==="onScroll"&&G("scroll",o):k!=null&&qa(o,d,k,_))}switch(s){case"input":Va(o),cb(o,a,!1);break;case"textarea":Va(o),jb(o);break;case"option":a.value!=null&&o.setAttribute("value",""+Sa(a.value));break;case"select":o.multiple=!!a.multiple,d=a.value,d!=null?fb(o,!!a.multiple,d,!1):a.defaultValue!=null&&fb(o,!!a.multiple,a.defaultValue,!0);break;default:typeof c.onClick=="function"&&(o.onclick=jf)}mf(s,a)&&(e.flags|=4)}e.ref!==null&&(e.flags|=128)}return null;case 6:if(o&&e.stateNode!=null)Ei(o,e,o.memoizedProps,a);else{if(typeof a!="string"&&e.stateNode===null)throw Error(y(166));s=dh(ch.current),dh(ah.current),rh(e)?(a=e.stateNode,s=e.memoizedProps,a[wf]=e,a.nodeValue!==s&&(e.flags|=4)):(a=(s.nodeType===9?s:s.ownerDocument).createTextNode(a),a[wf]=e,e.stateNode=a)}return null;case 13:return H(P),a=e.memoizedState,(e.flags&64)!==0?(e.lanes=s,e):(a=a!==null,s=!1,o===null?e.memoizedProps.fallback!==void 0&&rh(e):s=o.memoizedState!==null,a&&!s&&(e.mode&2)!==0&&(o===null&&e.memoizedProps.unstable_avoidThisFallback!==!0||(P.current&1)!==0?V===0&&(V=3):((V===0||V===3)&&(V=4),U===null||(Dg&134217727)===0&&(Hi&134217727)===0||Ii(U,W))),(a||s)&&(e.flags|=4),null);case 4:return fh(),Ci(e),o===null&&cf(e.stateNode.containerInfo),null;case 10:return rg(e),null;case 17:return Ff(e.type)&&Gf(),null;case 19:if(H(P),a=e.memoizedState,a===null)return null;if(d=(e.flags&64)!==0,_=a.rendering,_===null)if(d)Fi(a,!1);else{if(V!==0||o!==null&&(o.flags&64)!==0)for(o=e.child;o!==null;){if(_=ih(o),_!==null){for(e.flags|=64,Fi(a,!1),d=_.updateQueue,d!==null&&(e.updateQueue=d,e.flags|=4),a.lastEffect===null&&(e.firstEffect=null),e.lastEffect=a.lastEffect,a=s,s=e.child;s!==null;)d=s,o=a,d.flags&=2,d.nextEffect=null,d.firstEffect=null,d.lastEffect=null,_=d.alternate,_===null?(d.childLanes=0,d.lanes=o,d.child=null,d.memoizedProps=null,d.memoizedState=null,d.updateQueue=null,d.dependencies=null,d.stateNode=null):(d.childLanes=_.childLanes,d.lanes=_.lanes,d.child=_.child,d.memoizedProps=_.memoizedProps,d.memoizedState=_.memoizedState,d.updateQueue=_.updateQueue,d.type=_.type,o=_.dependencies,d.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext}),s=s.sibling;return I$1(P,P.current&1|2),e.child}o=o.sibling}a.tail!==null&&O()>Ji&&(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;c<d.length;c+=2){var _=d[c],b=d[c+1];_==="style"?tb(s,b):_==="dangerouslySetInnerHTML"?ob(s,b):_==="children"?pb(s,b):qa(s,_,b,e)}switch(o){case"input":ab(s,a);break;case"textarea":ib(s,a);break;case"select":o=s._wrapperState.wasMultiple,s._wrapperState.wasMultiple=!!a.multiple,d=a.value,d!=null?fb(s,!!a.multiple,d,!1):o!==!!a.multiple&&(a.defaultValue!=null?fb(s,!!a.multiple,a.defaultValue,!0):fb(s,!!a.multiple,a.multiple?[]:"",!1))}}}return;case 6:if(e.stateNode===null)throw Error(y(162));e.stateNode.nodeValue=e.memoizedProps;return;case 3:s=e.stateNode,s.hydrate&&(s.hydrate=!1,Cc(s.containerInfo));return;case 12:return;case 13:e.memoizedState!==null&&(jj=O(),aj(e.child,!0)),kj(e);return;case 19:kj(e);return;case 17:return;case 23:case 24:aj(e,e.memoizedState!==null);return}throw Error(y(163))}function kj(o){var e=o.updateQueue;if(e!==null){o.updateQueue=null;var s=o.stateNode;s===null&&(s=o.stateNode=new Ui),e.forEach(function(a){var c=lj.bind(null,o,a);s.has(a)||(s.add(a),a.then(c,c))})}}function mj(o,e){return o!==null&&(o=o.memoizedState,o===null||o.dehydrated!==null)?(e=e.memoizedState,e!==null&&e.dehydrated===null):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=1/0;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return(X&48)!==0?O():Fj!==-1?Fj:Fj=O()}function Ig(o){if(o=o.mode,(o&2)===0)return 1;if((o&4)===0)return eg()===99?1:2;if(Gj===0&&(Gj=tj),kg.transition!==0){Hj!==0&&(Hj=vj!==null?vj.pendingLanes:0),o=Gj;var e=4186112&~Hj;return e&=-e,e===0&&(o=4186112&~o,e=o&-o,e===0&&(e=8192)),e}return o=eg(),(X&4)!==0&&o===98?o=Xc(12,Gj):(o=Sc(o),o=Xc(o,Gj)),o}function Jg(o,e,s){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));if(o=Kj(o,e),o===null)return null;$c(o,e,s),o===U&&(Hi|=e,V===4&&Ii(o,W));var a=eg();e===1?(X&8)!==0&&(X&48)===0?Lj(o):(Mj(o,s),X===0&&(wj(),ig())):((X&4)===0||a!==98&&a!==99||(Cj===null?Cj=new Set([o]):Cj.add(o)),Mj(o,s)),vj=o}function Kj(o,e){o.lanes|=e;var s=o.alternate;for(s!==null&&(s.lanes|=e),s=o,o=o.return;o!==null;)o.childLanes|=e,s=o.alternate,s!==null&&(s.childLanes|=e),s=o,o=o.return;return s.tag===3?s.stateNode:null}function Mj(o,e){for(var s=o.callbackNode,a=o.suspendedLanes,c=o.pingedLanes,d=o.expirationTimes,_=o.pendingLanes;0<_;){var b=31-Vc(_),k=1<<b,$=d[b];if($===-1){if((k&a)===0||(k&c)!==0){$=e,Rc(k);var j=F$1;d[b]=10<=j?$+250:6<=j?$+5e3:-1}}else $<=e&&(o.expiredLanes|=k);_&=~k}if(a=Uc(o,o===U?W:0),e=F$1,a===0)s!==null&&(s!==Zf&&Pf(s),o.callbackNode=null,o.callbackPriority=0);else{if(s!==null){if(o.callbackPriority===e)return;s!==Zf&&Pf(s)}e===15?(s=Lj.bind(null,o),ag===null?(ag=[s],bg=Of(Uf,jg)):ag.push(s),s=Zf):e===14?s=hg(99,Lj.bind(null,o)):(s=Tc(e),s=hg(s,Nj.bind(null,o))),o.callbackPriority=e,o.callbackNode=s}}function Nj(o){if(Fj=-1,Hj=Gj=0,(X&48)!==0)throw Error(y(327));var e=o.callbackNode;if(Oj()&&o.callbackNode!==e)return null;var s=Uc(o,o===U?W:0);if(s===0)return null;var a=s,c=X;X|=16;var d=Pj();(U!==o||W!==a)&&(wj(),Qj(o,a));do try{Rj();break}catch(b){Sj(o,b)}while(1);if(qg(),oj.current=d,X=c,Y!==null?a=0:(U=null,W=0,a=V),(tj&Hi)!==0)Qj(o,0);else if(a!==0){if(a===2&&(X|=64,o.hydrate&&(o.hydrate=!1,qf(o.containerInfo)),s=Wc(o),s!==0&&(a=Tj(o,s))),a===1)throw e=sj,Qj(o,0),Ii(o,s),Mj(o,O()),e;switch(o.finishedWork=o.current.alternate,o.finishedLanes=s,a){case 0:case 1:throw Error(y(345));case 2:Uj(o);break;case 3:if(Ii(o,s),(s&62914560)===s&&(a=jj+500-O(),10<a)){if(Uc(o,0)!==0)break;if(c=o.suspendedLanes,(c&s)!==s){Hg(),o.pingedLanes|=o.suspendedLanes&c;break}o.timeoutHandle=of(Uj.bind(null,o),a);break}Uj(o);break;case 4:if(Ii(o,s),(s&4186112)===s)break;for(a=o.eventTimes,c=-1;0<s;){var _=31-Vc(s);d=1<<_,_=a[_],_>c&&(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<s){o.timeoutHandle=of(Uj.bind(null,o),s);break}Uj(o);break;case 5:Uj(o);break;default:throw Error(y(329))}}return Mj(o,O()),o.callbackNode===e?Nj.bind(null,o):null}function Ii(o,e){for(e&=~uj,e&=~Hi,o.suspendedLanes|=e,o.pingedLanes&=~e,o=o.expirationTimes;0<e;){var s=31-Vc(e),a=1<<s;o[s]=-1,e&=~a}}function Lj(o){if((X&48)!==0)throw Error(y(327));if(Oj(),o===U&&(o.expiredLanes&W)!==0){var e=W,s=Tj(o,e);(tj&Hi)!==0&&(e=Uc(o,e),s=Tj(o,e))}else e=Uc(o,0),s=Tj(o,e);if(o.tag!==0&&s===2&&(X|=64,o.hydrate&&(o.hydrate=!1,qf(o.containerInfo)),e=Wc(o),e!==0&&(s=Tj(o,e))),s===1)throw s=sj,Qj(o,0),Ii(o,e),Mj(o,O()),s;return o.finishedWork=o.current.alternate,o.finishedLanes=e,Uj(o),Mj(o,O()),null}function Vj(){if(Cj!==null){var o=Cj;Cj=null,o.forEach(function(e){e.expiredLanes|=24&e.pendingLanes,Mj(e,O())})}ig()}function Wj(o,e){var s=X;X|=1;try{return o(e)}finally{X=s,X===0&&(wj(),ig())}}function Xj(o,e){var s=X;X&=-2,X|=8;try{return o(e)}finally{X=s,X===0&&(wj(),ig())}}function ni(o,e){I$1(rj,qj),qj|=e,tj|=e}function Ki(){qj=rj.current,H(rj)}function Qj(o,e){o.finishedWork=null,o.finishedLanes=0;var s=o.timeoutHandle;if(s!==-1&&(o.timeoutHandle=-1,pf(s)),Y!==null)for(s=Y.return;s!==null;){var a=s;switch(a.tag){case 1:a=a.type.childContextTypes,a!=null&&Gf();break;case 3:fh(),H(N),H(M),uh();break;case 5:hh(a);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(a);break;case 23:case 24:Ki()}s=s.return}U=o,Y=Tg(o.current,null),W=qj=tj=e,V=0,sj=null,uj=Hi=Dg=0}function Sj(o,e){do{var s=Y;try{if(qg(),vh.current=Gh,yh){for(var a=R$1.memoizedState;a!==null;){var c=a.queue;c!==null&&(c.pending=null),a=a.next}yh=!1}if(xh=0,T$1=S=R$1=null,zh=!1,pj.current=null,s===null||s.return===null){V=1,sj=e,Y=null;break}e:{var d=o,_=s.return,b=s,k=e;if(e=W,b.flags|=2048,b.firstEffect=b.lastEffect=null,k!==null&&typeof k=="object"&&typeof k.then=="function"){var $=k;if((b.mode&2)===0){var j=b.alternate;j?(b.updateQueue=j.updateQueue,b.memoizedState=j.memoizedState,b.lanes=j.lanes):(b.updateQueue=null,b.memoizedState=null)}var _e=(P.current&1)!==0,et=_;do{var tt;if(tt=et.tag===13){var nt=et.memoizedState;if(nt!==null)tt=nt.dehydrated!==null;else{var st=et.memoizedProps;tt=st.fallback===void 0?!1:st.unstable_avoidThisFallback!==!0?!0:!_e}}if(tt){var rt=et.updateQueue;if(rt===null){var it=new Set;it.add($),et.updateQueue=it}else rt.add($);if((et.mode&2)===0){if(et.flags|=64,b.flags|=16384,b.flags&=-2981,b.tag===1)if(b.alternate===null)b.tag=17;else{var at=zg(-1,1);at.tag=2,Ag(b,at)}b.lanes|=1;break e}k=void 0,b=e;var ot=d.pingCache;if(ot===null?(ot=d.pingCache=new Oi,k=new Set,ot.set($,k)):(k=ot.get($),k===void 0&&(k=new Set,ot.set($,k))),!k.has(b)){k.add(b);var ht=Yj.bind(null,d,$,b);$.then(ht,ht)}et.flags|=4096,et.lanes=e;break e}et=et.return}while(et!==null);k=Error((Ra(b.type)||"A React component")+` suspended while rendering, but no fallback UI was specified.
|
|
|
|
Add a <Suspense fallback=...> 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 lt=et.type,ut=et.stateNode;if((et.flags&64)===0&&(typeof lt.getDerivedStateFromError=="function"||ut!==null&&typeof ut.componentDidCatch=="function"&&(Ti===null||!Ti.has(ut)))){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<e.flags&&(o.lastEffect!==null?o.lastEffect.nextEffect=e:o.firstEffect=e,o.lastEffect=e))}else{if(s=Li(e),s!==null){s.flags&=2047,Y=s;return}o!==null&&(o.firstEffect=o.lastEffect=null,o.flags|=2048)}if(e=e.sibling,e!==null){Y=e;return}Y=e=o}while(e!==null);V===0&&(V=5)}function Uj(o){var e=eg();return gg(99,dk.bind(null,o,e)),null}function dk(o,e){do Oj();while(yj!==null);if((X&48)!==0)throw Error(y(327));var s=o.finishedWork;if(s===null)return null;if(o.finishedWork=null,o.finishedLanes=0,s===o.current)throw Error(y(177));o.callbackNode=null;var a=s.lanes|s.childLanes,c=a,d=o.pendingLanes&~c;o.pendingLanes=c,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=c,o.mutableReadLanes&=c,o.entangledLanes&=c,c=o.entanglements;for(var _=o.eventTimes,b=o.expirationTimes;0<d;){var k=31-Vc(d),$=1<<k;c[k]=0,_[k]=-1,b[k]=-1,d&=~$}if(Cj!==null&&(a&24)===0&&Cj.has(o)&&Cj.delete(o),o===U&&(Y=U=null,W=0),1<s.flags?s.lastEffect!==null?(s.lastEffect.nextEffect=s,a=s.firstEffect):a=s:a=s.firstEffect,a!==null){if(c=X,X|=32,pj.current=null,kf=fd,_=Ne(),Oe(_)){if("selectionStart"in _)b={start:_.selectionStart,end:_.selectionEnd};else e:if(b=(b=_.ownerDocument)&&b.defaultView||window,($=b.getSelection&&b.getSelection())&&$.rangeCount!==0){b=$.anchorNode,d=$.anchorOffset,k=$.focusNode,$=$.focusOffset;try{b.nodeType,k.nodeType}catch{b=null;break e}var j=0,_e=-1,et=-1,tt=0,nt=0,st=_,rt=null;t:for(;;){for(var it;st!==b||d!==0&&st.nodeType!==3||(_e=j+d),st!==k||$!==0&&st.nodeType!==3||(et=j+$),st.nodeType===3&&(j+=st.nodeValue.length),(it=st.firstChild)!==null;)rt=st,st=it;for(;;){if(st===_)break t;if(rt===b&&++tt===d&&(_e=j),rt===k&&++nt===$&&(et=j),(it=st.nextSibling)!==null)break;st=rt,rt=st.parentNode}st=it}b=_e===-1||et===-1?null:{start:_e,end:et}}else b=null;b=b||{start:0,end:0}}else b=null;lf={focusedElem:_,selectionRange:b},fd=!1,Ij=null,Jj=!1,Z=a;do try{ek()}catch(dt){if(Z===null)throw Error(y(330));Wi(Z,dt),Z=Z.nextEffect}while(Z!==null);Ij=null,Z=a;do try{for(_=o;Z!==null;){var at=Z.flags;if(at&16&&pb(Z.stateNode,""),at&128){var ot=Z.alternate;if(ot!==null){var ht=ot.ref;ht!==null&&(typeof ht=="function"?ht(null):ht.current=null)}}switch(at&1038){case 2:fj(Z),Z.flags&=-3;break;case 6:fj(Z),Z.flags&=-3,ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025,ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:b=Z,cj(_,b);var ct=b.alternate;dj(b),ct!==null&&dj(ct)}Z=Z.nextEffect}}catch(dt){if(Z===null)throw Error(y(330));Wi(Z,dt),Z=Z.nextEffect}while(Z!==null);if(ht=lf,ot=Ne(),at=ht.focusedElem,_=ht.selectionRange,ot!==at&&at&&at.ownerDocument&&Me(at.ownerDocument.documentElement,at)){for(_!==null&&Oe(at)&&(ot=_.start,ht=_.end,ht===void 0&&(ht=ot),"selectionStart"in at?(at.selectionStart=ot,at.selectionEnd=Math.min(ht,at.value.length)):(ht=(ot=at.ownerDocument||document)&&ot.defaultView||window,ht.getSelection&&(ht=ht.getSelection(),b=at.textContent.length,ct=Math.min(_.start,b),_=_.end===void 0?ct:Math.min(_.end,b),!ht.extend&&ct>_&&(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;at<ot.length;at++)ht=ot[at],ht.element.scrollLeft=ht.left,ht.element.scrollTop=ht.top}fd=!!kf,lf=kf=null,o.current=s,Z=a;do try{for(at=o;Z!==null;){var lt=Z.flags;if(lt&36&&Yi(at,Z.alternate,Z),lt&128){ot=void 0;var ut=Z.ref;if(ut!==null){var pt=Z.stateNode;switch(Z.tag){case 5:ot=pt;break;default:ot=pt}typeof ut=="function"?ut(ot):ut.current=ot}}Z=Z.nextEffect}}catch(dt){if(Z===null)throw Error(y(330));Wi(Z,dt),Z=Z.nextEffect}while(Z!==null);Z=null,$f(),X=c}else o.current=s;if(xj)xj=!1,yj=o,zj=e;else for(Z=a;Z!==null;)e=Z.nextEffect,Z.nextEffect=null,Z.flags&8&&(lt=Z,lt.sibling=null,lt.stateNode=null),Z=e;if(a=o.pendingLanes,a===0&&(Ti=null),a===1?o===Ej?Dj++:(Dj=0,Ej=o):Dj=0,s=s.stateNode,Mf&&typeof Mf.onCommitFiberRoot=="function")try{Mf.onCommitFiberRoot(Lf,s,void 0,(s.current.flags&64)===64)}catch{}if(Mj(o,O()),Qi)throw Qi=!1,o=Ri,Ri=null,o;return(X&8)!==0||ig(),null}function ek(){for(;Z!==null;){var o=Z.alternate;Jj||Ij===null||((Z.flags&8)!==0?dc(Z,Ij)&&(Jj=!0):Z.tag===13&&mj(o,Z)&&dc(Z,Ij)&&(Jj=!0));var e=Z.flags;(e&256)!==0&&Xi(o,Z),(e&512)===0||xj||(xj=!0,hg(97,function(){return Oj(),null})),Z=Z.nextEffect}}function Oj(){if(zj!==90){var o=97<zj?97:zj;return zj=90,gg(o,fk)}return!1}function $i(o,e){Aj.push(e,o),xj||(xj=!0,hg(97,function(){return Oj(),null}))}function Zi(o,e){Bj.push(e,o),xj||(xj=!0,hg(97,function(){return Oj(),null}))}function fk(){if(yj===null)return!1;var o=yj;if(yj=null,(X&48)!==0)throw Error(y(331));var e=X;X|=32;var s=Bj;Bj=[];for(var a=0;a<s.length;a+=2){var c=s[a],d=s[a+1],_=c.destroy;if(c.destroy=void 0,typeof _=="function")try{_()}catch(k){if(d===null)throw Error(y(330));Wi(d,k)}}for(s=Aj,Aj=[],a=0;a<s.length;a+=2){c=s[a],d=s[a+1];try{var b=c.create;c.destroy=b()}catch(k){if(d===null)throw Error(y(330));Wi(d,k)}}for(b=o.current.firstEffect;b!==null;)o=b.nextEffect,b.nextEffect=null,b.flags&8&&(b.sibling=null,b.stateNode=null),b=o;return X=e,ig(),!0}function gk(o,e,s){e=Mi(s,e),e=Pi(o,e,1),Ag(o,e),e=Hg(),o=Kj(o,1),o!==null&&($c(o,1,e),Mj(o,e))}function Wi(o,e){if(o.tag===3)gk(o,o,e);else for(var s=o.return;s!==null;){if(s.tag===3){gk(s,o,e);break}else if(s.tag===1){var a=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(Ti===null||!Ti.has(a))){o=Mi(e,o);var c=Si(s,o,1);if(Ag(s,c),c=Hg(),s=Kj(s,1),s!==null)$c(s,1,c),Mj(s,c);else if(typeof a.componentDidCatch=="function"&&(Ti===null||!Ti.has(a)))try{a.componentDidCatch(e,o)}catch{}break}}s=s.return}}function Yj(o,e,s){var a=o.pingCache;a!==null&&a.delete(e),e=Hg(),o.pingedLanes|=o.suspendedLanes&s,U===o&&(W&s)===s&&(V===4||V===3&&(W&62914560)===W&&500>O()-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<o.length;c+=2)d=o[c],d._workInProgressVersionPrimary=o[c+1],th.push(d);for(s=Zg(e,null,a,s),e.child=s;s;)s.flags=s.flags&-3|1024,s=s.sibling}else fi(o,e,a,s),sh();e=e.child}return e;case 5:return gh(e),o===null&&ph(e),a=e.type,c=e.pendingProps,d=o!==null?o.memoizedProps:null,_=c.children,nf(a,c)?_=null:d!==null&&nf(a,d)&&(e.flags|=16),oi(o,e),fi(o,e,_,s),e.child;case 6:return o===null&&ph(e),null;case 13:return ti(o,e,s);case 4:return eh(e,e.stateNode.containerInfo),a=e.pendingProps,o===null?e.child=Yg(e,null,a,s):fi(o,e,a,s),e.child;case 11:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),gi(o,e,a,c,s);case 7:return fi(o,e,e.pendingProps,s),e.child;case 8:return fi(o,e,e.pendingProps.children,s),e.child;case 12:return fi(o,e,e.pendingProps.children,s),e.child;case 10:e:{a=e.type._context,c=e.pendingProps,_=e.memoizedProps,d=c.value;var b=e.type._context;if(I$1(mg,b._currentValue),b._currentValue=d,_!==null)if(b=_.value,d=He(b,d)?0:(typeof a._calculateChangedBits=="function"?a._calculateChangedBits(b,d):1073741823)|0,d===0){if(_.children===c.children&&!N.current){e=hi(o,e,s);break e}}else for(b=e.child,b!==null&&(b.return=e);b!==null;){var k=b.dependencies;if(k!==null){_=b.child;for(var $=k.firstContext;$!==null;){if($.context===a&&($.observedBits&d)!==0){b.tag===1&&($=zg(-1,s&-s),$.tag=2,Ag(b,$)),b.lanes|=s,$=b.alternate,$!==null&&($.lanes|=s),sg(b.return,s),k.lanes|=s;break}$=$.next}}else _=b.tag===10&&b.type===e.type?null:b.child;if(_!==null)_.return=b;else for(_=b;_!==null;){if(_===e){_=null;break}if(b=_.sibling,b!==null){b.return=_.return,_=b;break}_=_.return}b=_}fi(o,e,c.children,s),e=e.child}return e;case 9:return c=e.type,d=e.pendingProps,a=d.children,tg(e,s),c=vg(c,d.unstable_observedBits),a=a(c),e.flags|=1,fi(o,e,a,s),e.child;case 14:return c=e.type,d=lg(c,e.pendingProps),d=lg(c.type,d),ii(o,e,c,d,a,s);case 15:return ki(o,e,e.type,e.pendingProps,a,s);case 17:return a=e.type,c=e.pendingProps,c=e.elementType===a?c:lg(a,c),o!==null&&(o.alternate=null,e.alternate=null,e.flags|=2),e.tag=1,Ff(a)?(o=!0,Jf(e)):o=!1,tg(e,s),Mg(e,a,c),Og(e,a,c,s),qi(null,e,a,!0,o,s);case 19:return Ai(o,e,s);case 23:return mi(o,e,s);case 24:return mi(o,e,s)}throw Error(y(156,e.tag))};function ik(o,e,s,a){this.tag=o,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function nh(o,e,s,a){return new ik(o,e,s,a)}function ji(o){return o=o.prototype,!(!o||!o.isReactComponent)}function hk(o){if(typeof o=="function")return ji(o)?1:0;if(o!=null){if(o=o.$$typeof,o===Aa)return 11;if(o===Da)return 14}return 2}function Tg(o,e){var s=o.alternate;return s===null?(s=nh(o.tag,e,o.key,o.mode),s.elementType=o.elementType,s.type=o.type,s.stateNode=o.stateNode,s.alternate=o,o.alternate=s):(s.pendingProps=e,s.type=o.type,s.flags=0,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null),s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,e=o.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},s.sibling=o.sibling,s.index=o.index,s.ref=o.ref,s}function Vg(o,e,s,a,c,d){var _=2;if(a=o,typeof o=="function")ji(o)&&(_=1);else if(typeof o=="string")_=5;else e:switch(o){case ua:return Xg(s.children,c,d,e);case Ha:_=8,c|=16;break;case wa:_=8,c|=1;break;case xa:return o=nh(12,s,e,c|8),o.elementType=xa,o.type=xa,o.lanes=d,o;case Ba:return o=nh(13,s,e,c),o.type=Ba,o.elementType=Ba,o.lanes=d,o;case Ca:return o=nh(19,s,e,c),o.elementType=Ca,o.lanes=d,o;case Ia:return vi(s,c,d,e);case Ja:return o=nh(24,s,e,c),o.elementType=Ja,o.lanes=d,o;default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case ya:_=10;break e;case za:_=9;break e;case Aa:_=11;break e;case Da:_=14;break e;case Ea:_=16,a=null;break e;case Fa:_=22;break e}throw Error(y(130,o==null?o:typeof o,""))}return e=nh(_,s,e,c),e.elementType=o,e.type=a,e.lanes=d,e}function Xg(o,e,s,a){return o=nh(7,o,a,e),o.lanes=s,o}function vi(o,e,s,a){return o=nh(23,o,a,e),o.elementType=Ia,o.lanes=s,o}function Ug(o,e,s){return o=nh(6,o,null,e),o.lanes=s,o}function Wg(o,e,s){return e=nh(4,o.children!==null?o.children:[],o.key,e),e.lanes=s,e.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},e}function jk(o,e,s){this.tag=e,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=s,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Zc(0),this.expirationTimes=Zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zc(0),this.mutableSourceEagerHydrationData=null}function kk(o,e,s){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ta,key:a==null?null:""+a,children:o,containerInfo:e,implementation:s}}function lk(o,e,s,a){var c=e.current,d=Hg(),_=Ig(c);e:if(s){s=s._reactInternals;t:{if(Zb(s)!==s||s.tag!==1)throw Error(y(170));var b=s;do{switch(b.tag){case 3:b=b.stateNode.context;break t;case 1:if(Ff(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break t}}b=b.return}while(b!==null);throw Error(y(171))}if(s.tag===1){var k=s.type;if(Ff(k)){s=If(s,k,b);break e}}s=b}else s=Cf;return e.context===null?e.context=s:e.pendingContext=s,e=zg(d,_),e.payload={element:o},a=a===void 0?null:a,a!==null&&(e.callback=a),Ag(c,e),Jg(c,_,d),_}function mk(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return o.child.stateNode;default:return o.child.stateNode}}function nk(o,e){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var s=o.retryLane;o.retryLane=s!==0&&s<e?s:e}}function ok(o,e){nk(o,e),(o=o.alternate)&&nk(o,e)}function pk(){return null}function qk(o,e,s){var a=s!=null&&s.hydrationOptions!=null&&s.hydrationOptions.mutableSources||null;if(s=new jk(o,e,s!=null&&s.hydrate===!0),e=nh(3,null,null,e===2?7:e===1?3:0),s.current=e,e.stateNode=s,xg(e),o[ff]=s.current,cf(o.nodeType===8?o.parentNode:o),a)for(o=0;o<a.length;o++){e=a[o];var c=e._getVersion;c=c(e._source),s.mutableSourceEagerHydrationData==null?s.mutableSourceEagerHydrationData=[e,c]:s.mutableSourceEagerHydrationData.push(e,c)}this._internalRoot=s}qk.prototype.render=function(o){lk(o,this._internalRoot,null,null)};qk.prototype.unmount=function(){var o=this._internalRoot,e=o.containerInfo;lk(null,o,null,function(){e[ff]=null})};function rk(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11&&(o.nodeType!==8||o.nodeValue!==" react-mount-point-unstable "))}function sk(o,e){if(e||(e=o?o.nodeType===9?o.documentElement:o.firstChild:null,e=!(!e||e.nodeType!==1||!e.hasAttribute("data-reactroot"))),!e)for(var s;s=o.lastChild;)o.removeChild(s);return new qk(o,0,e?{hydrate:!0}:void 0)}function tk(o,e,s,a,c){var d=s._reactRootContainer;if(d){var _=d._internalRoot;if(typeof c=="function"){var b=c;c=function(){var $=mk(_);b.call($)}}lk(e,_,o,c)}else{if(d=s._reactRootContainer=sk(s,a),_=d._internalRoot,typeof c=="function"){var k=c;c=function(){var $=mk(_);k.call($)}}Xj(function(){lk(e,_,o,c)})}return mk(_)}ec=function(o){if(o.tag===13){var e=Hg();Jg(o,4,e),ok(o,4)}};fc=function(o){if(o.tag===13){var e=Hg();Jg(o,67108864,e),ok(o,67108864)}};gc=function(o){if(o.tag===13){var e=Hg(),s=Ig(o);Jg(o,s,e),ok(o,s)}};hc=function(o,e){return e()};yb=function(o,e,s){switch(e){case"input":if(ab(o,s),e=s.name,s.type==="radio"&&e!=null){for(s=o;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll("input[name="+JSON.stringify(""+e)+'][type="radio"]'),e=0;e<s.length;e++){var a=s[e];if(a!==o&&a.form===o.form){var c=Db(a);if(!c)throw Error(y(90));Wa(a),ab(a,c)}}}break;case"textarea":ib(o,s);break;case"select":e=s.value,e!=null&&fb(o,!!s.multiple,e,!1)}};Gb=Wj;Hb=function(o,e,s,a,c){var d=X;X|=4;try{return gg(98,o.bind(null,e,s,a,c))}finally{X=d,X===0&&(wj(),ig())}};Ib=function(){(X&49)===0&&(Vj(),Oj())};Jb=function(o,e){var s=X;X|=2;try{return o(e)}finally{X=s,X===0&&(wj(),ig())}};function uk(o,e){var s=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!rk(e))throw Error(y(200));return kk(o,e,null,s)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(o){return o=cc(o),o===null?null:o.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||pk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined"){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch{}}reactDom_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;reactDom_production_min.createPortal=uk;reactDom_production_min.findDOMNode=function(o){if(o==null)return null;if(o.nodeType===1)return o;var e=o._reactInternals;if(e===void 0)throw typeof o.render=="function"?Error(y(188)):Error(y(268,Object.keys(o)));return o=cc(e),o=o===null?null:o.stateNode,o};reactDom_production_min.flushSync=function(o,e){var s=X;if((s&48)!==0)return o(e);X|=1;try{if(o)return gg(99,o.bind(null,e))}finally{X=s,ig()}};reactDom_production_min.hydrate=function(o,e,s){if(!rk(e))throw Error(y(200));return tk(null,o,e,!0,s)};reactDom_production_min.render=function(o,e,s){if(!rk(e))throw Error(y(200));return tk(null,o,e,!1,s)};reactDom_production_min.unmountComponentAtNode=function(o){if(!rk(o))throw Error(y(40));return o._reactRootContainer?(Xj(function(){tk(null,null,o,!1,function(){o._reactRootContainer=null,o[ff]=null})}),!0):!1};reactDom_production_min.unstable_batchedUpdates=Wj;reactDom_production_min.unstable_createPortal=function(o,e){return uk(o,e,2<arguments.length&&arguments[2]!==void 0?arguments[2]:null)};reactDom_production_min.unstable_renderSubtreeIntoContainer=function(o,e,s,a){if(!rk(s))throw Error(y(200));if(o==null||o._reactInternals===void 0)throw Error(y(38));return tk(o,e,s,!1,a)};reactDom_production_min.version="17.0.2";function checkDCE(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(o){console.error(o)}}checkDCE(),reactDom.exports=reactDom_production_min;var ReactDOM=reactDom.exports;function _defineProperty(o,e,s){return e in o?Object.defineProperty(o,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):o[e]=s,o}function ownKeys(o,e){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(o);e&&(a=a.filter(function(c){return Object.getOwnPropertyDescriptor(o,c).enumerable})),s.push.apply(s,a)}return s}function _objectSpread2(o){for(var e=1;e<arguments.length;e++){var s=arguments[e]!=null?arguments[e]:{};e%2?ownKeys(Object(s),!0).forEach(function(a){_defineProperty(o,a,s[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(s)):ownKeys(Object(s)).forEach(function(a){Object.defineProperty(o,a,Object.getOwnPropertyDescriptor(s,a))})}return o}function _objectWithoutPropertiesLoose(o,e){if(o==null)return{};var s={},a=Object.keys(o),c,d;for(d=0;d<a.length;d++)c=a[d],!(e.indexOf(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<d.length;c++)a=d[c],!(e.indexOf(a)>=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<c;k++)d[k]=s[k];return React.createElement.apply(null,d)}return React.createElement.apply(null,s)}const scriptRel="modulepreload",seen={},base$1="/tutorial/",__vitePreload=function(e,s){return!s||s.length===0?e():Promise.all(s.map(a=>{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,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,lt=1,ut=1,pt=0,dt=1,gt=1,yt=1,ft=1e7,mt;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&&(ut=Math.pow(10,Math.floor(1+Math.log(nt)/Math.LN10)),nt/=ut);dt<=ft&&yt<=ft;)if(mt=(pt+gt)/(dt+yt),nt===mt){dt+yt<=ft?(rt=pt+gt,it=dt+yt):yt>dt?(rt=gt,it=yt):(rt=pt,it=dt);break}else nt>mt?(pt+=gt,dt+=yt):(gt+=pt,yt+=dt),dt>ft?(rt=gt,it=yt):(rt=pt,it=dt);rt*=ut}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),lt=Math.pow(10,dt[pt].length),pt++),(dt[pt]==="("&&dt[pt+2]===")"||dt[pt]==="'"&&dt[pt+2]==="'")&&(ct=d(dt[pt+1],at),ut=Math.pow(10,dt[pt+1].length)-1,pt+=3)):dt[pt+1]==="/"||dt[pt+1]===":"?(ht=d(dt[pt],at),lt=d(dt[pt+2],1),pt+=3):dt[pt+3]==="/"&&dt[pt+1]===" "&&(ot=d(dt[pt],at),ht=d(dt[pt+2],at),lt=d(dt[pt+4],1),pt+=5),dt.length<=pt){it=lt*ut,at=rt=ct+it*ot+ut*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<rt)-(rt<0)},simplify:function(nt){if(isNaN(this.n)||isNaN(this.d))return this;nt=nt||.001;for(var st=this.abs(),rt=st.toContinued(),it=1;it<rt.length;it++){for(var at=_(rt[it-1],1),ot=it-2;ot>=0;ot--)at=at.inverse().add(rt[ot]);if(at.sub(st).abs().valueOf()<nt)return at.mul(this.s)}return this},divisible:function(nt,st){return k(nt,st),!(!(c.n*this.d)||this.n*c.d%(c.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction: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,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(Ot(Ot({},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])([#b]*)([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}[b],0))||0;return(Number(a)+1)*12+c+d},fromMidi=o=>Math.pow(2,(o-69)/12)*440,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].length<e;){const _=o.queryArc(s,s+1),b=_.filter(j=>j.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){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(Ot({},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(Ot({},_),{line:_.line-1+(a.start.line-1)+1,column:_.column-1+k}),end:wt(Ot({},b),{line:b.line-1+(a.start.line-1)+1,column:b.column-1+k})}}),wt(Ot({},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(Ot({},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(Ot({},s),{color:e}))}log(){return this._withHap(e=>{var s;return e.setContext(wt(Ot({},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)}edit(...e){return stack(...e.map(s=>s(this)))}pipe(e){return e(this)}_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(Ot({},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(Ot({},s.context),{onTrigger:e})))}}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<<c,o],_rshift:[(a,c)=>a>>c,o],lt:[(a,c)=>a<c],gt:[(a,c)=>a>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){return o instanceof Pattern$5}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",""]],_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;$<a[k];$++)b(k-1);c[k]&&b(k-2)}};c[_]>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),_brandBy=o=>rand.fmap(e=>e<o),brandBy=o=>reify$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)]).outerJoin()),choose=(...o)=>chooseWith(rand,o),_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(Ot({},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)),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,_brandBy,brandBy,brand,_irand,irand,chooseWith,choose,wchoose,wchooseCycles,perlinWith,perlin,State:State$1,TimeSpan:TimeSpan$1,isNote:isNote$3,tokenizeNote,toMidi:toMidi$1,fromMidi,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;Pattern$5.prototype.pianoroll=function({cycles:o=4,playhead:e=.5,overscan:s=1,flipTime:a=0,flipValues:c=0,hideNegative:d=!1,inactive:_="#C9E597",active:b="#FFCA28",background:k="transparent",minMidi:$=10,maxMidi:j=90,autorange:_e=0,timeframe:et,fold:tt=0,vertical:nt=0}={}){const st=getDrawContext(),rt=st.canvas.width,it=st.canvas.height;let at=-o*e,ot=o*(1-e);et&&(console.warn("timeframe is deprecated! use from/to instead"),at=0,ot=et),!_e&&tt&&console.warn("disabling autorange has no effect when fold is enabled");const ht=nt?it:rt,ct=nt?rt:it;let lt=nt?[ht,0]:[0,ht];const ut=ot-at,pt=nt?[0,ct]:[ct,0];let dt=j-$+1,gt=ct/dt,yt=[];a&<.reverse(),c&&pt.reverse();const ft=scale(-at/ut,...lt);return this.draw((mt,Et,vt)=>{mt.fillStyle=k,mt.clearRect(0,0,rt,it),mt.fillRect(0,0,rt,it);const At=_t=>(!d||_t.whole.begin>=0)&&_t.whole.begin<=vt+ot&&_t.whole.end>=vt+at;Et.filter(At).forEach(_t=>{var Mt,It,Ft;const Dt=_t.whole.begin<=vt&&_t.whole.end>vt;mt.fillStyle=((Mt=_t.context)==null?void 0:Mt.color)||_,mt.strokeStyle=((It=_t.context)==null?void 0:It.color)||b,mt.globalAlpha=(Ft=_t.context.velocity)!=null?Ft:1,mt.beginPath(),nt?(mt.moveTo(0,ft),mt.lineTo(ct,ft)):(mt.moveTo(ft,0),mt.lineTo(ft,ct)),mt.stroke();const bt=scale((_t.whole.begin-(a?ot:at))/ut,...lt);let Tt=scale(_t.duration/ut,0,ht);const St=scale(tt?yt.indexOf(_t.value)/yt.length:(Number(_t.value)-$)/dt,...pt);let Ct=0;const xt=scale(vt/ut,...lt);let Rt;nt?Rt=[St+1-(c?gt:0),ht-xt+bt+Ct+1-(a?0:Tt),gt-2,Tt-2]:Rt=[bt-xt+Ct+1-(a?Tt:0),St+1-(c?0:gt),Tt-2,gt-2],Dt?mt.strokeRect(...Rt):mt.fillRect(...Rt)})},{from:at-s,to:ot+s,onQuery:mt=>{const Et=Dt=>Number(Dt.value),{min:vt,max:At,values:_t}=mt.reduce(({min:Dt,max:bt,values:Tt},St)=>{const Ct=Et(St);return{min:Ct<Dt?Ct:Dt,max:Ct>bt?Ct:bt,values:Tt.includes(Ct)?Tt:[...Tt,Ct]}},{min:1/0,max:-1/0,values:[]});_e&&($=vt,j=At,dt=j-$+1),yt=_t.sort((Dt,bt)=>Dt-bt),gt=tt?ct/yt.length:ct/dt}}),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:0<s&&0<c||s<0&&c<0?s*(c/s)**((o-e)/(a-e)):0,getLinearRampValueAtTime=(o,e,s,{endTime:a,value:c})=>s+(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<d.startTime+d.duration?getValueCurveValueAtTime(e,d):d.values[d.values.length-1];if(d!==void 0&&isAnyRampToValueAutomationEvent(d)&&(a===void 0||!isAnyRampToValueAutomationEvent(a)))return d.value;if(a!==void 0&&isExponentialRampToValueAutomationEvent(a)){const[_,b]=getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents,c,d,a,this._defaultValue);return getExponentialRampValueAtTime(e,_,b,a)}if(a!==void 0&&isLinearRampToValueAutomationEvent(a)){const[_,b]=getEndTimeAndValueOfPreviousAutomationEvent(this._automationEvents,c,d,a,this._defaultValue);return getLinearRampValueAtTime(e,_,b,a)}return this._defaultValue}}const createCancelAndHoldAutomationEvent=o=>({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<a.numberOfInputs;d+=1)c.push(new Set);o.set(e,{activeInputs:c,outputs:new Set,passiveInputs:new WeakMap,renderer:s})},createAddAudioParamConnections=o=>(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,lt])=>{const[ut,pt]=splitImportStatements(ct,lt),dt=`${ut};((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,(lt,ut)=>{if(lt.trim()==="")throw e();const pt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot);if(pt!==void 0){if(pt.has(lt))throw e();verifyProcessorCtor(ut),verifyParameterDescriptors(ut.parameterDescriptors),pt.set(lt,ut)}else verifyProcessorCtor(ut),verifyParameterDescriptors(ut.parameterDescriptors),NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.set(ot,new Map([[lt,ut]]))},ot.sampleRate,void 0,void 0))}):Promise.all([c(st),Promise.resolve(o(_e,_e))]).then(([[ct,lt],ut])=>{const pt=tt+1;tt=pt;const[dt,gt]=splitImportStatements(ct,lt),Et=`${dt};((AudioWorkletProcessor,registerProcessor)=>{${gt}
|
|
})(${ut?"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{${ut?"":"__c = (a) => a.forEach(e=>this.__b.add(e.buffer));"}process(i,o,p){${ut?"":"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}})`,vt=new Blob([Et],{type:"application/javascript; charset=utf-8"}),At=URL.createObjectURL(vt);return ot.audioWorklet.addModule(At,rt).then(()=>{if(b(ot))return ot;const _t=_(ot);return _t.audioWorklet.addModule(At,rt).then(()=>_t)}).then(_t=>{if(k===null)throw new SyntaxError;try{new k(_t,`__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),lt=b(nt),ut=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 mt=tt.get(st);mt!==void 0&&clearTimeout(mt),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)?(lt.add(ut),j(nt)?o(ot,nt,[rt,it,ut],!0):e(ht,it,[nt,rt,ut],!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=Ot(Ot({},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 fr{constructor(j){if(c===null)throw new Error("Missing the native OfflineAudioContext constructor.");const{length:_e,numberOfChannels:et,sampleRate:tt}=Ot(Ot({},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)===fr.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=Ot(Ot({},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),lt=e($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:9}),ut=_($);let pt=!1,dt=[0,0,-1,0,1,0],gt=[0,0,0];const yt=()=>{if(pt)return;pt=!0;const vt=a($,256,9,0);vt.onaudioprocess=({inputBuffer:At})=>{const _t=[d(At,ct,0),d(At,ct,1),d(At,ct,2),d(At,ct,3),d(At,ct,4),d(At,ct,5)];_t.some((bt,Tt)=>bt!==dt[Tt])&&(j.setOrientation(..._t),dt=_t);const Dt=[d(At,ct,6),d(At,ct,7),d(At,ct,8)];Dt.some((bt,Tt)=>bt!==gt[Tt])&&(j.setPosition(...Dt),gt=Dt)},lt.connect(vt)},ft=vt=>At=>{At!==dt[vt]&&(dt[vt]=At,j.setOrientation(...dt))},mt=vt=>At=>{At!==gt[vt]&&(gt[vt]=At,j.setPosition(...gt))},Et=(vt,At,_t)=>{const Dt=s($,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:At});Dt.connect(lt,0,vt),Dt.start(),Object.defineProperty(Dt.offset,"defaultValue",{get(){return At}});const bt=o({context:k},ut,Dt.offset,MOST_POSITIVE_SINGLE_FLOAT,MOST_NEGATIVE_SINGLE_FLOAT);return b(bt,"value",Tt=>()=>Tt.call(bt),Tt=>St=>{try{Tt.call(bt,St)}catch(Ct){if(Ct.code!==9)throw Ct}yt(),ut&&_t(St)}),bt.cancelAndHoldAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.cancelAndHoldAtTime),bt.cancelScheduledValues=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.cancelScheduledValues),bt.exponentialRampToValueAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.exponentialRampToValueAtTime),bt.linearRampToValueAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.linearRampToValueAtTime),bt.setTargetAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.setTargetAtTime),bt.setValueAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.setValueAtTime),bt.setValueCurveAtTime=(Tt=>ut?()=>{throw c()}:(...St)=>{const Ct=Tt.apply(bt,St);return yt(),Ct})(bt.setValueCurveAtTime),bt};return{forwardX:Et(0,0,ft(0)),forwardY:Et(1,0,ft(1)),forwardZ:Et(2,-1,ft(2)),positionX:Et(6,0,mt(0)),positionY:Et(7,0,mt(1)),positionZ:Et(8,0,mt(2)),upX:Et(3,0,ft(3)),upY:Et(4,1,ft(4)),upZ:Et(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 lt=getNativeAudioParam(it);if(lt.name==="playbackRate"&<.maxValue===1024)throw _();try{this._nativeAudioNode.connect(lt,at),(ct||isPassiveAudioNode(this))&&this._nativeAudioNode.disconnect(lt,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),lt=nt(ct);if(it===void 0)ht=deleteAnyConnection(this,lt);else if(typeof it=="number"){if(it<0||it>=this.numberOfOutputs)throw c();ht=deleteConnectionAtOutput(this,lt,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,lt,it,at,ot),ht.length===0)throw d()}for(const ut of ht){const pt=k([this],ut);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 lt=Array.from(at).pop();ot===null&&at.flush(tt.context.currentTime),at.add(c(ct));const ut=Array.from(at).pop();st.cancelScheduledValues(ct),lt!==ut&&ut!==void 0&&(ut.type==="exponentialRampToValue"?st.exponentialRampToValueAtTime(ut.value,ut.endTime):ut.type==="linearRampToValue"?st.linearRampToValueAtTime(ut.value,ut.endTime):ut.type==="setValue"?st.setValueAtTime(ut.value,ut.startTime):ut.type==="setValueCurve"&&st.setValueCurveAtTime(ut.values,ut.startTime,ut.duration))}return ht},cancelScheduledValues(ct){return ot===null&&at.flush(tt.context.currentTime),at.add(d(ct)),st.cancelScheduledValues(ct),ht},exponentialRampToValueAtTime(ct,lt){if(ct===0)throw new RangeError;if(!Number.isFinite(lt)||lt<0)throw new RangeError;return ot===null&&at.flush(tt.context.currentTime),at.add(_(ct,lt)),st.exponentialRampToValueAtTime(ct,lt),ht},linearRampToValueAtTime(ct,lt){return ot===null&&at.flush(tt.context.currentTime),at.add(b(ct,lt)),st.linearRampToValueAtTime(ct,lt),ht},setTargetAtTime(ct,lt,ut){return ot===null&&at.flush(tt.context.currentTime),at.add(k(ct,lt,ut)),st.setTargetAtTime(ct,lt,ut),ht},setValueAtTime(ct,lt){return ot===null&&at.flush(tt.context.currentTime),at.add($(ct,lt)),st.setValueAtTime(ct,lt),ht},setValueCurveAtTime(ct,lt,ut){const pt=ct instanceof Float32Array?ct:new Float32Array(ct);if(_e!==null&&_e.name==="webkitAudioContext"){const dt=lt+ut,gt=tt.context.sampleRate,yt=Math.ceil(lt*gt),ft=Math.floor(dt*gt),mt=ft-yt,Et=new Float32Array(mt);for(let At=0;At<mt;At+=1){const _t=(pt.length-1)/ut*((yt+At)/gt-lt),Dt=Math.floor(_t),bt=Math.ceil(_t);Et[At]=Dt===bt?pt[Dt]:(1-(_t-Dt))*pt[Dt]+(1-(bt-_t))*pt[bt]}ot===null&&at.flush(tt.context.currentTime),at.add(j(Et,lt,ut)),st.setValueCurveAtTime(Et,lt,ut);const vt=ft/gt;vt<dt&&et(ht,Et[Et.length-1],vt),et(ht,pt[pt.length-1],dt)}else ot===null&&at.flush(tt.context.currentTime),at.add(j(pt,lt,ut)),st.setValueCurveAtTime(pt,lt,ut);return ht}};return s.set(ht,st),e.set(ht,tt),o(ht,ot),ht},createAudioParamRenderer=o=>({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(Ot(Ot({},DEFAULT_OPTIONS$g),it));et(ct);const lt=NODE_NAME_TO_PROCESSOR_CONSTRUCTOR_MAPS.get(ot),ut=lt==null?void 0:lt.get(rt),pt=ht||ot.state!=="closed"?ot:(at=_(ot))!==null&&at!==void 0?at:ot,dt=c(pt,ht?null:st.baseLatency,$,rt,ut,ct),gt=ht?a(rt,ct,ut):null;super(st,!0,dt,gt);const yt=[];dt.parameters.forEach((mt,Et)=>{const vt=s(this,ht,mt);yt.push([Et,vt])}),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<o;a+=1){const c=[],d=typeof e=="number"?e:e[a];for(let _=0;_<d;_+=1)c.push(new Float32Array(128));s.push(c)}return s},getAudioWorkletProcessor=(o,e)=>{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(Ot({},rt),{[it]:new Float32Array(128)}),{});for(let rt=0;rt<b;rt+=128){if(a.numberOfInputs>0&&e!==null)for(let it=0;it<a.numberOfInputs;it+=1)for(let at=0;at<a.channelCount;at+=1)copyFromChannel(e,tt[it],at,at,rt);d.parameterDescriptors!==void 0&&e!==null&&d.parameterDescriptors.forEach(({name:it},at)=>{copyFromChannel(e,st,it,k+at,rt)});for(let it=0;it<a.numberOfInputs;it+=1)for(let at=0;at<c[it];at+=1)nt[it][at].byteLength===0&&(nt[it][at]=new Float32Array(128));try{const it=tt.map((ot,ht)=>_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<a.numberOfOutputs;ot+=1){for(let ct=0;ct<c[ot];ct+=1)copyToChannel(j,nt[ot],ct,ht+ct,rt);ht+=c[ot]}if(!at)break}catch(it){o.dispatchEvent(new ErrorEvent("processorerror",{colno:it.colno,filename:it.filename,lineno:it.lineno,message:it.message}));break}}return j},createAudioWorkletNodeRendererFactory=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,st)=>(rt,it,at)=>{const ot=new WeakMap;let ht=null;const ct=async(lt,ut)=>{let pt=j(lt),dt=null;const gt=isOwnedByContext(pt,ut),yt=Array.isArray(it.outputChannelCount)?it.outputChannelCount:Array.from(it.outputChannelCount);if(_e===null){const ft=yt.reduce((At,_t)=>At+_t,0),mt=c(ut,{channelCount:Math.max(1,ft),channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:Math.max(1,ft)}),Et=[];for(let At=0;At<lt.numberOfOutputs;At+=1)Et.push(a(ut,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:yt[At]}));const vt=_(ut,{channelCount:it.channelCount,channelCountMode:it.channelCountMode,channelInterpretation:it.channelInterpretation,gain:1});vt.connect=e.bind(null,Et),vt.disconnect=k.bind(null,Et),dt=[mt,Et,vt]}else gt||(pt=new _e(ut,rt));if(ot.set(ut,dt===null?pt:dt[2]),dt!==null){if(ht===null){if(at===void 0)throw new Error("Missing the processor constructor.");if(et===null)throw new Error("Missing the native OfflineAudioContext constructor.");const _t=lt.channelCount*lt.numberOfInputs,Dt=at.parameterDescriptors===void 0?0:at.parameterDescriptors.length,bt=_t+Dt;ht=processBuffer(lt,bt===0?null:await(async()=>{const St=new et(bt,Math.ceil(lt.context.length/128)*128,ut.sampleRate),Ct=[],xt=[];for(let It=0;It<it.numberOfInputs;It+=1)Ct.push(_(St,{channelCount:it.channelCount,channelCountMode:it.channelCountMode,channelInterpretation:it.channelInterpretation,gain:1})),xt.push(c(St,{channelCount:it.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:it.channelCount}));const Rt=await Promise.all(Array.from(lt.parameters.values()).map(async It=>{const Ft=d(St,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:It.value});return await tt(St,It,Ft.offset),Ft})),Mt=a(St,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:Math.max(1,_t+Dt)});for(let It=0;It<it.numberOfInputs;It+=1){Ct[It].connect(xt[It]);for(let Ft=0;Ft<it.channelCount;Ft+=1)xt[It].connect(Mt,Ft,It*it.channelCount+Ft)}for(const[It,Ft]of Rt.entries())Ft.connect(Mt,0,_t+It),Ft.start(0);return Mt.connect(St.destination),await Promise.all(Ct.map(It=>nt(lt,St,It))),st(St)})(),ut,it,yt,at,$)}const ft=await ht,mt=s(ut,{buffer:null,channelCount:2,channelCountMode:"max",channelInterpretation:"speakers",loop:!1,loopEnd:0,loopStart:0,playbackRate:1}),[Et,vt,At]=dt;ft!==null&&(mt.buffer=ft,mt.start(0)),mt.connect(Et);for(let _t=0,Dt=0;_t<lt.numberOfOutputs;_t+=1){const bt=vt[_t];for(let Tt=0;Tt<yt[_t];Tt+=1)Et.connect(bt,Dt+Tt,Tt);Dt+=yt[_t]}return At}if(gt)for(const[ft,mt]of lt.parameters.entries())await o(ut,mt,pt.parameters.get(ft));else for(const[ft,mt]of lt.parameters.entries())await tt(ut,mt,pt.parameters.get(ft));return await nt(lt,ut,pt),pt};return{render(lt,ut){b(ut,lt);const pt=ot.get(ut);return pt!==void 0?Promise.resolve(pt):ct(lt,ut)}}},createBaseAudioContextConstructor=(o,e,s,a,c,d,_,b,k,$,j,_e,et,tt,nt,st,rt,it,at,ot)=>class extends nt{constructor(ct,lt){super(ct,lt),this._nativeContext=ct,this._audioWorklet=o===void 0?void 0:{addModule:(ut,pt)=>o(this,ut,pt)}}get audioWorklet(){return this._audioWorklet}createAnalyser(){return new e(this)}createBiquadFilter(){return new c(this)}createBuffer(ct,lt,ut){return new s({length:lt,numberOfChannels:ct,sampleRate:ut})}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,lt){return new tt(this,{feedback:lt,feedforward:ct})}createOscillator(){return new st(this)}createPanner(){return new rt(this)}createPeriodicWave(ct,lt,ut={disableNormalization:!1}){return new it(this,wt(Ot({},ut),{imag:lt,real:ct}))}createStereoPanner(){return new at(this)}createWaveShaper(){return new ot(this)}decodeAudioData(ct,lt,ut){return $(this._nativeContext,ct).then(pt=>(typeof lt=="function"&<(pt),pt),pt=>{throw typeof ut=="function"&&ut(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=Ot(Ot({},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(_),$=Ot(Ot({},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(Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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<c;st+=1){const rt=et-st&k-1;nt+=s[st]*d[rt],nt-=o[st]*_[rt]}for(let st=c;st<a;st+=1)nt+=s[st]*d[et-st&k-1];for(let st=c;st<e;st+=1)nt-=o[st]*_[et-st&k-1];d[et]=$[tt],_[et]=nt,et=et+1&k-1,j[tt]=nt}return et},filterFullBuffer=(o,e,s,a)=>{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<b;nt+=1)c[nt]/=c[0]}const $=32,j=new Float32Array($),_e=new Float32Array($),et=e.createBuffer(o.numberOfChannels,o.length,o.sampleRate),tt=o.numberOfChannels;for(let nt=0;nt<tt;nt+=1){const st=o.getChannelData(nt),rt=et.getChannelData(nt);j.fill(0),_e.fill(0),filterBuffer(c,_,d,b,k,j,_e,0,$,st,rt)}return et},createIIRFilterNodeRendererFactory=(o,e,s,a,c)=>(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=Ot(Ot({},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<a;c+=1)e[c]=(s[c]-128)*.0078125;return e}},createNativeAnalyserNodeFactory=(o,e)=>(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],Ot({},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,lt=[],ut=[];for(let kt=0;kt<rt.numberOfInputs;kt+=1)lt.push(_(tt,{channelCount:rt.channelCount,channelCountMode:rt.channelCountMode,channelInterpretation:rt.channelInterpretation,gain:1})),ut.push(c(tt,{channelCount:rt.channelCount,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:rt.channelCount}));const pt=[];if(st.parameterDescriptors!==void 0)for(const{defaultValue:kt,maxValue:Bt,minValue:Qt,name:Lt}of st.parameterDescriptors){const $t=d(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:rt.parameterData[Lt]!==void 0?rt.parameterData[Lt]:kt===void 0?0:kt});Object.defineProperties($t.offset,{defaultValue:{get:()=>kt===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),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)}),mt=[];for(let kt=0;kt<rt.numberOfOutputs;kt+=1)mt.push(a(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"speakers",numberOfInputs:it[kt]}));for(let kt=0;kt<rt.numberOfInputs;kt+=1){lt[kt].connect(ut[kt]);for(let Bt=0;Bt<rt.channelCount;Bt+=1)ut[kt].connect(dt,Bt,kt*rt.channelCount+Bt)}const Et=new ReadOnlyMap(st.parameterDescriptors===void 0?[]:st.parameterDescriptors.map(({name:kt},Bt)=>{const Qt=pt[Bt];return Qt.connect(dt,0,at+Bt),Qt.start(0),[kt,Qt.offset]}));dt.connect(yt);let vt=rt.channelInterpretation,At=null;const _t=rt.numberOfOutputs===0?[yt]:mt,Dt={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 vt},set channelInterpretation(kt){for(const Bt of lt)Bt.channelInterpretation=kt;vt=kt},get context(){return yt.context},get inputs(){return lt},get numberOfInputs(){return rt.numberOfInputs},get numberOfOutputs(){return rt.numberOfOutputs},get onprocessorerror(){return At},set onprocessorerror(kt){typeof At=="function"&&Dt.removeEventListener("processorerror",At),At=typeof kt=="function"?kt:null,typeof At=="function"&&Dt.addEventListener("processorerror",At)},get parameters(){return Et},get port(){return ct.port2},addEventListener(...kt){return yt.addEventListener(kt[0],kt[1],kt[2])},connect:o.bind(null,_t),disconnect:$.bind(null,_t),dispatchEvent(...kt){return yt.dispatchEvent(kt[0])},removeEventListener(...kt){return yt.removeEventListener(kt[0],kt[1],kt[2])}},bt=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=bt.get(Bt[1]);Lt!==void 0?Bt[1]=Lt:(Bt[1]=$t=>{j(tt.currentTime,tt.sampleRate,()=>Qt($t))},bt.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=bt.get(Bt[1]);Qt!==void 0&&(bt.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())}}),st.prototype.port=ct.port1;let St=null;createAudioWorkletProcessor(tt,Dt,st,rt).then(kt=>St=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(Ot({},kt),{[Bt]:new Float32Array(128)}),{});let It=!0;const Ft=()=>{rt.numberOfOutputs>0&&yt.disconnect(ft);for(let kt=0,Bt=0;kt<rt.numberOfOutputs;kt+=1){const Qt=mt[kt];for(let Lt=0;Lt<it[kt];Lt+=1)ft.disconnect(Qt,Bt+Lt,Lt);Bt+=it[kt]}},Vt=new Map;yt.onaudioprocess=({inputBuffer:kt,outputBuffer:Bt})=>{if(St!==null){const Qt=_e(Dt);for(let Lt=0;Lt<gt;Lt+=128){for(let $t=0;$t<rt.numberOfInputs;$t+=1)for(let Wt=0;Wt<rt.channelCount;Wt+=1)copyFromChannel(kt,xt[$t],Wt,Wt,Lt);st.parameterDescriptors!==void 0&&st.parameterDescriptors.forEach(({name:$t},Wt)=>{copyFromChannel(kt,Mt,$t,at+Wt,Lt)});for(let $t=0;$t<rt.numberOfInputs;$t+=1)for(let Wt=0;Wt<it[$t];Wt+=1)Rt[$t][Wt].byteLength===0&&(Rt[$t][Wt]=new Float32Array(128));try{const $t=xt.map((Gt,zt)=>{if(Qt[zt].size>0)return Vt.set(zt,gt/128),Gt;const Xt=Vt.get(zt);return Xt===void 0?[]:(Gt.every(Zt=>Zt.every(sn=>sn===0))&&(Xt===1?Vt.delete(zt):Vt.set(zt,Xt-1)),Gt)});It=j(tt.currentTime+Lt/tt.sampleRate,tt.sampleRate,()=>St.process($t,Rt,Mt));for(let Gt=0,zt=0;Gt<rt.numberOfOutputs;Gt+=1){for(let nn=0;nn<it[Gt];nn+=1)copyToChannel(Bt,Rt[Gt],nn,zt+nn,Lt);zt+=it[Gt]}}catch($t){It=!1,Dt.dispatchEvent(new ErrorEvent("processorerror",{colno:$t.colno,filename:$t.filename,lineno:$t.lineno,message:$t.message}))}if(!It){for(let $t=0;$t<rt.numberOfInputs;$t+=1){lt[$t].disconnect(ut[$t]);for(let Wt=0;Wt<rt.channelCount;Wt+=1)ut[Lt].disconnect(dt,Wt,$t*rt.channelCount+Wt)}if(st.parameterDescriptors!==void 0){const $t=st.parameterDescriptors.length;for(let Wt=0;Wt<$t;Wt+=1){const Gt=pt[Wt];Gt.disconnect(dt,0,at+Wt),Gt.stop()}}dt.disconnect(yt),yt.onaudioprocess=null,jt?Ft():Jt();break}}}};let jt=!1;const Nt=_(tt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:0}),Kt=()=>yt.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<rt.numberOfOutputs;kt+=1){const Qt=mt[kt];for(let Lt=0;Lt<it[kt];Lt+=1)ft.connect(Qt,Bt+Lt,Lt);Bt+=it[kt]}}jt=!0},tn=()=>{It&&(Kt(),Ft()),jt=!1};return Kt(),et(Dt,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(Ot({},_),{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<st;pt+=1)tt[pt]/=et[0];for(let pt=1;pt<nt;pt+=1)et[pt]/=et[0]}const it=s(c,_e,_,_);it.channelCount=_,it.channelCountMode=b,it.channelInterpretation=k;const at=32,ot=[],ht=[],ct=[];for(let pt=0;pt<_;pt+=1){ot.push(0);const dt=new Float32Array(at),gt=new Float32Array(at);dt.fill(0),gt.fill(0),ht.push(dt),ct.push(gt)}it.onaudioprocess=pt=>{const dt=pt.inputBuffer,gt=pt.outputBuffer,yt=dt.numberOfChannels;for(let ft=0;ft<yt;ft+=1){const mt=dt.getChannelData(ft),Et=gt.getChannelData(ft);ot[ft]=filterBuffer(et,nt,tt,st,rt,ht[ft],ct[ft],ot[ft],at,mt,Et)}};const lt=c.sampleRate/2;return interceptConnections({get bufferSize(){return _e},get channelCount(){return it.channelCount},set channelCount(pt){it.channelCount=pt},get channelCountMode(){return it.channelCountMode},set channelCountMode(pt){it.channelCountMode=pt},get channelInterpretation(){return it.channelInterpretation},set channelInterpretation(pt){it.channelInterpretation=pt},get context(){return it.context},get inputs(){return[it]},get numberOfInputs(){return it.numberOfInputs},get numberOfOutputs(){return it.numberOfOutputs},addEventListener(...pt){return it.addEventListener(pt[0],pt[1],pt[2])},dispatchEvent(...pt){return it.dispatchEvent(pt[0])},getFrequencyResponse(pt,dt,gt){if(pt.length!==dt.length||dt.length!==gt.length)throw o();const yt=pt.length;for(let ft=0;ft<yt;ft+=1){const mt=-Math.PI*(pt[ft]/lt),Et=[Math.cos(mt),Math.sin(mt)],vt=evaluatePolynomial(tt,Et),At=evaluatePolynomial(et,Et),_t=divide(vt,At);dt[ft]=Math.sqrt(_t[0]*_t[0]+_t[1]*_t[1]),gt[ft]=Math.atan2(_t[1],_t[0])}},removeEventListener(...pt){return it.removeEventListener(pt[0],pt[1],pt[2])}},it)},createNativeMediaElementAudioSourceNode=(o,e)=>o.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:lt,refDistance:ut,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 mt={channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete"},Et=s(j,wt(Ot({},mt),{channelInterpretation:"speakers",numberOfInputs:6})),vt=a(j,wt(Ot({},dt),{gain:1})),At=a(j,wt(Ot({},mt),{gain:1})),_t=a(j,wt(Ot({},mt),{gain:0})),Dt=a(j,wt(Ot({},mt),{gain:0})),bt=a(j,wt(Ot({},mt),{gain:0})),Tt=a(j,wt(Ot({},mt),{gain:0})),St=a(j,wt(Ot({},mt),{gain:0})),Ct=c(j,256,6,1),xt=d(j,wt(Ot({},mt),{curve:new Float32Array([1,1]),oversample:"none"}));let Rt=[rt,it,at],Mt=[ht,ct,lt];const It=new Float32Array(1);Ct.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(_t.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Dt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(bt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(Tt.gain,"defaultValue",{get:()=>0}),Object.defineProperty(St.gain,"defaultValue",{get:()=>0});const Ft={get bufferSize(){},get channelCount(){return ft.channelCount},set channelCount(Nt){if(Nt>2)throw _();vt.channelCount=Nt,ft.channelCount=Nt},get channelCountMode(){return ft.channelCountMode},set channelCountMode(Nt){if(Nt==="max")throw _();vt.channelCountMode=Nt,ft.channelCountMode=Nt},get channelInterpretation(){return ft.channelInterpretation},set channelInterpretation(Nt){vt.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[vt]},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 _t.gain},get orientationZ(){return Dt.gain},get panningModel(){return ft.panningModel},set panningModel(Nt){ft.panningModel=Nt},get positionX(){return bt.gain},get positionY(){return Tt.gain},get positionZ(){return St.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 vt.addEventListener(Nt[0],Nt[1],Nt[2])},dispatchEvent(...Nt){return vt.dispatchEvent(Nt[0])},removeEventListener(...Nt){return vt.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),lt!==Ft.positionZ.value&&(Ft.positionZ.value=lt),ut!==Ft.refDistance&&(Ft.refDistance=ut),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 Vt=()=>{vt.connect(ft),o(vt,xt,0,0),xt.connect(At).connect(Et,0,0),xt.connect(_t).connect(Et,0,1),xt.connect(Dt).connect(Et,0,2),xt.connect(bt).connect(Et,0,3),xt.connect(Tt).connect(Et,0,4),xt.connect(St).connect(Et,0,5),Et.connect(Ct).connect(j.destination)},jt=()=>{vt.disconnect(ft),b(vt,xt,0,0),xt.disconnect(At),At.disconnect(Et),xt.disconnect(_t),_t.disconnect(Et),xt.disconnect(Dt),Dt.disconnect(Et),xt.disconnect(bt),bt.disconnect(Et),xt.disconnect(Tt),Tt.disconnect(Et),xt.disconnect(St),St.disconnect(Et),Et.disconnect(Ct),Ct.disconnect(j.destination)};return $(interceptConnections(Ft,ft),Vt,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(Ot({},$),{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(Ot({},$),{gain:0})),ct=a(nt,wt(Ot({},j),{curve:at})),lt=a(nt,wt(Ot({},j),{curve:b})),ut=s(nt,wt(Ot({},$),{gain:0})),pt=a(nt,wt(Ot({},j),{curve:ot}));return{connectGraph(){st.connect(ht),st.connect(lt.inputs===void 0?lt:lt.inputs[0]),st.connect(ut),lt.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(ut.gain),ht.connect(it,0,0),ut.connect(it,0,1)},disconnectGraph(){st.disconnect(ht),st.disconnect(lt.inputs===void 0?lt:lt.inputs[0]),st.disconnect(ut),lt.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(ut.gain),ht.disconnect(it,0,0),ut.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),lt=Math.floor(16385/2);for(let _t=0;_t<16385;_t+=1)if(_t>lt){const Dt=(_t-lt)/(16384-lt)*k;at[_t]=Math.cos(Dt),ot[_t]=Math.sin(Dt),ht[_t]=0,ct[_t]=1}else{const Dt=_t/(16384-lt)*k;at[_t]=1,ot[_t]=0,ht[_t]=Math.cos(Dt),ct[_t]=Math.sin(Dt)}const ut=e(nt,{channelCount:2,channelCountMode:"explicit",channelInterpretation:"discrete",numberOfOutputs:2}),pt=s(nt,wt(Ot({},$),{gain:0})),dt=a(nt,wt(Ot({},j),{curve:at})),gt=s(nt,wt(Ot({},$),{gain:0})),yt=a(nt,wt(Ot({},j),{curve:ot})),ft=a(nt,wt(Ot({},j),{curve:b})),mt=s(nt,wt(Ot({},$),{gain:0})),Et=a(nt,wt(Ot({},j),{curve:ht})),vt=s(nt,wt(Ot({},$),{gain:0})),At=a(nt,wt(Ot({},j),{curve:ct}));return{connectGraph(){st.connect(ut),st.connect(ft.inputs===void 0?ft:ft.inputs[0]),ut.connect(pt,0),ut.connect(gt,0),ut.connect(mt,1),ut.connect(vt,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(Et.inputs===void 0?Et:Et.inputs[0]),rt.connect(At.inputs===void 0?At:At.inputs[0]),dt.connect(pt.gain),yt.connect(gt.gain),Et.connect(mt.gain),At.connect(vt.gain),pt.connect(it,0,0),mt.connect(it,0,0),gt.connect(it,0,1),vt.connect(it,0,1)},disconnectGraph(){st.disconnect(ut),st.disconnect(ft.inputs===void 0?ft:ft.inputs[0]),ut.disconnect(pt,0),ut.disconnect(gt,0),ut.disconnect(mt,1),ut.disconnect(vt,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(Et.inputs===void 0?Et:Et.inputs[0]),rt.disconnect(At.inputs===void 0?At:At.inputs[0]),dt.disconnect(pt.gain),yt.disconnect(gt.gain),Et.disconnect(mt.gain),At.disconnect(vt.gain),pt.disconnect(it,0,0),mt.disconnect(it,0,0),gt.disconnect(it,0,1),vt.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(Ot({},at),{channelCount:1,channelCountMode:rt,numberOfInputs:2})),lt=s(nt,wt(Ot({},at),{channelCount:st,channelCountMode:rt,gain:1})),ut=s(nt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",gain:it});let{connectGraph:pt,disconnectGraph:dt}=tt(nt,st,lt,ut,ct);Object.defineProperty(ut.gain,"defaultValue",{get:()=>0}),Object.defineProperty(ut.gain,"maxValue",{get:()=>1}),Object.defineProperty(ut.gain,"minValue",{get:()=>-1});const gt={get bufferSize(){},get channelCount(){return lt.channelCount},set channelCount(Et){lt.channelCount!==Et&&(yt&&dt(),{connectGraph:pt,disconnectGraph:dt}=tt(nt,Et,lt,ut,ct),yt&&pt()),lt.channelCount=Et},get channelCountMode(){return lt.channelCountMode},set channelCountMode(Et){if(Et==="clamped-max"||Et==="max")throw c();lt.channelCountMode=Et},get channelInterpretation(){return lt.channelInterpretation},set channelInterpretation(Et){lt.channelInterpretation=Et},get context(){return lt.context},get inputs(){return[lt]},get numberOfInputs(){return lt.numberOfInputs},get numberOfOutputs(){return lt.numberOfOutputs},get pan(){return ut.gain},addEventListener(...Et){return lt.addEventListener(Et[0],Et[1],Et[2])},dispatchEvent(...Et){return lt.dispatchEvent(Et[0])},removeEventListener(...Et){return lt.removeEventListener(Et[0],Et[1],Et[2])}};let yt=!1;const ft=()=>{pt(),yt=!0},mt=()=>{dt(),yt=!1};return d(interceptConnections(gt,ct),ft,mt)}},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(Ot({},k),{gain:1})),nt=s(d,wt(Ot({},k),{gain:-1})),st=s(d,wt(Ot({},k),{gain:1})),rt=s(d,wt(Ot({},k),{gain:-1}));let it=null,at=!1,ot=null;const ht={get bufferSize(){},get channelCount(){return _e.channelCount},set channelCount(ut){tt.channelCount=ut,nt.channelCount=ut,_e.channelCount=ut,st.channelCount=ut,et.channelCount=ut,rt.channelCount=ut},get channelCountMode(){return _e.channelCountMode},set channelCountMode(ut){tt.channelCountMode=ut,nt.channelCountMode=ut,_e.channelCountMode=ut,st.channelCountMode=ut,et.channelCountMode=ut,rt.channelCountMode=ut},get channelInterpretation(){return _e.channelInterpretation},set channelInterpretation(ut){tt.channelInterpretation=ut,nt.channelInterpretation=ut,_e.channelInterpretation=ut,st.channelInterpretation=ut,et.channelInterpretation=ut,rt.channelInterpretation=ut},get context(){return _e.context},get curve(){return ot},set curve(ut){if(ut!==null&&ut.length<2)throw e();if(ut===null)_e.curve=ut,et.curve=ut;else{const pt=ut.length,dt=new Float32Array(pt+2-pt%2),gt=new Float32Array(pt+2-pt%2);dt[0]=ut[0],gt[0]=-ut[pt-1];const yt=Math.ceil((pt+1)/2),ft=(pt+1)/2-1;for(let mt=1;mt<yt;mt+=1){const Et=mt/yt*ft,vt=Math.floor(Et),At=Math.ceil(Et);dt[mt]=vt===At?ut[vt]:(1-(Et-vt))*ut[vt]+(1-(At-Et))*ut[At],gt[mt]=vt===At?-ut[pt-1-vt]:-((1-(Et-vt))*ut[pt-1-vt])-(1-(At-Et))*ut[pt-1-At]}dt[yt]=pt%2===1?ut[yt-1]:(ut[yt-2]+ut[yt-1])/2,_e.curve=dt,et.curve=gt}ot=ut,at&&(a(ot)&&it===null?it=o(d,tt):it!==null&&(it(),it=null))},get inputs(){return[tt]},get numberOfInputs(){return _e.numberOfInputs},get numberOfOutputs(){return _e.numberOfOutputs},get oversample(){return _e.oversample},set oversample(ut){_e.oversample=ut,et.oversample=ut},addEventListener(...ut){return tt.addEventListener(ut[0],ut[1],ut[2])},dispatchEvent(...ut){return tt.dispatchEvent(ut[0])},removeEventListener(...ut){return tt.removeEventListener(ut[0],ut[1],ut[2])}};_!==null&&(ht.curve=_ instanceof Float32Array?_:new Float32Array(_)),b!==ht.oversample&&(ht.oversample=b);const ct=()=>{tt.connect(_e).connect(st),tt.connect(nt).connect(et).connect(rt).connect(st),at=!0,a(ot)&&(it=o(d,tt))},lt=()=>{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,lt)},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}=Ot(Ot({},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=Ot(Ot({},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=Ot(Ot({},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(Ot({},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(Ot({},it),{gain:1}));else if(!ot){const ht=wt(Ot({},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 mt=await Promise.all([tt.orientationX,tt.orientationY,tt.orientationZ,tt.positionX,tt.positionY,tt.positionZ].map(async(Et,vt)=>{const At=s(yt,{channelCount:1,channelCountMode:"explicit",channelInterpretation:"discrete",offset:vt===0?1:0});return await b(yt,Et,At.offset),At}));for(let Et=0;Et<6;Et+=1)mt[Et].connect(ft,0,Et),mt[Et].start(0);return $(yt)})()}const ht=await _e,ct=a(nt,wt(Ot({},it),{gain:1}));await k(tt,nt,ct);const lt=[];for(let yt=0;yt<ht.numberOfChannels;yt+=1)lt.push(ht.getChannelData(yt));let ut=[lt[0][0],lt[1][0],lt[2][0]],pt=[lt[3][0],lt[4][0],lt[5][0]],dt=a(nt,wt(Ot({},it),{gain:1})),gt=c(nt,wt(Ot({},at),{orientationX:ut[0],orientationY:ut[1],orientationZ:ut[2],positionX:pt[0],positionY:pt[1],positionZ:pt[2]}));ct.connect(dt).connect(gt.inputs[0]),gt.connect(st);for(let yt=128;yt<ht.length;yt+=128){const ft=[lt[0][yt],lt[1][yt],lt[2][yt]],mt=[lt[3][yt],lt[4][yt],lt[5][yt]];if(ft.some((Et,vt)=>Et!==ut[vt])||mt.some((Et,vt)=>Et!==pt[vt])){ut=ft,pt=mt;const Et=yt/nt.sampleRate;dt.gain.setValueAtTime(0,Et),dt=a(nt,wt(Ot({},it),{gain:0})),gt=c(nt,wt(Ot({},at),{orientationX:ut[0],orientationY:ut[1],orientationZ:ut[2],positionX:pt[0],positionY:pt[1],positionZ:pt[2]})),dt.gain.setValueAtTime(1,Et),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 mr{constructor(d,_){const b=e(d),k=a(Ot(Ot({},DEFAULT_OPTIONS$2),_)),$=o(b,k);return s.add($),$}static[Symbol.hasInstance](d){return d!==null&&typeof d=="object"&&Object.getPrototypeOf(d)===mr.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=Ot(Ot({},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=Ot(Ot({},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+_<k&&_e<j;_e+=1)a[_e]=$[_e+_]},s.copyToChannel=(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+_<k&&_e<j;_e+=1)$[_e+_]=a[_e]}},createWrapAudioBufferCopyChannelMethodsOutOfBounds=o=>e=>{e.copyFromChannel=(s=>(a,c,d=0)=>{const _=o(d),b=o(c);if(_<e.length)return s.call(e,a,b,_)})(e.copyFromChannel),e.copyToChannel=(s=>(a,c,d=0)=>{const _=o(d),b=o(c);if(_<e.length)return s.call(e,a,b,_)})(e.copyToChannel)},createWrapAudioBufferSourceNodeStopMethodNullifiedBuffer=o=>(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;k<b;k+=1)c.connect(a,0,k)},()=>c.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(Ot({},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(Ot({},o),{channelCount:o.numberOfOutputs}),sanitizePeriodicWaveOptions=o=>{const{imag:e,real:s}=o;return e===void 0?s===void 0?wt(Ot({},o),{imag:[0,0],real:[0,0]}):wt(Ot({},o),{imag:Array.from(s,()=>0),real:s}):s===void 0?wt(Ot({},o),{imag:e,real:Array.from(e,()=>0)}):wt(Ot({},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
|
|
purpose with or without fee is hereby granted.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
PERFORMANCE OF THIS SOFTWARE.
|
|
***************************************************************************** */function __decorate(o,e,s,a){var c=arguments.length,d=c<3?e:a===null?a=Object.getOwnPropertyDescriptor(e,s):a,_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")d=Reflect.decorate(o,e,s,a);else for(var b=o.length-1;b>=0;b--)(_=o[b])&&(d=(c<3?_(d):c>3?_(e,s,d):_(e,s))||d);return c>3&&d&&Object.defineProperty(e,s,d),d}function __awaiter$4(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 Ticker{constructor(e,s,a){this._callback=e,this._type=s,this._updateInterval=a,this._createClock()}_createWorker(){const e=new Blob([`
|
|
// the initial timeout time
|
|
let timeoutTime = ${(this._updateInterval*1e3).toFixed(1)};
|
|
// onmessage callback
|
|
self.onmessage = function(msg){
|
|
timeoutTime = parseInt(msg.data);
|
|
};
|
|
// the tick function which posts a message
|
|
// and schedules a new tick
|
|
function tick(){
|
|
setTimeout(tick, timeoutTime);
|
|
self.postMessage('tick');
|
|
}
|
|
// call tick initially
|
|
tick();
|
|
`],{type:"text/javascript"}),s=URL.createObjectURL(e),a=new Worker(s);a.onmessage=this._callback.bind(this),this._worker=a}_createTimeout(){this._timeout=setTimeout(()=>{this._createTimeout(),this._callback()},this._updateInterval*1e3)}_createClock(){if(this._type==="worker")try{this._createWorker()}catch{this._type="timeout",this._createClock()}else this._type==="timeout"&&this._createTimeout()}_disposeClock(){this._timeout&&(clearTimeout(this._timeout),this._timeout=0),this._worker&&(this._worker.terminate(),this._worker.onmessage=null)}get updateInterval(){return this._updateInterval}set updateInterval(e){this._updateInterval=Math.max(e,128/44100),this._type==="worker"&&this._worker.postMessage(Math.max(e*1e3,1))}get type(){return this._type}set type(e){this._disposeClock(),this._type=e,this._createClock()}dispose(){this._disposeClock()}}function isAudioParam(o){return isAnyAudioParam(o)}function isAudioNode(o){return isAnyAudioNode(o)}function isOfflineAudioContext(o){return isAnyOfflineAudioContext(o)}function isAudioContext(o){return isAnyAudioContext(o)}function isAudioBuffer(o){return o instanceof AudioBuffer}function noCopy(o,e){return o==="value"||isAudioParam(e)||isAudioNode(e)||isAudioBuffer(e)}function deepMerge(o,...e){if(!e.length)return o;const s=e.shift();if(isObject(o)&&isObject(s))for(const a in s)noCopy(a,s[a])?o[a]=s[a]:isObject(s[a])?(o[a]||Object.assign(o,{[a]:{}}),deepMerge(o[a],s[a])):Object.assign(o,{[a]:s[a]});return deepMerge(o,...e)}function deepEquals(o,e){return o.length===e.length&&o.every((s,a)=>e[a]===s)}function optionsFromArguments(o,e,s=[],a){const c={},d=Array.from(e);if(isObject(d[0])&&a&&!Reflect.has(d[0],a)&&(Object.keys(d[0]).some(b=>Reflect.has(o,b))||(deepMerge(c,{[a]:d[0]}),s.splice(s.indexOf(a),1),d.shift())),d.length===1&&isObject(d[0]))deepMerge(c,d[0]);else for(let _=0;_<s.length;_++)isDefined(d[_])&&(c[s[_]]=d[_]);return deepMerge(o,c)}function getDefaultsFromInstance(o){return o.constructor.getDefaults()}function defaultArg(o,e){return isUndef(o)?e:o}function omitFromObject(o,e){return e.forEach(s=>{Reflect.has(o,s)&&delete o[s]}),o}/**
|
|
* Tone.js
|
|
* @author Yotam Mann
|
|
* @license http://opensource.org/licenses/MIT MIT License
|
|
* @copyright 2014-2019 Yotam Mann
|
|
*/class Tone$1{constructor(){this.debug=!1,this._wasDisposed=!1}static getDefaults(){return{}}log(...e){(this.debug||theWindow&&this.toString()===theWindow.TONE_DEBUG_CLASS)&&log(this,...e)}dispose(){return this._wasDisposed=!0,this}get disposed(){return this._wasDisposed}toString(){return this.name}}Tone$1.version=version;const EPSILON=1e-6;function GT(o,e){return o>e+EPSILON}function GTE(o,e){return GT(o,e)||EQ(o,e)}function LT(o,e){return o+EPSILON<e}function EQ(o,e){return Math.abs(o-e)<EPSILON}function clamp(o,e,s){return Math.max(Math.min(o,s),e)}class Timeline extends Tone$1{constructor(){super(),this.name="Timeline",this._timeline=[];const e=optionsFromArguments(Timeline.getDefaults(),arguments,["memory"]);this.memory=e.memory,this.increasing=e.increasing}static getDefaults(){return{memory:1/0,increasing:!1}}get length(){return this._timeline.length}add(e){if(assert(Reflect.has(e,"time"),"Timeline: events must have a time attribute"),e.time=e.time.valueOf(),this.increasing&&this.length){const s=this._timeline[this.length-1];assert(GTE(e.time,s.time),"The time must be greater than or equal to the last scheduled time"),this._timeline.push(e)}else{const s=this._search(e.time);this._timeline.splice(s+1,0,e)}if(this.length>this.memory){const s=this.length-this.memory;this._timeline.splice(0,s)}return this}remove(e){const s=this._timeline.indexOf(e);return s!==-1&&this._timeline.splice(s,1),this}get(e,s="time"){const a=this._search(e,s);return a!==-1?this._timeline[a]:null}peek(){return this._timeline[0]}shift(){return this._timeline.shift()}getAfter(e,s="time"){const a=this._search(e,s);return a+1<this._timeline.length?this._timeline[a+1]:null}getBefore(e){const s=this._timeline.length;if(s>0&&this._timeline[s-1].time<e)return this._timeline[s-1];const a=this._search(e);return a-1>=0?this._timeline[a-1]:null}cancel(e){if(this._timeline.length>1){let s=this._search(e);if(s>=0)if(EQ(this._timeline[s].time,e)){for(let a=s;a>=0&&EQ(this._timeline[a].time,e);a--)s=a;this._timeline=this._timeline.slice(0,s)}else this._timeline=this._timeline.slice(0,s+1);else this._timeline=[]}else this._timeline.length===1&>E(this._timeline[0].time,e)&&(this._timeline=[]);return this}cancelBefore(e){const s=this._search(e);return s>=0&&(this._timeline=this._timeline.slice(s+1)),this}previousEvent(e){const s=this._timeline.indexOf(e);return s>0?this._timeline[s-1]:null}_search(e,s="time"){if(this._timeline.length===0)return-1;let a=0;const c=this._timeline.length;let d=c;if(c>0&&this._timeline[c-1][s]<=e)return c-1;for(;a<d;){let _=Math.floor(a+(d-a)/2);const b=this._timeline[_],k=this._timeline[_+1];if(EQ(b[s],e)){for(let $=_;$<this._timeline.length;$++){const j=this._timeline[$];if(EQ(j[s],e))_=$;else break}return _}else{if(LT(b[s],e)&>(k[s],e))return _;GT(b[s],e)?d=_:a=_+1}}return-1}_iterate(e,s=0,a=this._timeline.length-1){this._timeline.slice(s,a+1).forEach(e)}forEach(e){return this._iterate(e),this}forEachBefore(e,s){const a=this._search(e);return a!==-1&&this._iterate(s,0,a),this}forEachAfter(e,s){const a=this._search(e);return this._iterate(s,a+1),this}forEachBetween(e,s,a){let c=this._search(e),d=this._search(s);return c!==-1&&d!==-1?(this._timeline[c].time!==e&&(c+=1),this._timeline[d].time===s&&(d-=1),this._iterate(a,c,d)):c===-1&&this._iterate(a,0,d),this}forEachFrom(e,s){let a=this._search(e);for(;a>=0&&this._timeline[a].time>=e;)a--;return this._iterate(s,a+1),this}forEachAtTime(e,s){const a=this._search(e);if(a!==-1&&EQ(this._timeline[a].time,e)){let c=a;for(let d=a;d>=0&&EQ(this._timeline[d].time,e);d--)c=d;this._iterate(d=>{s(d)},c,a)}return this}dispose(){return super.dispose(),this._timeline=[],this}}const notifyNewContext=[];function onContextInit(o){notifyNewContext.push(o)}function initializeContext(o){notifyNewContext.forEach(e=>e(o))}const notifyCloseContext=[];function onContextClose(o){notifyCloseContext.push(o)}function closeContext(o){notifyCloseContext.forEach(e=>e(o))}class Emitter extends Tone$1{constructor(){super(...arguments),this.name="Emitter"}on(e,s){return e.split(/\W+/).forEach(c=>{isUndef(this._events)&&(this._events={}),this._events.hasOwnProperty(c)||(this._events[c]=[]),this._events[c].push(s)}),this}once(e,s){const a=(...c)=>{s(...c),this.off(e,a)};return this.on(e,a),this}off(e,s){return e.split(/\W+/).forEach(c=>{if(isUndef(this._events)&&(this._events={}),this._events.hasOwnProperty(e))if(isUndef(s))this._events[e]=[];else{const d=this._events[e];for(let _=d.length-1;_>=0;_--)d[_]===s&&d.splice(_,1)}}),this}emit(e,...s){if(this._events&&this._events.hasOwnProperty(e)){const a=this._events[e].slice(0);for(let c=0,d=a.length;c<d;c++)a[c].apply(this,s)}return this}static mixin(e){["on","once","off","emit"].forEach(s=>{const a=Object.getOwnPropertyDescriptor(Emitter.prototype,s);Object.defineProperty(e.prototype,s,a)})}dispose(){return super.dispose(),this._events=void 0,this}}class BaseContext extends Emitter{constructor(){super(...arguments),this.isOffline=!1}toJSON(){return{}}}class Context extends BaseContext{constructor(){super(),this.name="Context",this._constants=new Map,this._timeouts=new Timeline,this._timeoutIds=0,this._initialized=!1,this.isOffline=!1,this._workletModules=new Map;const e=optionsFromArguments(Context.getDefaults(),arguments,["context"]);e.context?this._context=e.context:this._context=createAudioContext({latencyHint:e.latencyHint}),this._ticker=new Ticker(this.emit.bind(this,"tick"),e.clockSource,e.updateInterval),this.on("tick",this._timeoutLoop.bind(this)),this._context.onstatechange=()=>{this.emit("statechange",this.state)},this._setLatencyHint(e.latencyHint),this.lookAhead=e.lookAhead}static getDefaults(){return{clockSource:"worker",latencyHint:"interactive",lookAhead:.1,updateInterval:.05}}initialize(){return this._initialized||(initializeContext(this),this._initialized=!0),this}createAnalyser(){return this._context.createAnalyser()}createOscillator(){return this._context.createOscillator()}createBufferSource(){return this._context.createBufferSource()}createBiquadFilter(){return this._context.createBiquadFilter()}createBuffer(e,s,a){return this._context.createBuffer(e,s,a)}createChannelMerger(e){return this._context.createChannelMerger(e)}createChannelSplitter(e){return this._context.createChannelSplitter(e)}createConstantSource(){return this._context.createConstantSource()}createConvolver(){return this._context.createConvolver()}createDelay(e){return this._context.createDelay(e)}createDynamicsCompressor(){return this._context.createDynamicsCompressor()}createGain(){return this._context.createGain()}createIIRFilter(e,s){return this._context.createIIRFilter(e,s)}createPanner(){return this._context.createPanner()}createPeriodicWave(e,s,a){return this._context.createPeriodicWave(e,s,a)}createStereoPanner(){return this._context.createStereoPanner()}createWaveShaper(){return this._context.createWaveShaper()}createMediaStreamSource(e){return assert(isAudioContext(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamSource(e)}createMediaElementSource(e){return assert(isAudioContext(this._context),"Not available if OfflineAudioContext"),this._context.createMediaElementSource(e)}createMediaStreamDestination(){return assert(isAudioContext(this._context),"Not available if OfflineAudioContext"),this._context.createMediaStreamDestination()}decodeAudioData(e){return this._context.decodeAudioData(e)}get currentTime(){return this._context.currentTime}get state(){return this._context.state}get sampleRate(){return this._context.sampleRate}get listener(){return this.initialize(),this._listener}set listener(e){assert(!this._initialized,"The listener cannot be set after initialization."),this._listener=e}get transport(){return this.initialize(),this._transport}set transport(e){assert(!this._initialized,"The transport cannot be set after initialization."),this._transport=e}get draw(){return this.initialize(),this._draw}set draw(e){assert(!this._initialized,"Draw cannot be set after initialization."),this._draw=e}get destination(){return this.initialize(),this._destination}set destination(e){assert(!this._initialized,"The destination cannot be set after initialization."),this._destination=e}createAudioWorkletNode(e,s){return createAudioWorkletNode(this.rawContext,e,s)}addAudioWorkletModule(e,s){return __awaiter$4(this,void 0,void 0,function*(){assert(isDefined(this.rawContext.audioWorklet),"AudioWorkletNode is only available in a secure context (https or localhost)"),this._workletModules.has(s)||this._workletModules.set(s,this.rawContext.audioWorklet.addModule(e)),yield this._workletModules.get(s)})}workletsAreReady(){return __awaiter$4(this,void 0,void 0,function*(){const e=[];this._workletModules.forEach(s=>e.push(s)),yield Promise.all(e)})}get updateInterval(){return this._ticker.updateInterval}set updateInterval(e){this._ticker.updateInterval=e}get clockSource(){return this._ticker.type}set clockSource(e){this._ticker.type=e}get latencyHint(){return this._latencyHint}_setLatencyHint(e){let s=0;if(this._latencyHint=e,isString(e))switch(e){case"interactive":s=.1;break;case"playback":s=.5;break;case"balanced":s=.25;break}this.lookAhead=s,this.updateInterval=s/2}get rawContext(){return this._context}now(){return this._context.currentTime+this.lookAhead}immediate(){return this._context.currentTime}resume(){return isAudioContext(this._context)?this._context.resume():Promise.resolve()}close(){return __awaiter$4(this,void 0,void 0,function*(){isAudioContext(this._context)&&(yield this._context.close()),this._initialized&&closeContext(this)})}getConstant(e){if(this._constants.has(e))return this._constants.get(e);{const s=this._context.createBuffer(1,128,this._context.sampleRate),a=s.getChannelData(0);for(let d=0;d<a.length;d++)a[d]=e;const c=this._context.createBufferSource();return c.channelCount=1,c.channelCountMode="explicit",c.buffer=s,c.loop=!0,c.start(0),this._constants.set(e,c),c}}dispose(){return super.dispose(),this._ticker.dispose(),this._timeouts.dispose(),Object.keys(this._constants).map(e=>this._constants[e].disconnect()),this}_timeoutLoop(){const e=this.now();let s=this._timeouts.peek();for(;this._timeouts.length&&s&&s.time<=e;)s.callback(),this._timeouts.shift(),s=this._timeouts.peek()}setTimeout(e,s){this._timeoutIds++;const a=this.now();return this._timeouts.add({callback:e,id:this._timeoutIds,time:a+s}),this._timeoutIds}clearTimeout(e){return this._timeouts.forEach(s=>{s.id===e&&this._timeouts.remove(s)}),this}clearInterval(e){return this.clearTimeout(e)}setInterval(e,s){const a=++this._timeoutIds,c=()=>{const d=this.now();this._timeouts.add({callback:()=>{e(),c()},id:a,time:d+s})};return c(),a}}class DummyContext extends BaseContext{constructor(){super(...arguments),this.lookAhead=0,this.latencyHint=0,this.isOffline=!1}createAnalyser(){return{}}createOscillator(){return{}}createBufferSource(){return{}}createBiquadFilter(){return{}}createBuffer(e,s,a){return{}}createChannelMerger(e){return{}}createChannelSplitter(e){return{}}createConstantSource(){return{}}createConvolver(){return{}}createDelay(e){return{}}createDynamicsCompressor(){return{}}createGain(){return{}}createIIRFilter(e,s){return{}}createPanner(){return{}}createPeriodicWave(e,s,a){return{}}createStereoPanner(){return{}}createWaveShaper(){return{}}createMediaStreamSource(e){return{}}createMediaElementSource(e){return{}}createMediaStreamDestination(){return{}}decodeAudioData(e){return Promise.resolve({})}createAudioWorkletNode(e,s){return{}}get rawContext(){return{}}addAudioWorkletModule(e,s){return __awaiter$4(this,void 0,void 0,function*(){return Promise.resolve()})}resume(){return Promise.resolve()}setTimeout(e,s){return 0}clearTimeout(e){return this}setInterval(e,s){return 0}clearInterval(e){return this}getConstant(e){return{}}get currentTime(){return 0}get state(){return{}}get sampleRate(){return 0}get listener(){return{}}get transport(){return{}}get draw(){return{}}set draw(e){}get destination(){return{}}set destination(e){}now(){return 0}immediate(){return 0}}function readOnly$1(o,e){isArray(e)?e.forEach(s=>readOnly$1(o,s)):Object.defineProperty(o,e,{enumerable:!0,writable:!1})}function writable(o,e){isArray(e)?e.forEach(s=>writable(o,s)):Object.defineProperty(o,e,{writable:!0})}const noOp=()=>{};class ToneAudioBuffer extends Tone$1{constructor(){super(),this.name="ToneAudioBuffer",this.onload=noOp;const e=optionsFromArguments(ToneAudioBuffer.getDefaults(),arguments,["url","onload","onerror"]);this.reverse=e.reverse,this.onload=e.onload,e.url&&isAudioBuffer(e.url)||e.url instanceof ToneAudioBuffer?this.set(e.url):isString(e.url)&&this.load(e.url).catch(e.onerror)}static getDefaults(){return{onerror:noOp,onload:noOp,reverse:!1}}get sampleRate(){return this._buffer?this._buffer.sampleRate:getContext().sampleRate}set(e){return e instanceof ToneAudioBuffer?e.loaded?this._buffer=e.get():e.onload=()=>{this.set(e),this.onload(this)}:this._buffer=e,this._reversed&&this._reverse(),this}get(){return this._buffer}load(e){return __awaiter$4(this,void 0,void 0,function*(){const s=ToneAudioBuffer.load(e).then(a=>{this.set(a),this.onload(this)});ToneAudioBuffer.downloads.push(s);try{yield s}finally{const a=ToneAudioBuffer.downloads.indexOf(s);ToneAudioBuffer.downloads.splice(a,1)}return this})}dispose(){return super.dispose(),this._buffer=void 0,this}fromArray(e){const s=isArray(e)&&e[0].length>0,a=s?e.length:1,c=s?e[0].length:e.length,d=getContext(),_=d.createBuffer(a,c,d.sampleRate),b=!s&&a===1?[e]:e;for(let k=0;k<a;k++)_.copyToChannel(b[k],k);return this._buffer=_,this}toMono(e){if(isNumber(e))this.fromArray(this.toArray(e));else{let s=new Float32Array(this.length);const a=this.numberOfChannels;for(let c=0;c<a;c++){const d=this.toArray(c);for(let _=0;_<d.length;_++)s[_]+=d[_]}s=s.map(c=>c/a),this.fromArray(s)}return this}toArray(e){if(isNumber(e))return this.getChannelData(e);if(this.numberOfChannels===1)return this.toArray(0);{const s=[];for(let a=0;a<this.numberOfChannels;a++)s[a]=this.getChannelData(a);return s}}getChannelData(e){return this._buffer?this._buffer.getChannelData(e):new Float32Array(0)}slice(e,s=this.duration){const a=Math.floor(e*this.sampleRate),c=Math.floor(s*this.sampleRate);assert(a<c,"The start time must be less than the end time");const d=c-a,_=getContext().createBuffer(this.numberOfChannels,d,this.sampleRate);for(let b=0;b<this.numberOfChannels;b++)_.copyToChannel(this.getChannelData(b).subarray(a,c),b);return new ToneAudioBuffer(_)}_reverse(){if(this.loaded)for(let e=0;e<this.numberOfChannels;e++)this.getChannelData(e).reverse();return this}get loaded(){return this.length>0}get duration(){return this._buffer?this._buffer.duration:0}get length(){return this._buffer?this._buffer.length:0}get numberOfChannels(){return this._buffer?this._buffer.numberOfChannels:0}get reverse(){return this._reversed}set reverse(e){this._reversed!==e&&(this._reversed=e,this._reverse())}static fromArray(e){return new ToneAudioBuffer().fromArray(e)}static fromUrl(e){return __awaiter$4(this,void 0,void 0,function*(){return yield new ToneAudioBuffer().load(e)})}static load(e){return __awaiter$4(this,void 0,void 0,function*(){const s=e.match(/\[([^\]\[]+\|.+)\]$/);if(s){const b=s[1].split("|");let k=b[0];for(const $ of b)if(ToneAudioBuffer.supportsType($)){k=$;break}e=e.replace(s[0],k)}const a=ToneAudioBuffer.baseUrl===""||ToneAudioBuffer.baseUrl.endsWith("/")?ToneAudioBuffer.baseUrl:ToneAudioBuffer.baseUrl+"/",c=yield fetch(a+e);if(!c.ok)throw new Error(`could not load url: ${e}`);const d=yield c.arrayBuffer();return yield getContext().decodeAudioData(d)})}static supportsType(e){const s=e.split("."),a=s[s.length-1];return document.createElement("audio").canPlayType("audio/"+a)!==""}static loaded(){return __awaiter$4(this,void 0,void 0,function*(){for(yield Promise.resolve();ToneAudioBuffer.downloads.length;)yield ToneAudioBuffer.downloads[0]})}}ToneAudioBuffer.baseUrl="";ToneAudioBuffer.downloads=[];class OfflineContext extends Context{constructor(){super({clockSource:"offline",context:isOfflineAudioContext(arguments[0])?arguments[0]:createOfflineAudioContext(arguments[0],arguments[1]*arguments[2],arguments[2]),lookAhead:0,updateInterval:isOfflineAudioContext(arguments[0])?128/arguments[0].sampleRate:128/arguments[2]}),this.name="OfflineContext",this._currentTime=0,this.isOffline=!0,this._duration=isOfflineAudioContext(arguments[0])?arguments[0].length/arguments[0].sampleRate:arguments[1]}now(){return this._currentTime}get currentTime(){return this._currentTime}_renderClock(e){return __awaiter$4(this,void 0,void 0,function*(){let s=0;for(;this._duration-this._currentTime>=0;){this.emit("tick"),this._currentTime+=128/this.sampleRate,s++;const a=Math.floor(this.sampleRate/128);e&&s%a===0&&(yield new Promise(c=>setTimeout(c,1)))}})}render(e=!0){return __awaiter$4(this,void 0,void 0,function*(){yield this.workletsAreReady(),yield this._renderClock(e);const s=yield this._context.startRendering();return new ToneAudioBuffer(s)})}close(){return Promise.resolve()}}const dummyContext=new DummyContext;let globalContext=dummyContext;function getContext(){return globalContext===dummyContext&&hasAudioContext&&setContext(new Context),globalContext}function setContext(o){isAudioContext(o)?globalContext=new Context(o):isOfflineAudioContext(o)?globalContext=new OfflineContext(o):globalContext=o}function start(){return globalContext.resume()}if(theWindow&&!theWindow.TONE_SILENCE_LOGGING){const e=` * Tone.js v${version} * `;console.log(`%c${e}`,"background: #000; color: #fff")}function dbToGain(o){return Math.pow(10,o/20)}function gainToDb(o){return 20*(Math.log(o)/Math.LN10)}function intervalToFrequencyRatio(o){return Math.pow(2,o/12)}let A4=440;function getA4(){return A4}function setA4(o){A4=o}function ftom(o){return Math.round(ftomf(o))}function ftomf(o){return 69+12*Math.log2(o/A4)}function mtof(o){return A4*Math.pow(2,(o-69)/12)}class TimeBaseClass extends Tone$1{constructor(e,s,a){super(),this.defaultUnits="s",this._val=s,this._units=a,this.context=e,this._expressions=this._getExpressions()}_getExpressions(){return{hz:{method:e=>this._frequencyToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)hz$/i},i:{method:e=>this._ticksToUnits(parseInt(e,10)),regexp:/^(\d+)i$/i},m:{method:e=>this._beatsToUnits(parseInt(e,10)*this._getTimeSignature()),regexp:/^(\d+)m$/i},n:{method:(e,s)=>{const a=parseInt(e,10),c=s==="."?1.5:1;return a===1?this._beatsToUnits(this._getTimeSignature())*c:this._beatsToUnits(4/a)*c},regexp:/^(\d+)n(\.?)$/i},number:{method:e=>this._expressions[this.defaultUnits].method.call(this,e),regexp:/^(\d+(?:\.\d+)?)$/},s:{method:e=>this._secondsToUnits(parseFloat(e)),regexp:/^(\d+(?:\.\d+)?)s$/},samples:{method:e=>parseInt(e,10)/this.context.sampleRate,regexp:/^(\d+)samples$/},t:{method:e=>{const s=parseInt(e,10);return this._beatsToUnits(8/(Math.floor(s)*3))},regexp:/^(\d+)t$/i},tr:{method:(e,s,a)=>{let c=0;return e&&e!=="0"&&(c+=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),s&&s!=="0"&&(c+=this._beatsToUnits(parseFloat(s))),a&&a!=="0"&&(c+=this._beatsToUnits(parseFloat(a)/4)),c},regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?$/}}}valueOf(){if(this._val instanceof TimeBaseClass&&this.fromType(this._val),isUndef(this._val))return this._noArg();if(isString(this._val)&&isUndef(this._units)){for(const e in this._expressions)if(this._expressions[e].regexp.test(this._val.trim())){this._units=e;break}}else if(isObject(this._val)){let e=0;for(const s in this._val)if(isDefined(this._val[s])){const a=this._val[s];e+=new this.constructor(this.context,s).valueOf()*a}return e}if(isDefined(this._units)){const e=this._expressions[this._units],s=this._val.toString().trim().match(e.regexp);return s?e.method.apply(this,s.slice(1)):e.method.call(this,this._val)}else return isString(this._val)?parseFloat(this._val):this._val}_frequencyToUnits(e){return 1/e}_beatsToUnits(e){return 60/this._getBpm()*e}_secondsToUnits(e){return e}_ticksToUnits(e){return e*this._beatsToUnits(1)/this._getPPQ()}_noArg(){return this._now()}_getBpm(){return this.context.transport.bpm.value}_getTimeSignature(){return this.context.transport.timeSignature}_getPPQ(){return this.context.transport.PPQ}fromType(e){switch(this._units=void 0,this.defaultUnits){case"s":this._val=e.toSeconds();break;case"i":this._val=e.toTicks();break;case"hz":this._val=e.toFrequency();break;case"midi":this._val=e.toMidi();break}return this}toFrequency(){return 1/this.toSeconds()}toSamples(){return this.toSeconds()*this.context.sampleRate}toMilliseconds(){return this.toSeconds()*1e3}}class TimeClass extends TimeBaseClass{constructor(){super(...arguments),this.name="TimeClass"}_getExpressions(){return Object.assign(super._getExpressions(),{now:{method:e=>this._now()+new this.constructor(this.context,e).valueOf(),regexp:/^\+(.+)/},quantize:{method:e=>{const s=new TimeClass(this.context,e).valueOf();return this._secondsToUnits(this.context.transport.nextSubdivision(s))},regexp:/^@(.+)/}})}quantize(e,s=1){const a=new this.constructor(this.context,e).valueOf(),c=this.valueOf(),b=Math.round(c/a)*a-c;return c+b*s}toNotation(){const e=this.toSeconds(),s=["1m"];for(let d=1;d<9;d++){const _=Math.pow(2,d);s.push(_+"n."),s.push(_+"n"),s.push(_+"t")}s.push("0");let a=s[0],c=new TimeClass(this.context,s[0]).toSeconds();return s.forEach(d=>{const _=new TimeClass(this.context,d).toSeconds();Math.abs(_-e)<Math.abs(c-e)&&(a=d,c=_)}),a}toBarsBeatsSixteenths(){const e=this._beatsToUnits(1);let s=this.valueOf()/e;s=parseFloat(s.toFixed(4));const a=Math.floor(s/this._getTimeSignature());let c=s%1*4;s=Math.floor(s)%this._getTimeSignature();const d=c.toString();return d.length>3&&(c=parseFloat(parseFloat(d).toFixed(3))),[a,s,c].join(":")}toTicks(){const e=this._beatsToUnits(1),s=this.valueOf()/e;return Math.round(s*this._getPPQ())}toSeconds(){return this.valueOf()}toMidi(){return ftom(this.toFrequency())}_now(){return this.context.now()}}function Time(o,e){return new TimeClass(getContext(),o,e)}class FrequencyClass extends TimeClass{constructor(){super(...arguments),this.name="Frequency",this.defaultUnits="hz"}static get A4(){return getA4()}static set A4(e){setA4(e)}_getExpressions(){return Object.assign({},super._getExpressions(),{midi:{regexp:/^(\d+(?:\.\d+)?midi)/,method(e){return this.defaultUnits==="midi"?e:FrequencyClass.mtof(e)}},note:{regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method(e,s){const c=noteToScaleIndex[e.toLowerCase()]+(parseInt(s,10)+1)*12;return this.defaultUnits==="midi"?c:FrequencyClass.mtof(c)}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method(e,s,a){let c=1;return e&&e!=="0"&&(c*=this._beatsToUnits(this._getTimeSignature()*parseFloat(e))),s&&s!=="0"&&(c*=this._beatsToUnits(parseFloat(s))),a&&a!=="0"&&(c*=this._beatsToUnits(parseFloat(a)/4)),c}}})}transpose(e){return new FrequencyClass(this.context,this.valueOf()*intervalToFrequencyRatio(e))}harmonize(e){return e.map(s=>this.transpose(s))}toMidi(){return ftom(this.valueOf())}toNote(){const e=this.toFrequency(),s=Math.log2(e/FrequencyClass.A4);let a=Math.round(12*s)+57;const c=Math.floor(a/12);return c<0&&(a+=-12*c),scaleIndexToNote[a%12]+c.toString()}toSeconds(){return 1/super.toSeconds()}toTicks(){const e=this._beatsToUnits(1),s=this.valueOf()/e;return Math.floor(s*this._getPPQ())}_noArg(){return 0}_frequencyToUnits(e){return e}_ticksToUnits(e){return 1/(e*60/(this._getBpm()*this._getPPQ()))}_beatsToUnits(e){return 1/super._beatsToUnits(e)}_secondsToUnits(e){return 1/e}static mtof(e){return mtof(e)}static ftom(e){return ftom(e)}}const noteToScaleIndex={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},scaleIndexToNote=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];function Frequency(o,e){return new FrequencyClass(getContext(),o,e)}class TransportTimeClass extends TimeClass{constructor(){super(...arguments),this.name="TransportTime"}_now(){return this.context.transport.seconds}}function TransportTime(o,e){return new TransportTimeClass(getContext(),o,e)}class ToneWithContext extends Tone$1{constructor(){super();const e=optionsFromArguments(ToneWithContext.getDefaults(),arguments,["context"]);this.defaultContext?this.context=this.defaultContext:this.context=e.context}static getDefaults(){return{context:getContext()}}now(){return this.context.currentTime+this.context.lookAhead}immediate(){return this.context.currentTime}get sampleTime(){return 1/this.context.sampleRate}get blockTime(){return 128/this.context.sampleRate}toSeconds(e){return new TimeClass(this.context,e).toSeconds()}toFrequency(e){return new FrequencyClass(this.context,e).toFrequency()}toTicks(e){return new TransportTimeClass(this.context,e).toTicks()}_getPartialProperties(e){const s=this.get();return Object.keys(s).forEach(a=>{isUndef(e[a])&&delete s[a]}),s}get(){const e=getDefaultsFromInstance(this);return Object.keys(e).forEach(s=>{if(Reflect.has(this,s)){const a=this[s];isDefined(a)&&isDefined(a.value)&&isDefined(a.setValueAtTime)?e[s]=a.value:a instanceof ToneWithContext?e[s]=a._getPartialProperties(e[s]):isArray(a)||isNumber(a)||isString(a)||isBoolean(a)?e[s]=a:delete e[s]}}),e}set(e){return Object.keys(e).forEach(s=>{Reflect.has(this,s)&&isDefined(this[s])&&(this[s]&&isDefined(this[s].value)&&isDefined(this[s].setValueAtTime)?this[s].value!==e[s]&&(this[s].value=e[s]):this[s]instanceof ToneWithContext?this[s].set(e[s]):this[s]=e[s])}),this}}class StateTimeline extends Timeline{constructor(e="stopped"){super(),this.name="StateTimeline",this._initial=e,this.setStateAtTime(this._initial,0)}getValueAtTime(e){const s=this.get(e);return s!==null?s.state:this._initial}setStateAtTime(e,s,a){return assertRange(s,0),this.add(Object.assign({},a,{state:e,time:s})),this}getLastState(e,s){const a=this._search(s);for(let c=a;c>=0;c--){const d=this._timeline[c];if(d.state===e)return d}}getNextState(e,s){const a=this._search(s);if(a!==-1)for(let c=a;c<this._timeline.length;c++){const d=this._timeline[c];if(d.state===e)return d}}}class Param extends ToneWithContext{constructor(){super(optionsFromArguments(Param.getDefaults(),arguments,["param","units","convert"])),this.name="Param",this.overridden=!1,this._minOutput=1e-7;const e=optionsFromArguments(Param.getDefaults(),arguments,["param","units","convert"]);for(assert(isDefined(e.param)&&(isAudioParam(e.param)||e.param instanceof Param),"param must be an AudioParam");!isAudioParam(e.param);)e.param=e.param._param;this._swappable=isDefined(e.swappable)?e.swappable:!1,this._swappable?(this.input=this.context.createGain(),this._param=e.param,this.input.connect(this._param)):this._param=this.input=e.param,this._events=new Timeline(1e3),this._initialValue=this._param.defaultValue,this.units=e.units,this.convert=e.convert,this._minValue=e.minValue,this._maxValue=e.maxValue,isDefined(e.value)&&e.value!==this._toType(this._initialValue)&&this.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(ToneWithContext.getDefaults(),{convert:!0,units:"number"})}get value(){const e=this.now();return this.getValueAtTime(e)}set value(e){this.cancelScheduledValues(this.now()),this.setValueAtTime(e,this.now())}get minValue(){return isDefined(this._minValue)?this._minValue:this.units==="time"||this.units==="frequency"||this.units==="normalRange"||this.units==="positive"||this.units==="transportTime"||this.units==="ticks"||this.units==="bpm"||this.units==="hertz"||this.units==="samples"?0:this.units==="audioRange"?-1:this.units==="decibels"?-1/0:this._param.minValue}get maxValue(){return isDefined(this._maxValue)?this._maxValue:this.units==="normalRange"||this.units==="audioRange"?1:this._param.maxValue}_is(e,s){return this.units===s}_assertRange(e){return isDefined(this.maxValue)&&isDefined(this.minValue)&&assertRange(e,this._fromType(this.minValue),this._fromType(this.maxValue)),e}_fromType(e){return this.convert&&!this.overridden?this._is(e,"time")?this.toSeconds(e):this._is(e,"decibels")?dbToGain(e):this._is(e,"frequency")?this.toFrequency(e):e:this.overridden?0:e}_toType(e){return this.convert&&this.units==="decibels"?gainToDb(e):e}setValueAtTime(e,s){const a=this.toSeconds(s),c=this._fromType(e);return assert(isFinite(c)&&isFinite(a),`Invalid argument(s) to setValueAtTime: ${JSON.stringify(e)}, ${JSON.stringify(s)}`),this._assertRange(c),this.log(this.units,"setValueAtTime",e,a),this._events.add({time:a,type:"setValueAtTime",value:c}),this._param.setValueAtTime(c,a),this}getValueAtTime(e){const s=Math.max(this.toSeconds(e),0),a=this._events.getAfter(s),c=this._events.get(s);let d=this._initialValue;if(c===null)d=this._initialValue;else if(c.type==="setTargetAtTime"&&(a===null||a.type==="setValueAtTime")){const _=this._events.getBefore(c.time);let b;_===null?b=this._initialValue:b=_.value,c.type==="setTargetAtTime"&&(d=this._exponentialApproach(c.time,b,c.value,c.constant,s))}else if(a===null)d=c.value;else if(a.type==="linearRampToValueAtTime"||a.type==="exponentialRampToValueAtTime"){let _=c.value;if(c.type==="setTargetAtTime"){const b=this._events.getBefore(c.time);b===null?_=this._initialValue:_=b.value}a.type==="linearRampToValueAtTime"?d=this._linearInterpolate(c.time,_,a.time,a.value,s):d=this._exponentialInterpolate(c.time,_,a.time,a.value,s)}else d=c.value;return this._toType(d)}setRampPoint(e){e=this.toSeconds(e);let s=this.getValueAtTime(e);return this.cancelAndHoldAtTime(e),this._fromType(s)===0&&(s=this._toType(this._minOutput)),this.setValueAtTime(s,e),this}linearRampToValueAtTime(e,s){const a=this._fromType(e),c=this.toSeconds(s);return assert(isFinite(a)&&isFinite(c),`Invalid argument(s) to linearRampToValueAtTime: ${JSON.stringify(e)}, ${JSON.stringify(s)}`),this._assertRange(a),this._events.add({time:c,type:"linearRampToValueAtTime",value:a}),this.log(this.units,"linearRampToValueAtTime",e,c),this._param.linearRampToValueAtTime(a,c),this}exponentialRampToValueAtTime(e,s){let a=this._fromType(e);a=EQ(a,0)?this._minOutput:a,this._assertRange(a);const c=this.toSeconds(s);return assert(isFinite(a)&&isFinite(c),`Invalid argument(s) to exponentialRampToValueAtTime: ${JSON.stringify(e)}, ${JSON.stringify(s)}`),this._events.add({time:c,type:"exponentialRampToValueAtTime",value:a}),this.log(this.units,"exponentialRampToValueAtTime",e,c),this._param.exponentialRampToValueAtTime(a,c),this}exponentialRampTo(e,s,a){return a=this.toSeconds(a),this.setRampPoint(a),this.exponentialRampToValueAtTime(e,a+this.toSeconds(s)),this}linearRampTo(e,s,a){return a=this.toSeconds(a),this.setRampPoint(a),this.linearRampToValueAtTime(e,a+this.toSeconds(s)),this}targetRampTo(e,s,a){return a=this.toSeconds(a),this.setRampPoint(a),this.exponentialApproachValueAtTime(e,a,s),this}exponentialApproachValueAtTime(e,s,a){s=this.toSeconds(s),a=this.toSeconds(a);const c=Math.log(a+1)/Math.log(200);return this.setTargetAtTime(e,s,c),this.cancelAndHoldAtTime(s+a*.9),this.linearRampToValueAtTime(e,s+a),this}setTargetAtTime(e,s,a){const c=this._fromType(e);assert(isFinite(a)&&a>0,"timeConstant must be a number greater than 0");const d=this.toSeconds(s);return this._assertRange(c),assert(isFinite(c)&&isFinite(d),`Invalid argument(s) to setTargetAtTime: ${JSON.stringify(e)}, ${JSON.stringify(s)}`),this._events.add({constant:a,time:d,type:"setTargetAtTime",value:c}),this.log(this.units,"setTargetAtTime",e,d,a),this._param.setTargetAtTime(c,d,a),this}setValueCurveAtTime(e,s,a,c=1){a=this.toSeconds(a),s=this.toSeconds(s);const d=this._fromType(e[0])*c;this.setValueAtTime(this._toType(d),s);const _=a/(e.length-1);for(let b=1;b<e.length;b++){const k=this._fromType(e[b])*c;this.linearRampToValueAtTime(this._toType(k),s+b*_)}return this}cancelScheduledValues(e){const s=this.toSeconds(e);return assert(isFinite(s),`Invalid argument to cancelScheduledValues: ${JSON.stringify(e)}`),this._events.cancel(s),this._param.cancelScheduledValues(s),this.log(this.units,"cancelScheduledValues",s),this}cancelAndHoldAtTime(e){const s=this.toSeconds(e),a=this._fromType(this.getValueAtTime(s));assert(isFinite(s),`Invalid argument to cancelAndHoldAtTime: ${JSON.stringify(e)}`),this.log(this.units,"cancelAndHoldAtTime",s,"value="+a);const c=this._events.get(s),d=this._events.getAfter(s);return c&&EQ(c.time,s)?d?(this._param.cancelScheduledValues(d.time),this._events.cancel(d.time)):(this._param.cancelAndHoldAtTime(s),this._events.cancel(s+this.sampleTime)):d&&(this._param.cancelScheduledValues(d.time),this._events.cancel(d.time),d.type==="linearRampToValueAtTime"?this.linearRampToValueAtTime(this._toType(a),s):d.type==="exponentialRampToValueAtTime"&&this.exponentialRampToValueAtTime(this._toType(a),s)),this._events.add({time:s,type:"setValueAtTime",value:a}),this._param.setValueAtTime(a,s),this}rampTo(e,s=.1,a){return this.units==="frequency"||this.units==="bpm"||this.units==="decibels"?this.exponentialRampTo(e,s,a):this.linearRampTo(e,s,a),this}apply(e){const s=this.context.currentTime;e.setValueAtTime(this.getValueAtTime(s),s);const a=this._events.get(s);if(a&&a.type==="setTargetAtTime"){const c=this._events.getAfter(a.time),d=c?c.time:s+2,_=(d-s)/10;for(let b=s;b<d;b+=_)e.linearRampToValueAtTime(this.getValueAtTime(b),b)}return this._events.forEachAfter(this.context.currentTime,c=>{c.type==="cancelScheduledValues"?e.cancelScheduledValues(c.time):c.type==="setTargetAtTime"?e.setTargetAtTime(c.value,c.time,c.constant):e[c.type](c.value,c.time)}),this}setParam(e){assert(this._swappable,"The Param must be assigned as 'swappable' in the constructor");const s=this.input;return s.disconnect(this._param),this.apply(e),this._param=e,s.connect(this._param),this}dispose(){return super.dispose(),this._events.dispose(),this}get defaultValue(){return this._toType(this._param.defaultValue)}_exponentialApproach(e,s,a,c,d){return a+(s-a)*Math.exp(-(d-e)/c)}_linearInterpolate(e,s,a,c,d){return s+(c-s)*((d-e)/(a-e))}_exponentialInterpolate(e,s,a,c,d){return s*Math.pow(c/s,(d-e)/(a-e))}}class ToneAudioNode extends ToneWithContext{constructor(){super(...arguments),this.name="ToneAudioNode",this._internalChannels=[]}get numberOfInputs(){return isDefined(this.input)?isAudioParam(this.input)||this.input instanceof Param?1:this.input.numberOfInputs:0}get numberOfOutputs(){return isDefined(this.output)?this.output.numberOfOutputs:0}_isAudioNode(e){return isDefined(e)&&(e instanceof ToneAudioNode||isAudioNode(e))}_getInternalNodes(){const e=this._internalChannels.slice(0);return this._isAudioNode(this.input)&&e.push(this.input),this._isAudioNode(this.output)&&this.input!==this.output&&e.push(this.output),e}_setChannelProperties(e){this._getInternalNodes().forEach(a=>{a.channelCount=e.channelCount,a.channelCountMode=e.channelCountMode,a.channelInterpretation=e.channelInterpretation})}_getChannelProperties(){const e=this._getInternalNodes();assert(e.length>0,"ToneAudioNode does not have any internal nodes");const s=e[0];return{channelCount:s.channelCount,channelCountMode:s.channelCountMode,channelInterpretation:s.channelInterpretation}}get channelCount(){return this._getChannelProperties().channelCount}set channelCount(e){const s=this._getChannelProperties();this._setChannelProperties(Object.assign(s,{channelCount:e}))}get channelCountMode(){return this._getChannelProperties().channelCountMode}set channelCountMode(e){const s=this._getChannelProperties();this._setChannelProperties(Object.assign(s,{channelCountMode:e}))}get channelInterpretation(){return this._getChannelProperties().channelInterpretation}set channelInterpretation(e){const s=this._getChannelProperties();this._setChannelProperties(Object.assign(s,{channelInterpretation:e}))}connect(e,s=0,a=0){return connect(this,e,s,a),this}toDestination(){return this.connect(this.context.destination),this}toMaster(){return warn("toMaster() has been renamed toDestination()"),this.toDestination()}disconnect(e,s=0,a=0){return disconnect(this,e,s,a),this}chain(...e){return connectSeries(this,...e),this}fan(...e){return e.forEach(s=>this.connect(s)),this}dispose(){return super.dispose(),isDefined(this.input)&&(this.input instanceof ToneAudioNode?this.input.dispose():isAudioNode(this.input)&&this.input.disconnect()),isDefined(this.output)&&(this.output instanceof ToneAudioNode?this.output.dispose():isAudioNode(this.output)&&this.output.disconnect()),this._internalChannels=[],this}}function connectSeries(...o){const e=o.shift();o.reduce((s,a)=>(s instanceof ToneAudioNode?s.connect(a):isAudioNode(s)&&connect(s,a),a),e)}function connect(o,e,s=0,a=0){for(assert(isDefined(o),"Cannot connect from undefined node"),assert(isDefined(e),"Cannot connect to undefined node"),(e instanceof ToneAudioNode||isAudioNode(e))&&assert(e.numberOfInputs>0,"Cannot connect to node with no inputs"),assert(o.numberOfOutputs>0,"Cannot connect from node with no outputs");e instanceof ToneAudioNode||e instanceof Param;)isDefined(e.input)&&(e=e.input);for(;o instanceof ToneAudioNode;)isDefined(o.output)&&(o=o.output);isAudioParam(e)?o.connect(e,s):o.connect(e,s,a)}function disconnect(o,e,s=0,a=0){if(isDefined(e))for(;e instanceof ToneAudioNode;)e=e.input;for(;!isAudioNode(o);)isDefined(o.output)&&(o=o.output);isAudioParam(e)?o.disconnect(e,s):isAudioNode(e)?o.disconnect(e,s,a):o.disconnect()}class Gain$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Gain$1.getDefaults(),arguments,["gain","units"])),this.name="Gain",this._gainNode=this.context.createGain(),this.input=this._gainNode,this.output=this._gainNode;const e=optionsFromArguments(Gain$1.getDefaults(),arguments,["gain","units"]);this.gain=new Param({context:this.context,convert:e.convert,param:this._gainNode.gain,units:e.units,value:e.gain,minValue:e.minValue,maxValue:e.maxValue}),readOnly$1(this,"gain")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{convert:!0,gain:1,units:"gain"})}dispose(){return super.dispose(),this._gainNode.disconnect(),this.gain.dispose(),this}}class OneShotSource extends ToneAudioNode{constructor(e){super(e),this.onended=noOp,this._startTime=-1,this._stopTime=-1,this._timeout=-1,this.output=new Gain$1({context:this.context,gain:0}),this._gainNode=this.output,this.getStateAtTime=function(s){const a=this.toSeconds(s);return this._startTime!==-1&&a>=this._startTime&&(this._stopTime===-1||a<=this._stopTime)?"started":"stopped"},this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut,this._curve=e.curve,this.onended=e.onended}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{curve:"linear",fadeIn:0,fadeOut:0,onended:noOp})}_startGain(e,s=1){assert(this._startTime===-1,"Source cannot be started more than once");const a=this.toSeconds(this._fadeIn);return this._startTime=e+a,this._startTime=Math.max(this._startTime,this.context.currentTime),a>0?(this._gainNode.gain.setValueAtTime(0,e),this._curve==="linear"?this._gainNode.gain.linearRampToValueAtTime(s,e+a):this._gainNode.gain.exponentialApproachValueAtTime(s,e,a)):this._gainNode.gain.setValueAtTime(s,e),this}stop(e){return this.log("stop",e),this._stopGain(this.toSeconds(e)),this}_stopGain(e){assert(this._startTime!==-1,"'start' must be called before 'stop'"),this.cancelStop();const s=this.toSeconds(this._fadeOut);return this._stopTime=this.toSeconds(e)+s,this._stopTime=Math.max(this._stopTime,this.context.currentTime),s>0?this._curve==="linear"?this._gainNode.gain.linearRampTo(0,s,e):this._gainNode.gain.targetRampTo(0,s,e):(this._gainNode.gain.cancelAndHoldAtTime(e),this._gainNode.gain.setValueAtTime(0,e)),this.context.clearTimeout(this._timeout),this._timeout=this.context.setTimeout(()=>{const a=this._curve==="exponential"?s*2:0;this._stopSource(this.now()+a),this._onended()},this._stopTime-this.context.currentTime),this}_onended(){if(this.onended!==noOp&&(this.onended(this),this.onended=noOp,!this.context.isOffline)){const e=()=>this.dispose();typeof window.requestIdleCallback!="undefined"?window.requestIdleCallback(e):setTimeout(e,1e3)}}get state(){return this.getStateAtTime(this.now())}cancelStop(){return this.log("cancelStop"),assert(this._startTime!==-1,"Source is not started"),this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),this.context.clearTimeout(this._timeout),this._stopTime=-1,this}dispose(){return super.dispose(),this._gainNode.disconnect(),this}}class ToneConstantSource extends OneShotSource{constructor(){super(optionsFromArguments(ToneConstantSource.getDefaults(),arguments,["offset"])),this.name="ToneConstantSource",this._source=this.context.createConstantSource();const e=optionsFromArguments(ToneConstantSource.getDefaults(),arguments,["offset"]);connect(this._source,this._gainNode),this.offset=new Param({context:this.context,convert:e.convert,param:this._source.offset,units:e.units,value:e.offset,minValue:e.minValue,maxValue:e.maxValue})}static getDefaults(){return Object.assign(OneShotSource.getDefaults(),{convert:!0,offset:1,units:"number"})}start(e){const s=this.toSeconds(e);return this.log("start",s),this._startGain(s),this._source.start(s),this}_stopSource(e){this._source.stop(e)}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._source.disconnect(),this.offset.dispose(),this}}class Signal extends ToneAudioNode{constructor(){super(optionsFromArguments(Signal.getDefaults(),arguments,["value","units"])),this.name="Signal",this.override=!0;const e=optionsFromArguments(Signal.getDefaults(),arguments,["value","units"]);this.output=this._constantSource=new ToneConstantSource({context:this.context,convert:e.convert,offset:e.value,units:e.units,minValue:e.minValue,maxValue:e.maxValue}),this._constantSource.start(0),this.input=this._param=this._constantSource.offset}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{convert:!0,units:"number",value:0})}connect(e,s=0,a=0){return connectSignal(this,e,s,a),this}dispose(){return super.dispose(),this._param.dispose(),this._constantSource.dispose(),this}setValueAtTime(e,s){return this._param.setValueAtTime(e,s),this}getValueAtTime(e){return this._param.getValueAtTime(e)}setRampPoint(e){return this._param.setRampPoint(e),this}linearRampToValueAtTime(e,s){return this._param.linearRampToValueAtTime(e,s),this}exponentialRampToValueAtTime(e,s){return this._param.exponentialRampToValueAtTime(e,s),this}exponentialRampTo(e,s,a){return this._param.exponentialRampTo(e,s,a),this}linearRampTo(e,s,a){return this._param.linearRampTo(e,s,a),this}targetRampTo(e,s,a){return this._param.targetRampTo(e,s,a),this}exponentialApproachValueAtTime(e,s,a){return this._param.exponentialApproachValueAtTime(e,s,a),this}setTargetAtTime(e,s,a){return this._param.setTargetAtTime(e,s,a),this}setValueCurveAtTime(e,s,a,c){return this._param.setValueCurveAtTime(e,s,a,c),this}cancelScheduledValues(e){return this._param.cancelScheduledValues(e),this}cancelAndHoldAtTime(e){return this._param.cancelAndHoldAtTime(e),this}rampTo(e,s,a){return this._param.rampTo(e,s,a),this}get value(){return this._param.value}set value(e){this._param.value=e}get convert(){return this._param.convert}set convert(e){this._param.convert=e}get units(){return this._param.units}get overridden(){return this._param.overridden}set overridden(e){this._param.overridden=e}get maxValue(){return this._param.maxValue}get minValue(){return this._param.minValue}apply(e){return this._param.apply(e),this}}function connectSignal(o,e,s,a){(e instanceof Param||isAudioParam(e)||e instanceof Signal&&e.override)&&(e.cancelScheduledValues(0),e.setValueAtTime(0,0),e instanceof Signal&&(e.overridden=!0)),connect(o,e,s,a)}class TickParam extends Param{constructor(){super(optionsFromArguments(TickParam.getDefaults(),arguments,["value"])),this.name="TickParam",this._events=new Timeline(1/0),this._multiplier=1;const e=optionsFromArguments(TickParam.getDefaults(),arguments,["value"]);this._multiplier=e.multiplier,this._events.cancel(0),this._events.add({ticks:0,time:0,type:"setValueAtTime",value:this._fromType(e.value)}),this.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(Param.getDefaults(),{multiplier:1,units:"hertz",value:1})}setTargetAtTime(e,s,a){s=this.toSeconds(s),this.setRampPoint(s);const c=this._fromType(e),d=this._events.get(s),_=Math.round(Math.max(1/a,1));for(let b=0;b<=_;b++){const k=a*b+s,$=this._exponentialApproach(d.time,d.value,c,a,k);this.linearRampToValueAtTime(this._toType($),k)}return this}setValueAtTime(e,s){const a=this.toSeconds(s);super.setValueAtTime(e,s);const c=this._events.get(a),d=this._events.previousEvent(c),_=this._getTicksUntilEvent(d,a);return c.ticks=Math.max(_,0),this}linearRampToValueAtTime(e,s){const a=this.toSeconds(s);super.linearRampToValueAtTime(e,s);const c=this._events.get(a),d=this._events.previousEvent(c),_=this._getTicksUntilEvent(d,a);return c.ticks=Math.max(_,0),this}exponentialRampToValueAtTime(e,s){s=this.toSeconds(s);const a=this._fromType(e),c=this._events.get(s),d=Math.round(Math.max((s-c.time)*10,1)),_=(s-c.time)/d;for(let b=0;b<=d;b++){const k=_*b+c.time,$=this._exponentialInterpolate(c.time,c.value,s,a,k);this.linearRampToValueAtTime(this._toType($),k)}return this}_getTicksUntilEvent(e,s){if(e===null)e={ticks:0,time:0,type:"setValueAtTime",value:0};else if(isUndef(e.ticks)){const _=this._events.previousEvent(e);e.ticks=this._getTicksUntilEvent(_,e.time)}const a=this._fromType(this.getValueAtTime(e.time));let c=this._fromType(this.getValueAtTime(s));const d=this._events.get(s);return d&&d.time===s&&d.type==="setValueAtTime"&&(c=this._fromType(this.getValueAtTime(s-this.sampleTime))),.5*(s-e.time)*(a+c)+e.ticks}getTicksAtTime(e){const s=this.toSeconds(e),a=this._events.get(s);return Math.max(this._getTicksUntilEvent(a,s),0)}getDurationOfTicks(e,s){const a=this.toSeconds(s),c=this.getTicksAtTime(s);return this.getTimeOfTick(c+e)-a}getTimeOfTick(e){const s=this._events.get(e,"ticks"),a=this._events.getAfter(e,"ticks");if(s&&s.ticks===e)return s.time;if(s&&a&&a.type==="linearRampToValueAtTime"&&s.value!==a.value){const c=this._fromType(this.getValueAtTime(s.time)),_=(this._fromType(this.getValueAtTime(a.time))-c)/(a.time-s.time),b=Math.sqrt(Math.pow(c,2)-2*_*(s.ticks-e)),k=(-c+b)/_,$=(-c-b)/_;return(k>0?k:$)+s.time}else return s?s.value===0?1/0:s.time+(e-s.ticks)/s.value:e/this._initialValue}ticksToTime(e,s){return this.getDurationOfTicks(e,s)}timeToTicks(e,s){const a=this.toSeconds(s),c=this.toSeconds(e),d=this.getTicksAtTime(a);return this.getTicksAtTime(a+c)-d}_fromType(e){return this.units==="bpm"&&this.multiplier?1/(60/e/this.multiplier):super._fromType(e)}_toType(e){return this.units==="bpm"&&this.multiplier?e/this.multiplier*60:super._toType(e)}get multiplier(){return this._multiplier}set multiplier(e){const s=this.value;this._multiplier=e,this.cancelScheduledValues(0),this.setValueAtTime(s,0)}}class TickSignal extends Signal{constructor(){super(optionsFromArguments(TickSignal.getDefaults(),arguments,["value"])),this.name="TickSignal";const e=optionsFromArguments(TickSignal.getDefaults(),arguments,["value"]);this.input=this._param=new TickParam({context:this.context,convert:e.convert,multiplier:e.multiplier,param:this._constantSource.offset,units:e.units,value:e.value})}static getDefaults(){return Object.assign(Signal.getDefaults(),{multiplier:1,units:"hertz",value:1})}ticksToTime(e,s){return this._param.ticksToTime(e,s)}timeToTicks(e,s){return this._param.timeToTicks(e,s)}getTimeOfTick(e){return this._param.getTimeOfTick(e)}getDurationOfTicks(e,s){return this._param.getDurationOfTicks(e,s)}getTicksAtTime(e){return this._param.getTicksAtTime(e)}get multiplier(){return this._param.multiplier}set multiplier(e){this._param.multiplier=e}dispose(){return super.dispose(),this._param.dispose(),this}}class TickSource extends ToneWithContext{constructor(){super(optionsFromArguments(TickSource.getDefaults(),arguments,["frequency"])),this.name="TickSource",this._state=new StateTimeline,this._tickOffset=new Timeline;const e=optionsFromArguments(TickSource.getDefaults(),arguments,["frequency"]);this.frequency=new TickSignal({context:this.context,units:e.units,value:e.frequency}),readOnly$1(this,"frequency"),this._state.setStateAtTime("stopped",0),this.setTicksAtTime(0,0)}static getDefaults(){return Object.assign({frequency:1,units:"hertz"},ToneWithContext.getDefaults())}get state(){return this.getStateAtTime(this.now())}start(e,s){const a=this.toSeconds(e);return this._state.getValueAtTime(a)!=="started"&&(this._state.setStateAtTime("started",a),isDefined(s)&&this.setTicksAtTime(s,a)),this}stop(e){const s=this.toSeconds(e);if(this._state.getValueAtTime(s)==="stopped"){const a=this._state.get(s);a&&a.time>0&&(this._tickOffset.cancel(a.time),this._state.cancel(a.time))}return this._state.cancel(s),this._state.setStateAtTime("stopped",s),this.setTicksAtTime(0,s),this}pause(e){const s=this.toSeconds(e);return this._state.getValueAtTime(s)==="started"&&this._state.setStateAtTime("paused",s),this}cancel(e){return e=this.toSeconds(e),this._state.cancel(e),this._tickOffset.cancel(e),this}getTicksAtTime(e){const s=this.toSeconds(e),a=this._state.getLastState("stopped",s),c={state:"paused",time:s};this._state.add(c);let d=a,_=0;return this._state.forEachBetween(a.time,s+this.sampleTime,b=>{let k=d.time;const $=this._tickOffset.get(b.time);$&&$.time>=d.time&&(_=$.ticks,k=$.time),d.state==="started"&&b.state!=="started"&&(_+=this.frequency.getTicksAtTime(b.time)-this.frequency.getTicksAtTime(k)),d=b}),this._state.remove(c),_}get ticks(){return this.getTicksAtTime(this.now())}set ticks(e){this.setTicksAtTime(e,this.now())}get seconds(){return this.getSecondsAtTime(this.now())}set seconds(e){const s=this.now(),a=this.frequency.timeToTicks(e,s);this.setTicksAtTime(a,s)}getSecondsAtTime(e){e=this.toSeconds(e);const s=this._state.getLastState("stopped",e),a={state:"paused",time:e};this._state.add(a);let c=s,d=0;return this._state.forEachBetween(s.time,e+this.sampleTime,_=>{let b=c.time;const k=this._tickOffset.get(_.time);k&&k.time>=c.time&&(d=k.seconds,b=k.time),c.state==="started"&&_.state!=="started"&&(d+=_.time-b),c=_}),this._state.remove(a),d}setTicksAtTime(e,s){return s=this.toSeconds(s),this._tickOffset.cancel(s),this._tickOffset.add({seconds:this.frequency.getDurationOfTicks(e,s),ticks:e,time:s}),this}getStateAtTime(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)}getTimeOfTick(e,s=this.now()){const a=this._tickOffset.get(s),c=this._state.get(s),d=Math.max(a.time,c.time),_=this.frequency.getTicksAtTime(d)+e-a.ticks;return this.frequency.getTimeOfTick(_)}forEachTickBetween(e,s,a){let c=this._state.get(e);this._state.forEachBetween(e,s,_=>{c&&c.state==="started"&&_.state!=="started"&&this.forEachTickBetween(Math.max(c.time,e),_.time-this.sampleTime,a),c=_});let d=null;if(c&&c.state==="started"){const _=Math.max(c.time,e),b=this.frequency.getTicksAtTime(_),k=this.frequency.getTicksAtTime(c.time),$=b-k;let j=Math.ceil($)-$;j=EQ(j,1)?0:j;let _e=this.frequency.getTimeOfTick(b+j);for(;_e<s;){try{a(_e,Math.round(this.getTicksAtTime(_e)))}catch(et){d=et;break}_e+=this.frequency.getDurationOfTicks(1,_e)}}if(d)throw d;return this}dispose(){return super.dispose(),this._state.dispose(),this._tickOffset.dispose(),this.frequency.dispose(),this}}class Clock extends ToneWithContext{constructor(){super(optionsFromArguments(Clock.getDefaults(),arguments,["callback","frequency"])),this.name="Clock",this.callback=noOp,this._lastUpdate=0,this._state=new StateTimeline("stopped"),this._boundLoop=this._loop.bind(this);const e=optionsFromArguments(Clock.getDefaults(),arguments,["callback","frequency"]);this.callback=e.callback,this._tickSource=new TickSource({context:this.context,frequency:e.frequency,units:e.units}),this._lastUpdate=0,this.frequency=this._tickSource.frequency,readOnly$1(this,"frequency"),this._state.setStateAtTime("stopped",0),this.context.on("tick",this._boundLoop)}static getDefaults(){return Object.assign(ToneWithContext.getDefaults(),{callback:noOp,frequency:1,units:"hertz"})}get state(){return this._state.getValueAtTime(this.now())}start(e,s){assertContextRunning(this.context);const a=this.toSeconds(e);return this.log("start",a),this._state.getValueAtTime(a)!=="started"&&(this._state.setStateAtTime("started",a),this._tickSource.start(a,s),a<this._lastUpdate&&this.emit("start",a,s)),this}stop(e){const s=this.toSeconds(e);return this.log("stop",s),this._state.cancel(s),this._state.setStateAtTime("stopped",s),this._tickSource.stop(s),s<this._lastUpdate&&this.emit("stop",s),this}pause(e){const s=this.toSeconds(e);return this._state.getValueAtTime(s)==="started"&&(this._state.setStateAtTime("paused",s),this._tickSource.pause(s),s<this._lastUpdate&&this.emit("pause",s)),this}get ticks(){return Math.ceil(this.getTicksAtTime(this.now()))}set ticks(e){this._tickSource.ticks=e}get seconds(){return this._tickSource.seconds}set seconds(e){this._tickSource.seconds=e}getSecondsAtTime(e){return this._tickSource.getSecondsAtTime(e)}setTicksAtTime(e,s){return this._tickSource.setTicksAtTime(e,s),this}getTimeOfTick(e,s=this.now()){return this._tickSource.getTimeOfTick(e,s)}getTicksAtTime(e){return this._tickSource.getTicksAtTime(e)}nextTickTime(e,s){const a=this.toSeconds(s),c=this.getTicksAtTime(a);return this._tickSource.getTimeOfTick(c+e,a)}_loop(){const e=this._lastUpdate,s=this.now();this._lastUpdate=s,this.log("loop",e,s),e!==s&&(this._state.forEachBetween(e,s,a=>{switch(a.state){case"started":const c=this._tickSource.getTicksAtTime(a.time);this.emit("start",a.time,c);break;case"stopped":a.time!==0&&this.emit("stop",a.time);break;case"paused":this.emit("pause",a.time);break}}),this._tickSource.forEachTickBetween(e,s,(a,c)=>{this.callback(a,c)}))}getStateAtTime(e){const s=this.toSeconds(e);return this._state.getValueAtTime(s)}dispose(){return super.dispose(),this.context.off("tick",this._boundLoop),this._tickSource.dispose(),this._state.dispose(),this}}Emitter.mixin(Clock);class Delay extends ToneAudioNode{constructor(){super(optionsFromArguments(Delay.getDefaults(),arguments,["delayTime","maxDelay"])),this.name="Delay";const e=optionsFromArguments(Delay.getDefaults(),arguments,["delayTime","maxDelay"]),s=this.toSeconds(e.maxDelay);this._maxDelay=Math.max(s,this.toSeconds(e.delayTime)),this._delayNode=this.input=this.output=this.context.createDelay(s),this.delayTime=new Param({context:this.context,param:this._delayNode.delayTime,units:"time",value:e.delayTime,minValue:0,maxValue:this.maxDelay}),readOnly$1(this,"delayTime")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{delayTime:0,maxDelay:1})}get maxDelay(){return this._maxDelay}dispose(){return super.dispose(),this._delayNode.disconnect(),this.delayTime.dispose(),this}}function Offline(o,e,s=2,a=getContext().sampleRate){return __awaiter$4(this,void 0,void 0,function*(){const c=getContext(),d=new OfflineContext(s,e,a);setContext(d),yield o(d);const _=d.render();setContext(c);const b=yield _;return new ToneAudioBuffer(b)})}class ToneAudioBuffers extends Tone$1{constructor(){super(),this.name="ToneAudioBuffers",this._buffers=new Map,this._loadingCount=0;const e=optionsFromArguments(ToneAudioBuffers.getDefaults(),arguments,["urls","onload","baseUrl"],"urls");this.baseUrl=e.baseUrl,Object.keys(e.urls).forEach(s=>{this._loadingCount++;const a=e.urls[s];this.add(s,a,this._bufferLoaded.bind(this,e.onload),e.onerror)})}static getDefaults(){return{baseUrl:"",onerror:noOp,onload:noOp,urls:{}}}has(e){return this._buffers.has(e.toString())}get(e){return assert(this.has(e),`ToneAudioBuffers has no buffer named: ${e}`),this._buffers.get(e.toString())}_bufferLoaded(e){this._loadingCount--,this._loadingCount===0&&e&&e()}get loaded(){return Array.from(this._buffers).every(([e,s])=>s.loaded)}add(e,s,a=noOp,c=noOp){return isString(s)?this._buffers.set(e.toString(),new ToneAudioBuffer(this.baseUrl+s,a,c)):this._buffers.set(e.toString(),new ToneAudioBuffer(s,a,c)),this}dispose(){return super.dispose(),this._buffers.forEach(e=>e.dispose()),this._buffers.clear(),this}}class MidiClass extends FrequencyClass{constructor(){super(...arguments),this.name="MidiClass",this.defaultUnits="midi"}_frequencyToUnits(e){return ftom(super._frequencyToUnits(e))}_ticksToUnits(e){return ftom(super._ticksToUnits(e))}_beatsToUnits(e){return ftom(super._beatsToUnits(e))}_secondsToUnits(e){return ftom(super._secondsToUnits(e))}toMidi(){return this.valueOf()}toFrequency(){return mtof(this.toMidi())}transpose(e){return new MidiClass(this.context,this.toMidi()+e)}}function Midi(o,e){return new MidiClass(getContext(),o,e)}class TicksClass extends TransportTimeClass{constructor(){super(...arguments),this.name="Ticks",this.defaultUnits="i"}_now(){return this.context.transport.ticks}_beatsToUnits(e){return this._getPPQ()*e}_secondsToUnits(e){return Math.floor(e/(60/this._getBpm())*this._getPPQ())}_ticksToUnits(e){return e}toTicks(){return this.valueOf()}toSeconds(){return this.valueOf()/this._getPPQ()*(60/this._getBpm())}}function Ticks(o,e){return new TicksClass(getContext(),o,e)}class Draw$1 extends ToneWithContext{constructor(){super(...arguments),this.name="Draw",this.expiration=.25,this.anticipation=.008,this._events=new Timeline,this._boundDrawLoop=this._drawLoop.bind(this),this._animationFrame=-1}schedule(e,s){return this._events.add({callback:e,time:this.toSeconds(s)}),this._events.length===1&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop)),this}cancel(e){return this._events.cancel(this.toSeconds(e)),this}_drawLoop(){const e=this.context.currentTime;for(;this._events.length&&this._events.peek().time-this.anticipation<=e;){const s=this._events.shift();s&&e-s.time<=this.expiration&&s.callback()}this._events.length>0&&(this._animationFrame=requestAnimationFrame(this._boundDrawLoop))}dispose(){return super.dispose(),this._events.dispose(),cancelAnimationFrame(this._animationFrame),this}}onContextInit(o=>{o.draw=new Draw$1({context:o})});onContextClose(o=>{o.draw.dispose()});class IntervalTimeline extends Tone$1{constructor(){super(...arguments),this.name="IntervalTimeline",this._root=null,this._length=0}add(e){assert(isDefined(e.time),"Events must have a time property"),assert(isDefined(e.duration),"Events must have a duration parameter"),e.time=e.time.valueOf();let s=new IntervalNode(e.time,e.time+e.duration,e);for(this._root===null?this._root=s:this._root.insert(s),this._length++;s!==null;)s.updateHeight(),s.updateMax(),this._rebalance(s),s=s.parent;return this}remove(e){if(this._root!==null){const s=[];this._root.search(e.time,s);for(const a of s)if(a.event===e){this._removeNode(a),this._length--;break}}return this}get length(){return this._length}cancel(e){return this.forEachFrom(e,s=>this.remove(s)),this}_setRoot(e){this._root=e,this._root!==null&&(this._root.parent=null)}_replaceNodeInParent(e,s){e.parent!==null?(e.isLeftChild()?e.parent.left=s:e.parent.right=s,this._rebalance(e.parent)):this._setRoot(s)}_removeNode(e){if(e.left===null&&e.right===null)this._replaceNodeInParent(e,null);else if(e.right===null)this._replaceNodeInParent(e,e.left);else if(e.left===null)this._replaceNodeInParent(e,e.right);else{const s=e.getBalance();let a,c=null;if(s>0)if(e.left.right===null)a=e.left,a.right=e.right,c=a;else{for(a=e.left.right;a.right!==null;)a=a.right;a.parent&&(a.parent.right=a.left,c=a.parent,a.left=e.left,a.right=e.right)}else if(e.right.left===null)a=e.right,a.left=e.left,c=a;else{for(a=e.right.left;a.left!==null;)a=a.left;a.parent&&(a.parent.left=a.right,c=a.parent,a.left=e.left,a.right=e.right)}e.parent!==null?e.isLeftChild()?e.parent.left=a:e.parent.right=a:this._setRoot(a),c&&this._rebalance(c)}e.dispose()}_rotateLeft(e){const s=e.parent,a=e.isLeftChild(),c=e.right;c&&(e.right=c.left,c.left=e),s!==null?a?s.left=c:s.right=c:this._setRoot(c)}_rotateRight(e){const s=e.parent,a=e.isLeftChild(),c=e.left;c&&(e.left=c.right,c.right=e),s!==null?a?s.left=c:s.right=c:this._setRoot(c)}_rebalance(e){const s=e.getBalance();s>1&&e.left?e.left.getBalance()<0?this._rotateLeft(e.left):this._rotateRight(e):s<-1&&e.right&&(e.right.getBalance()>0?this._rotateRight(e.right):this._rotateLeft(e))}get(e){if(this._root!==null){const s=[];if(this._root.search(e,s),s.length>0){let a=s[0];for(let c=1;c<s.length;c++)s[c].low>a.low&&(a=s[c]);return a.event}}return null}forEach(e){if(this._root!==null){const s=[];this._root.traverse(a=>s.push(a)),s.forEach(a=>{a.event&&e(a.event)})}return this}forEachAtTime(e,s){if(this._root!==null){const a=[];this._root.search(e,a),a.forEach(c=>{c.event&&s(c.event)})}return this}forEachFrom(e,s){if(this._root!==null){const a=[];this._root.searchAfter(e,a),a.forEach(c=>{c.event&&s(c.event)})}return this}dispose(){return super.dispose(),this._root!==null&&this._root.traverse(e=>e.dispose()),this._root=null,this}}class IntervalNode{constructor(e,s,a){this._left=null,this._right=null,this.parent=null,this.height=0,this.event=a,this.low=e,this.high=s,this.max=this.high}insert(e){e.low<=this.low?this.left===null?this.left=e:this.left.insert(e):this.right===null?this.right=e:this.right.insert(e)}search(e,s){e>this.max||(this.left!==null&&this.left.search(e,s),this.low<=e&&this.high>e&&s.push(this),!(this.low>e)&&this.right!==null&&this.right.search(e,s))}searchAfter(e,s){this.low>=e&&(s.push(this),this.left!==null&&this.left.searchAfter(e,s)),this.right!==null&&this.right.searchAfter(e,s)}traverse(e){e(this),this.left!==null&&this.left.traverse(e),this.right!==null&&this.right.traverse(e)}updateHeight(){this.left!==null&&this.right!==null?this.height=Math.max(this.left.height,this.right.height)+1:this.right!==null?this.height=this.right.height+1:this.left!==null?this.height=this.left.height+1:this.height=0}updateMax(){this.max=this.high,this.left!==null&&(this.max=Math.max(this.max,this.left.max)),this.right!==null&&(this.max=Math.max(this.max,this.right.max))}getBalance(){let e=0;return this.left!==null&&this.right!==null?e=this.left.height-this.right.height:this.left!==null?e=this.left.height+1:this.right!==null&&(e=-(this.right.height+1)),e}isLeftChild(){return this.parent!==null&&this.parent.left===this}get left(){return this._left}set left(e){this._left=e,e!==null&&(e.parent=this),this.updateHeight(),this.updateMax()}get right(){return this._right}set right(e){this._right=e,e!==null&&(e.parent=this),this.updateHeight(),this.updateMax()}dispose(){this.parent=null,this._left=null,this._right=null,this.event=null}}var Units=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));class Volume extends ToneAudioNode{constructor(){super(optionsFromArguments(Volume.getDefaults(),arguments,["volume"])),this.name="Volume";const e=optionsFromArguments(Volume.getDefaults(),arguments,["volume"]);this.input=this.output=new Gain$1({context:this.context,gain:e.volume,units:"decibels"}),this.volume=this.output.gain,readOnly$1(this,"volume"),this._unmutedVolume=e.volume,this.mute=e.mute}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,volume:0})}get mute(){return this.volume.value===-1/0}set mute(e){!this.mute&&e?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!e&&(this.volume.value=this._unmutedVolume)}dispose(){return super.dispose(),this.input.dispose(),this.volume.dispose(),this}}class Destination$2 extends ToneAudioNode{constructor(){super(optionsFromArguments(Destination$2.getDefaults(),arguments)),this.name="Destination",this.input=new Volume({context:this.context}),this.output=new Gain$1({context:this.context}),this.volume=this.input.volume;const e=optionsFromArguments(Destination$2.getDefaults(),arguments);connectSeries(this.input,this.output,this.context.rawContext.destination),this.mute=e.mute,this._internalChannels=[this.input,this.context.rawContext.destination,this.output]}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,volume:0})}get mute(){return this.input.mute}set mute(e){this.input.mute=e}chain(...e){return this.input.disconnect(),e.unshift(this.input),e.push(this.output),connectSeries(...e),this}get maxChannelCount(){return this.context.rawContext.destination.maxChannelCount}dispose(){return super.dispose(),this.volume.dispose(),this}}onContextInit(o=>{o.destination=new Destination$2({context:o})});onContextClose(o=>{o.destination.dispose()});class TimelineValue extends Tone$1{constructor(e){super(),this.name="TimelineValue",this._timeline=new Timeline({memory:10}),this._initialValue=e}set(e,s){return this._timeline.add({value:e,time:s}),this}get(e){const s=this._timeline.get(e);return s?s.value:this._initialValue}}class TransportEvent{constructor(e,s){this.id=TransportEvent._eventId++;const a=Object.assign(TransportEvent.getDefaults(),s);this.transport=e,this.callback=a.callback,this._once=a.once,this.time=a.time}static getDefaults(){return{callback:noOp,once:!1,time:0}}invoke(e){this.callback&&(this.callback(e),this._once&&this.transport.clear(this.id))}dispose(){return this.callback=void 0,this}}TransportEvent._eventId=0;class TransportRepeatEvent extends TransportEvent{constructor(e,s){super(e,s),this._currentId=-1,this._nextId=-1,this._nextTick=this.time,this._boundRestart=this._restart.bind(this);const a=Object.assign(TransportRepeatEvent.getDefaults(),s);this.duration=new TicksClass(e.context,a.duration).valueOf(),this._interval=new TicksClass(e.context,a.interval).valueOf(),this._nextTick=a.time,this.transport.on("start",this._boundRestart),this.transport.on("loopStart",this._boundRestart),this.context=this.transport.context,this._restart()}static getDefaults(){return Object.assign({},TransportEvent.getDefaults(),{duration:1/0,interval:1,once:!1})}invoke(e){this._createEvents(e),super.invoke(e)}_createEvents(e){const s=this.transport.getTicksAtTime(e);s>=this.time&&s>=this._nextTick&&this._nextTick+this._interval<this.time+this.duration&&(this._nextTick+=this._interval,this._currentId=this._nextId,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new TicksClass(this.context,this._nextTick).toSeconds()))}_restart(e){this.transport.clear(this._currentId),this.transport.clear(this._nextId),this._nextTick=this.time;const s=this.transport.getTicksAtTime(e);s>this.time&&(this._nextTick=this.time+Math.ceil((s-this.time)/this._interval)*this._interval),this._currentId=this.transport.scheduleOnce(this.invoke.bind(this),new TicksClass(this.context,this._nextTick).toSeconds()),this._nextTick+=this._interval,this._nextId=this.transport.scheduleOnce(this.invoke.bind(this),new TicksClass(this.context,this._nextTick).toSeconds())}dispose(){return super.dispose(),this.transport.clear(this._currentId),this.transport.clear(this._nextId),this.transport.off("start",this._boundRestart),this.transport.off("loopStart",this._boundRestart),this}}class Transport$1 extends ToneWithContext{constructor(){super(optionsFromArguments(Transport$1.getDefaults(),arguments)),this.name="Transport",this._loop=new TimelineValue(!1),this._loopStart=0,this._loopEnd=0,this._scheduledEvents={},this._timeline=new Timeline,this._repeatedEvents=new IntervalTimeline,this._syncedSignals=[],this._swingAmount=0;const e=optionsFromArguments(Transport$1.getDefaults(),arguments);this._ppq=e.ppq,this._clock=new Clock({callback:this._processTick.bind(this),context:this.context,frequency:0,units:"bpm"}),this._bindClockEvents(),this.bpm=this._clock.frequency,this._clock.frequency.multiplier=e.ppq,this.bpm.setValueAtTime(e.bpm,0),readOnly$1(this,"bpm"),this._timeSignature=e.timeSignature,this._swingTicks=e.ppq/2}static getDefaults(){return Object.assign(ToneWithContext.getDefaults(),{bpm:120,loopEnd:"4m",loopStart:0,ppq:192,swing:0,swingSubdivision:"8n",timeSignature:4})}_processTick(e,s){if(this._loop.get(e)&&s>=this._loopEnd&&(this.emit("loopEnd",e),this._clock.setTicksAtTime(this._loopStart,e),s=this._loopStart,this.emit("loopStart",e,this._clock.getSecondsAtTime(e)),this.emit("loop",e)),this._swingAmount>0&&s%this._ppq!==0&&s%(this._swingTicks*2)!==0){const a=s%(this._swingTicks*2)/(this._swingTicks*2),c=Math.sin(a*Math.PI)*this._swingAmount;e+=new TicksClass(this.context,this._swingTicks*2/3).toSeconds()*c}this._timeline.forEachAtTime(s,a=>a.invoke(e))}schedule(e,s){const a=new TransportEvent(this,{callback:e,time:new TransportTimeClass(this.context,s).toTicks()});return this._addEvent(a,this._timeline)}scheduleRepeat(e,s,a,c=1/0){const d=new TransportRepeatEvent(this,{callback:e,duration:new TimeClass(this.context,c).toTicks(),interval:new TimeClass(this.context,s).toTicks(),time:new TransportTimeClass(this.context,a).toTicks()});return this._addEvent(d,this._repeatedEvents)}scheduleOnce(e,s){const a=new TransportEvent(this,{callback:e,once:!0,time:new TransportTimeClass(this.context,s).toTicks()});return this._addEvent(a,this._timeline)}clear(e){if(this._scheduledEvents.hasOwnProperty(e)){const s=this._scheduledEvents[e.toString()];s.timeline.remove(s.event),s.event.dispose(),delete this._scheduledEvents[e.toString()]}return this}_addEvent(e,s){return this._scheduledEvents[e.id.toString()]={event:e,timeline:s},s.add(e),e.id}cancel(e=0){const s=this.toTicks(e);return this._timeline.forEachFrom(s,a=>this.clear(a.id)),this._repeatedEvents.forEachFrom(s,a=>this.clear(a.id)),this}_bindClockEvents(){this._clock.on("start",(e,s)=>{s=new TicksClass(this.context,s).toSeconds(),this.emit("start",e,s)}),this._clock.on("stop",e=>{this.emit("stop",e)}),this._clock.on("pause",e=>{this.emit("pause",e)})}get state(){return this._clock.getStateAtTime(this.now())}start(e,s){let a;return isDefined(s)&&(a=this.toTicks(s)),this._clock.start(e,a),this}stop(e){return this._clock.stop(e),this}pause(e){return this._clock.pause(e),this}toggle(e){return e=this.toSeconds(e),this._clock.getStateAtTime(e)!=="started"?this.start(e):this.stop(e),this}get timeSignature(){return this._timeSignature}set timeSignature(e){isArray(e)&&(e=e[0]/e[1]*4),this._timeSignature=e}get loopStart(){return new TimeClass(this.context,this._loopStart,"i").toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e)}get loopEnd(){return new TimeClass(this.context,this._loopEnd,"i").toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e)}get loop(){return this._loop.get(this.now())}set loop(e){this._loop.set(e,this.now())}setLoopPoints(e,s){return this.loopStart=e,this.loopEnd=s,this}get swing(){return this._swingAmount}set swing(e){this._swingAmount=e}get swingSubdivision(){return new TicksClass(this.context,this._swingTicks).toNotation()}set swingSubdivision(e){this._swingTicks=this.toTicks(e)}get position(){const e=this.now(),s=this._clock.getTicksAtTime(e);return new TicksClass(this.context,s).toBarsBeatsSixteenths()}set position(e){const s=this.toTicks(e);this.ticks=s}get seconds(){return this._clock.seconds}set seconds(e){const s=this.now(),a=this._clock.frequency.timeToTicks(e,s);this.ticks=a}get progress(){if(this.loop){const e=this.now();return(this._clock.getTicksAtTime(e)-this._loopStart)/(this._loopEnd-this._loopStart)}else return 0}get ticks(){return this._clock.ticks}set ticks(e){if(this._clock.ticks!==e){const s=this.now();if(this.state==="started"){const a=this._clock.getTicksAtTime(s),c=this._clock.frequency.getDurationOfTicks(Math.ceil(a)-a,s),d=s+c;this.emit("stop",d),this._clock.setTicksAtTime(e,d),this.emit("start",d,this._clock.getSecondsAtTime(d))}else this._clock.setTicksAtTime(e,s)}}getTicksAtTime(e){return Math.round(this._clock.getTicksAtTime(e))}getSecondsAtTime(e){return this._clock.getSecondsAtTime(e)}get PPQ(){return this._clock.frequency.multiplier}set PPQ(e){this._clock.frequency.multiplier=e}nextSubdivision(e){if(e=this.toTicks(e),this.state!=="started")return 0;{const s=this.now(),a=this.getTicksAtTime(s),c=e-a%e;return this._clock.nextTickTime(c,s)}}syncSignal(e,s){if(!s){const c=this.now();if(e.getValueAtTime(c)!==0){const d=this.bpm.getValueAtTime(c),_=1/(60/d/this.PPQ);s=e.getValueAtTime(c)/_}else s=0}const a=new Gain$1(s);return this.bpm.connect(a),a.connect(e._param),this._syncedSignals.push({initial:e.value,ratio:a,signal:e}),e.value=0,this}unsyncSignal(e){for(let s=this._syncedSignals.length-1;s>=0;s--){const a=this._syncedSignals[s];a.signal===e&&(a.ratio.dispose(),a.signal.value=a.initial,this._syncedSignals.splice(s,1))}return this}dispose(){return super.dispose(),this._clock.dispose(),writable(this,"bpm"),this._timeline.dispose(),this._repeatedEvents.dispose(),this}}Emitter.mixin(Transport$1);onContextInit(o=>{o.transport=new Transport$1({context:o})});onContextClose(o=>{o.transport.dispose()});class Source extends ToneAudioNode{constructor(e){super(e),this.input=void 0,this._state=new StateTimeline("stopped"),this._synced=!1,this._scheduled=[],this._syncedStart=noOp,this._syncedStop=noOp,this._state.memory=100,this._state.increasing=!0,this._volume=this.output=new Volume({context:this.context,mute:e.mute,volume:e.volume}),this.volume=this._volume.volume,readOnly$1(this,"volume"),this.onstop=e.onstop}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,onstop:noOp,volume:0})}get state(){return this._synced?this.context.transport.state==="started"?this._state.getValueAtTime(this.context.transport.seconds):"stopped":this._state.getValueAtTime(this.now())}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}_clampToCurrentTime(e){return this._synced?e:Math.max(e,this.context.currentTime)}start(e,s,a){let c=isUndef(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(c=this._clampToCurrentTime(c),!this._synced&&this._state.getValueAtTime(c)==="started")assert(GT(c,this._state.get(c).time),"Start time must be strictly greater than previous start time"),this._state.cancel(c),this._state.setStateAtTime("started",c),this.log("restart",c),this.restart(c,s,a);else if(this.log("start",c),this._state.setStateAtTime("started",c),this._synced){const d=this._state.get(c);d&&(d.offset=this.toSeconds(defaultArg(s,0)),d.duration=a?this.toSeconds(a):void 0);const _=this.context.transport.schedule(b=>{this._start(b,s,a)},c);this._scheduled.push(_),this.context.transport.state==="started"&&this.context.transport.getSecondsAtTime(this.immediate())>c&&this._syncedStart(this.now(),this.context.transport.seconds)}else assertContextRunning(this.context),this._start(c,s,a);return this}stop(e){let s=isUndef(e)&&this._synced?this.context.transport.seconds:this.toSeconds(e);if(s=this._clampToCurrentTime(s),this._state.getValueAtTime(s)==="started"||isDefined(this._state.getNextState("started",s))){if(this.log("stop",s),!this._synced)this._stop(s);else{const a=this.context.transport.schedule(this._stop.bind(this),s);this._scheduled.push(a)}this._state.cancel(s),this._state.setStateAtTime("stopped",s)}return this}restart(e,s,a){return e=this.toSeconds(e),this._state.getValueAtTime(e)==="started"&&(this._state.cancel(e),this._restart(e,s,a)),this}sync(){return this._synced||(this._synced=!0,this._syncedStart=(e,s)=>{if(s>0){const a=this._state.get(s);if(a&&a.state==="started"&&a.time!==s){const c=s-this.toSeconds(a.time);let d;a.duration&&(d=this.toSeconds(a.duration)-c),this._start(e,this.toSeconds(a.offset)+c,d)}}},this._syncedStop=e=>{const s=this.context.transport.getSecondsAtTime(Math.max(e-this.sampleTime,0));this._state.getValueAtTime(s)==="started"&&this._stop(e)},this.context.transport.on("start",this._syncedStart),this.context.transport.on("loopStart",this._syncedStart),this.context.transport.on("stop",this._syncedStop),this.context.transport.on("pause",this._syncedStop),this.context.transport.on("loopEnd",this._syncedStop)),this}unsync(){return this._synced&&(this.context.transport.off("stop",this._syncedStop),this.context.transport.off("pause",this._syncedStop),this.context.transport.off("loopEnd",this._syncedStop),this.context.transport.off("start",this._syncedStart),this.context.transport.off("loopStart",this._syncedStart)),this._synced=!1,this._scheduled.forEach(e=>this.context.transport.clear(e)),this._scheduled=[],this._state.cancel(0),this._stop(0),this}dispose(){return super.dispose(),this.onstop=noOp,this.unsync(),this._volume.dispose(),this._state.dispose(),this}}class ToneBufferSource extends OneShotSource{constructor(){super(optionsFromArguments(ToneBufferSource.getDefaults(),arguments,["url","onload"])),this.name="ToneBufferSource",this._source=this.context.createBufferSource(),this._internalChannels=[this._source],this._sourceStarted=!1,this._sourceStopped=!1;const e=optionsFromArguments(ToneBufferSource.getDefaults(),arguments,["url","onload"]);connect(this._source,this._gainNode),this._source.onended=()=>this._stopSource(),this.playbackRate=new Param({context:this.context,param:this._source.playbackRate,units:"positive",value:e.playbackRate}),this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this._buffer=new ToneAudioBuffer(e.url,e.onload,e.onerror),this._internalChannels.push(this._source)}static getDefaults(){return Object.assign(OneShotSource.getDefaults(),{url:new ToneAudioBuffer,loop:!1,loopEnd:0,loopStart:0,onload:noOp,onerror:noOp,playbackRate:1})}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e}get curve(){return this._curve}set curve(e){this._curve=e}start(e,s,a,c=1){assert(this.buffer.loaded,"buffer is either not set or not loaded");const d=this.toSeconds(e);this._startGain(d,c),this.loop?s=defaultArg(s,this.loopStart):s=defaultArg(s,0);let _=Math.max(this.toSeconds(s),0);if(this.loop){const b=this.toSeconds(this.loopEnd)||this.buffer.duration,k=this.toSeconds(this.loopStart),$=b-k;GTE(_,b)&&(_=(_-k)%$+k),EQ(_,this.buffer.duration)&&(_=0)}if(this._source.buffer=this.buffer.get(),this._source.loopEnd=this.toSeconds(this.loopEnd)||this.buffer.duration,LT(_,this.buffer.duration)&&(this._sourceStarted=!0,this._source.start(d,_)),isDefined(a)){let b=this.toSeconds(a);b=Math.max(b,0),this.stop(d+b)}return this}_stopSource(e){!this._sourceStopped&&this._sourceStarted&&(this._sourceStopped=!0,this._source.stop(this.toSeconds(e)),this._onended())}get loopStart(){return this._source.loopStart}set loopStart(e){this._source.loopStart=this.toSeconds(e)}get loopEnd(){return this._source.loopEnd}set loopEnd(e){this._source.loopEnd=this.toSeconds(e)}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._source.loop}set loop(e){this._source.loop=e,this._sourceStarted&&this.cancelStop()}dispose(){return super.dispose(),this._source.onended=null,this._source.disconnect(),this._buffer.dispose(),this.playbackRate.dispose(),this}}class Noise extends Source{constructor(){super(optionsFromArguments(Noise.getDefaults(),arguments,["type"])),this.name="Noise",this._source=null;const e=optionsFromArguments(Noise.getDefaults(),arguments,["type"]);this._playbackRate=e.playbackRate,this.type=e.type,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(Source.getDefaults(),{fadeIn:0,fadeOut:0,playbackRate:1,type:"white"})}get type(){return this._type}set type(e){if(assert(e in _noiseBuffers,"Noise: invalid type: "+e),this._type!==e&&(this._type=e,this.state==="started")){const s=this.now();this._stop(s),this._start(s)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._source&&(this._source.playbackRate.value=e)}_start(e){const s=_noiseBuffers[this._type];this._source=new ToneBufferSource({url:s,context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,loop:!0,onended:()=>this.onstop(this),playbackRate:this._playbackRate}).connect(this.output),this._source.start(this.toSeconds(e),Math.random()*(s.duration-.001))}_stop(e){this._source&&(this._source.stop(this.toSeconds(e)),this._source=null)}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._source&&(this._source.fadeIn=this._fadeIn)}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._source&&(this._source.fadeOut=this._fadeOut)}_restart(e){this._stop(e),this._start(e)}dispose(){return super.dispose(),this._source&&this._source.disconnect(),this}}const BUFFER_LENGTH=44100*5,NUM_CHANNELS=2,_noiseCache={brown:null,pink:null,white:null},_noiseBuffers={get brown(){if(!_noiseCache.brown){const o=[];for(let e=0;e<NUM_CHANNELS;e++){const s=new Float32Array(BUFFER_LENGTH);o[e]=s;let a=0;for(let c=0;c<BUFFER_LENGTH;c++){const d=Math.random()*2-1;s[c]=(a+.02*d)/1.02,a=s[c],s[c]*=3.5}}_noiseCache.brown=new ToneAudioBuffer().fromArray(o)}return _noiseCache.brown},get pink(){if(!_noiseCache.pink){const o=[];for(let e=0;e<NUM_CHANNELS;e++){const s=new Float32Array(BUFFER_LENGTH);o[e]=s;let a,c,d,_,b,k,$;a=c=d=_=b=k=$=0;for(let j=0;j<BUFFER_LENGTH;j++){const _e=Math.random()*2-1;a=.99886*a+_e*.0555179,c=.99332*c+_e*.0750759,d=.969*d+_e*.153852,_=.8665*_+_e*.3104856,b=.55*b+_e*.5329522,k=-.7616*k-_e*.016898,s[j]=a+c+d+_+b+k+$+_e*.5362,s[j]*=.11,$=_e*.115926}}_noiseCache.pink=new ToneAudioBuffer().fromArray(o)}return _noiseCache.pink},get white(){if(!_noiseCache.white){const o=[];for(let e=0;e<NUM_CHANNELS;e++){const s=new Float32Array(BUFFER_LENGTH);o[e]=s;for(let a=0;a<BUFFER_LENGTH;a++)s[a]=Math.random()*2-1}_noiseCache.white=new ToneAudioBuffer().fromArray(o)}return _noiseCache.white}};class UserMedia extends ToneAudioNode{constructor(){super(optionsFromArguments(UserMedia.getDefaults(),arguments,["volume"])),this.name="UserMedia";const e=optionsFromArguments(UserMedia.getDefaults(),arguments,["volume"]);this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,readOnly$1(this,"volume"),this.mute=e.mute}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{mute:!1,volume:0})}open(e){return __awaiter$4(this,void 0,void 0,function*(){assert(UserMedia.supported,"UserMedia is not supported"),this.state==="started"&&this.close();const s=yield UserMedia.enumerateDevices();isNumber(e)?this._device=s[e]:(this._device=s.find(d=>d.label===e||d.deviceId===e),!this._device&&s.length>0&&(this._device=s[0]),assert(isDefined(this._device),`No matching device ${e}`));const a={audio:{echoCancellation:!1,sampleRate:this.context.sampleRate,noiseSuppression:!1,mozNoiseSuppression:!1}};this._device&&(a.audio.deviceId=this._device.deviceId);const c=yield navigator.mediaDevices.getUserMedia(a);if(!this._stream){this._stream=c;const d=this.context.createMediaStreamSource(c);connect(d,this.output),this._mediaStream=d}return this})}close(){return this._stream&&this._mediaStream&&(this._stream.getAudioTracks().forEach(e=>{e.stop()}),this._stream=void 0,this._mediaStream.disconnect(),this._mediaStream=void 0),this._device=void 0,this}static enumerateDevices(){return __awaiter$4(this,void 0,void 0,function*(){return(yield navigator.mediaDevices.enumerateDevices()).filter(s=>s.kind==="audioinput")})}get state(){return this._stream&&this._stream.active?"started":"stopped"}get deviceId(){if(this._device)return this._device.deviceId}get groupId(){if(this._device)return this._device.groupId}get label(){if(this._device)return this._device.label}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}dispose(){return super.dispose(),this.close(),this._volume.dispose(),this.volume.dispose(),this}static get supported(){return isDefined(navigator.mediaDevices)&&isDefined(navigator.mediaDevices.getUserMedia)}}function generateWaveform(o,e){return __awaiter$4(this,void 0,void 0,function*(){const s=e/o.context.sampleRate,a=new OfflineContext(1,s,o.context.sampleRate);return new o.constructor(Object.assign(o.get(),{frequency:2/s,detune:0,context:a})).toDestination().start(0),(yield a.render()).getChannelData(0)})}class ToneOscillatorNode extends OneShotSource{constructor(){super(optionsFromArguments(ToneOscillatorNode.getDefaults(),arguments,["frequency","type"])),this.name="ToneOscillatorNode",this._oscillator=this.context.createOscillator(),this._internalChannels=[this._oscillator];const e=optionsFromArguments(ToneOscillatorNode.getDefaults(),arguments,["frequency","type"]);connect(this._oscillator,this._gainNode),this.type=e.type,this.frequency=new Param({context:this.context,param:this._oscillator.frequency,units:"frequency",value:e.frequency}),this.detune=new Param({context:this.context,param:this._oscillator.detune,units:"cents",value:e.detune}),readOnly$1(this,["frequency","detune"])}static getDefaults(){return Object.assign(OneShotSource.getDefaults(),{detune:0,frequency:440,type:"sine"})}start(e){const s=this.toSeconds(e);return this.log("start",s),this._startGain(s),this._oscillator.start(s),this}_stopSource(e){this._oscillator.stop(e)}setPeriodicWave(e){return this._oscillator.setPeriodicWave(e),this}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e}dispose(){return super.dispose(),this.state==="started"&&this.stop(),this._oscillator.disconnect(),this.frequency.dispose(),this.detune.dispose(),this}}class Oscillator extends Source{constructor(){super(optionsFromArguments(Oscillator.getDefaults(),arguments,["frequency","type"])),this.name="Oscillator",this._oscillator=null;const e=optionsFromArguments(Oscillator.getDefaults(),arguments,["frequency","type"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency}),readOnly$1(this,"frequency"),this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),readOnly$1(this,"detune"),this._partials=e.partials,this._partialCount=e.partialCount,this._type=e.type,e.partialCount&&e.type!=="custom"&&(this._type=this.baseType+e.partialCount.toString()),this.phase=e.phase}static getDefaults(){return Object.assign(Source.getDefaults(),{detune:0,frequency:440,partialCount:0,partials:[],phase:0,type:"sine"})}_start(e){const s=this.toSeconds(e),a=new ToneOscillatorNode({context:this.context,onended:()=>this.onstop(this)});this._oscillator=a,this._wave?this._oscillator.setPeriodicWave(this._wave):this._oscillator.type=this._type,this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(s)}_stop(e){const s=this.toSeconds(e);this._oscillator&&this._oscillator.stop(s)}_restart(e){const s=this.toSeconds(e);return this.log("restart",s),this._oscillator&&this._oscillator.cancelStop(),this._state.cancel(s),this}syncFrequency(){return this.context.transport.syncSignal(this.frequency),this}unsyncFrequency(){return this.context.transport.unsyncSignal(this.frequency),this}_getCachedPeriodicWave(){if(this._type==="custom")return Oscillator._periodicWaveCache.find(s=>s.phase===this._phase&&deepEquals(s.partials,this._partials));{const e=Oscillator._periodicWaveCache.find(s=>s.type===this._type&&s.phase===this._phase);return this._partialCount=e?e.partialCount:this._partialCount,e}}get type(){return this._type}set type(e){this._type=e;const s=["sine","square","sawtooth","triangle"].indexOf(e)!==-1;if(this._phase===0&&s)this._wave=void 0,this._partialCount=0,this._oscillator!==null&&(this._oscillator.type=e);else{const a=this._getCachedPeriodicWave();if(isDefined(a)){const{partials:c,wave:d}=a;this._wave=d,this._partials=c,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave)}else{const[c,d]=this._getRealImaginary(e,this._phase),_=this.context.createPeriodicWave(c,d);this._wave=_,this._oscillator!==null&&this._oscillator.setPeriodicWave(this._wave),Oscillator._periodicWaveCache.push({imag:d,partialCount:this._partialCount,partials:this._partials,phase:this._phase,real:c,type:this._type,wave:this._wave}),Oscillator._periodicWaveCache.length>100&&Oscillator._periodicWaveCache.shift()}}}get baseType(){return this._type.replace(this.partialCount.toString(),"")}set baseType(e){this.partialCount&&this._type!=="custom"&&e!=="custom"?this.type=e+this.partialCount:this.type=e}get partialCount(){return this._partialCount}set partialCount(e){assertRange(e,0);let s=this._type;const a=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(this._type);if(a&&(s=a[1]),this._type!=="custom")e===0?this.type=s:this.type=s+e.toString();else{const c=new Float32Array(e);this._partials.forEach((d,_)=>c[_]=d),this._partials=Array.from(c),this.type=this._type}}_getRealImaginary(e,s){let c=2048;const d=new Float32Array(c),_=new Float32Array(c);let b=1;if(e==="custom"){if(b=this._partials.length+1,this._partialCount=this._partials.length,c=b,this._partials.length===0)return[d,_]}else{const k=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(e);k?(b=parseInt(k[2],10)+1,this._partialCount=parseInt(k[2],10),e=k[1],b=Math.max(b,2),c=b):this._partialCount=0,this._partials=[]}for(let k=1;k<c;++k){const $=2/(k*Math.PI);let j;switch(e){case"sine":j=k<=b?1:0,this._partials[k-1]=j;break;case"square":j=k&1?2*$:0,this._partials[k-1]=j;break;case"sawtooth":j=$*(k&1?1:-1),this._partials[k-1]=j;break;case"triangle":k&1?j=2*($*$)*(k-1>>1&1?-1:1):j=0,this._partials[k-1]=j;break;case"custom":j=this._partials[k-1];break;default:throw new TypeError("Oscillator: invalid type: "+e)}j!==0?(d[k]=-j*Math.sin(s*k),_[k]=j*Math.cos(s*k)):(d[k]=0,_[k]=0)}return[d,_]}_inverseFFT(e,s,a){let c=0;const d=e.length;for(let _=0;_<d;_++)c+=e[_]*Math.cos(_*a)+s[_]*Math.sin(_*a);return c}getInitialValue(){const[e,s]=this._getRealImaginary(this._type,0);let a=0;const c=Math.PI*2,d=32;for(let _=0;_<d;_++)a=Math.max(this._inverseFFT(e,s,_/d*c),a);return clamp(-this._inverseFFT(e,s,this._phase)/a,-1,1)}get partials(){return this._partials.slice(0,this.partialCount)}set partials(e){this._partials=e,this._partialCount=this._partials.length,e.length&&(this.type="custom")}get phase(){return this._phase*(180/Math.PI)}set phase(e){this._phase=e*Math.PI/180,this.type=this._type}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this._oscillator!==null&&this._oscillator.dispose(),this._wave=void 0,this.frequency.dispose(),this.detune.dispose(),this}}Oscillator._periodicWaveCache=[];class SignalOperator extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(SignalOperator.getDefaults(),arguments,["context"])))}connect(e,s=0,a=0){return connectSignal(this,e,s,a),this}}class WaveShaper extends SignalOperator{constructor(){super(Object.assign(optionsFromArguments(WaveShaper.getDefaults(),arguments,["mapping","length"]))),this.name="WaveShaper",this._shaper=this.context.createWaveShaper(),this.input=this._shaper,this.output=this._shaper;const e=optionsFromArguments(WaveShaper.getDefaults(),arguments,["mapping","length"]);isArray(e.mapping)||e.mapping instanceof Float32Array?this.curve=Float32Array.from(e.mapping):isFunction(e.mapping)&&this.setMap(e.mapping,e.length)}static getDefaults(){return Object.assign(Signal.getDefaults(),{length:1024})}setMap(e,s=1024){const a=new Float32Array(s);for(let c=0,d=s;c<d;c++){const _=c/(d-1)*2-1;a[c]=e(_,c)}return this.curve=a,this}get curve(){return this._shaper.curve}set curve(e){this._shaper.curve=e}get oversample(){return this._shaper.oversample}set oversample(e){const s=["none","2x","4x"].some(a=>a.includes(e));assert(s,"oversampling must be either 'none', '2x', or '4x'"),this._shaper.oversample=e}dispose(){return super.dispose(),this._shaper.disconnect(),this}}class AudioToGain extends SignalOperator{constructor(){super(...arguments),this.name="AudioToGain",this._norm=new WaveShaper({context:this.context,mapping:e=>(e+1)/2}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class Multiply extends Signal{constructor(){super(Object.assign(optionsFromArguments(Multiply.getDefaults(),arguments,["value"]))),this.name="Multiply",this.override=!1;const e=optionsFromArguments(Multiply.getDefaults(),arguments,["value"]);this._mult=this.input=this.output=new Gain$1({context:this.context,minValue:e.minValue,maxValue:e.maxValue}),this.factor=this._param=this._mult.gain,this.factor.setValueAtTime(e.value,0)}static getDefaults(){return Object.assign(Signal.getDefaults(),{value:0})}dispose(){return super.dispose(),this._mult.dispose(),this}}class AMOscillator extends Source{constructor(){super(optionsFromArguments(AMOscillator.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="AMOscillator",this._modulationScale=new AudioToGain({context:this.context}),this._modulationNode=new Gain$1({context:this.context});const e=optionsFromArguments(AMOscillator.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new Oscillator({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this._modulator=new Oscillator({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new Multiply({context:this.context,units:"positive",value:e.harmonicity}),this.frequency.chain(this.harmonicity,this._modulator.frequency),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),readOnly$1(this,["frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Oscillator.getDefaults(),{harmonicity:1,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){this._modulator.restart(e),this._carrier.restart(e)}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this._modulationScale.dispose(),this}}class FMOscillator extends Source{constructor(){super(optionsFromArguments(FMOscillator.getDefaults(),arguments,["frequency","type","modulationType"])),this.name="FMOscillator",this._modulationNode=new Gain$1({context:this.context,gain:0});const e=optionsFromArguments(FMOscillator.getDefaults(),arguments,["frequency","type","modulationType"]);this._carrier=new Oscillator({context:this.context,detune:e.detune,frequency:0,onstop:()=>this.onstop(this),phase:e.phase,type:e.type}),this.detune=this._carrier.detune,this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency}),this._modulator=new Oscillator({context:this.context,phase:e.phase,type:e.modulationType}),this.harmonicity=new Multiply({context:this.context,units:"positive",value:e.harmonicity}),this.modulationIndex=new Multiply({context:this.context,units:"positive",value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),readOnly$1(this,["modulationIndex","frequency","detune","harmonicity"])}static getDefaults(){return Object.assign(Oscillator.getDefaults(),{harmonicity:1,modulationIndex:2,modulationType:"square"})}_start(e){this._modulator.start(e),this._carrier.start(e)}_stop(e){this._modulator.stop(e),this._carrier.stop(e)}_restart(e){return this._modulator.restart(e),this._carrier.restart(e),this}get type(){return this._carrier.type}set type(e){this._carrier.type=e}get baseType(){return this._carrier.baseType}set baseType(e){this._carrier.baseType=e}get partialCount(){return this._carrier.partialCount}set partialCount(e){this._carrier.partialCount=e}get modulationType(){return this._modulator.type}set modulationType(e){this._modulator.type=e}get phase(){return this._carrier.phase}set phase(e){this._carrier.phase=e,this._modulator.phase=e}get partials(){return this._carrier.partials}set partials(e){this._carrier.partials=e}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this.frequency.dispose(),this.harmonicity.dispose(),this._carrier.dispose(),this._modulator.dispose(),this._modulationNode.dispose(),this.modulationIndex.dispose(),this}}class PulseOscillator extends Source{constructor(){super(optionsFromArguments(PulseOscillator.getDefaults(),arguments,["frequency","width"])),this.name="PulseOscillator",this._widthGate=new Gain$1({context:this.context,gain:0}),this._thresh=new WaveShaper({context:this.context,mapping:s=>s<=0?-1:1});const e=optionsFromArguments(PulseOscillator.getDefaults(),arguments,["frequency","width"]);this.width=new Signal({context:this.context,units:"audioRange",value:e.width}),this._triangle=new Oscillator({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase,type:"triangle"}),this.frequency=this._triangle.frequency,this.detune=this._triangle.detune,this._triangle.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),readOnly$1(this,["width","frequency","detune"])}static getDefaults(){return Object.assign(Source.getDefaults(),{detune:0,frequency:440,phase:0,type:"pulse",width:.2})}_start(e){e=this.toSeconds(e),this._triangle.start(e),this._widthGate.gain.setValueAtTime(1,e)}_stop(e){e=this.toSeconds(e),this._triangle.stop(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(0,e)}_restart(e){this._triangle.restart(e),this._widthGate.gain.cancelScheduledValues(e),this._widthGate.gain.setValueAtTime(1,e)}get phase(){return this._triangle.phase}set phase(e){this._triangle.phase=e}get type(){return"pulse"}get baseType(){return"pulse"}get partials(){return[]}get partialCount(){return 0}set carrierType(e){this._triangle.type=e}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this._triangle.dispose(),this.width.dispose(),this._widthGate.dispose(),this._thresh.dispose(),this}}class FatOscillator extends Source{constructor(){super(optionsFromArguments(FatOscillator.getDefaults(),arguments,["frequency","type","spread"])),this.name="FatOscillator",this._oscillators=[];const e=optionsFromArguments(FatOscillator.getDefaults(),arguments,["frequency","type","spread"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=e.partials,this._partialCount=e.partialCount,this.count=e.count,readOnly$1(this,["frequency","detune"])}static getDefaults(){return Object.assign(Oscillator.getDefaults(),{count:3,spread:20,type:"sawtooth"})}_start(e){e=this.toSeconds(e),this._forEach(s=>s.start(e))}_stop(e){e=this.toSeconds(e),this._forEach(s=>s.stop(e))}_restart(e){this._forEach(s=>s.restart(e))}_forEach(e){for(let s=0;s<this._oscillators.length;s++)e(this._oscillators[s],s)}get type(){return this._type}set type(e){this._type=e,this._forEach(s=>s.type=e)}get spread(){return this._spread}set spread(e){if(this._spread=e,this._oscillators.length>1){const s=-e/2,a=e/(this._oscillators.length-1);this._forEach((c,d)=>c.detune.value=s+a*d)}}get count(){return this._oscillators.length}set count(e){if(assertRange(e,1),this._oscillators.length!==e){this._forEach(s=>s.dispose()),this._oscillators=[];for(let s=0;s<e;s++){const a=new Oscillator({context:this.context,volume:-6-e*1.1,type:this._type,phase:this._phase+s/e*360,partialCount:this._partialCount,onstop:s===0?()=>this.onstop(this):noOp});this.type==="custom"&&(a.partials=this._partials),this.frequency.connect(a.frequency),this.detune.connect(a.detune),a.detune.overridden=!1,a.connect(this.output),this._oscillators[s]=a}this.spread=this._spread,this.state==="started"&&this._forEach(s=>s.start())}}get phase(){return this._phase}set phase(e){this._phase=e,this._forEach((s,a)=>s.phase=this._phase+a/this.count*360)}get baseType(){return this._oscillators[0].baseType}set baseType(e){this._forEach(s=>s.baseType=e),this._type=this._oscillators[0].type}get partials(){return this._oscillators[0].partials}set partials(e){this._partials=e,this._partialCount=this._partials.length,e.length&&(this._type="custom",this._forEach(s=>s.partials=e))}get partialCount(){return this._oscillators[0].partialCount}set partialCount(e){this._partialCount=e,this._forEach(s=>s.partialCount=e),this._type=this._oscillators[0].type}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this.frequency.dispose(),this.detune.dispose(),this._forEach(e=>e.dispose()),this}}class PWMOscillator extends Source{constructor(){super(optionsFromArguments(PWMOscillator.getDefaults(),arguments,["frequency","modulationFrequency"])),this.name="PWMOscillator",this.sourceType="pwm",this._scale=new Multiply({context:this.context,value:2});const e=optionsFromArguments(PWMOscillator.getDefaults(),arguments,["frequency","modulationFrequency"]);this._pulse=new PulseOscillator({context:this.context,frequency:e.modulationFrequency}),this._pulse.carrierType="sine",this.modulationFrequency=this._pulse.frequency,this._modulator=new Oscillator({context:this.context,detune:e.detune,frequency:e.frequency,onstop:()=>this.onstop(this),phase:e.phase}),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),readOnly$1(this,["modulationFrequency","frequency","detune"])}static getDefaults(){return Object.assign(Source.getDefaults(),{detune:0,frequency:440,modulationFrequency:.4,phase:0,type:"pwm"})}_start(e){e=this.toSeconds(e),this._modulator.start(e),this._pulse.start(e)}_stop(e){e=this.toSeconds(e),this._modulator.stop(e),this._pulse.stop(e)}_restart(e){this._modulator.restart(e),this._pulse.restart(e)}get type(){return"pwm"}get baseType(){return"pwm"}get partials(){return[]}get partialCount(){return 0}get phase(){return this._modulator.phase}set phase(e){this._modulator.phase=e}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this._pulse.dispose(),this._scale.dispose(),this._modulator.dispose(),this}}const OmniOscillatorSourceMap={am:AMOscillator,fat:FatOscillator,fm:FMOscillator,oscillator:Oscillator,pulse:PulseOscillator,pwm:PWMOscillator};class OmniOscillator extends Source{constructor(){super(optionsFromArguments(OmniOscillator.getDefaults(),arguments,["frequency","type"])),this.name="OmniOscillator";const e=optionsFromArguments(OmniOscillator.getDefaults(),arguments,["frequency","type"]);this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),readOnly$1(this,["frequency","detune"]),this.set(e)}static getDefaults(){return Object.assign(Oscillator.getDefaults(),FMOscillator.getDefaults(),AMOscillator.getDefaults(),FatOscillator.getDefaults(),PulseOscillator.getDefaults(),PWMOscillator.getDefaults())}_start(e){this._oscillator.start(e)}_stop(e){this._oscillator.stop(e)}_restart(e){return this._oscillator.restart(e),this}get type(){let e="";return["am","fm","fat"].some(s=>this._sourceType===s)&&(e=this._sourceType),e+this._oscillator.type}set type(e){e.substr(0,2)==="fm"?(this._createNewOscillator("fm"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):e.substr(0,2)==="am"?(this._createNewOscillator("am"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(2)):e.substr(0,3)==="fat"?(this._createNewOscillator("fat"),this._oscillator=this._oscillator,this._oscillator.type=e.substr(3)):e==="pwm"?(this._createNewOscillator("pwm"),this._oscillator=this._oscillator):e==="pulse"?this._createNewOscillator("pulse"):(this._createNewOscillator("oscillator"),this._oscillator=this._oscillator,this._oscillator.type=e)}get partials(){return this._oscillator.partials}set partials(e){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partials=e)}get partialCount(){return this._oscillator.partialCount}set partialCount(e){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&(this._oscillator.partialCount=e)}set(e){return Reflect.has(e,"type")&&e.type&&(this.type=e.type),super.set(e),this}_createNewOscillator(e){if(e!==this._sourceType){this._sourceType=e;const s=OmniOscillatorSourceMap[e],a=this.now();if(this._oscillator){const c=this._oscillator;c.stop(a),this.context.setTimeout(()=>c.dispose(),this.blockTime)}this._oscillator=new s({context:this.context}),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this._oscillator.onstop=()=>this.onstop(this),this.state==="started"&&this._oscillator.start(a)}}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e}get sourceType(){return this._sourceType}set sourceType(e){let s="sine";this._oscillator.type!=="pwm"&&this._oscillator.type!=="pulse"&&(s=this._oscillator.type),e==="fm"?this.type="fm"+s:e==="am"?this.type="am"+s:e==="fat"?this.type="fat"+s:e==="oscillator"?this.type=s:e==="pulse"?this.type="pulse":e==="pwm"&&(this.type="pwm")}_getOscType(e,s){return e instanceof OmniOscillatorSourceMap[s]}get baseType(){return this._oscillator.baseType}set baseType(e){!this._getOscType(this._oscillator,"pulse")&&!this._getOscType(this._oscillator,"pwm")&&e!=="pulse"&&e!=="pwm"&&(this._oscillator.baseType=e)}get width(){if(this._getOscType(this._oscillator,"pulse"))return this._oscillator.width}get count(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.count}set count(e){this._getOscType(this._oscillator,"fat")&&isNumber(e)&&(this._oscillator.count=e)}get spread(){if(this._getOscType(this._oscillator,"fat"))return this._oscillator.spread}set spread(e){this._getOscType(this._oscillator,"fat")&&isNumber(e)&&(this._oscillator.spread=e)}get modulationType(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.modulationType}set modulationType(e){(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))&&isString(e)&&(this._oscillator.modulationType=e)}get modulationIndex(){if(this._getOscType(this._oscillator,"fm"))return this._oscillator.modulationIndex}get harmonicity(){if(this._getOscType(this._oscillator,"fm")||this._getOscType(this._oscillator,"am"))return this._oscillator.harmonicity}get modulationFrequency(){if(this._getOscType(this._oscillator,"pwm"))return this._oscillator.modulationFrequency}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){return generateWaveform(this,e)})}dispose(){return super.dispose(),this.detune.dispose(),this.frequency.dispose(),this._oscillator.dispose(),this}}class Add extends Signal{constructor(){super(Object.assign(optionsFromArguments(Add.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Add",this._sum=new Gain$1({context:this.context}),this.input=this._sum,this.output=this._sum,this.addend=this._param,connectSeries(this._constantSource,this._sum)}static getDefaults(){return Object.assign(Signal.getDefaults(),{value:0})}dispose(){return super.dispose(),this._sum.dispose(),this}}class Scale extends SignalOperator{constructor(){super(Object.assign(optionsFromArguments(Scale.getDefaults(),arguments,["min","max"]))),this.name="Scale";const e=optionsFromArguments(Scale.getDefaults(),arguments,["min","max"]);this._mult=this.input=new Multiply({context:this.context,value:e.max-e.min}),this._add=this.output=new Add({context:this.context,value:e.min}),this._min=e.min,this._max=e.max,this.input.connect(this.output)}static getDefaults(){return Object.assign(SignalOperator.getDefaults(),{max:1,min:0})}get min(){return this._min}set min(e){this._min=e,this._setRange()}get max(){return this._max}set max(e){this._max=e,this._setRange()}_setRange(){this._add.value=this._min,this._mult.value=this._max-this._min}dispose(){return super.dispose(),this._add.dispose(),this._mult.dispose(),this}}class Zero extends SignalOperator{constructor(){super(Object.assign(optionsFromArguments(Zero.getDefaults(),arguments))),this.name="Zero",this._gain=new Gain$1({context:this.context}),this.output=this._gain,this.input=void 0,connect(this.context.getConstant(0),this._gain)}dispose(){return super.dispose(),disconnect(this.context.getConstant(0),this._gain),this}}class LFO extends ToneAudioNode{constructor(){super(optionsFromArguments(LFO.getDefaults(),arguments,["frequency","min","max"])),this.name="LFO",this._stoppedValue=0,this._units="number",this.convert=!0,this._fromType=Param.prototype._fromType,this._toType=Param.prototype._toType,this._is=Param.prototype._is,this._clampValue=Param.prototype._clampValue;const e=optionsFromArguments(LFO.getDefaults(),arguments,["frequency","min","max"]);this._oscillator=new Oscillator(e),this.frequency=this._oscillator.frequency,this._amplitudeGain=new Gain$1({context:this.context,gain:e.amplitude,units:"normalRange"}),this.amplitude=this._amplitudeGain.gain,this._stoppedSignal=new Signal({context:this.context,units:"audioRange",value:0}),this._zeros=new Zero({context:this.context}),this._a2g=new AudioToGain({context:this.context}),this._scaler=this.output=new Scale({context:this.context,max:e.max,min:e.min}),this.units=e.units,this.min=e.min,this.max=e.max,this._oscillator.chain(this._amplitudeGain,this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),readOnly$1(this,["amplitude","frequency"]),this.phase=e.phase}static getDefaults(){return Object.assign(Oscillator.getDefaults(),{amplitude:1,frequency:"4n",max:1,min:0,type:"sine",units:"number"})}start(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(0,e),this._oscillator.start(e),this}stop(e){return e=this.toSeconds(e),this._stoppedSignal.setValueAtTime(this._stoppedValue,e),this._oscillator.stop(e),this}sync(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this}unsync(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this}_setStoppedValue(){this._stoppedValue=this._oscillator.getInitialValue(),this._stoppedSignal.value=this._stoppedValue}get min(){return this._toType(this._scaler.min)}set min(e){e=this._fromType(e),this._scaler.min=e}get max(){return this._toType(this._scaler.max)}set max(e){e=this._fromType(e),this._scaler.max=e}get type(){return this._oscillator.type}set type(e){this._oscillator.type=e,this._setStoppedValue()}get partials(){return this._oscillator.partials}set partials(e){this._oscillator.partials=e,this._setStoppedValue()}get phase(){return this._oscillator.phase}set phase(e){this._oscillator.phase=e,this._setStoppedValue()}get units(){return this._units}set units(e){const s=this.min,a=this.max;this._units=e,this.min=s,this.max=a}get state(){return this._oscillator.state}connect(e,s,a){return(e instanceof Param||e instanceof Signal)&&(this.convert=e.convert,this.units=e.units),connectSignal(this,e,s,a),this}dispose(){return super.dispose(),this._oscillator.dispose(),this._stoppedSignal.dispose(),this._zeros.dispose(),this._scaler.dispose(),this._a2g.dispose(),this._amplitudeGain.dispose(),this.amplitude.dispose(),this}}function range(o,e=1/0){const s=new WeakMap;return function(a,c){Reflect.defineProperty(a,c,{configurable:!0,enumerable:!0,get:function(){return s.get(this)},set:function(d){assertRange(d,o,e),s.set(this,d)}})}}function timeRange(o,e=1/0){const s=new WeakMap;return function(a,c){Reflect.defineProperty(a,c,{configurable:!0,enumerable:!0,get:function(){return s.get(this)},set:function(d){assertRange(this.toSeconds(d),o,e),s.set(this,d)}})}}class Player extends Source{constructor(){super(optionsFromArguments(Player.getDefaults(),arguments,["url","onload"])),this.name="Player",this._activeSources=new Set;const e=optionsFromArguments(Player.getDefaults(),arguments,["url","onload"]);this._buffer=new ToneAudioBuffer({onload:this._onload.bind(this,e.onload),onerror:e.onerror,reverse:e.reverse,url:e.url}),this.autostart=e.autostart,this._loop=e.loop,this._loopStart=e.loopStart,this._loopEnd=e.loopEnd,this._playbackRate=e.playbackRate,this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut}static getDefaults(){return Object.assign(Source.getDefaults(),{autostart:!1,fadeIn:0,fadeOut:0,loop:!1,loopEnd:0,loopStart:0,onload:noOp,onerror:noOp,playbackRate:1,reverse:!1})}load(e){return __awaiter$4(this,void 0,void 0,function*(){return yield this._buffer.load(e),this._onload(),this})}_onload(e=noOp){e(),this.autostart&&this.start()}_onSourceEnd(e){this.onstop(this),this._activeSources.delete(e),this._activeSources.size===0&&!this._synced&&this._state.getValueAtTime(this.now())==="started"&&(this._state.cancel(this.now()),this._state.setStateAtTime("stopped",this.now()))}start(e,s,a){return super.start(e,s,a),this}_start(e,s,a){this._loop?s=defaultArg(s,this._loopStart):s=defaultArg(s,0);const c=this.toSeconds(s),d=a;a=defaultArg(a,Math.max(this._buffer.duration-c,0));let _=this.toSeconds(a);_=_/this._playbackRate,e=this.toSeconds(e);const b=new ToneBufferSource({url:this._buffer,context:this.context,fadeIn:this.fadeIn,fadeOut:this.fadeOut,loop:this._loop,loopEnd:this._loopEnd,loopStart:this._loopStart,onended:this._onSourceEnd.bind(this),playbackRate:this._playbackRate}).connect(this.output);!this._loop&&!this._synced&&(this._state.cancel(e+_),this._state.setStateAtTime("stopped",e+_,{implicitEnd:!0})),this._activeSources.add(b),this._loop&&isUndef(d)?b.start(e,c):b.start(e,c,_-this.toSeconds(this.fadeOut))}_stop(e){const s=this.toSeconds(e);this._activeSources.forEach(a=>a.stop(s))}restart(e,s,a){return super.restart(e,s,a),this}_restart(e,s,a){this._stop(e),this._start(e,s,a)}seek(e,s){const a=this.toSeconds(s);if(this._state.getValueAtTime(a)==="started"){const c=this.toSeconds(e);this._stop(a),this._start(a,c)}return this}setLoopPoints(e,s){return this.loopStart=e,this.loopEnd=s,this}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this.buffer.loaded&&assertRange(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach(s=>{s.loopStart=e})}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,this.buffer.loaded&&assertRange(this.toSeconds(e),0,this.buffer.duration),this._activeSources.forEach(s=>{s.loopEnd=e})}get buffer(){return this._buffer}set buffer(e){this._buffer.set(e)}get loop(){return this._loop}set loop(e){if(this._loop!==e&&(this._loop=e,this._activeSources.forEach(s=>{s.loop=e}),e)){const s=this._state.getNextState("stopped",this.now());s&&this._state.cancel(s.time)}}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e;const s=this.now(),a=this._state.getNextState("stopped",s);a&&a.implicitEnd&&(this._state.cancel(a.time),this._activeSources.forEach(c=>c.cancelStop())),this._activeSources.forEach(c=>{c.playbackRate.setValueAtTime(e,s)})}get reverse(){return this._buffer.reverse}set reverse(e){this._buffer.reverse=e}get loaded(){return this._buffer.loaded}dispose(){return super.dispose(),this._activeSources.forEach(e=>e.dispose()),this._activeSources.clear(),this._buffer.dispose(),this}}__decorate([timeRange(0)],Player.prototype,"fadeIn",void 0);__decorate([timeRange(0)],Player.prototype,"fadeOut",void 0);class Players$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Players$1.getDefaults(),arguments,["urls","onload"],"urls")),this.name="Players",this.input=void 0,this._players=new Map;const e=optionsFromArguments(Players$1.getDefaults(),arguments,["urls","onload"],"urls");this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,readOnly$1(this,"volume"),this._buffers=new ToneAudioBuffers({urls:e.urls,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.mute=e.mute,this._fadeIn=e.fadeIn,this._fadeOut=e.fadeOut}static getDefaults(){return Object.assign(Source.getDefaults(),{baseUrl:"",fadeIn:0,fadeOut:0,mute:!1,onload:noOp,onerror:noOp,urls:{},volume:0})}get mute(){return this._volume.mute}set mute(e){this._volume.mute=e}get fadeIn(){return this._fadeIn}set fadeIn(e){this._fadeIn=e,this._players.forEach(s=>{s.fadeIn=e})}get fadeOut(){return this._fadeOut}set fadeOut(e){this._fadeOut=e,this._players.forEach(s=>{s.fadeOut=e})}get state(){return Array.from(this._players).some(([s,a])=>a.state==="started")?"started":"stopped"}has(e){return this._buffers.has(e)}player(e){if(assert(this.has(e),`No Player with the name ${e} exists on this object`),!this._players.has(e)){const s=new Player({context:this.context,fadeIn:this._fadeIn,fadeOut:this._fadeOut,url:this._buffers.get(e)}).connect(this.output);this._players.set(e,s)}return this._players.get(e)}get loaded(){return this._buffers.loaded}add(e,s,a){return assert(!this._buffers.has(e),"A buffer with that name already exists on this object"),this._buffers.add(e,s,a),this}stopAll(e){return this._players.forEach(s=>s.stop(e)),this}dispose(){return super.dispose(),this._volume.dispose(),this.volume.dispose(),this._players.forEach(e=>e.dispose()),this._buffers.dispose(),this}}class GrainPlayer extends Source{constructor(){super(optionsFromArguments(GrainPlayer.getDefaults(),arguments,["url","onload"])),this.name="GrainPlayer",this._loopStart=0,this._loopEnd=0,this._activeSources=[];const e=optionsFromArguments(GrainPlayer.getDefaults(),arguments,["url","onload"]);this.buffer=new ToneAudioBuffer({onload:e.onload,onerror:e.onerror,reverse:e.reverse,url:e.url}),this._clock=new Clock({context:this.context,callback:this._tick.bind(this),frequency:1/e.grainSize}),this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse,this._clock.on("stop",this._onstop.bind(this))}static getDefaults(){return Object.assign(Source.getDefaults(),{onload:noOp,onerror:noOp,overlap:.1,grainSize:.2,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1})}_start(e,s,a){s=defaultArg(s,0),s=this.toSeconds(s),e=this.toSeconds(e);const c=1/this._clock.frequency.getValueAtTime(e);this._clock.start(e,s/c),a&&this.stop(e+this.toSeconds(a))}restart(e,s,a){return super.restart(e,s,a),this}_restart(e,s,a){this._stop(e),this._start(e,s,a)}_stop(e){this._clock.stop(e)}_onstop(e){this._activeSources.forEach(s=>{s.fadeOut=0,s.stop(e)}),this.onstop(this)}_tick(e){const s=this._clock.getTicksAtTime(e),a=s*this._grainSize;if(this.log("offset",a),!this.loop&&a>this.buffer.duration){this.stop(e);return}const c=a<this._overlap?0:this._overlap,d=new ToneBufferSource({context:this.context,url:this.buffer,fadeIn:c,fadeOut:this._overlap,loop:this.loop,loopStart:this._loopStart,loopEnd:this._loopEnd,playbackRate:intervalToFrequencyRatio(this.detune/100)}).connect(this.output);d.start(e,this._grainSize*s),d.stop(e+this._grainSize/this.playbackRate),this._activeSources.push(d),d.onended=()=>{const _=this._activeSources.indexOf(d);_!==-1&&this._activeSources.splice(_,1)}}get playbackRate(){return this._playbackRate}set playbackRate(e){assertRange(e,.001),this._playbackRate=e,this.grainSize=this._grainSize}get loopStart(){return this._loopStart}set loopStart(e){this.buffer.loaded&&assertRange(this.toSeconds(e),0,this.buffer.duration),this._loopStart=this.toSeconds(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this.buffer.loaded&&assertRange(this.toSeconds(e),0,this.buffer.duration),this._loopEnd=this.toSeconds(e)}get reverse(){return this.buffer.reverse}set reverse(e){this.buffer.reverse=e}get grainSize(){return this._grainSize}set grainSize(e){this._grainSize=this.toSeconds(e),this._clock.frequency.setValueAtTime(this._playbackRate/this._grainSize,this.now())}get overlap(){return this._overlap}set overlap(e){const s=this.toSeconds(e);assertRange(s,0),this._overlap=s}get loaded(){return this.buffer.loaded}dispose(){return super.dispose(),this.buffer.dispose(),this._clock.dispose(),this._activeSources.forEach(e=>e.dispose()),this}}class Abs extends SignalOperator{constructor(){super(...arguments),this.name="Abs",this._abs=new WaveShaper({context:this.context,mapping:e=>Math.abs(e)<.001?0:Math.abs(e)}),this.input=this._abs,this.output=this._abs}dispose(){return super.dispose(),this._abs.dispose(),this}}class GainToAudio extends SignalOperator{constructor(){super(...arguments),this.name="GainToAudio",this._norm=new WaveShaper({context:this.context,mapping:e=>Math.abs(e)*2-1}),this.input=this._norm,this.output=this._norm}dispose(){return super.dispose(),this._norm.dispose(),this}}class Negate extends SignalOperator{constructor(){super(...arguments),this.name="Negate",this._multiply=new Multiply({context:this.context,value:-1}),this.input=this._multiply,this.output=this._multiply}dispose(){return super.dispose(),this._multiply.dispose(),this}}class Subtract extends Signal{constructor(){super(Object.assign(optionsFromArguments(Subtract.getDefaults(),arguments,["value"]))),this.override=!1,this.name="Subtract",this._sum=new Gain$1({context:this.context}),this.input=this._sum,this.output=this._sum,this._neg=new Negate({context:this.context}),this.subtrahend=this._param,connectSeries(this._constantSource,this._neg,this._sum)}static getDefaults(){return Object.assign(Signal.getDefaults(),{value:0})}dispose(){return super.dispose(),this._neg.dispose(),this._sum.dispose(),this}}class GreaterThanZero extends SignalOperator{constructor(){super(Object.assign(optionsFromArguments(GreaterThanZero.getDefaults(),arguments))),this.name="GreaterThanZero",this._thresh=this.output=new WaveShaper({context:this.context,length:127,mapping:e=>e<=0?0:1}),this._scale=this.input=new Multiply({context:this.context,value:1e4}),this._scale.connect(this._thresh)}dispose(){return super.dispose(),this._scale.dispose(),this._thresh.dispose(),this}}class GreaterThan extends Signal{constructor(){super(Object.assign(optionsFromArguments(GreaterThan.getDefaults(),arguments,["value"]))),this.name="GreaterThan",this.override=!1;const e=optionsFromArguments(GreaterThan.getDefaults(),arguments,["value"]);this._subtract=this.input=new Subtract({context:this.context,value:e.value}),this._gtz=this.output=new GreaterThanZero({context:this.context}),this.comparator=this._param=this._subtract.subtrahend,readOnly$1(this,"comparator"),this._subtract.connect(this._gtz)}static getDefaults(){return Object.assign(Signal.getDefaults(),{value:0})}dispose(){return super.dispose(),this._gtz.dispose(),this._subtract.dispose(),this.comparator.dispose(),this}}class Pow extends SignalOperator{constructor(){super(Object.assign(optionsFromArguments(Pow.getDefaults(),arguments,["value"]))),this.name="Pow";const e=optionsFromArguments(Pow.getDefaults(),arguments,["value"]);this._exponentScaler=this.input=this.output=new WaveShaper({context:this.context,mapping:this._expFunc(e.value),length:8192}),this._exponent=e.value}static getDefaults(){return Object.assign(SignalOperator.getDefaults(),{value:1})}_expFunc(e){return s=>Math.pow(Math.abs(s),e)}get value(){return this._exponent}set value(e){this._exponent=e,this._exponentScaler.setMap(this._expFunc(this._exponent))}dispose(){return super.dispose(),this._exponentScaler.dispose(),this}}class ScaleExp extends Scale{constructor(){super(Object.assign(optionsFromArguments(ScaleExp.getDefaults(),arguments,["min","max","exponent"]))),this.name="ScaleExp";const e=optionsFromArguments(ScaleExp.getDefaults(),arguments,["min","max","exponent"]);this.input=this._exp=new Pow({context:this.context,value:e.exponent}),this._exp.connect(this._mult)}static getDefaults(){return Object.assign(Scale.getDefaults(),{exponent:1})}get exponent(){return this._exp.value}set exponent(e){this._exp.value=e}dispose(){return super.dispose(),this._exp.dispose(),this}}class SyncedSignal extends Signal{constructor(){super(optionsFromArguments(Signal.getDefaults(),arguments,["value","units"])),this.name="SyncedSignal",this.override=!1;const e=optionsFromArguments(Signal.getDefaults(),arguments,["value","units"]);this._lastVal=e.value,this._synced=this.context.transport.scheduleRepeat(this._onTick.bind(this),"1i"),this._syncedCallback=this._anchorValue.bind(this),this.context.transport.on("start",this._syncedCallback),this.context.transport.on("pause",this._syncedCallback),this.context.transport.on("stop",this._syncedCallback),this._constantSource.disconnect(),this._constantSource.stop(0),this._constantSource=this.output=new ToneConstantSource({context:this.context,offset:e.value,units:e.units}).start(0),this.setValueAtTime(e.value,0)}_onTick(e){const s=super.getValueAtTime(this.context.transport.seconds);this._lastVal!==s&&(this._lastVal=s,this._constantSource.offset.setValueAtTime(s,e))}_anchorValue(e){const s=super.getValueAtTime(this.context.transport.seconds);this._lastVal=s,this._constantSource.offset.cancelAndHoldAtTime(e),this._constantSource.offset.setValueAtTime(s,e)}getValueAtTime(e){const s=new TransportTimeClass(this.context,e).toSeconds();return super.getValueAtTime(s)}setValueAtTime(e,s){const a=new TransportTimeClass(this.context,s).toSeconds();return super.setValueAtTime(e,a),this}linearRampToValueAtTime(e,s){const a=new TransportTimeClass(this.context,s).toSeconds();return super.linearRampToValueAtTime(e,a),this}exponentialRampToValueAtTime(e,s){const a=new TransportTimeClass(this.context,s).toSeconds();return super.exponentialRampToValueAtTime(e,a),this}setTargetAtTime(e,s,a){const c=new TransportTimeClass(this.context,s).toSeconds();return super.setTargetAtTime(e,c,a),this}cancelScheduledValues(e){const s=new TransportTimeClass(this.context,e).toSeconds();return super.cancelScheduledValues(s),this}setValueCurveAtTime(e,s,a,c){const d=new TransportTimeClass(this.context,s).toSeconds();return a=this.toSeconds(a),super.setValueCurveAtTime(e,d,a,c),this}cancelAndHoldAtTime(e){const s=new TransportTimeClass(this.context,e).toSeconds();return super.cancelAndHoldAtTime(s),this}setRampPoint(e){const s=new TransportTimeClass(this.context,e).toSeconds();return super.setRampPoint(s),this}exponentialRampTo(e,s,a){const c=new TransportTimeClass(this.context,a).toSeconds();return super.exponentialRampTo(e,s,c),this}linearRampTo(e,s,a){const c=new TransportTimeClass(this.context,a).toSeconds();return super.linearRampTo(e,s,c),this}targetRampTo(e,s,a){const c=new TransportTimeClass(this.context,a).toSeconds();return super.targetRampTo(e,s,c),this}dispose(){return super.dispose(),this.context.transport.clear(this._synced),this.context.transport.off("start",this._syncedCallback),this.context.transport.off("pause",this._syncedCallback),this.context.transport.off("stop",this._syncedCallback),this._constantSource.dispose(),this}}class Envelope extends ToneAudioNode{constructor(){super(optionsFromArguments(Envelope.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="Envelope",this._sig=new Signal({context:this.context,value:0}),this.output=this._sig,this.input=void 0;const e=optionsFromArguments(Envelope.getDefaults(),arguments,["attack","decay","sustain","release"]);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve,this.decayCurve=e.decayCurve}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{attack:.01,attackCurve:"linear",decay:.1,decayCurve:"exponential",release:1,releaseCurve:"exponential",sustain:.5})}get value(){return this.getValueAtTime(this.now())}_getCurve(e,s){if(isString(e))return e;{let a;for(a in EnvelopeCurves)if(EnvelopeCurves[a][s]===e)return a;return e}}_setCurve(e,s,a){if(isString(a)&&Reflect.has(EnvelopeCurves,a)){const c=EnvelopeCurves[a];isObject(c)?e!=="_decayCurve"&&(this[e]=c[s]):this[e]=c}else if(isArray(a)&&e!=="_decayCurve")this[e]=a;else throw new Error("Envelope: invalid curve: "+a)}get attackCurve(){return this._getCurve(this._attackCurve,"In")}set attackCurve(e){this._setCurve("_attackCurve","In",e)}get releaseCurve(){return this._getCurve(this._releaseCurve,"Out")}set releaseCurve(e){this._setCurve("_releaseCurve","Out",e)}get decayCurve(){return this._decayCurve}set decayCurve(e){assert(["linear","exponential"].some(s=>s===e),`Invalid envelope curve: ${e}`),this._decayCurve=e}triggerAttack(e,s=1){this.log("triggerAttack",e,s),e=this.toSeconds(e);let c=this.toSeconds(this.attack);const d=this.toSeconds(this.decay),_=this.getValueAtTime(e);if(_>0){const b=1/c;c=(1-_)/b}if(c<this.sampleTime)this._sig.cancelScheduledValues(e),this._sig.setValueAtTime(s,e);else if(this._attackCurve==="linear")this._sig.linearRampTo(s,c,e);else if(this._attackCurve==="exponential")this._sig.targetRampTo(s,c,e);else{this._sig.cancelAndHoldAtTime(e);let b=this._attackCurve;for(let k=1;k<b.length;k++)if(b[k-1]<=_&&_<=b[k]){b=this._attackCurve.slice(k),b[0]=_;break}this._sig.setValueCurveAtTime(b,e,c,s)}if(d&&this.sustain<1){const b=s*this.sustain,k=e+c;this.log("decay",k),this._decayCurve==="linear"?this._sig.linearRampToValueAtTime(b,d+k):this._sig.exponentialApproachValueAtTime(b,k,d)}return this}triggerRelease(e){this.log("triggerRelease",e),e=this.toSeconds(e);const s=this.getValueAtTime(e);if(s>0){const a=this.toSeconds(this.release);a<this.sampleTime?this._sig.setValueAtTime(0,e):this._releaseCurve==="linear"?this._sig.linearRampTo(0,a,e):this._releaseCurve==="exponential"?this._sig.targetRampTo(0,a,e):(assert(isArray(this._releaseCurve),"releaseCurve must be either 'linear', 'exponential' or an array"),this._sig.cancelAndHoldAtTime(e),this._sig.setValueCurveAtTime(this._releaseCurve,e,a,s))}return this}getValueAtTime(e){return this._sig.getValueAtTime(e)}triggerAttackRelease(e,s,a=1){return s=this.toSeconds(s),this.triggerAttack(s,a),this.triggerRelease(s+this.toSeconds(e)),this}cancel(e){return this._sig.cancelScheduledValues(this.toSeconds(e)),this}connect(e,s=0,a=0){return connectSignal(this,e,s,a),this}asArray(e=1024){return __awaiter$4(this,void 0,void 0,function*(){const s=e/this.context.sampleRate,a=new OfflineContext(1,s,this.context.sampleRate),c=this.toSeconds(this.attack)+this.toSeconds(this.decay),d=c+this.toSeconds(this.release),_=d*.1,b=d+_,k=new this.constructor(Object.assign(this.get(),{attack:s*this.toSeconds(this.attack)/b,decay:s*this.toSeconds(this.decay)/b,release:s*this.toSeconds(this.release)/b,context:a}));return k._sig.toDestination(),k.triggerAttackRelease(s*(c+_)/b,0),(yield a.render()).getChannelData(0)})}dispose(){return super.dispose(),this._sig.dispose(),this}}__decorate([timeRange(0)],Envelope.prototype,"attack",void 0);__decorate([timeRange(0)],Envelope.prototype,"decay",void 0);__decorate([range(0,1)],Envelope.prototype,"sustain",void 0);__decorate([timeRange(0)],Envelope.prototype,"release",void 0);const EnvelopeCurves=(()=>{let e,s;const a=[];for(e=0;e<128;e++)a[e]=Math.sin(e/(128-1)*(Math.PI/2));const c=[],d=6.4;for(e=0;e<128-1;e++){s=e/(128-1);const et=Math.sin(s*(Math.PI*2)*d-Math.PI/2)+1;c[e]=et/10+s*.83}c[128-1]=1;const _=[],b=5;for(e=0;e<128;e++)_[e]=Math.ceil(e/(128-1)*b)/b;const k=[];for(e=0;e<128;e++)s=e/(128-1),k[e]=.5*(1-Math.cos(Math.PI*s));const $=[];for(e=0;e<128;e++){s=e/(128-1);const et=Math.pow(s,3)*4+.2,tt=Math.cos(et*Math.PI*2*s);$[e]=Math.abs(tt*(1-s))}function j(et){const tt=new Array(et.length);for(let nt=0;nt<et.length;nt++)tt[nt]=1-et[nt];return tt}function _e(et){return et.slice(0).reverse()}return{bounce:{In:j($),Out:$},cosine:{In:a,Out:_e(a)},exponential:"exponential",linear:"linear",ripple:{In:c,Out:j(c)},sine:{In:k,Out:j(k)},step:{In:_,Out:j(_)}}})();class Instrument extends ToneAudioNode{constructor(){super(optionsFromArguments(Instrument.getDefaults(),arguments)),this._scheduledEvents=[],this._synced=!1,this._original_triggerAttack=this.triggerAttack,this._original_triggerRelease=this.triggerRelease;const e=optionsFromArguments(Instrument.getDefaults(),arguments);this._volume=this.output=new Volume({context:this.context,volume:e.volume}),this.volume=this._volume.volume,readOnly$1(this,"volume")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{volume:0})}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",0)),this}_syncState(){let e=!1;return this._synced||(this._synced=!0,e=!0),e}_syncMethod(e,s){const a=this["_original_"+e]=this[e];this[e]=(...c)=>{const d=c[s],_=this.context.transport.schedule(b=>{c[s]=b,a.apply(this,c)},d);this._scheduledEvents.push(_)}}unsync(){return this._scheduledEvents.forEach(e=>this.context.transport.clear(e)),this._scheduledEvents=[],this._synced&&(this._synced=!1,this.triggerAttack=this._original_triggerAttack,this.triggerRelease=this._original_triggerRelease),this}triggerAttackRelease(e,s,a,c){const d=this.toSeconds(a),_=this.toSeconds(s);return this.triggerAttack(e,d,c),this.triggerRelease(d+_),this}dispose(){return super.dispose(),this._volume.dispose(),this.unsync(),this._scheduledEvents=[],this}}class Monophonic extends Instrument{constructor(){super(optionsFromArguments(Monophonic.getDefaults(),arguments));const e=optionsFromArguments(Monophonic.getDefaults(),arguments);this.portamento=e.portamento,this.onsilence=e.onsilence}static getDefaults(){return Object.assign(Instrument.getDefaults(),{detune:0,onsilence:noOp,portamento:0})}triggerAttack(e,s,a=1){this.log("triggerAttack",e,s,a);const c=this.toSeconds(s);return this._triggerEnvelopeAttack(c,a),this.setNote(e,c),this}triggerRelease(e){this.log("triggerRelease",e);const s=this.toSeconds(e);return this._triggerEnvelopeRelease(s),this}setNote(e,s){const a=this.toSeconds(s),c=e instanceof FrequencyClass?e.toFrequency():e;if(this.portamento>0&&this.getLevelAtTime(a)>.05){const d=this.toSeconds(this.portamento);this.frequency.exponentialRampTo(c,d,a)}else this.frequency.setValueAtTime(c,a);return this}}__decorate([timeRange(0)],Monophonic.prototype,"portamento",void 0);class AmplitudeEnvelope extends Envelope{constructor(){super(optionsFromArguments(AmplitudeEnvelope.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="AmplitudeEnvelope",this._gainNode=new Gain$1({context:this.context,gain:0}),this.output=this._gainNode,this.input=this._gainNode,this._sig.connect(this._gainNode.gain),this.output=this._gainNode,this.input=this._gainNode}dispose(){return super.dispose(),this._gainNode.dispose(),this}}class Synth$1 extends Monophonic{constructor(){super(optionsFromArguments(Synth$1.getDefaults(),arguments)),this.name="Synth";const e=optionsFromArguments(Synth$1.getDefaults(),arguments);this.oscillator=new OmniOscillator(Object.assign({context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)},e.oscillator)),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new AmplitudeEnvelope(Object.assign({context:this.context},e.envelope)),this.oscillator.chain(this.envelope,this.output),readOnly$1(this,["oscillator","frequency","detune","envelope"])}static getDefaults(){return Object.assign(Monophonic.getDefaults(),{envelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.3}),oscillator:Object.assign(omitFromObject(OmniOscillator.getDefaults(),[...Object.keys(Source.getDefaults()),"frequency","detune"]),{type:"triangle"})})}_triggerEnvelopeAttack(e,s){if(this.envelope.triggerAttack(e,s),this.oscillator.start(e),this.envelope.sustain===0){const a=this.toSeconds(this.envelope.attack),c=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+a+c)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this}}class ModulationSynth extends Monophonic{constructor(){super(optionsFromArguments(ModulationSynth.getDefaults(),arguments)),this.name="ModulationSynth";const e=optionsFromArguments(ModulationSynth.getDefaults(),arguments);this._carrier=new Synth$1({context:this.context,oscillator:e.oscillator,envelope:e.envelope,onsilence:()=>this.onsilence(this),volume:-10}),this._modulator=new Synth$1({context:this.context,oscillator:e.modulation,envelope:e.modulationEnvelope,volume:-10}),this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope,this.modulation=this._modulator.oscillator,this.modulationEnvelope=this._modulator.envelope,this.frequency=new Signal({context:this.context,units:"frequency"}),this.detune=new Signal({context:this.context,value:e.detune,units:"cents"}),this.harmonicity=new Multiply({context:this.context,value:e.harmonicity,minValue:0}),this._modulationNode=new Gain$1({context:this.context,gain:0}),readOnly$1(this,["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])}static getDefaults(){return Object.assign(Monophonic.getDefaults(),{harmonicity:3,oscillator:Object.assign(omitFromObject(OmniOscillator.getDefaults(),[...Object.keys(Source.getDefaults()),"frequency","detune"]),{type:"sine"}),envelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.01,decay:.01,sustain:1,release:.5}),modulation:Object.assign(omitFromObject(OmniOscillator.getDefaults(),[...Object.keys(Source.getDefaults()),"frequency","detune"]),{type:"square"}),modulationEnvelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.5,decay:0,sustain:1,release:.5})})}_triggerEnvelopeAttack(e,s){this._carrier._triggerEnvelopeAttack(e,s),this._modulator._triggerEnvelopeAttack(e,s)}_triggerEnvelopeRelease(e){return this._carrier._triggerEnvelopeRelease(e),this._modulator._triggerEnvelopeRelease(e),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this._carrier.dispose(),this._modulator.dispose(),this.frequency.dispose(),this.detune.dispose(),this.harmonicity.dispose(),this._modulationNode.dispose(),this}}class AMSynth$1 extends ModulationSynth{constructor(){super(optionsFromArguments(AMSynth$1.getDefaults(),arguments)),this.name="AMSynth",this._modulationScale=new AudioToGain({context:this.context}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output)}dispose(){return super.dispose(),this._modulationScale.dispose(),this}}class BiquadFilter extends ToneAudioNode{constructor(){super(optionsFromArguments(BiquadFilter.getDefaults(),arguments,["frequency","type"])),this.name="BiquadFilter";const e=optionsFromArguments(BiquadFilter.getDefaults(),arguments,["frequency","type"]);this._filter=this.context.createBiquadFilter(),this.input=this.output=this._filter,this.Q=new Param({context:this.context,units:"number",value:e.Q,param:this._filter.Q}),this.frequency=new Param({context:this.context,units:"frequency",value:e.frequency,param:this._filter.frequency}),this.detune=new Param({context:this.context,units:"cents",value:e.detune,param:this._filter.detune}),this.gain=new Param({context:this.context,units:"decibels",convert:!1,value:e.gain,param:this._filter.gain}),this.type=e.type}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,type:"lowpass",frequency:350,detune:0,gain:0})}get type(){return this._filter.type}set type(e){assert(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(e)!==-1,`Invalid filter type: ${e}`),this._filter.type=e}getFrequencyResponse(e=128){const s=new Float32Array(e);for(let _=0;_<e;_++){const k=Math.pow(_/e,2)*(2e4-20)+20;s[_]=k}const a=new Float32Array(e),c=new Float32Array(e),d=this.context.createBiquadFilter();return d.type=this.type,d.Q.value=this.Q.value,d.frequency.value=this.frequency.value,d.gain.value=this.gain.value,d.getFrequencyResponse(s,a,c),a}dispose(){return super.dispose(),this._filter.disconnect(),this.Q.dispose(),this.frequency.dispose(),this.gain.dispose(),this.detune.dispose(),this}}class Filter$1 extends ToneAudioNode{constructor(){super(optionsFromArguments(Filter$1.getDefaults(),arguments,["frequency","type","rolloff"])),this.name="Filter",this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._filters=[];const e=optionsFromArguments(Filter$1.getDefaults(),arguments,["frequency","type","rolloff"]);this._filters=[],this.Q=new Signal({context:this.context,units:"positive",value:e.Q}),this.frequency=new Signal({context:this.context,units:"frequency",value:e.frequency}),this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),this.gain=new Signal({context:this.context,units:"decibels",convert:!1,value:e.gain}),this._type=e.type,this.rolloff=e.rolloff,readOnly$1(this,["detune","frequency","gain","Q"])}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{Q:1,detune:0,frequency:350,gain:0,rolloff:-12,type:"lowpass"})}get type(){return this._type}set type(e){assert(["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(e)!==-1,`Invalid filter type: ${e}`),this._type=e,this._filters.forEach(a=>a.type=e)}get rolloff(){return this._rolloff}set rolloff(e){const s=isNumber(e)?e:parseInt(e,10),a=[-12,-24,-48,-96];let c=a.indexOf(s);assert(c!==-1,`rolloff can only be ${a.join(", ")}`),c+=1,this._rolloff=s,this.input.disconnect(),this._filters.forEach(d=>d.disconnect()),this._filters=new Array(c);for(let d=0;d<c;d++){const _=new BiquadFilter({context:this.context});_.type=this._type,this.frequency.connect(_.frequency),this.detune.connect(_.detune),this.Q.connect(_.Q),this.gain.connect(_.gain),this._filters[d]=_}this._internalChannels=this._filters,connectSeries(this.input,...this._internalChannels,this.output)}getFrequencyResponse(e=128){const s=new BiquadFilter({frequency:this.frequency.value,gain:this.gain.value,Q:this.Q.value,type:this._type,detune:this.detune.value}),a=new Float32Array(e).map(()=>1);return this._filters.forEach(()=>{s.getFrequencyResponse(e).forEach((d,_)=>a[_]*=d)}),s.dispose(),a}dispose(){return super.dispose(),this._filters.forEach(e=>{e.dispose()}),writable(this,["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.detune.dispose(),this.gain.dispose(),this}}class FrequencyEnvelope extends Envelope{constructor(){super(optionsFromArguments(FrequencyEnvelope.getDefaults(),arguments,["attack","decay","sustain","release"])),this.name="FrequencyEnvelope";const e=optionsFromArguments(FrequencyEnvelope.getDefaults(),arguments,["attack","decay","sustain","release"]);this._octaves=e.octaves,this._baseFrequency=this.toFrequency(e.baseFrequency),this._exponent=this.input=new Pow({context:this.context,value:e.exponent}),this._scale=this.output=new Scale({context:this.context,min:this._baseFrequency,max:this._baseFrequency*Math.pow(2,this._octaves)}),this._sig.chain(this._exponent,this._scale)}static getDefaults(){return Object.assign(Envelope.getDefaults(),{baseFrequency:200,exponent:1,octaves:4})}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){const s=this.toFrequency(e);assertRange(s,0),this._baseFrequency=s,this._scale.min=this._baseFrequency,this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._scale.max=this._baseFrequency*Math.pow(2,e)}get exponent(){return this._exponent.value}set exponent(e){this._exponent.value=e}dispose(){return super.dispose(),this._exponent.dispose(),this._scale.dispose(),this}}class MonoSynth$1 extends Monophonic{constructor(){super(optionsFromArguments(MonoSynth$1.getDefaults(),arguments)),this.name="MonoSynth";const e=optionsFromArguments(MonoSynth$1.getDefaults(),arguments);this.oscillator=new OmniOscillator(Object.assign(e.oscillator,{context:this.context,detune:e.detune,onstop:()=>this.onsilence(this)})),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new Filter$1(Object.assign(e.filter,{context:this.context})),this.filterEnvelope=new FrequencyEnvelope(Object.assign(e.filterEnvelope,{context:this.context})),this.envelope=new AmplitudeEnvelope(Object.assign(e.envelope,{context:this.context})),this.oscillator.chain(this.filter,this.envelope,this.output),this.filterEnvelope.connect(this.filter.frequency),readOnly$1(this,["oscillator","frequency","detune","filter","filterEnvelope","envelope"])}static getDefaults(){return Object.assign(Monophonic.getDefaults(),{envelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.005,decay:.1,release:1,sustain:.9}),filter:Object.assign(omitFromObject(Filter$1.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{Q:1,rolloff:-12,type:"lowpass"}),filterEnvelope:Object.assign(omitFromObject(FrequencyEnvelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.6,baseFrequency:200,decay:.2,exponent:2,octaves:3,release:2,sustain:.5}),oscillator:Object.assign(omitFromObject(OmniOscillator.getDefaults(),Object.keys(Source.getDefaults())),{type:"sawtooth"})})}_triggerEnvelopeAttack(e,s=1){if(this.envelope.triggerAttack(e,s),this.filterEnvelope.triggerAttack(e),this.oscillator.start(e),this.envelope.sustain===0){const a=this.toSeconds(this.envelope.attack),c=this.toSeconds(this.envelope.decay);this.oscillator.stop(e+a+c)}}_triggerEnvelopeRelease(e){this.envelope.triggerRelease(e),this.filterEnvelope.triggerRelease(e),this.oscillator.stop(e+this.toSeconds(this.envelope.release))}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}dispose(){return super.dispose(),this.oscillator.dispose(),this.envelope.dispose(),this.filterEnvelope.dispose(),this.filter.dispose(),this}}class DuoSynth$1 extends Monophonic{constructor(){super(optionsFromArguments(DuoSynth$1.getDefaults(),arguments)),this.name="DuoSynth";const e=optionsFromArguments(DuoSynth$1.getDefaults(),arguments);this.voice0=new MonoSynth$1(Object.assign(e.voice0,{context:this.context,onsilence:()=>this.onsilence(this)})),this.voice1=new MonoSynth$1(Object.assign(e.voice1,{context:this.context})),this.harmonicity=new Multiply({context:this.context,units:"positive",value:e.harmonicity}),this._vibrato=new LFO({frequency:e.vibratoRate,context:this.context,min:-50,max:50}),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new Gain$1({context:this.context,units:"normalRange",gain:e.vibratoAmount}),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new Signal({context:this.context,units:"frequency",value:440}),this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.detune.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),readOnly$1(this,["voice0","voice1","frequency","vibratoAmount","vibratoRate"])}getLevelAtTime(e){return e=this.toSeconds(e),this.voice0.envelope.getValueAtTime(e)+this.voice1.envelope.getValueAtTime(e)}static getDefaults(){return deepMerge(Monophonic.getDefaults(),{vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:deepMerge(omitFromObject(MonoSynth$1.getDefaults(),Object.keys(Monophonic.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}),voice1:deepMerge(omitFromObject(MonoSynth$1.getDefaults(),Object.keys(Monophonic.getDefaults())),{filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}})})}_triggerEnvelopeAttack(e,s){this.voice0._triggerEnvelopeAttack(e,s),this.voice1._triggerEnvelopeAttack(e,s)}_triggerEnvelopeRelease(e){return this.voice0._triggerEnvelopeRelease(e),this.voice1._triggerEnvelopeRelease(e),this}dispose(){return super.dispose(),this.voice0.dispose(),this.voice1.dispose(),this.frequency.dispose(),this.detune.dispose(),this._vibrato.dispose(),this.vibratoRate.dispose(),this._vibratoGain.dispose(),this.harmonicity.dispose(),this}}class FMSynth$1 extends ModulationSynth{constructor(){super(optionsFromArguments(FMSynth$1.getDefaults(),arguments)),this.name="FMSynth";const e=optionsFromArguments(FMSynth$1.getDefaults(),arguments);this.modulationIndex=new Multiply({context:this.context,value:e.modulationIndex}),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output)}static getDefaults(){return Object.assign(ModulationSynth.getDefaults(),{modulationIndex:10})}dispose(){return super.dispose(),this.modulationIndex.dispose(),this}}const inharmRatios=[1,1.483,1.932,2.546,2.63,3.897];class MetalSynth$1 extends Monophonic{constructor(){super(optionsFromArguments(MetalSynth$1.getDefaults(),arguments)),this.name="MetalSynth",this._oscillators=[],this._freqMultipliers=[];const e=optionsFromArguments(MetalSynth$1.getDefaults(),arguments);this.detune=new Signal({context:this.context,units:"cents",value:e.detune}),this.frequency=new Signal({context:this.context,units:"frequency"}),this._amplitude=new Gain$1({context:this.context,gain:0}).connect(this.output),this._highpass=new Filter$1({Q:0,context:this.context,type:"highpass"}).connect(this._amplitude);for(let s=0;s<inharmRatios.length;s++){const a=new FMOscillator({context:this.context,harmonicity:e.harmonicity,modulationIndex:e.modulationIndex,modulationType:"square",onstop:s===0?()=>this.onsilence(this):noOp,type:"square"});a.connect(this._highpass),this._oscillators[s]=a;const c=new Multiply({context:this.context,value:inharmRatios[s]});this._freqMultipliers[s]=c,this.frequency.chain(c,a.frequency),this.detune.connect(a.detune)}this._filterFreqScaler=new Scale({context:this.context,max:7e3,min:this.toFrequency(e.resonance)}),this.envelope=new Envelope({attack:e.envelope.attack,attackCurve:"linear",context:this.context,decay:e.envelope.decay,release:e.envelope.release,sustain:0}),this.envelope.chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitude.gain),this._octaves=e.octaves,this.octaves=e.octaves}static getDefaults(){return deepMerge(Monophonic.getDefaults(),{envelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{attack:.001,decay:1.4,release:.2}),harmonicity:5.1,modulationIndex:32,octaves:1.5,resonance:4e3})}_triggerEnvelopeAttack(e,s=1){return this.envelope.triggerAttack(e,s),this._oscillators.forEach(a=>a.start(e)),this.envelope.sustain===0&&this._oscillators.forEach(a=>{a.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay))}),this}_triggerEnvelopeRelease(e){return this.envelope.triggerRelease(e),this._oscillators.forEach(s=>s.stop(e+this.toSeconds(this.envelope.release))),this}getLevelAtTime(e){return e=this.toSeconds(e),this.envelope.getValueAtTime(e)}get modulationIndex(){return this._oscillators[0].modulationIndex.value}set modulationIndex(e){this._oscillators.forEach(s=>s.modulationIndex.value=e)}get harmonicity(){return this._oscillators[0].harmonicity.value}set harmonicity(e){this._oscillators.forEach(s=>s.harmonicity.value=e)}get resonance(){return this._filterFreqScaler.min}set resonance(e){this._filterFreqScaler.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,e)}dispose(){return super.dispose(),this._oscillators.forEach(e=>e.dispose()),this._freqMultipliers.forEach(e=>e.dispose()),this.frequency.dispose(),this.detune.dispose(),this._filterFreqScaler.dispose(),this._amplitude.dispose(),this.envelope.dispose(),this._highpass.dispose(),this}}class MembraneSynth$1 extends Synth$1{constructor(){super(optionsFromArguments(MembraneSynth$1.getDefaults(),arguments)),this.name="MembraneSynth",this.portamento=0;const e=optionsFromArguments(MembraneSynth$1.getDefaults(),arguments);this.pitchDecay=e.pitchDecay,this.octaves=e.octaves,readOnly$1(this,["oscillator","envelope"])}static getDefaults(){return deepMerge(Monophonic.getDefaults(),Synth$1.getDefaults(),{envelope:{attack:.001,attackCurve:"exponential",decay:.4,release:1.4,sustain:.01},octaves:10,oscillator:{type:"sine"},pitchDecay:.05})}setNote(e,s){const a=this.toSeconds(s),c=this.toFrequency(e instanceof FrequencyClass?e.toFrequency():e),d=c*this.octaves;return this.oscillator.frequency.setValueAtTime(d,a),this.oscillator.frequency.exponentialRampToValueAtTime(c,a+this.toSeconds(this.pitchDecay)),this}dispose(){return super.dispose(),this}}__decorate([range(0)],MembraneSynth$1.prototype,"octaves",void 0);__decorate([timeRange(0)],MembraneSynth$1.prototype,"pitchDecay",void 0);class NoiseSynth$1 extends Instrument{constructor(){super(optionsFromArguments(NoiseSynth$1.getDefaults(),arguments)),this.name="NoiseSynth";const e=optionsFromArguments(NoiseSynth$1.getDefaults(),arguments);this.noise=new Noise(Object.assign({context:this.context},e.noise)),this.envelope=new AmplitudeEnvelope(Object.assign({context:this.context},e.envelope)),this.noise.chain(this.envelope,this.output)}static getDefaults(){return Object.assign(Instrument.getDefaults(),{envelope:Object.assign(omitFromObject(Envelope.getDefaults(),Object.keys(ToneAudioNode.getDefaults())),{decay:.1,sustain:0}),noise:Object.assign(omitFromObject(Noise.getDefaults(),Object.keys(Source.getDefaults())),{type:"white"})})}triggerAttack(e,s=1){return e=this.toSeconds(e),this.envelope.triggerAttack(e,s),this.noise.start(e),this.envelope.sustain===0&&this.noise.stop(e+this.toSeconds(this.envelope.attack)+this.toSeconds(this.envelope.decay)),this}triggerRelease(e){return e=this.toSeconds(e),this.envelope.triggerRelease(e),this.noise.stop(e+this.toSeconds(this.envelope.release)),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",0),this._syncMethod("triggerRelease",0)),this}triggerAttackRelease(e,s,a=1){return s=this.toSeconds(s),e=this.toSeconds(e),this.triggerAttack(s,a),this.triggerRelease(s+e),this}dispose(){return super.dispose(),this.noise.dispose(),this.envelope.dispose(),this}}const workletContext=new Set;function addToWorklet(o){workletContext.add(o)}function registerProcessor(o,e){const s=`registerProcessor("${o}", ${e})`;workletContext.add(s)}function getWorkletGlobalScope(){return Array.from(workletContext).join(`
|
|
`)}class ToneAudioWorklet extends ToneAudioNode{constructor(e){super(e),this.name="ToneAudioWorklet",this.workletOptions={},this.onprocessorerror=noOp;const s=URL.createObjectURL(new Blob([getWorkletGlobalScope()],{type:"text/javascript"})),a=this._audioWorkletName();this._dummyGain=this.context.createGain(),this._dummyParam=this._dummyGain.gain,this.context.addAudioWorkletModule(s,a).then(()=>{this.disposed||(this._worklet=this.context.createAudioWorkletNode(a,this.workletOptions),this._worklet.onprocessorerror=this.onprocessorerror.bind(this),this.onReady(this._worklet))})}dispose(){return super.dispose(),this._dummyGain.disconnect(),this._worklet&&(this._worklet.port.postMessage("dispose"),this._worklet.disconnect()),this}}const toneAudioWorkletProcessor=`
|
|
/**
|
|
* The base AudioWorkletProcessor for use in Tone.js. Works with the [[ToneAudioWorklet]].
|
|
*/
|
|
class ToneAudioWorkletProcessor extends AudioWorkletProcessor {
|
|
|
|
constructor(options) {
|
|
|
|
super(options);
|
|
/**
|
|
* If the processor was disposed or not. Keep alive until it's disposed.
|
|
*/
|
|
this.disposed = false;
|
|
/**
|
|
* The number of samples in the processing block
|
|
*/
|
|
this.blockSize = 128;
|
|
/**
|
|
* the sample rate
|
|
*/
|
|
this.sampleRate = sampleRate;
|
|
|
|
this.port.onmessage = (event) => {
|
|
// when it receives a dispose
|
|
if (event.data === "dispose") {
|
|
this.disposed = true;
|
|
}
|
|
};
|
|
}
|
|
}
|
|
`;addToWorklet(toneAudioWorkletProcessor);const singleIOProcess=`
|
|
/**
|
|
* Abstract class for a single input/output processor.
|
|
* has a 'generate' function which processes one sample at a time
|
|
*/
|
|
class SingleIOProcessor extends ToneAudioWorkletProcessor {
|
|
|
|
constructor(options) {
|
|
super(Object.assign(options, {
|
|
numberOfInputs: 1,
|
|
numberOfOutputs: 1
|
|
}));
|
|
/**
|
|
* Holds the name of the parameter and a single value of that
|
|
* parameter at the current sample
|
|
* @type { [name: string]: number }
|
|
*/
|
|
this.params = {}
|
|
}
|
|
|
|
/**
|
|
* Generate an output sample from the input sample and parameters
|
|
* @abstract
|
|
* @param input number
|
|
* @param channel number
|
|
* @param parameters { [name: string]: number }
|
|
* @returns number
|
|
*/
|
|
generate(){}
|
|
|
|
/**
|
|
* Update the private params object with the
|
|
* values of the parameters at the given index
|
|
* @param parameters { [name: string]: Float32Array },
|
|
* @param index number
|
|
*/
|
|
updateParams(parameters, index) {
|
|
for (const paramName in parameters) {
|
|
const param = parameters[paramName];
|
|
if (param.length > 1) {
|
|
this.params[paramName] = parameters[paramName][index];
|
|
} else {
|
|
this.params[paramName] = parameters[paramName][0];
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Process a single frame of the audio
|
|
* @param inputs Float32Array[][]
|
|
* @param outputs Float32Array[][]
|
|
*/
|
|
process(inputs, outputs, parameters) {
|
|
const input = inputs[0];
|
|
const output = outputs[0];
|
|
// get the parameter values
|
|
const channelCount = Math.max(input && input.length || 0, output.length);
|
|
for (let sample = 0; sample < this.blockSize; sample++) {
|
|
this.updateParams(parameters, sample);
|
|
for (let channel = 0; channel < channelCount; channel++) {
|
|
const inputSample = input && input.length ? input[channel][sample] : 0;
|
|
output[channel][sample] = this.generate(inputSample, channel, this.params);
|
|
}
|
|
}
|
|
return !this.disposed;
|
|
}
|
|
};
|
|
`;addToWorklet(singleIOProcess);const delayLine=`
|
|
/**
|
|
* A multichannel buffer for use within an AudioWorkletProcessor as a delay line
|
|
*/
|
|
class DelayLine {
|
|
|
|
constructor(size, channels) {
|
|
this.buffer = [];
|
|
this.writeHead = []
|
|
this.size = size;
|
|
|
|
// create the empty channels
|
|
for (let i = 0; i < channels; i++) {
|
|
this.buffer[i] = new Float32Array(this.size);
|
|
this.writeHead[i] = 0;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Push a value onto the end
|
|
* @param channel number
|
|
* @param value number
|
|
*/
|
|
push(channel, value) {
|
|
this.writeHead[channel] += 1;
|
|
if (this.writeHead[channel] > this.size) {
|
|
this.writeHead[channel] = 0;
|
|
}
|
|
this.buffer[channel][this.writeHead[channel]] = value;
|
|
}
|
|
|
|
/**
|
|
* Get the recorded value of the channel given the delay
|
|
* @param channel number
|
|
* @param delay number delay samples
|
|
*/
|
|
get(channel, delay) {
|
|
let readHead = this.writeHead[channel] - Math.floor(delay);
|
|
if (readHead < 0) {
|
|
readHead += this.size;
|
|
}
|
|
return this.buffer[channel][readHead];
|
|
}
|
|
}
|
|
`;addToWorklet(delayLine);const workletName$1="feedback-comb-filter",feedbackCombFilter=`
|
|
class FeedbackCombFilterWorklet extends SingleIOProcessor {
|
|
|
|
constructor(options) {
|
|
super(options);
|
|
this.delayLine = new DelayLine(this.sampleRate, options.channelCount || 2);
|
|
}
|
|
|
|
static get parameterDescriptors() {
|
|
return [{
|
|
name: "delayTime",
|
|
defaultValue: 0.1,
|
|
minValue: 0,
|
|
maxValue: 1,
|
|
automationRate: "k-rate"
|
|
}, {
|
|
name: "feedback",
|
|
defaultValue: 0.5,
|
|
minValue: 0,
|
|
maxValue: 0.9999,
|
|
automationRate: "k-rate"
|
|
}];
|
|
}
|
|
|
|
generate(input, channel, parameters) {
|
|
const delayedSample = this.delayLine.get(channel, parameters.delayTime * this.sampleRate);
|
|
this.delayLine.push(channel, input + delayedSample * parameters.feedback);
|
|
return delayedSample;
|
|
}
|
|
}
|
|
`;registerProcessor(workletName$1,feedbackCombFilter);class FeedbackCombFilter extends ToneAudioWorklet{constructor(){super(optionsFromArguments(FeedbackCombFilter.getDefaults(),arguments,["delayTime","resonance"])),this.name="FeedbackCombFilter";const e=optionsFromArguments(FeedbackCombFilter.getDefaults(),arguments,["delayTime","resonance"]);this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this.delayTime=new Param({context:this.context,value:e.delayTime,units:"time",minValue:0,maxValue:1,param:this._dummyParam,swappable:!0}),this.resonance=new Param({context:this.context,value:e.resonance,units:"normalRange",param:this._dummyParam,swappable:!0}),readOnly$1(this,["resonance","delayTime"])}_audioWorkletName(){return workletName$1}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{delayTime:.1,resonance:.5})}onReady(e){connectSeries(this.input,e,this.output);const s=e.parameters.get("delayTime");this.delayTime.setParam(s);const a=e.parameters.get("feedback");this.resonance.setParam(a)}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this.delayTime.dispose(),this.resonance.dispose(),this}}class OnePoleFilter extends ToneAudioNode{constructor(){super(optionsFromArguments(OnePoleFilter.getDefaults(),arguments,["frequency","type"])),this.name="OnePoleFilter";const e=optionsFromArguments(OnePoleFilter.getDefaults(),arguments,["frequency","type"]);this._frequency=e.frequency,this._type=e.type,this.input=new Gain$1({context:this.context}),this.output=new Gain$1({context:this.context}),this._createFilter()}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{frequency:880,type:"lowpass"})}_createFilter(){const e=this._filter,s=this.toFrequency(this._frequency),a=1/(2*Math.PI*s);if(this._type==="lowpass"){const c=1/(a*this.context.sampleRate),d=c-1;this._filter=this.context.createIIRFilter([c,0],[1,d])}else{const c=1/(a*this.context.sampleRate)-1;this._filter=this.context.createIIRFilter([1,-1],[1,c])}this.input.chain(this._filter,this.output),e&&this.context.setTimeout(()=>{this.disposed||(this.input.disconnect(e),e.disconnect())},this.blockTime)}get frequency(){return this._frequency}set frequency(e){this._frequency=e,this._createFilter()}get type(){return this._type}set type(e){this._type=e,this._createFilter()}getFrequencyResponse(e=128){const s=new Float32Array(e);for(let d=0;d<e;d++){const b=Math.pow(d/e,2)*(2e4-20)+20;s[d]=b}const a=new Float32Array(e),c=new Float32Array(e);return this._filter.getFrequencyResponse(s,a,c),a}dispose(){return super.dispose(),this.input.dispose(),this.output.dispose(),this._filter.disconnect(),this}}class LowpassCombFilter extends ToneAudioNode{constructor(){super(optionsFromArguments(LowpassCombFilter.getDefaults(),arguments,["delayTime","resonance","dampening"])),this.name="LowpassCombFilter";const e=optionsFromArguments(LowpassCombFilter.getDefaults(),arguments,["delayTime","resonance","dampening"]);this._combFilter=this.output=new FeedbackCombFilter({context:this.context,delayTime:e.delayTime,resonance:e.resonance}),this.delayTime=this._combFilter.delayTime,this.resonance=this._combFilter.resonance,this._lowpass=this.input=new OnePoleFilter({context:this.context,frequency:e.dampening,type:"lowpass"}),this._lowpass.connect(this._combFilter)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{dampening:3e3,delayTime:.1,resonance:.5})}get dampening(){return this._lowpass.frequency}set dampening(e){this._lowpass.frequency=e}dispose(){return super.dispose(),this._combFilter.dispose(),this._lowpass.dispose(),this}}class PluckSynth$1 extends Instrument{constructor(){super(optionsFromArguments(PluckSynth$1.getDefaults(),arguments)),this.name="PluckSynth";const e=optionsFromArguments(PluckSynth$1.getDefaults(),arguments);this._noise=new Noise({context:this.context,type:"pink"}),this.attackNoise=e.attackNoise,this._lfcf=new LowpassCombFilter({context:this.context,dampening:e.dampening,resonance:e.resonance}),this.resonance=e.resonance,this.release=e.release,this._noise.connect(this._lfcf),this._lfcf.connect(this.output)}static getDefaults(){return deepMerge(Instrument.getDefaults(),{attackNoise:1,dampening:4e3,resonance:.7,release:1})}get dampening(){return this._lfcf.dampening}set dampening(e){this._lfcf.dampening=e}triggerAttack(e,s){const a=this.toFrequency(e);s=this.toSeconds(s);const c=1/a;return this._lfcf.delayTime.setValueAtTime(c,s),this._noise.start(s),this._noise.stop(s+c*this.attackNoise),this._lfcf.resonance.cancelScheduledValues(s),this._lfcf.resonance.setValueAtTime(this.resonance,s),this}triggerRelease(e){return this._lfcf.resonance.linearRampTo(0,this.release,e),this}dispose(){return super.dispose(),this._noise.dispose(),this._lfcf.dispose(),this}}class PolySynth$1 extends Instrument{constructor(){super(optionsFromArguments(PolySynth$1.getDefaults(),arguments,["voice","options"])),this.name="PolySynth",this._availableVoices=[],this._activeVoices=[],this._voices=[],this._gcTimeout=-1,this._averageActiveVoices=0;const e=optionsFromArguments(PolySynth$1.getDefaults(),arguments,["voice","options"]);assert(!isNumber(e.voice),"DEPRECATED: The polyphony count is no longer the first argument.");const s=e.voice.getDefaults();this.options=Object.assign(s,e.options),this.voice=e.voice,this.maxPolyphony=e.maxPolyphony,this._dummyVoice=this._getNextAvailableVoice();const a=this._voices.indexOf(this._dummyVoice);this._voices.splice(a,1),this._gcTimeout=this.context.setInterval(this._collectGarbage.bind(this),1)}static getDefaults(){return Object.assign(Instrument.getDefaults(),{maxPolyphony:32,options:{},voice:Synth$1})}get activeVoices(){return this._activeVoices.length}_makeVoiceAvailable(e){this._availableVoices.push(e);const s=this._activeVoices.findIndex(a=>a.voice===e);this._activeVoices.splice(s,1)}_getNextAvailableVoice(){if(this._availableVoices.length)return this._availableVoices.shift();if(this._voices.length<this.maxPolyphony){const e=new this.voice(Object.assign(this.options,{context:this.context,onsilence:this._makeVoiceAvailable.bind(this)}));return e.connect(this.output),this._voices.push(e),e}else warn("Max polyphony exceeded. Note dropped.")}_collectGarbage(){if(this._averageActiveVoices=Math.max(this._averageActiveVoices*.95,this.activeVoices),this._availableVoices.length&&this._voices.length>Math.ceil(this._averageActiveVoices+1)){const e=this._availableVoices.shift(),s=this._voices.indexOf(e);this._voices.splice(s,1),this.context.isOffline||e.dispose()}}_triggerAttack(e,s,a){e.forEach(c=>{const d=new MidiClass(this.context,c).toMidi(),_=this._getNextAvailableVoice();_&&(_.triggerAttack(c,s,a),this._activeVoices.push({midi:d,voice:_,released:!1}),this.log("triggerAttack",c,s))})}_triggerRelease(e,s){e.forEach(a=>{const c=new MidiClass(this.context,a).toMidi(),d=this._activeVoices.find(({midi:_,released:b})=>_===c&&!b);d&&(d.voice.triggerRelease(s),d.released=!0,this.log("triggerRelease",a,s))})}_scheduleEvent(e,s,a,c){assert(!this.disposed,"Synth was already disposed"),a<=this.now()?e==="attack"?this._triggerAttack(s,a,c):this._triggerRelease(s,a):this.context.setTimeout(()=>{this._scheduleEvent(e,s,a,c)},a-this.now())}triggerAttack(e,s,a){Array.isArray(e)||(e=[e]);const c=this.toSeconds(s);return this._scheduleEvent("attack",e,c,a),this}triggerRelease(e,s){Array.isArray(e)||(e=[e]);const a=this.toSeconds(s);return this._scheduleEvent("release",e,a),this}triggerAttackRelease(e,s,a,c){const d=this.toSeconds(a);if(this.triggerAttack(e,d,c),isArray(s)){assert(isArray(e),"If the duration is an array, the notes must also be an array"),e=e;for(let _=0;_<e.length;_++){const b=s[Math.min(_,s.length-1)],k=this.toSeconds(b);assert(k>0,"The duration must be greater than 0"),this.triggerRelease(e[_],d+k)}}else{const _=this.toSeconds(s);assert(_>0,"The duration must be greater than 0"),this.triggerRelease(e,d+_)}return this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}set(e){const s=omitFromObject(e,["onsilence","context"]);return this.options=deepMerge(this.options,s),this._voices.forEach(a=>a.set(s)),this._dummyVoice.set(s),this}get(){return this._dummyVoice.get()}releaseAll(e){const s=this.toSeconds(e);return this._activeVoices.forEach(({voice:a})=>{a.triggerRelease(s)}),this}dispose(){return super.dispose(),this._dummyVoice.dispose(),this._voices.forEach(e=>e.dispose()),this._activeVoices=[],this._availableVoices=[],this.context.clearInterval(this._gcTimeout),this}}class Sampler$1 extends Instrument{constructor(){super(optionsFromArguments(Sampler$1.getDefaults(),arguments,["urls","onload","baseUrl"],"urls")),this.name="Sampler",this._activeSources=new Map;const e=optionsFromArguments(Sampler$1.getDefaults(),arguments,["urls","onload","baseUrl"],"urls"),s={};Object.keys(e.urls).forEach(a=>{const c=parseInt(a,10);if(assert(isNote$2(a)||isNumber(c)&&isFinite(c),`url key is neither a note or midi pitch: ${a}`),isNote$2(a)){const d=new FrequencyClass(this.context,a).toMidi();s[d]=e.urls[a]}else isNumber(c)&&isFinite(c)&&(s[c]=e.urls[c])}),this._buffers=new ToneAudioBuffers({urls:s,onload:e.onload,baseUrl:e.baseUrl,onerror:e.onerror}),this.attack=e.attack,this.release=e.release,this.curve=e.curve,this._buffers.loaded&&Promise.resolve().then(e.onload)}static getDefaults(){return Object.assign(Instrument.getDefaults(),{attack:0,baseUrl:"",curve:"exponential",onload:noOp,onerror:noOp,release:.1,urls:{}})}_findClosest(e){let a=0;for(;a<96;){if(this._buffers.has(e+a))return-a;if(this._buffers.has(e-a))return a;a++}throw new Error(`No available buffers for note: ${e}`)}triggerAttack(e,s,a=1){return this.log("triggerAttack",e,s,a),Array.isArray(e)||(e=[e]),e.forEach(c=>{const d=ftomf(new FrequencyClass(this.context,c).toFrequency()),_=Math.round(d),b=d-_,k=this._findClosest(_),$=_-k,j=this._buffers.get($),_e=intervalToFrequencyRatio(k+b),et=new ToneBufferSource({url:j,context:this.context,curve:this.curve,fadeIn:this.attack,fadeOut:this.release,playbackRate:_e}).connect(this.output);et.start(s,0,j.duration/_e,a),isArray(this._activeSources.get(_))||this._activeSources.set(_,[]),this._activeSources.get(_).push(et),et.onended=()=>{if(this._activeSources&&this._activeSources.has(_)){const tt=this._activeSources.get(_),nt=tt.indexOf(et);nt!==-1&&tt.splice(nt,1)}}}),this}triggerRelease(e,s){return this.log("triggerRelease",e,s),Array.isArray(e)||(e=[e]),e.forEach(a=>{const c=new FrequencyClass(this.context,a).toMidi();if(this._activeSources.has(c)&&this._activeSources.get(c).length){const d=this._activeSources.get(c);s=this.toSeconds(s),d.forEach(_=>{_.stop(s)}),this._activeSources.set(c,[])}}),this}releaseAll(e){const s=this.toSeconds(e);return this._activeSources.forEach(a=>{for(;a.length;)a.shift().stop(s)}),this}sync(){return this._syncState()&&(this._syncMethod("triggerAttack",1),this._syncMethod("triggerRelease",1)),this}triggerAttackRelease(e,s,a,c=1){const d=this.toSeconds(a);return this.triggerAttack(e,d,c),isArray(s)?(assert(isArray(e),"notes must be an array when duration is array"),e.forEach((_,b)=>{const k=s[Math.min(b,s.length-1)];this.triggerRelease(_,d+this.toSeconds(k))})):this.triggerRelease(e,d+this.toSeconds(s)),this}add(e,s,a){if(assert(isNote$2(e)||isFinite(e),`note must be a pitch or midi: ${e}`),isNote$2(e)){const c=new FrequencyClass(this.context,e).toMidi();this._buffers.add(c,s,a)}else this._buffers.add(e,s,a);return this}get loaded(){return this._buffers.loaded}dispose(){return super.dispose(),this._buffers.dispose(),this._activeSources.forEach(e=>{e.forEach(s=>s.dispose())}),this._activeSources.clear(),this}}__decorate([timeRange(0)],Sampler$1.prototype,"attack",void 0);__decorate([timeRange(0)],Sampler$1.prototype,"release",void 0);class ToneEvent extends ToneWithContext{constructor(){super(optionsFromArguments(ToneEvent.getDefaults(),arguments,["callback","value"])),this.name="ToneEvent",this._state=new StateTimeline("stopped"),this._startOffset=0;const e=optionsFromArguments(ToneEvent.getDefaults(),arguments,["callback","value"]);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this.mute=e.mute,this._playbackRate=e.playbackRate,this._state.increasing=!0,this._rescheduleEvents()}static getDefaults(){return Object.assign(ToneWithContext.getDefaults(),{callback:noOp,humanize:!1,loop:!1,loopEnd:"1m",loopStart:0,mute:!1,playbackRate:1,probability:1,value:null})}_rescheduleEvents(e=-1){this._state.forEachFrom(e,s=>{let a;if(s.state==="started"){s.id!==-1&&this.context.transport.clear(s.id);const c=s.time+Math.round(this.startOffset/this._playbackRate);if(this._loop===!0||isNumber(this._loop)&&this._loop>1){a=1/0,isNumber(this._loop)&&(a=this._loop*this._getLoopDuration());const d=this._state.getAfter(c);d!==null&&(a=Math.min(a,d.time-c)),a!==1/0&&(this._state.setStateAtTime("stopped",c+a+1,{id:-1}),a=new TicksClass(this.context,a));const _=new TicksClass(this.context,this._getLoopDuration());s.id=this.context.transport.scheduleRepeat(this._tick.bind(this),_,new TicksClass(this.context,c),a)}else s.id=this.context.transport.schedule(this._tick.bind(this),new TicksClass(this.context,c))}})}get state(){return this._state.getValueAtTime(this.context.transport.ticks)}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e}get probability(){return this._probability}set probability(e){this._probability=e}get humanize(){return this._humanize}set humanize(e){this._humanize=e}start(e){const s=this.toTicks(e);return this._state.getValueAtTime(s)==="stopped"&&(this._state.add({id:-1,state:"started",time:s}),this._rescheduleEvents(s)),this}stop(e){this.cancel(e);const s=this.toTicks(e);if(this._state.getValueAtTime(s)==="started"){this._state.setStateAtTime("stopped",s,{id:-1});const a=this._state.getBefore(s);let c=s;a!==null&&(c=a.time),this._rescheduleEvents(c)}return this}cancel(e){e=defaultArg(e,-1/0);const s=this.toTicks(e);return this._state.forEachFrom(s,a=>{this.context.transport.clear(a.id)}),this._state.cancel(s),this}_tick(e){const s=this.context.transport.getTicksAtTime(e);if(!this.mute&&this._state.getValueAtTime(s)==="started"){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){let a=.02;isBoolean(this.humanize)||(a=this.toSeconds(this.humanize)),e+=(Math.random()*2-1)*a}this.callback(e,this.value)}}_getLoopDuration(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)}get loop(){return this._loop}set loop(e){this._loop=e,this._rescheduleEvents()}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._rescheduleEvents()}get loopEnd(){return new TicksClass(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._rescheduleEvents()}get loopStart(){return new TicksClass(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._rescheduleEvents()}get progress(){if(this._loop){const e=this.context.transport.ticks,s=this._state.get(e);if(s!==null&&s.state==="started"){const a=this._getLoopDuration();return(e-s.time)%a/a}else return 0}else return 0}dispose(){return super.dispose(),this.cancel(),this._state.dispose(),this}}class Loop extends ToneWithContext{constructor(){super(optionsFromArguments(Loop.getDefaults(),arguments,["callback","interval"])),this.name="Loop";const e=optionsFromArguments(Loop.getDefaults(),arguments,["callback","interval"]);this._event=new ToneEvent({context:this.context,callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations}static getDefaults(){return Object.assign(ToneWithContext.getDefaults(),{interval:"4n",callback:noOp,playbackRate:1,iterations:1/0,probability:1,mute:!1,humanize:!1})}start(e){return this._event.start(e),this}stop(e){return this._event.stop(e),this}cancel(e){return this._event.cancel(e),this}_tick(e){this.callback(e)}get state(){return this._event.state}get progress(){return this._event.progress}get interval(){return this._event.loopEnd}set interval(e){this._event.loopEnd=e}get playbackRate(){return this._event.playbackRate}set playbackRate(e){this._event.playbackRate=e}get humanize(){return this._event.humanize}set humanize(e){this._event.humanize=e}get probability(){return this._event.probability}set probability(e){this._event.probability=e}get mute(){return this._event.mute}set mute(e){this._event.mute=e}get iterations(){return this._event.loop===!0?1/0:this._event.loop}set iterations(e){e===1/0?this._event.loop=!0:this._event.loop=e}dispose(){return super.dispose(),this._event.dispose(),this}}class Part extends ToneEvent{constructor(){super(optionsFromArguments(Part.getDefaults(),arguments,["callback","events"])),this.name="Part",this._state=new StateTimeline("stopped"),this._events=new Set;const e=optionsFromArguments(Part.getDefaults(),arguments,["callback","events"]);this._state.increasing=!0,e.events.forEach(s=>{isArray(s)?this.add(s[0],s[1]):this.add(s)})}static getDefaults(){return Object.assign(ToneEvent.getDefaults(),{events:[]})}start(e,s){const a=this.toTicks(e);if(this._state.getValueAtTime(a)!=="started"){s=defaultArg(s,this._loop?this._loopStart:0),this._loop?s=defaultArg(s,this._loopStart):s=defaultArg(s,0);const c=this.toTicks(s);this._state.add({id:-1,offset:c,state:"started",time:a}),this._forEach(d=>{this._startNote(d,a,c)})}return this}_startNote(e,s,a){s-=a,this._loop?e.startOffset>=this._loopStart&&e.startOffset<this._loopEnd?(e.startOffset<a&&(s+=this._getLoopDuration()),e.start(new TicksClass(this.context,s))):e.startOffset<this._loopStart&&e.startOffset>=a&&(e.loop=!1,e.start(new TicksClass(this.context,s))):e.startOffset>=a&&e.start(new TicksClass(this.context,s))}get startOffset(){return this._startOffset}set startOffset(e){this._startOffset=e,this._forEach(s=>{s.startOffset+=this._startOffset})}stop(e){const s=this.toTicks(e);return this._state.cancel(s),this._state.setStateAtTime("stopped",s),this._forEach(a=>{a.stop(e)}),this}at(e,s){const a=new TransportTimeClass(this.context,e).toTicks(),c=new TicksClass(this.context,1).toSeconds(),d=this._events.values();let _=d.next();for(;!_.done;){const b=_.value;if(Math.abs(a-b.startOffset)<c)return isDefined(s)&&(b.value=s),b;_=d.next()}return isDefined(s)?(this.add(e,s),this.at(e)):null}add(e,s){e instanceof Object&&Reflect.has(e,"time")&&(s=e,e=s.time);const a=this.toTicks(e);let c;return s instanceof ToneEvent?(c=s,c.callback=this._tick.bind(this)):c=new ToneEvent({callback:this._tick.bind(this),context:this.context,value:s}),c.startOffset=a,c.set({humanize:this.humanize,loop:this.loop,loopEnd:this.loopEnd,loopStart:this.loopStart,playbackRate:this.playbackRate,probability:this.probability}),this._events.add(c),this._restartEvent(c),this}_restartEvent(e){this._state.forEach(s=>{s.state==="started"?this._startNote(e,s.time,s.offset):e.stop(new TicksClass(this.context,s.time))})}remove(e,s){return isObject(e)&&e.hasOwnProperty("time")&&(s=e,e=s.time),e=this.toTicks(e),this._events.forEach(a=>{a.startOffset===e&&(isUndef(s)||isDefined(s)&&a.value===s)&&(this._events.delete(a),a.dispose())}),this}clear(){return this._forEach(e=>e.dispose()),this._events.clear(),this}cancel(e){return this._forEach(s=>s.cancel(e)),this._state.cancel(this.toTicks(e)),this}_forEach(e){return this._events&&this._events.forEach(s=>{s instanceof Part?s._forEach(e):e(s)}),this}_setAll(e,s){this._forEach(a=>{a[e]=s})}_tick(e,s){this.mute||this.callback(e,s)}_testLoopBoundries(e){this._loop&&(e.startOffset<this._loopStart||e.startOffset>=this._loopEnd)?e.cancel(0):e.state==="stopped"&&this._restartEvent(e)}get probability(){return this._probability}set probability(e){this._probability=e,this._setAll("probability",e)}get humanize(){return this._humanize}set humanize(e){this._humanize=e,this._setAll("humanize",e)}get loop(){return this._loop}set loop(e){this._loop=e,this._forEach(s=>{s.loopStart=this.loopStart,s.loopEnd=this.loopEnd,s.loop=e,this._testLoopBoundries(s)})}get loopEnd(){return new TicksClass(this.context,this._loopEnd).toSeconds()}set loopEnd(e){this._loopEnd=this.toTicks(e),this._loop&&this._forEach(s=>{s.loopEnd=e,this._testLoopBoundries(s)})}get loopStart(){return new TicksClass(this.context,this._loopStart).toSeconds()}set loopStart(e){this._loopStart=this.toTicks(e),this._loop&&this._forEach(s=>{s.loopStart=this.loopStart,this._testLoopBoundries(s)})}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this._setAll("playbackRate",e)}get length(){return this._events.size}dispose(){return super.dispose(),this.clear(),this}}function*upPatternGen(o){let e=0;for(;e<o.length;)e=clampToArraySize(e,o),yield o[e],e++}function*downPatternGen(o){let e=o.length-1;for(;e>=0;)e=clampToArraySize(e,o),yield o[e],e--}function*infiniteGen(o,e){for(;;)yield*e(o)}function clampToArraySize(o,e){return clamp(o,0,e.length-1)}function*alternatingGenerator(o,e){let s=e?0:o.length-1;for(;;)s=clampToArraySize(s,o),yield o[s],e?(s++,s>=o.length-1&&(e=!1)):(s--,s<=0&&(e=!0))}function*jumpUp(o){let e=0,s=0;for(;e<o.length;)e=clampToArraySize(e,o),yield o[e],s++,e+=s%2?2:-1}function*jumpDown(o){let e=o.length-1,s=0;for(;e>=0;)e=clampToArraySize(e,o),yield o[e],s++,e+=s%2?-2:1}function*randomGen(o){for(;;){const e=Math.floor(Math.random()*o.length);yield o[e]}}function*randomOnce(o){const e=[];for(let s=0;s<o.length;s++)e.push(s);for(;e.length>0;){const s=e.splice(Math.floor(e.length*Math.random()),1),a=clampToArraySize(s[0],o);yield o[a]}}function*randomWalk(o){let e=Math.floor(Math.random()*o.length);for(;;)e===0?e++:e===o.length-1||Math.random()<.5?e--:e++,yield o[e]}function*PatternGenerator(o,e="up",s=0){switch(assert(o.length>0,"The array must have more than one value in it"),e){case"up":yield*infiniteGen(o,upPatternGen);case"down":yield*infiniteGen(o,downPatternGen);case"upDown":yield*alternatingGenerator(o,!0);case"downUp":yield*alternatingGenerator(o,!1);case"alternateUp":yield*infiniteGen(o,jumpUp);case"alternateDown":yield*infiniteGen(o,jumpDown);case"random":yield*randomGen(o);case"randomOnce":yield*infiniteGen(o,randomOnce);case"randomWalk":yield*randomWalk(o)}}class Pattern$4 extends Loop{constructor(){super(optionsFromArguments(Pattern$4.getDefaults(),arguments,["callback","values","pattern"])),this.name="Pattern";const e=optionsFromArguments(Pattern$4.getDefaults(),arguments,["callback","values","pattern"]);this.callback=e.callback,this._values=e.values,this._pattern=PatternGenerator(e.values,e.pattern),this._type=e.pattern}static getDefaults(){return Object.assign(Loop.getDefaults(),{pattern:"up",values:[],callback:noOp})}_tick(e){const s=this._pattern.next();this._value=s.value,this.callback(e,this._value)}get values(){return this._values}set values(e){this._values=e,this.pattern=this._type}get value(){return this._value}get pattern(){return this._type}set pattern(e){this._type=e,this._pattern=PatternGenerator(this._values,this._type)}}class Sequence extends ToneEvent{constructor(){super(optionsFromArguments(Sequence.getDefaults(),arguments,["callback","events","subdivision"])),this.name="Sequence",this._part=new Part({callback:this._seqCallback.bind(this),context:this.context}),this._events=[],this._eventsArray=[];const e=optionsFromArguments(Sequence.getDefaults(),arguments,["callback","events","subdivision"]);this._subdivision=this.toTicks(e.subdivision),this.events=e.events,this.loop=e.loop,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.playbackRate=e.playbackRate,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate}static getDefaults(){return Object.assign(omitFromObject(ToneEvent.getDefaults(),["value"]),{events:[],loop:!0,loopEnd:0,loopStart:0,subdivision:"8n"})}_seqCallback(e,s){s!==null&&this.callback(e,s)}get events(){return this._events}set events(e){this.clear(),this._eventsArray=e,this._events=this._createSequence(this._eventsArray),this._eventsUpdated()}start(e,s){return this._part.start(e,s&&this._indexTime(s)),this}stop(e){return this._part.stop(e),this}get subdivision(){return new TicksClass(this.context,this._subdivision).toSeconds()}_createSequence(e){return new Proxy(e,{get:(s,a)=>s[a],set:(s,a,c)=>(isString(a)&&isFinite(parseInt(a,10))&&isArray(c)?s[a]=this._createSequence(c):s[a]=c,this._eventsUpdated(),!0)})}_eventsUpdated(){this._part.clear(),this._rescheduleSequence(this._eventsArray,this._subdivision,this.startOffset),this.loopEnd=this.loopEnd}_rescheduleSequence(e,s,a){e.forEach((c,d)=>{const _=d*s+a;if(isArray(c))this._rescheduleSequence(c,s/c.length,_);else{const b=new TicksClass(this.context,_,"i").toSeconds();this._part.add(b,c)}})}_indexTime(e){return new TicksClass(this.context,e*this._subdivision+this.startOffset).toSeconds()}clear(){return this._part.clear(),this}dispose(){return super.dispose(),this._part.dispose(),this}get loop(){return this._part.loop}set loop(e){this._part.loop=e}get loopStart(){return this._loopStart}set loopStart(e){this._loopStart=e,this._part.loopStart=this._indexTime(e)}get loopEnd(){return this._loopEnd}set loopEnd(e){this._loopEnd=e,e===0?this._part.loopEnd=this._indexTime(this._eventsArray.length):this._part.loopEnd=this._indexTime(e)}get startOffset(){return this._part.startOffset}set startOffset(e){this._part.startOffset=e}get playbackRate(){return this._part.playbackRate}set playbackRate(e){this._part.playbackRate=e}get probability(){return this._part.probability}set probability(e){this._part.probability=e}get progress(){return this._part.progress}get humanize(){return this._part.humanize}set humanize(e){this._part.humanize=e}get length(){return this._part.length}}class CrossFade extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(CrossFade.getDefaults(),arguments,["fade"]))),this.name="CrossFade",this._panner=this.context.createStereoPanner(),this._split=this.context.createChannelSplitter(2),this._g2a=new GainToAudio({context:this.context}),this.a=new Gain$1({context:this.context,gain:0}),this.b=new Gain$1({context:this.context,gain:0}),this.output=new Gain$1({context:this.context}),this._internalChannels=[this.a,this.b];const e=optionsFromArguments(CrossFade.getDefaults(),arguments,["fade"]);this.fade=new Signal({context:this.context,units:"normalRange",value:e.fade}),readOnly$1(this,"fade"),this.context.getConstant(1).connect(this._panner),this._panner.connect(this._split),this._panner.channelCount=1,this._panner.channelCountMode="explicit",connect(this._split,this.a.gain,0),connect(this._split,this.b.gain,1),this.fade.chain(this._g2a,this._panner.pan),this.a.connect(this.output),this.b.connect(this.output)}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{fade:.5})}dispose(){return super.dispose(),this.a.dispose(),this.b.dispose(),this.output.dispose(),this.fade.dispose(),this._g2a.dispose(),this._panner.disconnect(),this._split.disconnect(),this}}class Effect extends ToneAudioNode{constructor(e){super(e),this.name="Effect",this._dryWet=new CrossFade({context:this.context}),this.wet=this._dryWet.fade,this.effectSend=new Gain$1({context:this.context}),this.effectReturn=new Gain$1({context:this.context}),this.input=new Gain$1({context:this.context}),this.output=this._dryWet,this.input.fan(this._dryWet.a,this.effectSend),this.effectReturn.connect(this._dryWet.b),this.wet.setValueAtTime(e.wet,0),this._internalChannels=[this.effectReturn,this.effectSend],readOnly$1(this,"wet")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{wet:1})}connectEffect(e){return this._internalChannels.push(e),this.effectSend.chain(e,this.effectReturn),this}dispose(){return super.dispose(),this._dryWet.dispose(),this.effectSend.dispose(),this.effectReturn.dispose(),this.wet.dispose(),this}}class LFOEffect extends Effect{constructor(e){super(e),this.name="LFOEffect",this._lfo=new LFO({context:this.context,frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.type=e.type,readOnly$1(this,["frequency","depth"])}static getDefaults(){return Object.assign(Effect.getDefaults(),{frequency:1,type:"sine",depth:1})}start(e){return this._lfo.start(e),this}stop(e){return this._lfo.stop(e),this}sync(){return this._lfo.sync(),this}unsync(){return this._lfo.unsync(),this}get type(){return this._lfo.type}set type(e){this._lfo.type=e}dispose(){return super.dispose(),this._lfo.dispose(),this.frequency.dispose(),this.depth.dispose(),this}}class AutoFilter$1 extends LFOEffect{constructor(){super(optionsFromArguments(AutoFilter$1.getDefaults(),arguments,["frequency","baseFrequency","octaves"])),this.name="AutoFilter";const e=optionsFromArguments(AutoFilter$1.getDefaults(),arguments,["frequency","baseFrequency","octaves"]);this.filter=new Filter$1(Object.assign(e.filter,{context:this.context})),this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency}static getDefaults(){return Object.assign(LFOEffect.getDefaults(),{baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}})}get baseFrequency(){return this._lfo.min}set baseFrequency(e){this._lfo.min=this.toFrequency(e),this.octaves=this._octaves}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._lfo.max=this._lfo.min*Math.pow(2,e)}dispose(){return super.dispose(),this.filter.dispose(),this}}class Panner extends ToneAudioNode{constructor(){super(Object.assign(optionsFromArguments(Panner.getDefaults(),arguments,["pan"]))),this.name="Panner",this._panner=this.context.createStereoPanner(),this.input=this._panner,this.output=this._panner;const e=optionsFromArguments(Panner.getDefaults(),arguments,["pan"]);this.pan=new Param({context:this.context,param:this._panner.pan,value:e.pan,minValue:-1,maxValue:1}),this._panner.channelCount=e.channelCount,this._panner.channelCountMode="explicit",readOnly$1(this,"pan")}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{pan:0,channelCount:1})}dispose(){return super.dispose(),this._panner.disconnect(),this.pan.dispose(),this}}class AutoPanner extends LFOEffect{constructor(){super(optionsFromArguments(AutoPanner.getDefaults(),arguments,["frequency"])),this.name="AutoPanner";const e=optionsFromArguments(AutoPanner.getDefaults(),arguments,["frequency"]);this._panner=new Panner({context:this.context,channelCount:e.channelCount}),this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this._lfo.min=-1,this._lfo.max=1}static getDefaults(){return Object.assign(LFOEffect.getDefaults(),{channelCount:1})}dispose(){return super.dispose(),this._panner.dispose(),this}}class Follower extends ToneAudioNode{constructor(){super(optionsFromArguments(Follower.getDefaults(),arguments,["smoothing"])),this.name="Follower";const e=optionsFromArguments(Follower.getDefaults(),arguments,["smoothing"]);this._abs=this.input=new Abs({context:this.context}),this._lowpass=this.output=new OnePoleFilter({context:this.context,frequency:1/this.toSeconds(e.smoothing),type:"lowpass"}),this._abs.connect(this._lowpass),this._smoothing=e.smoothing}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{smoothing:.05})}get smoothing(){return this._smoothing}set smoothing(e){this._smoothing=e,this._lowpass.frequency=1/this.toSeconds(this.smoothing)}dispose(){return super.dispose(),this._abs.dispose(),this._lowpass.dispose(),this}}class AutoWah extends Effect{constructor(){super(optionsFromArguments(AutoWah.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"])),this.name="AutoWah";const e=optionsFromArguments(AutoWah.getDefaults(),arguments,["baseFrequency","octaves","sensitivity"]);this._follower=new Follower({context:this.context,smoothing:e.follower}),this._sweepRange=new ScaleExp({context:this.context,min:0,max:1,exponent:.5}),this._baseFrequency=this.toFrequency(e.baseFrequency),this._octaves=e.octaves,this._inputBoost=new Gain$1({context:this.context}),this._bandpass=new Filter$1({context:this.context,rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new Filter$1({context:this.context,type:"peaking"}),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this._follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,readOnly$1(this,["gain","Q"])}static getDefaults(){return Object.assign(Effect.getDefaults(),{baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:.2})}get octaves(){return this._octaves}set octaves(e){this._octaves=e,this._setSweepRange()}get follower(){return this._follower.smoothing}set follower(e){this._follower.smoothing=e}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){this._baseFrequency=this.toFrequency(e),this._setSweepRange()}get sensitivity(){return gainToDb(1/this._inputBoost.gain.value)}set sensitivity(e){this._inputBoost.gain.value=1/dbToGain(e)}_setSweepRange(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)}dispose(){return super.dispose(),this._follower.dispose(),this._sweepRange.dispose(),this._bandpass.dispose(),this._peaking.dispose(),this._inputBoost.dispose(),this}}const workletName="bit-crusher",bitCrusherWorklet=`
|
|
class BitCrusherWorklet extends SingleIOProcessor {
|
|
|
|
static get parameterDescriptors() {
|
|
return [{
|
|
name: "bits",
|
|
defaultValue: 12,
|
|
minValue: 1,
|
|
maxValue: 16,
|
|
automationRate: 'k-rate'
|
|
}];
|
|
}
|
|
|
|
generate(input, _channel, parameters) {
|
|
const step = Math.pow(0.5, parameters.bits - 1);
|
|
const val = step * Math.floor(input / step + 0.5);
|
|
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 a<combFilterTunings.length/2?this.connectEffectLeft(c,...this._allpassFiltersL):this.connectEffectRight(c,...this._allpassFiltersR),this.roomSize.connect(c.resonance),c}),readOnly$1(this,["roomSize"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{roomSize:.7,dampening:3e3})}get dampening(){return this._combFilters[0].dampening}set dampening(e){this._combFilters.forEach(s=>s.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],a<combFilterDelayTimes.length/2?this.connectEffectLeft(...this._allpassFilters,c):this.connectEffectRight(...this._allpassFilters,c),c}),this.roomSize.connect(this._scaleRoomSize),readOnly$1(this,["roomSize"])}static getDefaults(){return Object.assign(StereoEffect.getDefaults(),{roomSize:.5})}dispose(){return super.dispose(),this._allpassFilters.forEach(e=>e.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;c<e;c++){const d=this.context.createBiquadFilter();d.type="allpass",this.Q.connect(d.Q),s.connect(d.frequency),a.push(d)}return a}get octaves(){return this._octaves}set octaves(e){this._octaves=e;const s=this._baseFrequency*Math.pow(2,e);this._lfoL.max=s,this._lfoR.max=s}get baseFrequency(){return this._baseFrequency}set baseFrequency(e){this._baseFrequency=this.toFrequency(e),this._lfoL.min=this._baseFrequency,this._lfoR.min=this._baseFrequency,this.octaves=this._octaves}dispose(){return super.dispose(),this.Q.dispose(),this._lfoL.dispose(),this._lfoR.dispose(),this._filtersL.forEach(e=>e.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<e.channels;s++)this._analysers[s]=this.context.createAnalyser(),this._split.connect(this._analysers[s],s,0);this.size=e.size,this.type=e.type}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{size:1024,smoothing:.8,type:"fft",channels:1})}getValue(){return this._analysers.forEach((e,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&&e<this.size,`index must be greater than or equal to 0 and less than ${this.size}`),e*this.context.sampleRate/(this.size*2)}}class DCMeter extends MeterBase{constructor(){super(optionsFromArguments(DCMeter.getDefaults(),arguments)),this.name="DCMeter",this._analyser.type="waveform",this._analyser.size=256}getValue(){return this._analyser.getValue()[0]}}class Waveform extends MeterBase{constructor(){super(optionsFromArguments(Waveform.getDefaults(),arguments,["size"])),this.name="Waveform";const e=optionsFromArguments(Waveform.getDefaults(),arguments,["size"]);this._analyser.type="waveform",this.size=e.size}static getDefaults(){return Object.assign(MeterBase.getDefaults(),{size:1024})}getValue(){return this._analyser.getValue()}get size(){return this._analyser.size}set size(e){this._analyser.size=e}}class Solo extends ToneAudioNode{constructor(){super(optionsFromArguments(Solo.getDefaults(),arguments,["solo"])),this.name="Solo";const e=optionsFromArguments(Solo.getDefaults(),arguments,["solo"]);this.input=this.output=new Gain$1({context:this.context}),Solo._allSolos.has(this.context)||Solo._allSolos.set(this.context,new Set),Solo._allSolos.get(this.context).add(this),this.solo=e.solo}static getDefaults(){return Object.assign(ToneAudioNode.getDefaults(),{solo:!1})}get solo(){return this._isSoloed()}set solo(e){e?this._addSolo():this._removeSolo(),Solo._allSolos.get(this.context).forEach(s=>s._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;a<arguments.length;a++)s.push(arguments[a]);var c=e==="error",d=this._events;if(d!==void 0)c=c&&d.error===void 0;else if(!c)return!1;if(c){var _;if(s.length>0&&(_=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<d.length;++c)_=d[c],_!=="removeListener"&&this.removeAllListeners(_);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(s=a[e],typeof s=="function")this.removeListener(e,s);else if(s!==void 0)for(c=s.length-1;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<e;++a)s[a]=o[a];return s}function spliceOne(o,e){for(;e+1<o.length;e++)o[e]=o[e+1];o.pop()}function unwrapListeners(o){for(var e=new Array(o.length),s=0;s<e.length;++s)e[s]=o[s].listener||o[s];return e}function once(o,e){return new Promise(function(s,a){function c(_){o.removeListener(e,d),a(_)}function d(){typeof o.removeListener=="function"&&o.removeListener("error",c),s([].slice.call(arguments))}eventTargetAgnosticAddListener(o,e,d,{once:!0}),e!=="error"&&addErrorHandlerIfEventEmitter(o,c,{once:!0})})}function addErrorHandlerIfEventEmitter(o,e,s){typeof o.on=="function"&&eventTargetAgnosticAddListener(o,"error",e,s)}function eventTargetAgnosticAddListener(o,e,s,a){if(typeof o.on=="function")a.once?o.once(e,s):o.on(e,s);else if(typeof o.addEventListener=="function")o.addEventListener(e,function c(d){a.once&&o.removeEventListener(e,c),s(d)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof o)}var webmidi_min={exports:{}};(function(o){(function(e){function s(){if(s.prototype._singleton)throw new Error("WebMidi is a singleton, it cannot be instantiated directly.");(s.prototype._singleton=this)._inputs=[],this._outputs=[],this._userHandlers={},this._stateChangeQueue=[],this._processingStateChange=!1,this._midiInterfaceEvents=["connected","disconnected"],this._nrpnBuffer=[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],this._nrpnEventsEnabled=!0,this._nrpnTypes=["entry","increment","decrement"],this._notes=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"],this._semitones={C:0,D:2,E:4,F:5,G:7,A:9,B:11},Object.defineProperties(this,{MIDI_SYSTEM_MESSAGES:{value:{sysex:240,timecode:241,songposition:242,songselect:243,tuningrequest:246,sysexend:247,clock:248,start:250,continue:251,stop:252,activesensing:254,reset:255,midimessage:0,unknownsystemmessage:-1},writable:!1,enumerable:!0,configurable:!1},MIDI_CHANNEL_MESSAGES:{value:{noteoff:8,noteon:9,keyaftertouch:10,controlchange:11,channelmode:11,nrpn:11,programchange:12,channelaftertouch:13,pitchbend:14},writable:!1,enumerable:!0,configurable:!1},MIDI_REGISTERED_PARAMETER:{value:{pitchbendrange:[0,0],channelfinetuning:[0,1],channelcoarsetuning:[0,2],tuningprogram:[0,3],tuningbank:[0,4],modulationrange:[0,5],azimuthangle:[61,0],elevationangle:[61,1],gain:[61,2],distanceratio:[61,3],maximumdistance:[61,4],maximumdistancegain:[61,5],referencedistanceratio:[61,6],panspreadangle:[61,7],rollangle:[61,8]},writable:!1,enumerable:!0,configurable:!1},MIDI_CONTROL_CHANGE_MESSAGES:{value:{bankselectcoarse:0,modulationwheelcoarse:1,breathcontrollercoarse:2,footcontrollercoarse:4,portamentotimecoarse:5,dataentrycoarse:6,volumecoarse:7,balancecoarse:8,pancoarse:10,expressioncoarse:11,effectcontrol1coarse:12,effectcontrol2coarse:13,generalpurposeslider1:16,generalpurposeslider2:17,generalpurposeslider3:18,generalpurposeslider4:19,bankselectfine:32,modulationwheelfine:33,breathcontrollerfine:34,footcontrollerfine:36,portamentotimefine:37,dataentryfine:38,volumefine:39,balancefine:40,panfine:42,expressionfine:43,effectcontrol1fine:44,effectcontrol2fine:45,holdpedal:64,portamento:65,sustenutopedal:66,softpedal:67,legatopedal:68,hold2pedal:69,soundvariation:70,resonance:71,soundreleasetime:72,soundattacktime:73,brightness:74,soundcontrol6:75,soundcontrol7:76,soundcontrol8:77,soundcontrol9:78,soundcontrol10:79,generalpurposebutton1:80,generalpurposebutton2:81,generalpurposebutton3:82,generalpurposebutton4:83,reverblevel:91,tremololevel:92,choruslevel:93,celestelevel:94,phaserlevel:95,databuttonincrement:96,databuttondecrement:97,nonregisteredparametercoarse:98,nonregisteredparameterfine:99,registeredparametercoarse:100,registeredparameterfine:101},writable:!1,enumerable:!0,configurable:!1},MIDI_NRPN_MESSAGES:{value:{entrymsb:6,entrylsb:38,increment:96,decrement:97,paramlsb:98,parammsb:99,nullactiveparameter:127},writable:!1,enumerable:!0,configurable:!1},MIDI_CHANNEL_MODE_MESSAGES:{value:{allsoundoff:120,resetallcontrollers:121,localcontrol:122,allnotesoff:123,omnimodeoff:124,omnimodeon:125,monomodeon:126,polymodeon:127},writable:!1,enumerable:!0,configurable:!1},octaveOffset:{value:0,writable:!0,enumerable:!0,configurable:!1}}),Object.defineProperties(this,{supported:{enumerable:!0,get:function(){return"requestMIDIAccess"in navigator}},enabled:{enumerable:!0,get:function(){return this.interface!==void 0}.bind(this)},inputs:{enumerable:!0,get:function(){return this._inputs}.bind(this)},outputs:{enumerable:!0,get:function(){return this._outputs}.bind(this)},sysexEnabled:{enumerable:!0,get:function(){return!(!this.interface||!this.interface.sysexEnabled)}.bind(this)},nrpnEventsEnabled:{enumerable:!0,get:function(){return!!this._nrpnEventsEnabled}.bind(this),set:function(_){return this._nrpnEventsEnabled=_,this._nrpnEventsEnabled}},nrpnTypes:{enumerable:!0,get:function(){return this._nrpnTypes}.bind(this)},time:{enumerable:!0,get:function(){return performance.now()}}})}var a=new s;function c(_){var b=this;this._userHandlers={channel:{},system:{}},this._midiInput=_,Object.defineProperties(this,{connection:{enumerable:!0,get:function(){return b._midiInput.connection}},id:{enumerable:!0,get:function(){return b._midiInput.id}},manufacturer:{enumerable:!0,get:function(){return b._midiInput.manufacturer}},name:{enumerable:!0,get:function(){return b._midiInput.name}},state:{enumerable:!0,get:function(){return b._midiInput.state}},type:{enumerable:!0,get:function(){return b._midiInput.type}}}),this._initializeUserHandlers(),this._midiInput.onmidimessage=this._onMidiMessage.bind(this)}function d(_){var b=this;this._midiOutput=_,Object.defineProperties(this,{connection:{enumerable:!0,get:function(){return b._midiOutput.connection}},id:{enumerable:!0,get:function(){return b._midiOutput.id}},manufacturer:{enumerable:!0,get:function(){return b._midiOutput.manufacturer}},name:{enumerable:!0,get:function(){return b._midiOutput.name}},state:{enumerable:!0,get:function(){return b._midiOutput.state}},type:{enumerable:!0,get:function(){return b._midiOutput.type}}})}s.prototype.enable=function(_,b){this.enabled||(this.supported?navigator.requestMIDIAccess({sysex:b}).then(function(k){var $,j=[],_e=[];this.interface=k,this._resetInterfaceUserHandlers(),this.interface.onstatechange=function(it){j.push(it)};for(var et=k.inputs.values(),tt=et.next();tt&&!tt.done;tt=et.next())_e.push(tt.value.open());for(var nt=k.outputs.values(),st=nt.next();st&&!st.done;st=nt.next())_e.push(st.value.open());function rt(){clearTimeout($),this._updateInputsAndOutputs(),this.interface.onstatechange=this._onInterfaceStateChange.bind(this),typeof _=="function"&&_.call(this),j.forEach(function(it){this._onInterfaceStateChange(it)}.bind(this))}$=setTimeout(rt.bind(this),200),Promise&&Promise.all(_e).catch(function(it){}).then(rt.bind(this))}.bind(this),function(k){typeof _=="function"&&_.call(this,k)}.bind(this)):typeof _=="function"&&_(new Error("The Web MIDI API is not supported by your browser.")))},s.prototype.disable=function(){if(!this.supported)throw new Error("The Web MIDI API is not supported by your browser.");this.enabled&&(this.removeListener(),this.inputs.forEach(function(_){_.removeListener()})),this.interface&&(this.interface.onstatechange=void 0),this.interface=void 0,this._inputs=[],this._outputs=[],this._nrpnEventsEnabled=!0,this._resetInterfaceUserHandlers()},s.prototype.addListener=function(_,b){if(!this.enabled)throw new Error("WebMidi must be enabled before adding event listeners.");if(typeof b!="function")throw new TypeError("The 'listener' parameter must be a function.");if(!(0<=this._midiInterfaceEvents.indexOf(_)))throw new TypeError("The specified event type is not supported.");return this._userHandlers[_].push(b),this},s.prototype.hasListener=function(_,b){if(!this.enabled)throw new Error("WebMidi must be enabled before checking event listeners.");if(typeof b!="function")throw new TypeError("The 'listener' parameter must be a function.");if(!(0<=this._midiInterfaceEvents.indexOf(_)))throw new TypeError("The specified event type is not supported.");for(var k=0;k<this._userHandlers[_].length;k++)if(this._userHandlers[_][k]===b)return!0;return!1},s.prototype.removeListener=function(_,b){if(!this.enabled)throw new Error("WebMidi must be enabled before removing event listeners.");if(b!==void 0&&typeof b!="function")throw new TypeError("The 'listener' parameter must be a function.");if(0<=this._midiInterfaceEvents.indexOf(_))if(b)for(var k=0;k<this._userHandlers[_].length;k++)this._userHandlers[_][k]===b&&this._userHandlers[_].splice(k,1);else this._userHandlers[_]=[];else{if(_!==void 0)throw new TypeError("The specified event type is not supported.");this._resetInterfaceUserHandlers()}return this},s.prototype.toMIDIChannels=function(_){var b;if(_==="all"||_===void 0)b=["all"];else{if(_==="none")return b=[];b=Array.isArray(_)?_:[_]}return-1<b.indexOf("all")&&(b=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]),b.map(function(k){return parseInt(k)}).filter(function(k){return 1<=k&&k<=16})},s.prototype.getInputById=function(_){if(!this.enabled)throw new Error("WebMidi is not enabled.");_=String(_);for(var b=0;b<this.inputs.length;b++)if(this.inputs[b].id===_)return this.inputs[b];return!1},s.prototype.getOutputById=function(_){if(!this.enabled)throw new Error("WebMidi is not enabled.");_=String(_);for(var b=0;b<this.outputs.length;b++)if(this.outputs[b].id===_)return this.outputs[b];return!1},s.prototype.getInputByName=function(_){if(!this.enabled)throw new Error("WebMidi is not enabled.");for(var b=0;b<this.inputs.length;b++)if(~this.inputs[b].name.indexOf(_))return this.inputs[b];return!1},s.prototype.getOctave=function(_){if(_!=null&&0<=_&&_<=127)return Math.floor(Math.floor(_)/12-1)+Math.floor(a.octaveOffset)},s.prototype.getOutputByName=function(_){if(!this.enabled)throw new Error("WebMidi is not enabled.");for(var b=0;b<this.outputs.length;b++)if(~this.outputs[b].name.indexOf(_))return this.outputs[b];return!1},s.prototype.guessNoteNumber=function(_){var b=!1;if(_&&_.toFixed&&0<=_&&_<=127?b=Math.round(_):0<=parseInt(_)&&parseInt(_)<=127?b=parseInt(_):(typeof _=="string"||_ instanceof String)&&(b=this.noteNameToNumber(_)),b===!1)throw new Error("Invalid input value ("+_+").");return b},s.prototype.noteNameToNumber=function(_){typeof _!="string"&&(_="");var b=_.match(/([CDEFGAB])(#{0,2}|b{0,2})(-?\d+)/i);if(!b)throw new RangeError("Invalid note name.");var k=a._semitones[b[1].toUpperCase()],$=12*(parseInt(b[3])+1-Math.floor(a.octaveOffset))+k;if(-1<b[2].toLowerCase().indexOf("b")?$-=b[2].length:-1<b[2].toLowerCase().indexOf("#")&&($+=b[2].length),$<0||127<$)throw new RangeError("Invalid note name or note outside valid range.");return $},s.prototype._updateInputsAndOutputs=function(){this._updateInputs(),this._updateOutputs()},s.prototype._updateInputs=function(){for(var _=0;_<this._inputs.length;_++){for(var b=!0,k=this.interface.inputs.values(),$=k.next();$&&!$.done;$=k.next())if(this._inputs[_]._midiInput===$.value){b=!1;break}b&&this._inputs.splice(_,1)}this.interface&&this.interface.inputs.forEach(function(j){for(var _e=!0,et=0;et<this._inputs.length;et++)this._inputs[et]._midiInput===j&&(_e=!1);_e&&this._inputs.push(new c(j))}.bind(this))},s.prototype._updateOutputs=function(){for(var _=0;_<this._outputs.length;_++){for(var b=!0,k=this.interface.outputs.values(),$=k.next();$&&!$.done;$=k.next())if(this._outputs[_]._midiOutput===$.value){b=!1;break}b&&this._outputs.splice(_,1)}this.interface&&this.interface.outputs.forEach(function(j){for(var _e=!0,et=0;et<this._outputs.length;et++)this._outputs[et]._midiOutput===j&&(_e=!1);_e&&this._outputs.push(new d(j))}.bind(this))},s.prototype._onInterfaceStateChange=function(_){this._updateInputsAndOutputs();var b={timestamp:_.timeStamp,type:_.port.state};this.interface&&_.port.state==="connected"?_.port.type==="output"?b.port=this.getOutputById(_.port.id):_.port.type==="input"&&(b.port=this.getInputById(_.port.id)):b.port={connection:"closed",id:_.port.id,manufacturer:_.port.manufacturer,name:_.port.name,state:_.port.state,type:_.port.type},this._userHandlers[_.port.state].forEach(function(k){k(b)})},s.prototype._resetInterfaceUserHandlers=function(){for(var _=0;_<this._midiInterfaceEvents.length;_++)this._userHandlers[this._midiInterfaceEvents[_]]=[]},c.prototype.on=c.prototype.addListener=function(_,b,k){var $=this;if(b===void 0&&(b="all"),Array.isArray(b)||(b=[b]),b.forEach(function(_e){if(_e!=="all"&&!(1<=_e&&_e<=16))throw new RangeError("The 'channel' parameter is invalid.")}),typeof k!="function")throw new TypeError("The 'listener' parameter must be a function.");if(a.MIDI_SYSTEM_MESSAGES[_]!==void 0)this._userHandlers.system[_]||(this._userHandlers.system[_]=[]),this._userHandlers.system[_].push(k);else{if(a.MIDI_CHANNEL_MESSAGES[_]===void 0)throw new TypeError("The specified event type is not supported.");if(-1<b.indexOf("all")){b=[];for(var j=1;j<=16;j++)b.push(j)}this._userHandlers.channel[_]||(this._userHandlers.channel[_]=[]),b.forEach(function(_e){$._userHandlers.channel[_][_e]||($._userHandlers.channel[_][_e]=[]),$._userHandlers.channel[_][_e].push(k)})}return this},c.prototype.hasListener=function(_,b,k){var $=this;if(typeof k!="function")throw new TypeError("The 'listener' parameter must be a function.");if(b===void 0&&(b="all"),b.constructor!==Array&&(b=[b]),a.MIDI_SYSTEM_MESSAGES[_]!==void 0){for(var j=0;j<this._userHandlers.system[_].length;j++)if(this._userHandlers.system[_][j]===k)return!0}else if(a.MIDI_CHANNEL_MESSAGES[_]!==void 0){if(-1<b.indexOf("all")){b=[];for(var _e=1;_e<=16;_e++)b.push(_e)}return!!this._userHandlers.channel[_]&&b.every(function(et){var tt=$._userHandlers.channel[_][et];return tt&&-1<tt.indexOf(k)})}return!1},c.prototype.removeListener=function(_,b,k){var $=this;if(k!==void 0&&typeof k!="function")throw new TypeError("The 'listener' parameter must be a function.");if(b===void 0&&(b="all"),b.constructor!==Array&&(b=[b]),a.MIDI_SYSTEM_MESSAGES[_]!==void 0)if(k===void 0)this._userHandlers.system[_]=[];else for(var j=0;j<this._userHandlers.system[_].length;j++)this._userHandlers.system[_][j]===k&&this._userHandlers.system[_].splice(j,1);else if(a.MIDI_CHANNEL_MESSAGES[_]!==void 0){if(-1<b.indexOf("all")){b=[];for(var _e=1;_e<=16;_e++)b.push(_e)}if(!this._userHandlers.channel[_])return this;b.forEach(function(et){var tt=$._userHandlers.channel[_][et];if(tt)if(k===void 0)$._userHandlers.channel[_][et]=[];else for(var nt=0;nt<tt.length;nt++)tt[nt]===k&&tt.splice(nt,1)})}else{if(_!==void 0)throw new TypeError("The specified event type is not supported.");this._initializeUserHandlers()}return this},c.prototype._initializeUserHandlers=function(){for(var _ in a.MIDI_CHANNEL_MESSAGES)Object.prototype.hasOwnProperty.call(a.MIDI_CHANNEL_MESSAGES,_)&&(this._userHandlers.channel[_]={});for(var b in a.MIDI_SYSTEM_MESSAGES)Object.prototype.hasOwnProperty.call(a.MIDI_SYSTEM_MESSAGES,b)&&(this._userHandlers.system[b]=[])},c.prototype._onMidiMessage=function(_){if(0<this._userHandlers.system.midimessage.length){var b={target:this,data:_.data,timestamp:_.timeStamp,type:"midimessage"};this._userHandlers.system.midimessage.forEach(function(k){k(b)})}_.data[0]<240?(this._parseChannelEvent(_),this._parseNrpnEvent(_)):_.data[0]<=255&&this._parseSystemEvent(_)},c.prototype._parseNrpnEvent=function(_){var b,k,$=_.data[0]>>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<b)throw new RangeError("The channel must be between 1 and 16.");(isNaN(k)||k<0||1<k)&&(k=.5);var _e=Math.round(127*k);return this._convertNoteToArray(_).forEach(function(et){a.toMIDIChannels(b).forEach(function(tt){j.send((a.MIDI_CHANNEL_MESSAGES.keyaftertouch<<4)+(tt-1),[et,_e],j._parseTimeParameter($.time))})}),this},d.prototype.sendControlChange=function(_,b,k,$){if($=$||{},typeof _=="string"){if((_=a.MIDI_CONTROL_CHANGE_MESSAGES[_])===void 0)throw new TypeError("Invalid controller name.")}else if(!(0<=(_=Math.floor(_))&&_<=119))throw new RangeError("Controller numbers must be between 0 and 119.");if(!(0<=(b=Math.floor(b)||0)&&b<=127))throw new RangeError("Controller value must be between 0 and 127.");return a.toMIDIChannels(k).forEach(function(j){this.send((a.MIDI_CHANNEL_MESSAGES.controlchange<<4)+(j-1),[_,b],this._parseTimeParameter($.time))}.bind(this)),this},d.prototype._selectRegisteredParameter=function(_,b,k){var $=this;if(_[0]=Math.floor(_[0]),!(0<=_[0]&&_[0]<=127))throw new RangeError("The control65 value must be between 0 and 127");if(_[1]=Math.floor(_[1]),!(0<=_[1]&&_[1]<=127))throw new RangeError("The control64 value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.sendControlChange(101,_[0],b,{time:k}),$.sendControlChange(100,_[1],b,{time:k})}),this},d.prototype._selectNonRegisteredParameter=function(_,b,k){var $=this;if(_[0]=Math.floor(_[0]),!(0<=_[0]&&_[0]<=127))throw new RangeError("The control63 value must be between 0 and 127");if(_[1]=Math.floor(_[1]),!(0<=_[1]&&_[1]<=127))throw new RangeError("The control62 value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.sendControlChange(99,_[0],b,{time:k}),$.sendControlChange(98,_[1],b,{time:k})}),this},d.prototype._setCurrentRegisteredParameter=function(_,b,k){var $=this;if((_=[].concat(_))[0]=Math.floor(_[0]),!(0<=_[0]&&_[0]<=127))throw new RangeError("The msb value must be between 0 and 127");return a.toMIDIChannels(b).forEach(function(){$.sendControlChange(6,_[0],b,{time:k})}),_[1]=Math.floor(_[1]),0<=_[1]&&_[1]<=127&&a.toMIDIChannels(b).forEach(function(){$.sendControlChange(38,_[1],b,{time:k})}),this},d.prototype._deselectRegisteredParameter=function(_,b){var k=this;return a.toMIDIChannels(_).forEach(function(){k.sendControlChange(101,127,_,{time:b}),k.sendControlChange(100,127,_,{time:b})}),this},d.prototype.setRegisteredParameter=function(_,b,k,$){var j=this;if($=$||{},!Array.isArray(_)){if(!a.MIDI_REGISTERED_PARAMETER[_])throw new Error("The specified parameter is not available.");_=a.MIDI_REGISTERED_PARAMETER[_]}return a.toMIDIChannels(k).forEach(function(){j._selectRegisteredParameter(_,k,$.time),j._setCurrentRegisteredParameter(b,k,$.time),j._deselectRegisteredParameter(k,$.time)}),this},d.prototype.setNonRegisteredParameter=function(_,b,k,$){var j=this;if($=$||{},!(0<=_[0]&&_[0]<=127&&0<=_[1]&&_[1]<=127))throw new Error("Position 0 and 1 of the 2-position parameter array must both be between 0 and 127.");return b=[].concat(b),a.toMIDIChannels(k).forEach(function(){j._selectNonRegisteredParameter(_,k,$.time),j._setCurrentRegisteredParameter(b,k,$.time),j._deselectRegisteredParameter(k,$.time)}),this},d.prototype.incrementRegisteredParameter=function(_,b,k){var $=this;if(k=k||{},!Array.isArray(_)){if(!a.MIDI_REGISTERED_PARAMETER[_])throw new Error("The specified parameter is not available.");_=a.MIDI_REGISTERED_PARAMETER[_]}return a.toMIDIChannels(b).forEach(function(){$._selectRegisteredParameter(_,b,k.time),$.sendControlChange(96,0,b,{time:k.time}),$._deselectRegisteredParameter(b,k.time)}),this},d.prototype.decrementRegisteredParameter=function(_,b,k){if(k=k||{},!Array.isArray(_)){if(!a.MIDI_REGISTERED_PARAMETER[_])throw new TypeError("The specified parameter is not available.");_=a.MIDI_REGISTERED_PARAMETER[_]}return a.toMIDIChannels(b).forEach(function(){this._selectRegisteredParameter(_,b,k.time),this.sendControlChange(97,0,b,{time:k.time}),this._deselectRegisteredParameter(b,k.time)}.bind(this)),this},d.prototype.setPitchBendRange=function(_,b,k,$){var j=this;if($=$||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The semitones value must be between 0 and 127");if(!(0<=(b=Math.floor(b)||0)&&b<=127))throw new RangeError("The cents value must be between 0 and 127");return a.toMIDIChannels(k).forEach(function(){j.setRegisteredParameter("pitchbendrange",[_,b],k,{time:$.time})}),this},d.prototype.setModulationRange=function(_,b,k,$){var j=this;if($=$||{},!(0<=(_=Math.floor(_)||0)&&_<=127))throw new RangeError("The semitones value must be between 0 and 127");if(!(0<=(b=Math.floor(b)||0)&&b<=127))throw new RangeError("The cents value must be between 0 and 127");return a.toMIDIChannels(k).forEach(function(){j.setRegisteredParameter("modulationrange",[_,b],k,{time:$.time})}),this},d.prototype.setMasterTuning=function(_,b,k){var $=this;if(k=k||{},(_=parseFloat(_)||0)<=-65||64<=_)throw new RangeError("The value must be a decimal number larger than -65 and smaller than 64.");var j=Math.floor(_)+64,_e=_-Math.floor(_),et=(_e=Math.round((_e+1)/2*16383))>>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<b)throw new RangeError("Value must be an integer between 0 and 127.");return a.toMIDIChannels(k).forEach(function(j){this.send((a.MIDI_CHANNEL_MESSAGES.channelmode<<4)+(j-1),[_,b],this._parseTimeParameter($.time))}.bind(this)),this},d.prototype.sendProgramChange=function(_,b,k){var $=this;if(k=k||{},_=Math.floor(_),isNaN(_)||_<0||127<_)throw new RangeError("Program numbers must be between 0 and 127.");return a.toMIDIChannels(b).forEach(function(j){$.send((a.MIDI_CHANNEL_MESSAGES.programchange<<4)+(j-1),[_],$._parseTimeParameter(k.time))}),this},d.prototype.sendChannelAftertouch=function(_,b,k){var $=this;k=k||{},_=parseFloat(_),(isNaN(_)||_<0||1<_)&&(_=.5);var j=Math.round(127*_);return a.toMIDIChannels(b).forEach(function(_e){$.send((a.MIDI_CHANNEL_MESSAGES.channelaftertouch<<4)+(_e-1),[j],$._parseTimeParameter(k.time))}),this},d.prototype.sendPitchBend=function(_,b,k){var $=this;if(k=k||{},isNaN(_)||_<-1||1<_)throw new RangeError("Pitch bend value must be between -1 and 1.");var j=Math.round((_+1)/2*16383),_e=j>>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&&0<k&&(b=a.time+k):k>a.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(Ot({},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._asNumber(!0).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<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_utils$1=utils$1,_errors$2=errors;function _classCallCheck$i(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$8(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$8(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}var TokenClass=tokenizer.TokenClass={Eof:{name:"<End>"},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.index<this.source.length?this.createError(_errors$2.ErrorMessages.UNEXPECTED_ILLEGAL_TOKEN,this.source.charAt(this.index)):this.createError(_errors$2.ErrorMessages.UNEXPECTED_EOS)}},{key:"createUnexpected",value:function(s){switch(s.type.klass){case TokenClass.Eof:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_EOS);case TokenClass.Ident:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_IDENTIFIER);case TokenClass.Keyword:return s.type===TokenType.ESCAPED_KEYWORD?this.createError(_errors$2.ErrorMessages.UNEXPECTED_ESCAPED_KEYWORD):this.createError(_errors$2.ErrorMessages.UNEXPECTED_TOKEN,s.slice.text);case TokenClass.NumericLiteral:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_NUMBER);case TokenClass.TemplateElement:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_TEMPLATE);case TokenClass.Punctuator:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_TOKEN,s.type.name);case TokenClass.StringLiteral:return this.createError(_errors$2.ErrorMessages.UNEXPECTED_STRING)}throw new Error("Unreachable: unexpected token of class "+s.type.klass)}},{key:"createError",value:function(s){var a=void 0;if(typeof s=="function"){for(var c=arguments.length,d=Array(c>1?c-1:0),_=1;_<c;_++)d[_-1]=arguments[_];a=s.apply(void 0,d)}else a=s;return new JsError(this.startIndex,this.startLine+1,this.startIndex-this.startLineStart+1,a)}},{key:"createErrorWithLocation",value:function(s,a){var c=arguments,d=a.replace(/\{(\d+)\}/g,function(_,b){return JSON.stringify(c[+b+2])});return s.slice&&s.slice.startLocation&&(s=s.slice.startLocation),new JsError(s.offset,s.line,s.column+1,d)}},{key:"getKeyword",value:function(s){if(s.length===1||s.length>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<this.source.length;){var a=this.source.charCodeAt(this.index);if(this.index++,(0,_utils$1.isLineTerminator)(a)){this.hasLineTerminatorBeforeNext=!0,a===13&&this.source.charCodeAt(this.index)===10&&this.index++,this.lineStart=this.index,this.line++;return}}}},{key:"skipMultiLineComment",value:function(){this.index+=2;for(var s=this.source.length,a=!1;this.index<s;){var c=this.source.charCodeAt(this.index);if(c<128)switch(c){case 42:if(this.source.charAt(this.index+1)==="/")return this.index=this.index+2,a;this.index++;break;case 10:a=!0,this.hasLineTerminatorBeforeNext=!0,this.index++,this.lineStart=this.index,this.line++;break;case 13:a=!0,this.hasLineTerminatorBeforeNext=!0,this.source.charAt(this.index+1)===`
|
|
`&&this.index++,this.index++,this.lineStart=this.index,this.line++;break;default:this.index++}else c===8232||c===8233?(a=!0,this.hasLineTerminatorBeforeNext=!0,this.index++,this.lineStart=this.index,this.line++):this.index++}throw this.createILLEGAL()}},{key:"skipComment",value:function(){this.hasLineTerminatorBeforeNext=!1;for(var s=this.index===0,a=this.source.length;this.index<a;){var c=this.source.charCodeAt(this.index);if((0,_utils$1.isWhiteSpace)(c))this.index++;else if((0,_utils$1.isLineTerminator)(c))this.hasLineTerminatorBeforeNext=!0,this.index++,c===13&&this.source.charAt(this.index)===`
|
|
`&&this.index++,this.lineStart=this.index,this.line++,s=!0;else if(c===47){if(this.index+1>=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;s<this.source.length;){c=this.source.charAt(s);var d=(0,_utils$1.getHexValue)(c);if(d===-1)break;if(a=a<<4|d,a>1114111)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;){var c=this.source.charAt(this.index),d=c.charCodeAt(0),_=this.index;if(++this.index,c==="\\"){if(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<a;){var _=this.source.charAt(c),b=_.charCodeAt(0);if(_==="\\"||b>=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<this.source.length&&this.source.charAt(this.index+1)==="=")switch(s){case"=":return this.index+2<this.source.length&&this.source.charAt(this.index+2)==="="?TokenType.EQ_STRICT:TokenType.EQ;case"!":return this.index+2<this.source.length&&this.source.charAt(this.index+2)==="="?TokenType.NE_STRICT:TokenType.NE;case"|":return TokenType.ASSIGN_BIT_OR;case"+":return TokenType.ASSIGN_ADD;case"-":return TokenType.ASSIGN_SUB;case"*":return TokenType.ASSIGN_MUL;case"<":return TokenType.LTE;case">":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<this.source.length){var d=this.source.charAt(this.index+1);if(s===d){if(this.index+2<this.source.length){var _=this.source.charAt(this.index+2);if(s===">"&&_===">")return this.index+3<this.source.length&&this.source.charAt(this.index+3)==="="?TokenType.ASSIGN_SHR_UNSIGNED:TokenType.SHR_UNSIGNED;if(s==="<"&&_==="=")return TokenType.ASSIGN_SHL;if(s===">"&&_==="=")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<this.source.length;){var d=this.source.charAt(c),_=(0,_utils$1.getHexValue)(d);if(_===-1)break;c++}if(this.index===c)throw this.createILLEGAL();if(c<this.source.length&&(0,_utils$1.isIdentifierStart)(this.source.charCodeAt(c)))throw this.createILLEGAL();this.index=c;var b=this.getSlice(s,a);return{type:TokenType.NUMBER,value:parseInt(b.text.substr(2),16),slice:b}}},{key:"scanBinaryLiteral",value:function(s,a){for(var c=this.index-s;this.index<this.source.length;){var d=this.source.charAt(this.index);if(d!=="0"&&d!=="1")break;this.index++}if(this.index-s<=c)throw this.createILLEGAL();if(this.index<this.source.length&&((0,_utils$1.isIdentifierStart)(this.source.charCodeAt(this.index))||(0,_utils$1.isDecimalDigit)(this.source.charCodeAt(this.index))))throw this.createILLEGAL();return{type:TokenType.NUMBER,value:parseInt(this.getSlice(s,a).text.substr(c),2),slice:this.getSlice(s,a),octal:!1,noctal:!1}}},{key:"scanOctalLiteral",value:function(s,a){for(;this.index<this.source.length;){var c=this.source.charAt(this.index);if(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<this.source.length;){var d=this.source.charAt(this.index);if(d>="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<this.source.length){if(s=this.source.charAt(this.index),s==="x"||s==="X")return this.index++,this.scanHexLiteral(c,a);if(s==="b"||s==="B")return this.index++,this.scanBinaryLiteral(c,a);if(s==="o"||s==="O")return this.index++,this.scanOctalLiteral(c,a);if(s>="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;){var b=this.source.charAt(this.index);if(b===a)return this.index++,{type:TokenType.STRING,slice:this.getSlice(d,c),str:s,octal:_};if(b==="\\"){var k=this.scanStringEscape(s,_),$=_slicedToArray(k,2);s=$[0],_=$[1]}else{if((0,_utils$1.isLineTerminator)(b.charCodeAt(0)))throw this.createILLEGAL();s+=b,this.index++}}throw this.createILLEGAL()}},{key:"scanTemplateElement",value:function(){var s=this.getLocation(),a=this.index;for(this.index++;this.index<this.source.length;){var c=this.source.charCodeAt(this.index);switch(c){case 96:return this.index++,{type:TokenType.TEMPLATE,tail:!0,slice:this.getSlice(a,s)};case 36:{if(this.source.charCodeAt(this.index+1)===123)return this.index+=2,{type:TokenType.TEMPLATE,tail:!1,slice:this.getSlice(a,s)};this.index++;break}case 92:{var d=this.scanStringEscape("",null)[1];if(d!=null)throw this.createError(_errors$2.ErrorMessages.NO_OCTALS_IN_TEMPLATES);break}case 13:{this.line++,this.index++,this.index<this.source.length&&this.source.charAt(this.index)===`
|
|
`&&this.index++,this.lineStart=this.index;break}case 10:case 8232:case 8233:{this.line++,this.index++,this.lineStart=this.index;break}default:this.index++}}throw this.createILLEGAL()}},{key:"scanRegExp",value:function(s){for(var a=this.getLocation(),c=this.index,d=!1,_=!1;this.index<this.source.length;){var b=this.source.charAt(this.index);if(b==="\\"){if(s+=b,this.index++,b=this.source.charAt(this.index),(0,_utils$1.isLineTerminator)(b.charCodeAt(0)))throw this.createError(_errors$2.ErrorMessages.UNTERMINATED_REGEXP);s+=b,this.index++}else{if((0,_utils$1.isLineTerminator)(b.charCodeAt(0)))throw this.createError(_errors$2.ErrorMessages.UNTERMINATED_REGEXP);if(_)b==="]"&&(_=!1);else if(b==="/"){d=!0,s+=b,this.index++;break}else b==="["&&(_=!0);s+=b,this.index++}}if(!d)throw this.createError(_errors$2.ErrorMessages.UNTERMINATED_REGEXP);for(;this.index<this.source.length;){var k=this.source.charAt(this.index);if(k==="\\")throw this.createError(_errors$2.ErrorMessages.INVALID_REGEXP_FLAGS);if(!(0,_utils$1.isIdentifierPart)(k.charCodeAt(0)))break;this.index++,s+=k}return{type:TokenType.REGEXP,value:s,slice:this.getSlice(c,a)}}},{key:"advance",value:function(){var s=this.getLocation();if(this.lastIndex=this.index,this.lastLine=this.line,this.lastLineStart=this.lineStart,this.skipComment(),this.startIndex=this.index,this.startLine=this.line,this.startLineStart=this.lineStart,this.lastIndex===0&&(this.lastIndex=this.index,this.lastLine=this.line,this.lastLineStart=this.lineStart),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<this.source.length&&(0,_utils$1.isDecimalDigit)(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator();if(a===39||a===34)return this.scanStringLiteral();if(a===96)return this.scanTemplateElement();if(a>=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<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_unicodeMatchPropertyValueEcmascript=unicodeMatchPropertyValueEcmascript,_unicodeMatchPropertyValueEcmascript2=_interopRequireDefault$9(_unicodeMatchPropertyValueEcmascript),_mappings=mappings,_mappings2=_interopRequireDefault$9(_mappings),_unicodeMatchPropertyEcmascript=unicodeMatchPropertyEcmascript,_unicodeMatchPropertyEcmascript2=_interopRequireDefault$9(_unicodeMatchPropertyEcmascript),_unicodePropertyAliasesEcmascript=unicodePropertyAliasesEcmascript,_unicodePropertyAliasesEcmascript2=_interopRequireDefault$9(_unicodePropertyAliasesEcmascript),_unicode$1=unicode$1;function _interopRequireDefault$9(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$6(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$h(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var catchIsFalse=function o(e){try{return!!e()}catch{return!1}},syntaxCharacters="^$\\.*+?()[]{}|".split(""),extendedSyntaxCharacters="^$\\.*+?()[|".split(""),controlEscapeCharacters="fnrtv".split(""),controlEscapeCharacterValues={f:"\f".charCodeAt(0),n:`
|
|
`.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;c<s;c++)a[c]=arguments[c];var d=!0,_=!1,b=void 0;try{for(var k=a[Symbol.iterator](),$;!(d=($=k.next()).done);d=!0){var j=$.value;if(this.eat(j))return j}}catch(_e){_=!0,b=_e}finally{try{!d&&k.return&&k.return()}finally{if(_)throw b}}return null}},{key:"match",value:function(s){return this.index+s.length<=this.pattern.length&&this.pattern.slice(this.index,this.index+s.length)===s}},{key:"matchAny",value:function(){for(var s=arguments.length,a=Array(s),c=0;c<s;c++)a[c]=arguments[c];var d=!0,_=!1,b=void 0;try{for(var k=a[Symbol.iterator](),$;!(d=($=k.next()).done);d=!0){var j=$.value;if(this.match(j))return!0}}catch(_e){_=!0,b=_e}finally{try{!d&&k.return&&k.return()}finally{if(_)throw b}}return!1}},{key:"eatNaturalNumber",value:function(){for(var s=this,a=[],c=function(){var _=!0,b=!1,k=void 0;try{for(var $=decimalDigits[Symbol.iterator](),j;!(_=(j=$.next()).done);_=!0){var _e=j.value;if(s.eat(_e))return a.push(_e),!0}}catch(et){b=!0,k=et}finally{try{!_&&$.return&&$.return()}finally{if(b)throw k}}return!1};c(););return a.length===0?null:a.join("")}}]),o}();dist$6.default=function(o){var e=arguments.length>1&&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;a<e;a++)s[a]=arguments[a];return function(c){var d=!0,_=!1,b=void 0;try{for(var k=s[Symbol.iterator](),$;!(d=($=k.next()).done);d=!0){var j=$.value,_e=j(c);if(_e.matched)return _e}}catch(et){_=!0,b=et}finally{try{!d&&k.return&&k.return()}finally{if(_)throw b}}return{matched:!1}}},acceptTerm=function o(e){return e.unicode?anyOf(acceptAssertion,acceptQuantified(acceptAtom))(e):anyOf(acceptQuantified(acceptQuantifiableAssertion),acceptAssertion,acceptQuantified(acceptAtom))(e)},acceptLabeledGroup=function o(e){return backtrackOnFailure(function(s){return s.eat("(")?e(s)?acceptDisjunction(s,")"):{matched:!1}:{matched:!1}})},acceptQuantifiableAssertion=acceptLabeledGroup(function(o){return!!o.eatAny("?=","?!")}),acceptAssertion=function o(e){return e.eatAny("^","$","\\b","\\B")?{matched:!0}:acceptLabeledGroup(function(s){return s.unicode?!!s.eatAny("?=","?!","?<=","?<!"):!!s.eatAny("?<=","?<!")})(e)},acceptDecimal=function o(e){return{matched:e.eatNaturalNumber()!==null}},acceptQuantified=function o(e){return backtrackOnFailure(function(s){if(!e(s).matched)return{matched:!1};if(s.match("{")){var a=backtrackOnFailure(function(c){c.eat("{");var d=c.eatNaturalNumber();if(d===null)return{matched:!1};if(c.eat(",")&&c.matchAny.apply(c,_toConsumableArray$6(decimalDigits))){var _=c.eatNaturalNumber();if(_===null||parseInt(d)>parseInt(_))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<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_errors$1=errors,_shiftRegexpAcceptor=dist$6,_shiftRegexpAcceptor2=_interopRequireDefault$8(_shiftRegexpAcceptor),_tokenizer=tokenizer,_tokenizer2=_interopRequireDefault$8(_tokenizer),_shiftAst$6=dist$5,AST=_interopRequireWildcard$4(_shiftAst$6);function _interopRequireWildcard$4(o){if(o&&o.__esModule)return o;var e={};if(o!=null)for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(e[s]=o[s]);return e.default=o,e}function _interopRequireDefault$8(o){return o&&o.__esModule?o:{default:o}}function _classCallCheck$f(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$7(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$7(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}var ARROW_EXPRESSION_PARAMS="CoverParenthesizedExpressionAndArrowParameterList",EXPORT_UNKNOWN_SPECIFIER="ExportNameOfUnknownType",Precedence$1={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Unary:13,Postfix:14,Call:15,New:16,TaggedTemplate:17,Member:18,Primary:19},BinaryPrecedence$1={"||":Precedence$1.LogicalOR,"&&":Precedence$1.LogicalAND,"|":Precedence$1.BitwiseOR,"^":Precedence$1.BitwiseXOR,"&":Precedence$1.BitwiseAND,"==":Precedence$1.Equality,"!=":Precedence$1.Equality,"===":Precedence$1.Equality,"!==":Precedence$1.Equality,"<":Precedence$1.Relational,">":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;j<a.length;++j){var _e=a[j];switch(_e){case"g":if(c)throw this.createError("Duplicate regular expression flag 'g'");c=!0;break;case"i":if(d)throw this.createError("Duplicate regular expression flag 'i'");d=!0;break;case"m":if(_)throw this.createError("Duplicate regular expression flag 'm'");_=!0;break;case"u":if(b)throw this.createError("Duplicate regular expression flag 'u'");b=!0;break;case"y":if(k)throw this.createError("Duplicate regular expression flag 'y'");k=!0;break;case"s":if($)throw this.createError("Duplicate regular expression flag 's'");$=!0;break;default:throw this.createError("Invalid regular expression flag '"+_e+"'")}}return{global:c,ignoreCase:d,multiLine:_,unicode:b,sticky:k,dotAll:$}}},{key:"parsePrimaryExpression",value:function(){if(this.match(_tokenizer.TokenType.LPAREN))return this.parseGroupExpression();var a=this.startNode();if(this.eat(_tokenizer.TokenType.ASYNC))return!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.FUNCTION)?(this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(this.parseFunction({isExpr:!0,inDefault:!1,allowGenerator:!0,isAsync:!0}),a)):this.finishNode(new AST.IdentifierExpression({name:"async"}),a);if(this.matchIdentifier())return this.finishNode(new AST.IdentifierExpression({name:this.parseIdentifier()}),a);switch(this.lookahead.type){case _tokenizer.TokenType.STRING:return this.isBindingElement=this.isAssignmentTarget=!1,this.parseStringLiteral();case _tokenizer.TokenType.NUMBER:return this.isBindingElement=this.isAssignmentTarget=!1,this.parseNumericLiteral();case _tokenizer.TokenType.THIS:return this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.ThisExpression,a);case _tokenizer.TokenType.FUNCTION:return this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(this.parseFunction({isExpr:!0,inDefault:!1,allowGenerator:!0,isAsync:!1}),a);case _tokenizer.TokenType.TRUE:return this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.LiteralBooleanExpression({value:!0}),a);case _tokenizer.TokenType.FALSE:return this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.LiteralBooleanExpression({value:!1}),a);case _tokenizer.TokenType.NULL:return this.lex(),this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.LiteralNullExpression,a);case _tokenizer.TokenType.LBRACK:return this.parseArrayExpression();case _tokenizer.TokenType.LBRACE:return this.parseObjectExpression();case _tokenizer.TokenType.TEMPLATE:return this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.TemplateExpression({tag:null,elements:this.parseTemplateElements()}),a);case _tokenizer.TokenType.DIV:case _tokenizer.TokenType.ASSIGN_DIV:{this.isBindingElement=this.isAssignmentTarget=!1,this.lookahead=this.scanRegExp(this.match(_tokenizer.TokenType.DIV)?"/":"/=");var c=this.lex(),d=c.value.lastIndexOf("/"),_=c.value.slice(1,d),b=c.value.slice(d+1),k=this.parseRegexFlags(b);if(!(0,_shiftRegexpAcceptor2.default)(_,k))throw this.createError(_errors$1.ErrorMessages.INVALID_REGEX);return k.pattern=_,this.finishNode(new AST.LiteralRegExpExpression(k),a)}case _tokenizer.TokenType.CLASS:return this.isBindingElement=this.isAssignmentTarget=!1,this.parseClass({isExpr:!0,inDefault:!1});default:throw this.createUnexpected(this.lookahead)}}},{key:"parseNumericLiteral",value:function(){var a=this.getLocation(),c=this.startNode(),d=this.lex();if(d.octal&&this.strict)throw d.noctal?this.createErrorWithLocation(a,"Unexpected noctal integer literal"):this.createErrorWithLocation(a,"Unexpected legacy octal integer literal");var _=d.value===1/0?new AST.LiteralInfinityExpression:new AST.LiteralNumericExpression({value:d.value});return this.finishNode(_,c)}},{key:"parseStringLiteral",value:function(){var a=this.getLocation(),c=this.startNode(),d=this.lex();if(d.octal!=null&&this.strict)throw this.createErrorWithLocation(a,"Unexpected legacy octal escape sequence: \\"+d.octal);return this.finishNode(new AST.LiteralStringExpression({value:d.str}),c)}},{key:"parseIdentifierName",value:function(){if(this.lookahead.type.klass.isIdentifierName)return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseBindingIdentifier",value:function(){var a=this.startNode();return this.finishNode(new AST.BindingIdentifier({name:this.parseIdentifier()}),a)}},{key:"parseIdentifier",value:function(){if(this.lookahead.value==="yield"&&this.allowYieldExpression)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_YIELD_IDENTIFIER);if(this.lookahead.value==="await"&&this.allowAwaitExpression)throw this.createError(_errors$1.ErrorMessages.ILLEGAL_AWAIT_IDENTIFIER);if(this.matchIdentifier())return this.lex().value;throw this.createUnexpected(this.lookahead)}},{key:"parseArgumentList",value:function(){this.lex();var a=this.parseArguments();return this.expect(_tokenizer.TokenType.RPAREN),a}},{key:"parseArguments",value:function(){for(var a=[],c=null;!this.match(_tokenizer.TokenType.RPAREN);){var d=void 0,_=this.startNode();if(this.eat(_tokenizer.TokenType.ELLIPSIS)){if(d=this.finishNode(new AST.SpreadElement({expression:this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget)}),_),c===null){if(a.push(d),this.match(_tokenizer.TokenType.RPAREN))break;c=this.getLocation(),this.expect(_tokenizer.TokenType.COMMA);continue}}else d=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);if(a.push(d),this.match(_tokenizer.TokenType.RPAREN))break;this.expect(_tokenizer.TokenType.COMMA)}return{args:a,locationFollowingFirstSpread:c}}},{key:"ensureArrow",value:function(){if(this.hasLineTerminatorBeforeNext)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_LINE_TERMINATOR);this.match(_tokenizer.TokenType.ARROW)||this.expect(_tokenizer.TokenType.ARROW)}},{key:"parseGroupExpression",value:function(){var a=null,c=this.startNode(),d=this.expect(_tokenizer.TokenType.LPAREN),_=this.startNode();if(this.match(_tokenizer.TokenType.RPAREN)){this.lex();var b=this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[],rest:null,isAsync:!1},c);return this.ensureArrow(),this.isBindingElement=this.isAssignmentTarget=!1,b}else if(this.eat(_tokenizer.TokenType.ELLIPSIS)){if(a=this.parseBindingTarget(),this.match(_tokenizer.TokenType.ASSIGN))throw this.createError(_errors$1.ErrorMessages.INVALID_REST_PARAMETERS_INITIALIZATION);if(this.match(_tokenizer.TokenType.COMMA))throw this.createError(_errors$1.ErrorMessages.INVALID_LAST_REST_PARAMETER);this.expect(_tokenizer.TokenType.RPAREN);var k=this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:[],rest:a,isAsync:!1},c);return this.ensureArrow(),this.isBindingElement=this.isAssignmentTarget=!1,k}for(var $=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget),j=this.isBindingElement?[this.targetToBinding(this.transformDestructuringWithDefault($))]:null;this.eat(_tokenizer.TokenType.COMMA);){if(this.match(_tokenizer.TokenType.RPAREN)){if(!this.isBindingElement)throw this.createUnexpected(this.lookahead);this.firstExprError=this.firstExprError||this.createUnexpected(this.lookahead),$=null;break}if(this.isAssignmentTarget=!1,this.match(_tokenizer.TokenType.ELLIPSIS)){if(!this.isBindingElement)throw this.createUnexpected(this.lookahead);if(this.lex(),a=this.parseBindingTarget(),this.match(_tokenizer.TokenType.ASSIGN))throw this.createError(_errors$1.ErrorMessages.INVALID_REST_PARAMETERS_INITIALIZATION);if(this.match(_tokenizer.TokenType.COMMA))throw this.createError(_errors$1.ErrorMessages.INVALID_LAST_REST_PARAMETER);break}if($){var _e=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);this.isBindingElement?j.push(this.targetToBinding(this.transformDestructuringWithDefault(_e))):j=null,this.firstExprError?$=null:$=this.finishNode(new AST.BinaryExpression({left:$,operator:",",right:_e}),_)}else{var et=this.parseBindingElement();j.push(et)}}if(this.expect(_tokenizer.TokenType.RPAREN),!this.hasLineTerminatorBeforeNext&&this.match(_tokenizer.TokenType.ARROW)){if(!this.isBindingElement)throw this.createErrorWithLocation(d,_errors$1.ErrorMessages.ILLEGAL_ARROW_FUNCTION_PARAMS);return this.isBindingElement=!1,this.finishNode({type:ARROW_EXPRESSION_PARAMS,params:j,rest:a,isAsync:!1},c)}return a&&this.ensureArrow(),this.isBindingElement=!1,isValidSimpleAssignmentTarget($)||(this.isAssignmentTarget=!1),$}},{key:"parseArrayExpression",value:function(){var a=this,c=this.getLocation(),d=this.startNode();this.lex();for(var _=[],b=null;!this.match(_tokenizer.TokenType.RBRACK);)if(this.eat(_tokenizer.TokenType.COMMA))_.push(null);else{var k=this.startNode(),$=void 0;if(this.eat(_tokenizer.TokenType.ELLIPSIS)){if($=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget),!this.isAssignmentTarget&&this.firstExprError)throw this.firstExprError;if($.type==="ArrayAssignmentTarget"||$.type==="ObjectAssignmentTarget"){b=$;break}$.type!=="ArrayExpression"&&$.type!=="ObjectExpression"&&!isValidSimpleAssignmentTarget($)&&(this.isBindingElement=this.isAssignmentTarget=!1),$=this.finishNode(new AST.SpreadElement({expression:$}),k),this.match(_tokenizer.TokenType.RBRACK)||(this.isBindingElement=this.isAssignmentTarget=!1)}else if($=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget),!this.isAssignmentTarget&&this.firstExprError)throw this.firstExprError;_.push($),this.match(_tokenizer.TokenType.RBRACK)||this.expect(_tokenizer.TokenType.COMMA)}if(b&&this.match(_tokenizer.TokenType.COMMA))throw this.createErrorWithLocation(c,_errors$1.ErrorMessages.UNEXPECTED_COMMA_AFTER_REST);if(this.expect(_tokenizer.TokenType.RBRACK),b)return this.finishNode(new AST.ArrayAssignmentTarget({elements:_.map(function(_e){return _e&&a.transformDestructuringWithDefault(_e)}),rest:b}),d);if(this.firstExprError){var j=_[_.length-1];return j!=null&&j.type==="SpreadElement"?this.finishNode(new AST.ArrayAssignmentTarget({elements:_.slice(0,-1).map(function(_e){return _e&&a.transformDestructuringWithDefault(_e)}),rest:this.transformDestructuring(j.expression)}),d):this.finishNode(new AST.ArrayAssignmentTarget({elements:_.map(function(_e){return _e&&a.transformDestructuringWithDefault(_e)}),rest:null}),d)}return this.finishNode(new AST.ArrayExpression({elements:_}),d)}},{key:"parseObjectExpression",value:function(){var a=this,c=this.startNode();this.lex();for(var d=[];!this.match(_tokenizer.TokenType.RBRACE);){var _=!1;if(this.match(_tokenizer.TokenType.ELLIPSIS)){_=!0;var b=this.parseSpreadPropertyDefinition();d.push(b)}else{var k=this.inheritCoverGrammar(this.parsePropertyDefinition);d.push(k)}this.match(_tokenizer.TokenType.RBRACE)||(this.expect(_tokenizer.TokenType.COMMA),_&&(this.isBindingElement=this.isAssignmentTarget=!1))}if(this.expect(_tokenizer.TokenType.RBRACE),this.firstExprError){if(!this.isAssignmentTarget)throw this.createError(_errors$1.ErrorMessages.INVALID_LHS_IN_BINDING);var $=d[d.length-1];return $!=null&&$.type==="SpreadProperty"?this.finishNode(new AST.ObjectAssignmentTarget({properties:d.slice(0,-1).map(function(j){return a.transformDestructuringWithDefault(j)}),rest:this.transformDestructuring($.expression)}),c):this.finishNode(new AST.ObjectAssignmentTarget({properties:d.map(function(j){return a.transformDestructuringWithDefault(j)}),rest:null}),c)}return this.finishNode(new AST.ObjectExpression({properties:d}),c)}},{key:"parseSpreadPropertyDefinition",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.ELLIPSIS);var c=this.parseAssignmentExpression();return isValidSimpleAssignmentTarget(c)?c.type!=="IdentifierExpression"&&(this.isBindingElement=!1):this.isBindingElement=this.isAssignmentTarget=!1,this.finishNode(new AST.SpreadProperty({expression:c}),a)}},{key:"parsePropertyDefinition",value:function(){var a=this.getLocation(),c=this.startNode(),d=this.lookahead,_=this.parseMethodDefinition(),b=_.methodOrKey,k=_.kind;switch(k){case"method":return this.isBindingElement=this.isAssignmentTarget=!1,b;case"identifier":if(d.value==="await"&&this.firstAwaitLocation==null&&(this.firstAwaitLocation=this.getLocation()),this.eat(_tokenizer.TokenType.ASSIGN)){if(this.allowYieldExpression&&d.value==="yield")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&d.value==="await")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_AWAIT_IDENTIFIER);var $=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.firstExprError=this.createErrorWithLocation(a,_errors$1.ErrorMessages.ILLEGAL_PROPERTY),this.finishNode(new AST.AssignmentTargetPropertyIdentifier({binding:this.transformDestructuring(b),init:$}),c)}else if(!this.match(_tokenizer.TokenType.COLON)){if(this.allowYieldExpression&&d.value==="yield")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&d.value==="await")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_AWAIT_IDENTIFIER);if(d.type===_tokenizer.TokenType.IDENTIFIER||d.value==="let"||d.value==="yield"||d.value==="async"||d.value==="await")return this.finishNode(new AST.ShorthandProperty({name:this.finishNode(new AST.IdentifierExpression({name:b.value}),c)}),c);throw this.createUnexpected(d)}}this.expect(_tokenizer.TokenType.COLON);var j=this.inheritCoverGrammar(this.parseAssignmentExpressionOrTarget);return this.firstExprError?this.finishNode(new AST.AssignmentTargetPropertyProperty({name:b,binding:j}),c):this.finishNode(new AST.DataProperty({name:b,expression:j}),c)}},{key:"parsePropertyName",value:function(){var a=this.lookahead,c=this.startNode();if(this.eof())throw this.createUnexpected(a);switch(a.type){case _tokenizer.TokenType.STRING:return{name:this.finishNode(new AST.StaticPropertyName({value:this.parseStringLiteral().value}),c),binding:null};case _tokenizer.TokenType.NUMBER:{var d=this.parseNumericLiteral();return{name:this.finishNode(new AST.StaticPropertyName({value:""+(d.type==="LiteralInfinityExpression"?1/0:d.value)}),c),binding:null}}case _tokenizer.TokenType.LBRACK:{this.lex();var _=this.parseAssignmentExpression();return this.expect(_tokenizer.TokenType.RBRACK),{name:this.finishNode(new AST.ComputedPropertyName({expression:_}),c),binding:null}}}var b=this.parseIdentifierName();return{name:this.finishNode(new AST.StaticPropertyName({value:b}),c),binding:this.finishNode(new AST.BindingIdentifier({name:b}),c)}}},{key:"lookaheadPropertyName",value:function(){switch(this.lookahead.type){case _tokenizer.TokenType.NUMBER:case _tokenizer.TokenType.STRING:case _tokenizer.TokenType.LBRACK:return!0;default:return this.lookahead.type.klass.isIdentifierName}}},{key:"parseMethodDefinition",value:function(){var a=this.lookahead,c=this.startNode(),d=this.saveLexerState(),_=!!this.eat(_tokenizer.TokenType.ASYNC);_&&this.hasLineTerminatorBeforeNext&&(_=!1,this.restoreLexerState(d));var b=!!this.eat(_tokenizer.TokenType.MUL);_&&!this.lookaheadPropertyName()&&(_=!1,b=!1,this.restoreLexerState(d));var k=this.parsePropertyName(),$=k.name;if(!b&&!_&&a.type===_tokenizer.TokenType.IDENTIFIER&&a.value.length===3){if(a.value==="get"&&this.lookaheadPropertyName()&&!a.escaped){var j=this.parsePropertyName();$=j.name,this.expect(_tokenizer.TokenType.LPAREN),this.expect(_tokenizer.TokenType.RPAREN);var _e=this.allowYieldExpression,et=this.allowAwaitExpression,tt=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;var nt=this.parseFunctionBody();return this.allowYieldExpression=_e,this.allowAwaitExpression=et,this.firstAwaitLocation=tt,{methodOrKey:this.finishNode(new AST.Getter({name:$,body:nt}),c),kind:"method"}}else if(a.value==="set"&&this.lookaheadPropertyName()&&!a.escaped){var st=this.parsePropertyName();$=st.name,this.expect(_tokenizer.TokenType.LPAREN);var rt=this.allowYieldExpression,it=this.allowAwaitExpression,at=this.firstAwaitLocation;this.allowYieldExpression=!1,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;var ot=this.parseBindingElement();this.expect(_tokenizer.TokenType.RPAREN);var ht=this.parseFunctionBody();return this.allowYieldExpression=rt,this.allowAwaitExpression=it,this.firstAwaitLocation=at,{methodOrKey:this.finishNode(new AST.Setter({name:$,param:ot,body:ht}),c),kind:"method"}}}if(_){var ct=this.allowYieldExpression,lt=this.allowAwaitExpression;this.allowYieldExpression=b,this.allowAwaitExpression=!0;var ut=this.parseParams();this.allowYieldExpression=b,this.allowAwaitExpression=!0;var pt=this.parseFunctionBody();return this.allowYieldExpression=ct,this.allowAwaitExpression=lt,{methodOrKey:this.finishNode(new AST.Method({isAsync:_,isGenerator:b,name:$,params:ut,body:pt}),c),kind:"method"}}if(this.match(_tokenizer.TokenType.LPAREN)){var dt=this.allowYieldExpression,gt=this.allowAwaitExpression,yt=this.firstAwaitLocation;this.allowYieldExpression=b,this.allowAwaitExpression=!1,this.firstAwaitLocation=null;var ft=this.parseParams(),mt=this.parseFunctionBody();return this.allowYieldExpression=dt,this.allowAwaitExpression=gt,this.firstAwaitLocation=yt,{methodOrKey:this.finishNode(new AST.Method({isAsync:_,isGenerator:b,name:$,params:ft,body:mt}),c),kind:"method"}}if(b&&this.match(_tokenizer.TokenType.COLON))throw this.createUnexpected(this.lookahead);return{methodOrKey:$,kind:a.type.klass.isIdentifierName?"identifier":"property",escaped:a.escaped}}},{key:"parseClass",value:function(a){var c=this,d=a.isExpr,_=a.inDefault,b=this.startNode();this.lex();var k=null,$=null;if(this.matchIdentifier())k=this.parseBindingIdentifier();else if(!d)if(_)k=new AST.BindingIdentifier({name:"*default*"});else throw this.createUnexpected(this.lookahead);this.eat(_tokenizer.TokenType.EXTENDS)&&($=this.isolateCoverGrammar(function(){return c.parseLeftHandSideExpression({allowCall:!0})})),this.expect(_tokenizer.TokenType.LBRACE);for(var j=[];!this.eat(_tokenizer.TokenType.RBRACE);)if(!this.eat(_tokenizer.TokenType.SEMICOLON)){var _e=!1,et=this.startNode(),tt=this.parseMethodDefinition(),nt=tt.methodOrKey,st=tt.kind,rt=tt.escaped;if(st==="identifier"&&nt.value==="static"&&!rt){_e=!0;var it=this.parseMethodDefinition();nt=it.methodOrKey,st=it.kind}if(st==="method")j.push(this.finishNode(new AST.ClassElement({isStatic:_e,method:nt}),et));else throw this.createError("Only methods are allowed in classes")}return this.finishNode(new(d?AST.ClassExpression:AST.ClassDeclaration)({name:k,super:$,elements:j}),b)}},{key:"parseFunction",value:function(a){var c=a.isExpr,d=a.inDefault,_=a.allowGenerator,b=a.isAsync,k=a.startState,$=k===void 0?this.startNode():k;this.lex();var j=null,_e=_&&!!this.eat(_tokenizer.TokenType.MUL),et=this.allowYieldExpression,tt=this.allowAwaitExpression,nt=this.firstAwaitLocation;if(c&&(this.allowYieldExpression=_e,this.allowAwaitExpression=b),!this.match(_tokenizer.TokenType.LPAREN))j=this.parseBindingIdentifier();else if(!c)if(d)j=new AST.BindingIdentifier({name:"*default*"});else throw this.createUnexpected(this.lookahead);this.allowYieldExpression=_e,this.allowAwaitExpression=b,this.firstAwaitLocation=null;var st=this.parseParams(),rt=this.parseFunctionBody();return this.allowYieldExpression=et,this.allowAwaitExpression=tt,this.firstAwaitLocation=nt,this.finishNode(new(c?AST.FunctionExpression:AST.FunctionDeclaration)({isAsync:b,isGenerator:_e,name:j,params:st,body:rt}),$)}},{key:"parseArrayBinding",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LBRACK);for(var c=[],d=null;!this.match(_tokenizer.TokenType.RBRACK);){var _=void 0;if(this.eat(_tokenizer.TokenType.COMMA))_=null;else{if(this.eat(_tokenizer.TokenType.ELLIPSIS)){d=this.parseBindingTarget();break}else _=this.parseBindingElement();this.match(_tokenizer.TokenType.RBRACK)||this.expect(_tokenizer.TokenType.COMMA)}c.push(_)}return this.expect(_tokenizer.TokenType.RBRACK),this.finishNode(new AST.ArrayBinding({elements:c,rest:d}),a)}},{key:"parseBindingProperty",value:function(){var a=this.startNode(),c=this.matchIdentifier(),d=this.lookahead,_=this.parsePropertyName(),b=_.name,k=_.binding;if(c&&b.type==="StaticPropertyName"&&!this.match(_tokenizer.TokenType.COLON)){if(this.allowYieldExpression&&d.value==="yield")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_YIELD_IDENTIFIER);if(this.allowAwaitExpression&&d.value==="await")throw this.createError(_errors$1.ErrorMessages.ILLEGAL_AWAIT_IDENTIFIER);var $=null;return this.eat(_tokenizer.TokenType.ASSIGN)&&($=this.parseAssignmentExpression()),this.finishNode(new AST.BindingPropertyIdentifier({binding:k,init:$}),a)}return this.expect(_tokenizer.TokenType.COLON),k=this.parseBindingElement(),this.finishNode(new AST.BindingPropertyProperty({name:b,binding:k}),a)}},{key:"parseObjectBinding",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LBRACE);for(var c=[],d=null;!this.match(_tokenizer.TokenType.RBRACE);){if(this.eat(_tokenizer.TokenType.ELLIPSIS)){d=this.parseBindingIdentifier();break}c.push(this.parseBindingProperty()),this.match(_tokenizer.TokenType.RBRACE)||this.expect(_tokenizer.TokenType.COMMA)}return this.expect(_tokenizer.TokenType.RBRACE),this.finishNode(new AST.ObjectBinding({properties:c,rest:d}),a)}},{key:"parseBindingTarget",value:function(){if(this.matchIdentifier())return this.parseBindingIdentifier();switch(this.lookahead.type){case _tokenizer.TokenType.LBRACK:return this.parseArrayBinding();case _tokenizer.TokenType.LBRACE:return this.parseObjectBinding()}throw this.createUnexpected(this.lookahead)}},{key:"parseBindingElement",value:function(){var a=this.startNode(),c=this.parseBindingTarget();if(this.eat(_tokenizer.TokenType.ASSIGN)){var d=this.parseAssignmentExpression();c=this.finishNode(new AST.BindingWithDefault({binding:c,init:d}),a)}return c}},{key:"parseParam",value:function(){var a=this.inParameter;this.inParameter=!0;var c=this.parseBindingElement();return this.inParameter=a,c}},{key:"parseParams",value:function(){var a=this.startNode();this.expect(_tokenizer.TokenType.LPAREN);for(var c=[],d=null;!this.match(_tokenizer.TokenType.RPAREN);){if(this.eat(_tokenizer.TokenType.ELLIPSIS)){if(d=this.parseBindingTarget(),this.lookahead.type===_tokenizer.TokenType.ASSIGN)throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_REST_PARAMETERS_INITIALIZATION);if(this.match(_tokenizer.TokenType.COMMA))throw this.createError(_errors$1.ErrorMessages.UNEXPECTED_COMMA_AFTER_REST);break}if(c.push(this.parseParam()),this.match(_tokenizer.TokenType.RPAREN))break;this.expect(_tokenizer.TokenType.COMMA)}return this.expect(_tokenizer.TokenType.RPAREN),this.finishNode(new AST.FormalParameters({items:c,rest:d}),a)}}]),e}(_tokenizer2.default);var earlyErrors={},dist$4={},director$2={};Object.defineProperty(director$2,"__esModule",{value:!0});director$2.reduce=reduce;var director$1={ArrayAssignmentTarget:function o(e,s){var a=this;return e.reduceArrayAssignmentTarget(s,{elements:s.elements.map(function(c){return c&&a[c.type](e,c)}),rest:s.rest&&this[s.rest.type](e,s.rest)})},ArrayBinding:function o(e,s){var a=this;return e.reduceArrayBinding(s,{elements:s.elements.map(function(c){return c&&a[c.type](e,c)}),rest:s.rest&&this[s.rest.type](e,s.rest)})},ArrayExpression:function o(e,s){var a=this;return e.reduceArrayExpression(s,{elements:s.elements.map(function(c){return c&&a[c.type](e,c)})})},ArrowExpression:function o(e,s){return e.reduceArrowExpression(s,{params:this.FormalParameters(e,s.params),body:this[s.body.type](e,s.body)})},AssignmentExpression:function o(e,s){return e.reduceAssignmentExpression(s,{binding:this[s.binding.type](e,s.binding),expression:this[s.expression.type](e,s.expression)})},AssignmentTargetIdentifier:function o(e,s){return e.reduceAssignmentTargetIdentifier(s)},AssignmentTargetPropertyIdentifier:function o(e,s){return e.reduceAssignmentTargetPropertyIdentifier(s,{binding:this.AssignmentTargetIdentifier(e,s.binding),init:s.init&&this[s.init.type](e,s.init)})},AssignmentTargetPropertyProperty:function o(e,s){return e.reduceAssignmentTargetPropertyProperty(s,{name:this[s.name.type](e,s.name),binding:this[s.binding.type](e,s.binding)})},AssignmentTargetWithDefault:function o(e,s){return e.reduceAssignmentTargetWithDefault(s,{binding:this[s.binding.type](e,s.binding),init:this[s.init.type](e,s.init)})},AwaitExpression:function o(e,s){return e.reduceAwaitExpression(s,{expression:this[s.expression.type](e,s.expression)})},BinaryExpression:function o(e,s){return e.reduceBinaryExpression(s,{left:this[s.left.type](e,s.left),right:this[s.right.type](e,s.right)})},BindingIdentifier:function o(e,s){return e.reduceBindingIdentifier(s)},BindingPropertyIdentifier:function o(e,s){return e.reduceBindingPropertyIdentifier(s,{binding:this.BindingIdentifier(e,s.binding),init:s.init&&this[s.init.type](e,s.init)})},BindingPropertyProperty:function o(e,s){return e.reduceBindingPropertyProperty(s,{name:this[s.name.type](e,s.name),binding:this[s.binding.type](e,s.binding)})},BindingWithDefault:function o(e,s){return e.reduceBindingWithDefault(s,{binding:this[s.binding.type](e,s.binding),init:this[s.init.type](e,s.init)})},Block:function o(e,s){var a=this;return e.reduceBlock(s,{statements:s.statements.map(function(c){return a[c.type](e,c)})})},BlockStatement:function o(e,s){return e.reduceBlockStatement(s,{block:this.Block(e,s.block)})},BreakStatement:function o(e,s){return e.reduceBreakStatement(s)},CallExpression:function o(e,s){var a=this;return e.reduceCallExpression(s,{callee:this[s.callee.type](e,s.callee),arguments:s.arguments.map(function(c){return a[c.type](e,c)})})},CatchClause:function o(e,s){return e.reduceCatchClause(s,{binding:this[s.binding.type](e,s.binding),body:this.Block(e,s.body)})},ClassDeclaration:function o(e,s){var a=this;return e.reduceClassDeclaration(s,{name:this.BindingIdentifier(e,s.name),super:s.super&&this[s.super.type](e,s.super),elements:s.elements.map(function(c){return a.ClassElement(e,c)})})},ClassElement:function o(e,s){return e.reduceClassElement(s,{method:this[s.method.type](e,s.method)})},ClassExpression:function o(e,s){var a=this;return e.reduceClassExpression(s,{name:s.name&&this.BindingIdentifier(e,s.name),super:s.super&&this[s.super.type](e,s.super),elements:s.elements.map(function(c){return a.ClassElement(e,c)})})},CompoundAssignmentExpression:function o(e,s){return e.reduceCompoundAssignmentExpression(s,{binding:this[s.binding.type](e,s.binding),expression:this[s.expression.type](e,s.expression)})},ComputedMemberAssignmentTarget:function o(e,s){return e.reduceComputedMemberAssignmentTarget(s,{object:this[s.object.type](e,s.object),expression:this[s.expression.type](e,s.expression)})},ComputedMemberExpression:function o(e,s){return e.reduceComputedMemberExpression(s,{object:this[s.object.type](e,s.object),expression:this[s.expression.type](e,s.expression)})},ComputedPropertyName:function o(e,s){return e.reduceComputedPropertyName(s,{expression:this[s.expression.type](e,s.expression)})},ConditionalExpression:function o(e,s){return e.reduceConditionalExpression(s,{test:this[s.test.type](e,s.test),consequent:this[s.consequent.type](e,s.consequent),alternate:this[s.alternate.type](e,s.alternate)})},ContinueStatement:function o(e,s){return e.reduceContinueStatement(s)},DataProperty:function o(e,s){return e.reduceDataProperty(s,{name:this[s.name.type](e,s.name),expression:this[s.expression.type](e,s.expression)})},DebuggerStatement:function o(e,s){return e.reduceDebuggerStatement(s)},Directive:function o(e,s){return e.reduceDirective(s)},DoWhileStatement:function o(e,s){return e.reduceDoWhileStatement(s,{body:this[s.body.type](e,s.body),test:this[s.test.type](e,s.test)})},EmptyStatement:function o(e,s){return e.reduceEmptyStatement(s)},Export:function o(e,s){return e.reduceExport(s,{declaration:this[s.declaration.type](e,s.declaration)})},ExportAllFrom:function o(e,s){return e.reduceExportAllFrom(s)},ExportDefault:function o(e,s){return e.reduceExportDefault(s,{body:this[s.body.type](e,s.body)})},ExportFrom:function o(e,s){var a=this;return e.reduceExportFrom(s,{namedExports:s.namedExports.map(function(c){return a.ExportFromSpecifier(e,c)})})},ExportFromSpecifier:function o(e,s){return e.reduceExportFromSpecifier(s)},ExportLocalSpecifier:function o(e,s){return e.reduceExportLocalSpecifier(s,{name:this.IdentifierExpression(e,s.name)})},ExportLocals:function o(e,s){var a=this;return e.reduceExportLocals(s,{namedExports:s.namedExports.map(function(c){return a.ExportLocalSpecifier(e,c)})})},ExpressionStatement:function o(e,s){return e.reduceExpressionStatement(s,{expression:this[s.expression.type](e,s.expression)})},ForAwaitStatement:function o(e,s){return e.reduceForAwaitStatement(s,{left:this[s.left.type](e,s.left),right:this[s.right.type](e,s.right),body:this[s.body.type](e,s.body)})},ForInStatement:function o(e,s){return e.reduceForInStatement(s,{left:this[s.left.type](e,s.left),right:this[s.right.type](e,s.right),body:this[s.body.type](e,s.body)})},ForOfStatement:function o(e,s){return e.reduceForOfStatement(s,{left:this[s.left.type](e,s.left),right:this[s.right.type](e,s.right),body:this[s.body.type](e,s.body)})},ForStatement:function o(e,s){return e.reduceForStatement(s,{init:s.init&&this[s.init.type](e,s.init),test:s.test&&this[s.test.type](e,s.test),update:s.update&&this[s.update.type](e,s.update),body:this[s.body.type](e,s.body)})},FormalParameters:function o(e,s){var a=this;return e.reduceFormalParameters(s,{items:s.items.map(function(c){return a[c.type](e,c)}),rest:s.rest&&this[s.rest.type](e,s.rest)})},FunctionBody:function o(e,s){var a=this;return e.reduceFunctionBody(s,{directives:s.directives.map(function(c){return a.Directive(e,c)}),statements:s.statements.map(function(c){return a[c.type](e,c)})})},FunctionDeclaration:function o(e,s){return e.reduceFunctionDeclaration(s,{name:this.BindingIdentifier(e,s.name),params:this.FormalParameters(e,s.params),body:this.FunctionBody(e,s.body)})},FunctionExpression:function o(e,s){return e.reduceFunctionExpression(s,{name:s.name&&this.BindingIdentifier(e,s.name),params:this.FormalParameters(e,s.params),body:this.FunctionBody(e,s.body)})},Getter:function o(e,s){return e.reduceGetter(s,{name:this[s.name.type](e,s.name),body:this.FunctionBody(e,s.body)})},IdentifierExpression:function o(e,s){return e.reduceIdentifierExpression(s)},IfStatement:function o(e,s){return e.reduceIfStatement(s,{test:this[s.test.type](e,s.test),consequent:this[s.consequent.type](e,s.consequent),alternate:s.alternate&&this[s.alternate.type](e,s.alternate)})},Import:function o(e,s){var a=this;return e.reduceImport(s,{defaultBinding:s.defaultBinding&&this.BindingIdentifier(e,s.defaultBinding),namedImports:s.namedImports.map(function(c){return a.ImportSpecifier(e,c)})})},ImportNamespace:function o(e,s){return e.reduceImportNamespace(s,{defaultBinding:s.defaultBinding&&this.BindingIdentifier(e,s.defaultBinding),namespaceBinding:this.BindingIdentifier(e,s.namespaceBinding)})},ImportSpecifier:function o(e,s){return e.reduceImportSpecifier(s,{binding:this.BindingIdentifier(e,s.binding)})},LabeledStatement:function o(e,s){return e.reduceLabeledStatement(s,{body:this[s.body.type](e,s.body)})},LiteralBooleanExpression:function o(e,s){return e.reduceLiteralBooleanExpression(s)},LiteralInfinityExpression:function o(e,s){return e.reduceLiteralInfinityExpression(s)},LiteralNullExpression:function o(e,s){return e.reduceLiteralNullExpression(s)},LiteralNumericExpression:function o(e,s){return e.reduceLiteralNumericExpression(s)},LiteralRegExpExpression:function o(e,s){return e.reduceLiteralRegExpExpression(s)},LiteralStringExpression:function o(e,s){return e.reduceLiteralStringExpression(s)},Method:function o(e,s){return e.reduceMethod(s,{name:this[s.name.type](e,s.name),params:this.FormalParameters(e,s.params),body:this.FunctionBody(e,s.body)})},Module:function o(e,s){var a=this;return e.reduceModule(s,{directives:s.directives.map(function(c){return a.Directive(e,c)}),items:s.items.map(function(c){return a[c.type](e,c)})})},NewExpression:function o(e,s){var a=this;return e.reduceNewExpression(s,{callee:this[s.callee.type](e,s.callee),arguments:s.arguments.map(function(c){return a[c.type](e,c)})})},NewTargetExpression:function o(e,s){return e.reduceNewTargetExpression(s)},ObjectAssignmentTarget:function o(e,s){var a=this;return e.reduceObjectAssignmentTarget(s,{properties:s.properties.map(function(c){return a[c.type](e,c)}),rest:s.rest&&this[s.rest.type](e,s.rest)})},ObjectBinding:function o(e,s){var a=this;return e.reduceObjectBinding(s,{properties:s.properties.map(function(c){return a[c.type](e,c)}),rest:s.rest&&this[s.rest.type](e,s.rest)})},ObjectExpression:function o(e,s){var a=this;return e.reduceObjectExpression(s,{properties:s.properties.map(function(c){return a[c.type](e,c)})})},ReturnStatement:function o(e,s){return e.reduceReturnStatement(s,{expression:s.expression&&this[s.expression.type](e,s.expression)})},Script:function o(e,s){var a=this;return e.reduceScript(s,{directives:s.directives.map(function(c){return a.Directive(e,c)}),statements:s.statements.map(function(c){return a[c.type](e,c)})})},Setter:function o(e,s){return e.reduceSetter(s,{name:this[s.name.type](e,s.name),param:this[s.param.type](e,s.param),body:this.FunctionBody(e,s.body)})},ShorthandProperty:function o(e,s){return e.reduceShorthandProperty(s,{name:this.IdentifierExpression(e,s.name)})},SpreadElement:function o(e,s){return e.reduceSpreadElement(s,{expression:this[s.expression.type](e,s.expression)})},SpreadProperty:function o(e,s){return e.reduceSpreadProperty(s,{expression:this[s.expression.type](e,s.expression)})},StaticMemberAssignmentTarget:function o(e,s){return e.reduceStaticMemberAssignmentTarget(s,{object:this[s.object.type](e,s.object)})},StaticMemberExpression:function o(e,s){return e.reduceStaticMemberExpression(s,{object:this[s.object.type](e,s.object)})},StaticPropertyName:function o(e,s){return e.reduceStaticPropertyName(s)},Super:function o(e,s){return e.reduceSuper(s)},SwitchCase:function o(e,s){var a=this;return e.reduceSwitchCase(s,{test:this[s.test.type](e,s.test),consequent:s.consequent.map(function(c){return a[c.type](e,c)})})},SwitchDefault:function o(e,s){var a=this;return e.reduceSwitchDefault(s,{consequent:s.consequent.map(function(c){return a[c.type](e,c)})})},SwitchStatement:function o(e,s){var a=this;return e.reduceSwitchStatement(s,{discriminant:this[s.discriminant.type](e,s.discriminant),cases:s.cases.map(function(c){return a.SwitchCase(e,c)})})},SwitchStatementWithDefault:function o(e,s){var a=this;return e.reduceSwitchStatementWithDefault(s,{discriminant:this[s.discriminant.type](e,s.discriminant),preDefaultCases:s.preDefaultCases.map(function(c){return a.SwitchCase(e,c)}),defaultCase:this.SwitchDefault(e,s.defaultCase),postDefaultCases:s.postDefaultCases.map(function(c){return a.SwitchCase(e,c)})})},TemplateElement:function o(e,s){return e.reduceTemplateElement(s)},TemplateExpression:function o(e,s){var a=this;return e.reduceTemplateExpression(s,{tag:s.tag&&this[s.tag.type](e,s.tag),elements:s.elements.map(function(c){return a[c.type](e,c)})})},ThisExpression:function o(e,s){return e.reduceThisExpression(s)},ThrowStatement:function o(e,s){return e.reduceThrowStatement(s,{expression:this[s.expression.type](e,s.expression)})},TryCatchStatement:function o(e,s){return e.reduceTryCatchStatement(s,{body:this.Block(e,s.body),catchClause:this.CatchClause(e,s.catchClause)})},TryFinallyStatement:function o(e,s){return e.reduceTryFinallyStatement(s,{body:this.Block(e,s.body),catchClause:s.catchClause&&this.CatchClause(e,s.catchClause),finalizer:this.Block(e,s.finalizer)})},UnaryExpression:function o(e,s){return e.reduceUnaryExpression(s,{operand:this[s.operand.type](e,s.operand)})},UpdateExpression:function o(e,s){return e.reduceUpdateExpression(s,{operand:this[s.operand.type](e,s.operand)})},VariableDeclaration:function o(e,s){var a=this;return e.reduceVariableDeclaration(s,{declarators:s.declarators.map(function(c){return a.VariableDeclarator(e,c)})})},VariableDeclarationStatement:function o(e,s){return e.reduceVariableDeclarationStatement(s,{declaration:this.VariableDeclaration(e,s.declaration)})},VariableDeclarator:function o(e,s){return e.reduceVariableDeclarator(s,{binding:this[s.binding.type](e,s.binding),init:s.init&&this[s.init.type](e,s.init)})},WhileStatement:function o(e,s){return e.reduceWhileStatement(s,{test:this[s.test.type](e,s.test),body:this[s.body.type](e,s.body)})},WithStatement:function o(e,s){return e.reduceWithStatement(s,{object:this[s.object.type](e,s.object),body:this[s.body.type](e,s.body)})},YieldExpression:function o(e,s){return e.reduceYieldExpression(s,{expression:s.expression&&this[s.expression.type](e,s.expression)})},YieldGeneratorExpression:function o(e,s){return e.reduceYieldGeneratorExpression(s,{expression:this[s.expression.type](e,s.expression)})}};function reduce(o,e){return director$1[e.type](o,e)}var thunkedDirector={};Object.defineProperty(thunkedDirector,"__esModule",{value:!0});thunkedDirector.thunkedReduce=thunkedReduce;var director={ArrayAssignmentTarget:function o(e,s){var a=this;return e.reduceArrayAssignmentTarget(s,{elements:s.elements.map(function(c){return c&&function(){return a[c.type](e,c)}}),rest:s.rest&&function(){return a[s.rest.type](e,s.rest)}})},ArrayBinding:function o(e,s){var a=this;return e.reduceArrayBinding(s,{elements:s.elements.map(function(c){return c&&function(){return a[c.type](e,c)}}),rest:s.rest&&function(){return a[s.rest.type](e,s.rest)}})},ArrayExpression:function o(e,s){var a=this;return e.reduceArrayExpression(s,{elements:s.elements.map(function(c){return c&&function(){return a[c.type](e,c)}})})},ArrowExpression:function o(e,s){var a=this;return e.reduceArrowExpression(s,{params:function(){return a.FormalParameters(e,s.params)},body:function(){return a[s.body.type](e,s.body)}})},AssignmentExpression:function o(e,s){var a=this;return e.reduceAssignmentExpression(s,{binding:function(){return a[s.binding.type](e,s.binding)},expression:function(){return a[s.expression.type](e,s.expression)}})},AssignmentTargetIdentifier:function o(e,s){return e.reduceAssignmentTargetIdentifier(s)},AssignmentTargetPropertyIdentifier:function o(e,s){var a=this;return e.reduceAssignmentTargetPropertyIdentifier(s,{binding:function(){return a.AssignmentTargetIdentifier(e,s.binding)},init:s.init&&function(){return a[s.init.type](e,s.init)}})},AssignmentTargetPropertyProperty:function o(e,s){var a=this;return e.reduceAssignmentTargetPropertyProperty(s,{name:function(){return a[s.name.type](e,s.name)},binding:function(){return a[s.binding.type](e,s.binding)}})},AssignmentTargetWithDefault:function o(e,s){var a=this;return e.reduceAssignmentTargetWithDefault(s,{binding:function(){return a[s.binding.type](e,s.binding)},init:function(){return a[s.init.type](e,s.init)}})},AwaitExpression:function o(e,s){var a=this;return e.reduceAwaitExpression(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},BinaryExpression:function o(e,s){var a=this;return e.reduceBinaryExpression(s,{left:function(){return a[s.left.type](e,s.left)},right:function(){return a[s.right.type](e,s.right)}})},BindingIdentifier:function o(e,s){return e.reduceBindingIdentifier(s)},BindingPropertyIdentifier:function o(e,s){var a=this;return e.reduceBindingPropertyIdentifier(s,{binding:function(){return a.BindingIdentifier(e,s.binding)},init:s.init&&function(){return a[s.init.type](e,s.init)}})},BindingPropertyProperty:function o(e,s){var a=this;return e.reduceBindingPropertyProperty(s,{name:function(){return a[s.name.type](e,s.name)},binding:function(){return a[s.binding.type](e,s.binding)}})},BindingWithDefault:function o(e,s){var a=this;return e.reduceBindingWithDefault(s,{binding:function(){return a[s.binding.type](e,s.binding)},init:function(){return a[s.init.type](e,s.init)}})},Block:function o(e,s){var a=this;return e.reduceBlock(s,{statements:s.statements.map(function(c){return function(){return a[c.type](e,c)}})})},BlockStatement:function o(e,s){var a=this;return e.reduceBlockStatement(s,{block:function(){return a.Block(e,s.block)}})},BreakStatement:function o(e,s){return e.reduceBreakStatement(s)},CallExpression:function o(e,s){var a=this;return e.reduceCallExpression(s,{callee:function(){return a[s.callee.type](e,s.callee)},arguments:s.arguments.map(function(c){return function(){return a[c.type](e,c)}})})},CatchClause:function o(e,s){var a=this;return e.reduceCatchClause(s,{binding:function(){return a[s.binding.type](e,s.binding)},body:function(){return a.Block(e,s.body)}})},ClassDeclaration:function o(e,s){var a=this;return e.reduceClassDeclaration(s,{name:function(){return a.BindingIdentifier(e,s.name)},super:s.super&&function(){return a[s.super.type](e,s.super)},elements:s.elements.map(function(c){return function(){return a.ClassElement(e,c)}})})},ClassElement:function o(e,s){var a=this;return e.reduceClassElement(s,{method:function(){return a[s.method.type](e,s.method)}})},ClassExpression:function o(e,s){var a=this;return e.reduceClassExpression(s,{name:s.name&&function(){return a.BindingIdentifier(e,s.name)},super:s.super&&function(){return a[s.super.type](e,s.super)},elements:s.elements.map(function(c){return function(){return a.ClassElement(e,c)}})})},CompoundAssignmentExpression:function o(e,s){var a=this;return e.reduceCompoundAssignmentExpression(s,{binding:function(){return a[s.binding.type](e,s.binding)},expression:function(){return a[s.expression.type](e,s.expression)}})},ComputedMemberAssignmentTarget:function o(e,s){var a=this;return e.reduceComputedMemberAssignmentTarget(s,{object:function(){return a[s.object.type](e,s.object)},expression:function(){return a[s.expression.type](e,s.expression)}})},ComputedMemberExpression:function o(e,s){var a=this;return e.reduceComputedMemberExpression(s,{object:function(){return a[s.object.type](e,s.object)},expression:function(){return a[s.expression.type](e,s.expression)}})},ComputedPropertyName:function o(e,s){var a=this;return e.reduceComputedPropertyName(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},ConditionalExpression:function o(e,s){var a=this;return e.reduceConditionalExpression(s,{test:function(){return a[s.test.type](e,s.test)},consequent:function(){return a[s.consequent.type](e,s.consequent)},alternate:function(){return a[s.alternate.type](e,s.alternate)}})},ContinueStatement:function o(e,s){return e.reduceContinueStatement(s)},DataProperty:function o(e,s){var a=this;return e.reduceDataProperty(s,{name:function(){return a[s.name.type](e,s.name)},expression:function(){return a[s.expression.type](e,s.expression)}})},DebuggerStatement:function o(e,s){return e.reduceDebuggerStatement(s)},Directive:function o(e,s){return e.reduceDirective(s)},DoWhileStatement:function o(e,s){var a=this;return e.reduceDoWhileStatement(s,{body:function(){return a[s.body.type](e,s.body)},test:function(){return a[s.test.type](e,s.test)}})},EmptyStatement:function o(e,s){return e.reduceEmptyStatement(s)},Export:function o(e,s){var a=this;return e.reduceExport(s,{declaration:function(){return a[s.declaration.type](e,s.declaration)}})},ExportAllFrom:function o(e,s){return e.reduceExportAllFrom(s)},ExportDefault:function o(e,s){var a=this;return e.reduceExportDefault(s,{body:function(){return a[s.body.type](e,s.body)}})},ExportFrom:function o(e,s){var a=this;return e.reduceExportFrom(s,{namedExports:s.namedExports.map(function(c){return function(){return a.ExportFromSpecifier(e,c)}})})},ExportFromSpecifier:function o(e,s){return e.reduceExportFromSpecifier(s)},ExportLocalSpecifier:function o(e,s){var a=this;return e.reduceExportLocalSpecifier(s,{name:function(){return a.IdentifierExpression(e,s.name)}})},ExportLocals:function o(e,s){var a=this;return e.reduceExportLocals(s,{namedExports:s.namedExports.map(function(c){return function(){return a.ExportLocalSpecifier(e,c)}})})},ExpressionStatement:function o(e,s){var a=this;return e.reduceExpressionStatement(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},ForAwaitStatement:function o(e,s){var a=this;return e.reduceForAwaitStatement(s,{left:function(){return a[s.left.type](e,s.left)},right:function(){return a[s.right.type](e,s.right)},body:function(){return a[s.body.type](e,s.body)}})},ForInStatement:function o(e,s){var a=this;return e.reduceForInStatement(s,{left:function(){return a[s.left.type](e,s.left)},right:function(){return a[s.right.type](e,s.right)},body:function(){return a[s.body.type](e,s.body)}})},ForOfStatement:function o(e,s){var a=this;return e.reduceForOfStatement(s,{left:function(){return a[s.left.type](e,s.left)},right:function(){return a[s.right.type](e,s.right)},body:function(){return a[s.body.type](e,s.body)}})},ForStatement:function o(e,s){var a=this;return e.reduceForStatement(s,{init:s.init&&function(){return a[s.init.type](e,s.init)},test:s.test&&function(){return a[s.test.type](e,s.test)},update:s.update&&function(){return a[s.update.type](e,s.update)},body:function(){return a[s.body.type](e,s.body)}})},FormalParameters:function o(e,s){var a=this;return e.reduceFormalParameters(s,{items:s.items.map(function(c){return function(){return a[c.type](e,c)}}),rest:s.rest&&function(){return a[s.rest.type](e,s.rest)}})},FunctionBody:function o(e,s){var a=this;return e.reduceFunctionBody(s,{directives:s.directives.map(function(c){return function(){return a.Directive(e,c)}}),statements:s.statements.map(function(c){return function(){return a[c.type](e,c)}})})},FunctionDeclaration:function o(e,s){var a=this;return e.reduceFunctionDeclaration(s,{name:function(){return a.BindingIdentifier(e,s.name)},params:function(){return a.FormalParameters(e,s.params)},body:function(){return a.FunctionBody(e,s.body)}})},FunctionExpression:function o(e,s){var a=this;return e.reduceFunctionExpression(s,{name:s.name&&function(){return a.BindingIdentifier(e,s.name)},params:function(){return a.FormalParameters(e,s.params)},body:function(){return a.FunctionBody(e,s.body)}})},Getter:function o(e,s){var a=this;return e.reduceGetter(s,{name:function(){return a[s.name.type](e,s.name)},body:function(){return a.FunctionBody(e,s.body)}})},IdentifierExpression:function o(e,s){return e.reduceIdentifierExpression(s)},IfStatement:function o(e,s){var a=this;return e.reduceIfStatement(s,{test:function(){return a[s.test.type](e,s.test)},consequent:function(){return a[s.consequent.type](e,s.consequent)},alternate:s.alternate&&function(){return a[s.alternate.type](e,s.alternate)}})},Import:function o(e,s){var a=this;return e.reduceImport(s,{defaultBinding:s.defaultBinding&&function(){return a.BindingIdentifier(e,s.defaultBinding)},namedImports:s.namedImports.map(function(c){return function(){return a.ImportSpecifier(e,c)}})})},ImportNamespace:function o(e,s){var a=this;return e.reduceImportNamespace(s,{defaultBinding:s.defaultBinding&&function(){return a.BindingIdentifier(e,s.defaultBinding)},namespaceBinding:function(){return a.BindingIdentifier(e,s.namespaceBinding)}})},ImportSpecifier:function o(e,s){var a=this;return e.reduceImportSpecifier(s,{binding:function(){return a.BindingIdentifier(e,s.binding)}})},LabeledStatement:function o(e,s){var a=this;return e.reduceLabeledStatement(s,{body:function(){return a[s.body.type](e,s.body)}})},LiteralBooleanExpression:function o(e,s){return e.reduceLiteralBooleanExpression(s)},LiteralInfinityExpression:function o(e,s){return e.reduceLiteralInfinityExpression(s)},LiteralNullExpression:function o(e,s){return e.reduceLiteralNullExpression(s)},LiteralNumericExpression:function o(e,s){return e.reduceLiteralNumericExpression(s)},LiteralRegExpExpression:function o(e,s){return e.reduceLiteralRegExpExpression(s)},LiteralStringExpression:function o(e,s){return e.reduceLiteralStringExpression(s)},Method:function o(e,s){var a=this;return e.reduceMethod(s,{name:function(){return a[s.name.type](e,s.name)},params:function(){return a.FormalParameters(e,s.params)},body:function(){return a.FunctionBody(e,s.body)}})},Module:function o(e,s){var a=this;return e.reduceModule(s,{directives:s.directives.map(function(c){return function(){return a.Directive(e,c)}}),items:s.items.map(function(c){return function(){return a[c.type](e,c)}})})},NewExpression:function o(e,s){var a=this;return e.reduceNewExpression(s,{callee:function(){return a[s.callee.type](e,s.callee)},arguments:s.arguments.map(function(c){return function(){return a[c.type](e,c)}})})},NewTargetExpression:function o(e,s){return e.reduceNewTargetExpression(s)},ObjectAssignmentTarget:function o(e,s){var a=this;return e.reduceObjectAssignmentTarget(s,{properties:s.properties.map(function(c){return function(){return a[c.type](e,c)}}),rest:s.rest&&function(){return a[s.rest.type](e,s.rest)}})},ObjectBinding:function o(e,s){var a=this;return e.reduceObjectBinding(s,{properties:s.properties.map(function(c){return function(){return a[c.type](e,c)}}),rest:s.rest&&function(){return a[s.rest.type](e,s.rest)}})},ObjectExpression:function o(e,s){var a=this;return e.reduceObjectExpression(s,{properties:s.properties.map(function(c){return function(){return a[c.type](e,c)}})})},ReturnStatement:function o(e,s){var a=this;return e.reduceReturnStatement(s,{expression:s.expression&&function(){return a[s.expression.type](e,s.expression)}})},Script:function o(e,s){var a=this;return e.reduceScript(s,{directives:s.directives.map(function(c){return function(){return a.Directive(e,c)}}),statements:s.statements.map(function(c){return function(){return a[c.type](e,c)}})})},Setter:function o(e,s){var a=this;return e.reduceSetter(s,{name:function(){return a[s.name.type](e,s.name)},param:function(){return a[s.param.type](e,s.param)},body:function(){return a.FunctionBody(e,s.body)}})},ShorthandProperty:function o(e,s){var a=this;return e.reduceShorthandProperty(s,{name:function(){return a.IdentifierExpression(e,s.name)}})},SpreadElement:function o(e,s){var a=this;return e.reduceSpreadElement(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},SpreadProperty:function o(e,s){var a=this;return e.reduceSpreadProperty(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},StaticMemberAssignmentTarget:function o(e,s){var a=this;return e.reduceStaticMemberAssignmentTarget(s,{object:function(){return a[s.object.type](e,s.object)}})},StaticMemberExpression:function o(e,s){var a=this;return e.reduceStaticMemberExpression(s,{object:function(){return a[s.object.type](e,s.object)}})},StaticPropertyName:function o(e,s){return e.reduceStaticPropertyName(s)},Super:function o(e,s){return e.reduceSuper(s)},SwitchCase:function o(e,s){var a=this;return e.reduceSwitchCase(s,{test:function(){return a[s.test.type](e,s.test)},consequent:s.consequent.map(function(c){return function(){return a[c.type](e,c)}})})},SwitchDefault:function o(e,s){var a=this;return e.reduceSwitchDefault(s,{consequent:s.consequent.map(function(c){return function(){return a[c.type](e,c)}})})},SwitchStatement:function o(e,s){var a=this;return e.reduceSwitchStatement(s,{discriminant:function(){return a[s.discriminant.type](e,s.discriminant)},cases:s.cases.map(function(c){return function(){return a.SwitchCase(e,c)}})})},SwitchStatementWithDefault:function o(e,s){var a=this;return e.reduceSwitchStatementWithDefault(s,{discriminant:function(){return a[s.discriminant.type](e,s.discriminant)},preDefaultCases:s.preDefaultCases.map(function(c){return function(){return a.SwitchCase(e,c)}}),defaultCase:function(){return a.SwitchDefault(e,s.defaultCase)},postDefaultCases:s.postDefaultCases.map(function(c){return function(){return a.SwitchCase(e,c)}})})},TemplateElement:function o(e,s){return e.reduceTemplateElement(s)},TemplateExpression:function o(e,s){var a=this;return e.reduceTemplateExpression(s,{tag:s.tag&&function(){return a[s.tag.type](e,s.tag)},elements:s.elements.map(function(c){return function(){return a[c.type](e,c)}})})},ThisExpression:function o(e,s){return e.reduceThisExpression(s)},ThrowStatement:function o(e,s){var a=this;return e.reduceThrowStatement(s,{expression:function(){return a[s.expression.type](e,s.expression)}})},TryCatchStatement:function o(e,s){var a=this;return e.reduceTryCatchStatement(s,{body:function(){return a.Block(e,s.body)},catchClause:function(){return a.CatchClause(e,s.catchClause)}})},TryFinallyStatement:function o(e,s){var a=this;return e.reduceTryFinallyStatement(s,{body:function(){return a.Block(e,s.body)},catchClause:s.catchClause&&function(){return a.CatchClause(e,s.catchClause)},finalizer:function(){return a.Block(e,s.finalizer)}})},UnaryExpression:function o(e,s){var a=this;return e.reduceUnaryExpression(s,{operand:function(){return a[s.operand.type](e,s.operand)}})},UpdateExpression:function o(e,s){var a=this;return e.reduceUpdateExpression(s,{operand:function(){return a[s.operand.type](e,s.operand)}})},VariableDeclaration:function o(e,s){var a=this;return e.reduceVariableDeclaration(s,{declarators:s.declarators.map(function(c){return function(){return a.VariableDeclarator(e,c)}})})},VariableDeclarationStatement:function o(e,s){var a=this;return e.reduceVariableDeclarationStatement(s,{declaration:function(){return a.VariableDeclaration(e,s.declaration)}})},VariableDeclarator:function o(e,s){var a=this;return e.reduceVariableDeclarator(s,{binding:function(){return a[s.binding.type](e,s.binding)},init:s.init&&function(){return a[s.init.type](e,s.init)}})},WhileStatement:function o(e,s){var a=this;return e.reduceWhileStatement(s,{test:function(){return a[s.test.type](e,s.test)},body:function(){return a[s.body.type](e,s.body)}})},WithStatement:function o(e,s){var a=this;return e.reduceWithStatement(s,{object:function(){return a[s.object.type](e,s.object)},body:function(){return a[s.body.type](e,s.body)}})},YieldExpression:function o(e,s){var a=this;return e.reduceYieldExpression(s,{expression:s.expression&&function(){return a[s.expression.type](e,s.expression)}})},YieldGeneratorExpression:function o(e,s){var a=this;return e.reduceYieldGeneratorExpression(s,{expression:function(){return a[s.expression.type](e,s.expression)}})}};function thunkedReduce(o,e){return director[e.type](o,e)}var thunkify$1={};Object.defineProperty(thunkify$1,"__esModule",{value:!0});thunkify$1.default=thunkify;function thunkify(o){return{reduceArrayAssignmentTarget:function(s,a){var c=a.elements,d=a.rest;return o.reduceArrayAssignmentTarget(s,{elements:c.map(function(_){return _==null?null:_()}),rest:d==null?null:d()})},reduceArrayBinding:function(s,a){var c=a.elements,d=a.rest;return o.reduceArrayBinding(s,{elements:c.map(function(_){return _==null?null:_()}),rest:d==null?null:d()})},reduceArrayExpression:function(s,a){var c=a.elements;return o.reduceArrayExpression(s,{elements:c.map(function(d){return d==null?null:d()})})},reduceArrowExpression:function(s,a){var c=a.params,d=a.body;return o.reduceArrowExpression(s,{params:c(),body:d()})},reduceAssignmentExpression:function(s,a){var c=a.binding,d=a.expression;return o.reduceAssignmentExpression(s,{binding:c(),expression:d()})},reduceAssignmentTargetIdentifier:function(s){return o.reduceAssignmentTargetIdentifier(s)},reduceAssignmentTargetPropertyIdentifier:function(s,a){var c=a.binding,d=a.init;return o.reduceAssignmentTargetPropertyIdentifier(s,{binding:c(),init:d==null?null:d()})},reduceAssignmentTargetPropertyProperty:function(s,a){var c=a.name,d=a.binding;return o.reduceAssignmentTargetPropertyProperty(s,{name:c(),binding:d()})},reduceAssignmentTargetWithDefault:function(s,a){var c=a.binding,d=a.init;return o.reduceAssignmentTargetWithDefault(s,{binding:c(),init:d()})},reduceAwaitExpression:function(s,a){var c=a.expression;return o.reduceAwaitExpression(s,{expression:c()})},reduceBinaryExpression:function(s,a){var c=a.left,d=a.right;return o.reduceBinaryExpression(s,{left:c(),right:d()})},reduceBindingIdentifier:function(s){return o.reduceBindingIdentifier(s)},reduceBindingPropertyIdentifier:function(s,a){var c=a.binding,d=a.init;return o.reduceBindingPropertyIdentifier(s,{binding:c(),init:d==null?null:d()})},reduceBindingPropertyProperty:function(s,a){var c=a.name,d=a.binding;return o.reduceBindingPropertyProperty(s,{name:c(),binding:d()})},reduceBindingWithDefault:function(s,a){var c=a.binding,d=a.init;return o.reduceBindingWithDefault(s,{binding:c(),init:d()})},reduceBlock:function(s,a){var c=a.statements;return o.reduceBlock(s,{statements:c.map(function(d){return d()})})},reduceBlockStatement:function(s,a){var c=a.block;return o.reduceBlockStatement(s,{block:c()})},reduceBreakStatement:function(s){return o.reduceBreakStatement(s)},reduceCallExpression:function(s,a){var c=a.callee,d=a.arguments;return o.reduceCallExpression(s,{callee:c(),arguments:d.map(function(_){return _()})})},reduceCatchClause:function(s,a){var c=a.binding,d=a.body;return o.reduceCatchClause(s,{binding:c(),body:d()})},reduceClassDeclaration:function(s,a){var c=a.name,d=a.super,_=a.elements;return o.reduceClassDeclaration(s,{name:c(),super:d==null?null:d(),elements:_.map(function(b){return b()})})},reduceClassElement:function(s,a){var c=a.method;return o.reduceClassElement(s,{method:c()})},reduceClassExpression:function(s,a){var c=a.name,d=a.super,_=a.elements;return o.reduceClassExpression(s,{name:c==null?null:c(),super:d==null?null:d(),elements:_.map(function(b){return b()})})},reduceCompoundAssignmentExpression:function(s,a){var c=a.binding,d=a.expression;return o.reduceCompoundAssignmentExpression(s,{binding:c(),expression:d()})},reduceComputedMemberAssignmentTarget:function(s,a){var c=a.object,d=a.expression;return o.reduceComputedMemberAssignmentTarget(s,{object:c(),expression:d()})},reduceComputedMemberExpression:function(s,a){var c=a.object,d=a.expression;return o.reduceComputedMemberExpression(s,{object:c(),expression:d()})},reduceComputedPropertyName:function(s,a){var c=a.expression;return o.reduceComputedPropertyName(s,{expression:c()})},reduceConditionalExpression:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return o.reduceConditionalExpression(s,{test:c(),consequent:d(),alternate:_()})},reduceContinueStatement:function(s){return o.reduceContinueStatement(s)},reduceDataProperty:function(s,a){var c=a.name,d=a.expression;return o.reduceDataProperty(s,{name:c(),expression:d()})},reduceDebuggerStatement:function(s){return o.reduceDebuggerStatement(s)},reduceDirective:function(s){return o.reduceDirective(s)},reduceDoWhileStatement:function(s,a){var c=a.body,d=a.test;return o.reduceDoWhileStatement(s,{body:c(),test:d()})},reduceEmptyStatement:function(s){return o.reduceEmptyStatement(s)},reduceExport:function(s,a){var c=a.declaration;return o.reduceExport(s,{declaration:c()})},reduceExportAllFrom:function(s){return o.reduceExportAllFrom(s)},reduceExportDefault:function(s,a){var c=a.body;return o.reduceExportDefault(s,{body:c()})},reduceExportFrom:function(s,a){var c=a.namedExports;return o.reduceExportFrom(s,{namedExports:c.map(function(d){return d()})})},reduceExportFromSpecifier:function(s){return o.reduceExportFromSpecifier(s)},reduceExportLocalSpecifier:function(s,a){var c=a.name;return o.reduceExportLocalSpecifier(s,{name:c()})},reduceExportLocals:function(s,a){var c=a.namedExports;return o.reduceExportLocals(s,{namedExports:c.map(function(d){return d()})})},reduceExpressionStatement:function(s,a){var c=a.expression;return o.reduceExpressionStatement(s,{expression:c()})},reduceForAwaitStatement:function(s,a){var c=a.left,d=a.right,_=a.body;return o.reduceForAwaitStatement(s,{left:c(),right:d(),body:_()})},reduceForInStatement:function(s,a){var c=a.left,d=a.right,_=a.body;return o.reduceForInStatement(s,{left:c(),right:d(),body:_()})},reduceForOfStatement:function(s,a){var c=a.left,d=a.right,_=a.body;return o.reduceForOfStatement(s,{left:c(),right:d(),body:_()})},reduceForStatement:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return o.reduceForStatement(s,{init:c==null?null:c(),test:d==null?null:d(),update:_==null?null:_(),body:b()})},reduceFormalParameters:function(s,a){var c=a.items,d=a.rest;return o.reduceFormalParameters(s,{items:c.map(function(_){return _()}),rest:d==null?null:d()})},reduceFunctionBody:function(s,a){var c=a.directives,d=a.statements;return o.reduceFunctionBody(s,{directives:c.map(function(_){return _()}),statements:d.map(function(_){return _()})})},reduceFunctionDeclaration:function(s,a){var c=a.name,d=a.params,_=a.body;return o.reduceFunctionDeclaration(s,{name:c(),params:d(),body:_()})},reduceFunctionExpression:function(s,a){var c=a.name,d=a.params,_=a.body;return o.reduceFunctionExpression(s,{name:c==null?null:c(),params:d(),body:_()})},reduceGetter:function(s,a){var c=a.name,d=a.body;return o.reduceGetter(s,{name:c(),body:d()})},reduceIdentifierExpression:function(s){return o.reduceIdentifierExpression(s)},reduceIfStatement:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return o.reduceIfStatement(s,{test:c(),consequent:d(),alternate:_==null?null:_()})},reduceImport:function(s,a){var c=a.defaultBinding,d=a.namedImports;return o.reduceImport(s,{defaultBinding:c==null?null:c(),namedImports:d.map(function(_){return _()})})},reduceImportNamespace:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return o.reduceImportNamespace(s,{defaultBinding:c==null?null:c(),namespaceBinding:d()})},reduceImportSpecifier:function(s,a){var c=a.binding;return o.reduceImportSpecifier(s,{binding:c()})},reduceLabeledStatement:function(s,a){var c=a.body;return o.reduceLabeledStatement(s,{body:c()})},reduceLiteralBooleanExpression:function(s){return o.reduceLiteralBooleanExpression(s)},reduceLiteralInfinityExpression:function(s){return o.reduceLiteralInfinityExpression(s)},reduceLiteralNullExpression:function(s){return o.reduceLiteralNullExpression(s)},reduceLiteralNumericExpression:function(s){return o.reduceLiteralNumericExpression(s)},reduceLiteralRegExpExpression:function(s){return o.reduceLiteralRegExpExpression(s)},reduceLiteralStringExpression:function(s){return o.reduceLiteralStringExpression(s)},reduceMethod:function(s,a){var c=a.name,d=a.params,_=a.body;return o.reduceMethod(s,{name:c(),params:d(),body:_()})},reduceModule:function(s,a){var c=a.directives,d=a.items;return o.reduceModule(s,{directives:c.map(function(_){return _()}),items:d.map(function(_){return _()})})},reduceNewExpression:function(s,a){var c=a.callee,d=a.arguments;return o.reduceNewExpression(s,{callee:c(),arguments:d.map(function(_){return _()})})},reduceNewTargetExpression:function(s){return o.reduceNewTargetExpression(s)},reduceObjectAssignmentTarget:function(s,a){var c=a.properties,d=a.rest;return o.reduceObjectAssignmentTarget(s,{properties:c.map(function(_){return _()}),rest:d==null?null:d()})},reduceObjectBinding:function(s,a){var c=a.properties,d=a.rest;return o.reduceObjectBinding(s,{properties:c.map(function(_){return _()}),rest:d==null?null:d()})},reduceObjectExpression:function(s,a){var c=a.properties;return o.reduceObjectExpression(s,{properties:c.map(function(d){return d()})})},reduceReturnStatement:function(s,a){var c=a.expression;return o.reduceReturnStatement(s,{expression:c==null?null:c()})},reduceScript:function(s,a){var c=a.directives,d=a.statements;return o.reduceScript(s,{directives:c.map(function(_){return _()}),statements:d.map(function(_){return _()})})},reduceSetter:function(s,a){var c=a.name,d=a.param,_=a.body;return o.reduceSetter(s,{name:c(),param:d(),body:_()})},reduceShorthandProperty:function(s,a){var c=a.name;return o.reduceShorthandProperty(s,{name:c()})},reduceSpreadElement:function(s,a){var c=a.expression;return o.reduceSpreadElement(s,{expression:c()})},reduceSpreadProperty:function(s,a){var c=a.expression;return o.reduceSpreadProperty(s,{expression:c()})},reduceStaticMemberAssignmentTarget:function(s,a){var c=a.object;return o.reduceStaticMemberAssignmentTarget(s,{object:c()})},reduceStaticMemberExpression:function(s,a){var c=a.object;return o.reduceStaticMemberExpression(s,{object:c()})},reduceStaticPropertyName:function(s){return o.reduceStaticPropertyName(s)},reduceSuper:function(s){return o.reduceSuper(s)},reduceSwitchCase:function(s,a){var c=a.test,d=a.consequent;return o.reduceSwitchCase(s,{test:c(),consequent:d.map(function(_){return _()})})},reduceSwitchDefault:function(s,a){var c=a.consequent;return o.reduceSwitchDefault(s,{consequent:c.map(function(d){return d()})})},reduceSwitchStatement:function(s,a){var c=a.discriminant,d=a.cases;return o.reduceSwitchStatement(s,{discriminant:c(),cases:d.map(function(_){return _()})})},reduceSwitchStatementWithDefault:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return o.reduceSwitchStatementWithDefault(s,{discriminant:c(),preDefaultCases:d.map(function(k){return k()}),defaultCase:_(),postDefaultCases:b.map(function(k){return k()})})},reduceTemplateElement:function(s){return o.reduceTemplateElement(s)},reduceTemplateExpression:function(s,a){var c=a.tag,d=a.elements;return o.reduceTemplateExpression(s,{tag:c==null?null:c(),elements:d.map(function(_){return _()})})},reduceThisExpression:function(s){return o.reduceThisExpression(s)},reduceThrowStatement:function(s,a){var c=a.expression;return o.reduceThrowStatement(s,{expression:c()})},reduceTryCatchStatement:function(s,a){var c=a.body,d=a.catchClause;return o.reduceTryCatchStatement(s,{body:c(),catchClause:d()})},reduceTryFinallyStatement:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return o.reduceTryFinallyStatement(s,{body:c(),catchClause:d==null?null:d(),finalizer:_()})},reduceUnaryExpression:function(s,a){var c=a.operand;return o.reduceUnaryExpression(s,{operand:c()})},reduceUpdateExpression:function(s,a){var c=a.operand;return o.reduceUpdateExpression(s,{operand:c()})},reduceVariableDeclaration:function(s,a){var c=a.declarators;return o.reduceVariableDeclaration(s,{declarators:c.map(function(d){return d()})})},reduceVariableDeclarationStatement:function(s,a){var c=a.declaration;return o.reduceVariableDeclarationStatement(s,{declaration:c()})},reduceVariableDeclarator:function(s,a){var c=a.binding,d=a.init;return o.reduceVariableDeclarator(s,{binding:c(),init:d==null?null:d()})},reduceWhileStatement:function(s,a){var c=a.test,d=a.body;return o.reduceWhileStatement(s,{test:c(),body:d()})},reduceWithStatement:function(s,a){var c=a.object,d=a.body;return o.reduceWithStatement(s,{object:c(),body:d()})},reduceYieldExpression:function(s,a){var c=a.expression;return o.reduceYieldExpression(s,{expression:c==null?null:c()})},reduceYieldGeneratorExpression:function(s,a){var c=a.expression;return o.reduceYieldGeneratorExpression(s,{expression:c()})}}}var thunkifyClass$1={};Object.defineProperty(thunkifyClass$1,"__esModule",{value:!0});var _createClass$b=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_get$3=function o(e,s,a){e===null&&(e=Function.prototype);var c=Object.getOwnPropertyDescriptor(e,s);if(c===void 0){var d=Object.getPrototypeOf(e);return d===null?void 0:o(d,s,a)}else{if("value"in c)return c.value;var _=c.get;return _===void 0?void 0:_.call(a)}};thunkifyClass$1.default=thunkifyClass;function _classCallCheck$e(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$6(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$6(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}function thunkifyClass(o){return function(e){_inherits$6(s,e);function s(){return _classCallCheck$e(this,s),_possibleConstructorReturn$6(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return _createClass$b(s,[{key:"reduceArrayAssignmentTarget",value:function(c,d){var _=d.elements,b=d.rest;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceArrayAssignmentTarget",this).call(this,c,{elements:_.map(function(k){return k==null?null:k()}),rest:b==null?null:b()})}},{key:"reduceArrayBinding",value:function(c,d){var _=d.elements,b=d.rest;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceArrayBinding",this).call(this,c,{elements:_.map(function(k){return k==null?null:k()}),rest:b==null?null:b()})}},{key:"reduceArrayExpression",value:function(c,d){var _=d.elements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceArrayExpression",this).call(this,c,{elements:_.map(function(b){return b==null?null:b()})})}},{key:"reduceArrowExpression",value:function(c,d){var _=d.params,b=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceArrowExpression",this).call(this,c,{params:_(),body:b()})}},{key:"reduceAssignmentExpression",value:function(c,d){var _=d.binding,b=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAssignmentExpression",this).call(this,c,{binding:_(),expression:b()})}},{key:"reduceAssignmentTargetIdentifier",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAssignmentTargetIdentifier",this).call(this,c)}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(c,d){var _=d.binding,b=d.init;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAssignmentTargetPropertyIdentifier",this).call(this,c,{binding:_(),init:b==null?null:b()})}},{key:"reduceAssignmentTargetPropertyProperty",value:function(c,d){var _=d.name,b=d.binding;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAssignmentTargetPropertyProperty",this).call(this,c,{name:_(),binding:b()})}},{key:"reduceAssignmentTargetWithDefault",value:function(c,d){var _=d.binding,b=d.init;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAssignmentTargetWithDefault",this).call(this,c,{binding:_(),init:b()})}},{key:"reduceAwaitExpression",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceAwaitExpression",this).call(this,c,{expression:_()})}},{key:"reduceBinaryExpression",value:function(c,d){var _=d.left,b=d.right;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBinaryExpression",this).call(this,c,{left:_(),right:b()})}},{key:"reduceBindingIdentifier",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBindingIdentifier",this).call(this,c)}},{key:"reduceBindingPropertyIdentifier",value:function(c,d){var _=d.binding,b=d.init;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBindingPropertyIdentifier",this).call(this,c,{binding:_(),init:b==null?null:b()})}},{key:"reduceBindingPropertyProperty",value:function(c,d){var _=d.name,b=d.binding;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBindingPropertyProperty",this).call(this,c,{name:_(),binding:b()})}},{key:"reduceBindingWithDefault",value:function(c,d){var _=d.binding,b=d.init;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBindingWithDefault",this).call(this,c,{binding:_(),init:b()})}},{key:"reduceBlock",value:function(c,d){var _=d.statements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBlock",this).call(this,c,{statements:_.map(function(b){return b()})})}},{key:"reduceBlockStatement",value:function(c,d){var _=d.block;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBlockStatement",this).call(this,c,{block:_()})}},{key:"reduceBreakStatement",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceBreakStatement",this).call(this,c)}},{key:"reduceCallExpression",value:function(c,d){var _=d.callee,b=d.arguments;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceCallExpression",this).call(this,c,{callee:_(),arguments:b.map(function(k){return k()})})}},{key:"reduceCatchClause",value:function(c,d){var _=d.binding,b=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceCatchClause",this).call(this,c,{binding:_(),body:b()})}},{key:"reduceClassDeclaration",value:function(c,d){var _=d.name,b=d.super,k=d.elements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceClassDeclaration",this).call(this,c,{name:_(),super:b==null?null:b(),elements:k.map(function($){return $()})})}},{key:"reduceClassElement",value:function(c,d){var _=d.method;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceClassElement",this).call(this,c,{method:_()})}},{key:"reduceClassExpression",value:function(c,d){var _=d.name,b=d.super,k=d.elements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceClassExpression",this).call(this,c,{name:_==null?null:_(),super:b==null?null:b(),elements:k.map(function($){return $()})})}},{key:"reduceCompoundAssignmentExpression",value:function(c,d){var _=d.binding,b=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceCompoundAssignmentExpression",this).call(this,c,{binding:_(),expression:b()})}},{key:"reduceComputedMemberAssignmentTarget",value:function(c,d){var _=d.object,b=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceComputedMemberAssignmentTarget",this).call(this,c,{object:_(),expression:b()})}},{key:"reduceComputedMemberExpression",value:function(c,d){var _=d.object,b=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceComputedMemberExpression",this).call(this,c,{object:_(),expression:b()})}},{key:"reduceComputedPropertyName",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceComputedPropertyName",this).call(this,c,{expression:_()})}},{key:"reduceConditionalExpression",value:function(c,d){var _=d.test,b=d.consequent,k=d.alternate;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceConditionalExpression",this).call(this,c,{test:_(),consequent:b(),alternate:k()})}},{key:"reduceContinueStatement",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceContinueStatement",this).call(this,c)}},{key:"reduceDataProperty",value:function(c,d){var _=d.name,b=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceDataProperty",this).call(this,c,{name:_(),expression:b()})}},{key:"reduceDebuggerStatement",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceDebuggerStatement",this).call(this,c)}},{key:"reduceDirective",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceDirective",this).call(this,c)}},{key:"reduceDoWhileStatement",value:function(c,d){var _=d.body,b=d.test;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceDoWhileStatement",this).call(this,c,{body:_(),test:b()})}},{key:"reduceEmptyStatement",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceEmptyStatement",this).call(this,c)}},{key:"reduceExport",value:function(c,d){var _=d.declaration;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExport",this).call(this,c,{declaration:_()})}},{key:"reduceExportAllFrom",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportAllFrom",this).call(this,c)}},{key:"reduceExportDefault",value:function(c,d){var _=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportDefault",this).call(this,c,{body:_()})}},{key:"reduceExportFrom",value:function(c,d){var _=d.namedExports;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportFrom",this).call(this,c,{namedExports:_.map(function(b){return b()})})}},{key:"reduceExportFromSpecifier",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportFromSpecifier",this).call(this,c)}},{key:"reduceExportLocalSpecifier",value:function(c,d){var _=d.name;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportLocalSpecifier",this).call(this,c,{name:_()})}},{key:"reduceExportLocals",value:function(c,d){var _=d.namedExports;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExportLocals",this).call(this,c,{namedExports:_.map(function(b){return b()})})}},{key:"reduceExpressionStatement",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceExpressionStatement",this).call(this,c,{expression:_()})}},{key:"reduceForAwaitStatement",value:function(c,d){var _=d.left,b=d.right,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceForAwaitStatement",this).call(this,c,{left:_(),right:b(),body:k()})}},{key:"reduceForInStatement",value:function(c,d){var _=d.left,b=d.right,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceForInStatement",this).call(this,c,{left:_(),right:b(),body:k()})}},{key:"reduceForOfStatement",value:function(c,d){var _=d.left,b=d.right,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceForOfStatement",this).call(this,c,{left:_(),right:b(),body:k()})}},{key:"reduceForStatement",value:function(c,d){var _=d.init,b=d.test,k=d.update,$=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceForStatement",this).call(this,c,{init:_==null?null:_(),test:b==null?null:b(),update:k==null?null:k(),body:$()})}},{key:"reduceFormalParameters",value:function(c,d){var _=d.items,b=d.rest;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceFormalParameters",this).call(this,c,{items:_.map(function(k){return k()}),rest:b==null?null:b()})}},{key:"reduceFunctionBody",value:function(c,d){var _=d.directives,b=d.statements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceFunctionBody",this).call(this,c,{directives:_.map(function(k){return k()}),statements:b.map(function(k){return k()})})}},{key:"reduceFunctionDeclaration",value:function(c,d){var _=d.name,b=d.params,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceFunctionDeclaration",this).call(this,c,{name:_(),params:b(),body:k()})}},{key:"reduceFunctionExpression",value:function(c,d){var _=d.name,b=d.params,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceFunctionExpression",this).call(this,c,{name:_==null?null:_(),params:b(),body:k()})}},{key:"reduceGetter",value:function(c,d){var _=d.name,b=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceGetter",this).call(this,c,{name:_(),body:b()})}},{key:"reduceIdentifierExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceIdentifierExpression",this).call(this,c)}},{key:"reduceIfStatement",value:function(c,d){var _=d.test,b=d.consequent,k=d.alternate;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceIfStatement",this).call(this,c,{test:_(),consequent:b(),alternate:k==null?null:k()})}},{key:"reduceImport",value:function(c,d){var _=d.defaultBinding,b=d.namedImports;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceImport",this).call(this,c,{defaultBinding:_==null?null:_(),namedImports:b.map(function(k){return k()})})}},{key:"reduceImportNamespace",value:function(c,d){var _=d.defaultBinding,b=d.namespaceBinding;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceImportNamespace",this).call(this,c,{defaultBinding:_==null?null:_(),namespaceBinding:b()})}},{key:"reduceImportSpecifier",value:function(c,d){var _=d.binding;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceImportSpecifier",this).call(this,c,{binding:_()})}},{key:"reduceLabeledStatement",value:function(c,d){var _=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLabeledStatement",this).call(this,c,{body:_()})}},{key:"reduceLiteralBooleanExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralBooleanExpression",this).call(this,c)}},{key:"reduceLiteralInfinityExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralInfinityExpression",this).call(this,c)}},{key:"reduceLiteralNullExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralNullExpression",this).call(this,c)}},{key:"reduceLiteralNumericExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralNumericExpression",this).call(this,c)}},{key:"reduceLiteralRegExpExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralRegExpExpression",this).call(this,c)}},{key:"reduceLiteralStringExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceLiteralStringExpression",this).call(this,c)}},{key:"reduceMethod",value:function(c,d){var _=d.name,b=d.params,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceMethod",this).call(this,c,{name:_(),params:b(),body:k()})}},{key:"reduceModule",value:function(c,d){var _=d.directives,b=d.items;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceModule",this).call(this,c,{directives:_.map(function(k){return k()}),items:b.map(function(k){return k()})})}},{key:"reduceNewExpression",value:function(c,d){var _=d.callee,b=d.arguments;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceNewExpression",this).call(this,c,{callee:_(),arguments:b.map(function(k){return k()})})}},{key:"reduceNewTargetExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceNewTargetExpression",this).call(this,c)}},{key:"reduceObjectAssignmentTarget",value:function(c,d){var _=d.properties,b=d.rest;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceObjectAssignmentTarget",this).call(this,c,{properties:_.map(function(k){return k()}),rest:b==null?null:b()})}},{key:"reduceObjectBinding",value:function(c,d){var _=d.properties,b=d.rest;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceObjectBinding",this).call(this,c,{properties:_.map(function(k){return k()}),rest:b==null?null:b()})}},{key:"reduceObjectExpression",value:function(c,d){var _=d.properties;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceObjectExpression",this).call(this,c,{properties:_.map(function(b){return b()})})}},{key:"reduceReturnStatement",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceReturnStatement",this).call(this,c,{expression:_==null?null:_()})}},{key:"reduceScript",value:function(c,d){var _=d.directives,b=d.statements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceScript",this).call(this,c,{directives:_.map(function(k){return k()}),statements:b.map(function(k){return k()})})}},{key:"reduceSetter",value:function(c,d){var _=d.name,b=d.param,k=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSetter",this).call(this,c,{name:_(),param:b(),body:k()})}},{key:"reduceShorthandProperty",value:function(c,d){var _=d.name;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceShorthandProperty",this).call(this,c,{name:_()})}},{key:"reduceSpreadElement",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSpreadElement",this).call(this,c,{expression:_()})}},{key:"reduceSpreadProperty",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSpreadProperty",this).call(this,c,{expression:_()})}},{key:"reduceStaticMemberAssignmentTarget",value:function(c,d){var _=d.object;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceStaticMemberAssignmentTarget",this).call(this,c,{object:_()})}},{key:"reduceStaticMemberExpression",value:function(c,d){var _=d.object;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceStaticMemberExpression",this).call(this,c,{object:_()})}},{key:"reduceStaticPropertyName",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceStaticPropertyName",this).call(this,c)}},{key:"reduceSuper",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSuper",this).call(this,c)}},{key:"reduceSwitchCase",value:function(c,d){var _=d.test,b=d.consequent;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSwitchCase",this).call(this,c,{test:_(),consequent:b.map(function(k){return k()})})}},{key:"reduceSwitchDefault",value:function(c,d){var _=d.consequent;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSwitchDefault",this).call(this,c,{consequent:_.map(function(b){return b()})})}},{key:"reduceSwitchStatement",value:function(c,d){var _=d.discriminant,b=d.cases;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSwitchStatement",this).call(this,c,{discriminant:_(),cases:b.map(function(k){return k()})})}},{key:"reduceSwitchStatementWithDefault",value:function(c,d){var _=d.discriminant,b=d.preDefaultCases,k=d.defaultCase,$=d.postDefaultCases;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceSwitchStatementWithDefault",this).call(this,c,{discriminant:_(),preDefaultCases:b.map(function(j){return j()}),defaultCase:k(),postDefaultCases:$.map(function(j){return j()})})}},{key:"reduceTemplateElement",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceTemplateElement",this).call(this,c)}},{key:"reduceTemplateExpression",value:function(c,d){var _=d.tag,b=d.elements;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceTemplateExpression",this).call(this,c,{tag:_==null?null:_(),elements:b.map(function(k){return k()})})}},{key:"reduceThisExpression",value:function(c){return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceThisExpression",this).call(this,c)}},{key:"reduceThrowStatement",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceThrowStatement",this).call(this,c,{expression:_()})}},{key:"reduceTryCatchStatement",value:function(c,d){var _=d.body,b=d.catchClause;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceTryCatchStatement",this).call(this,c,{body:_(),catchClause:b()})}},{key:"reduceTryFinallyStatement",value:function(c,d){var _=d.body,b=d.catchClause,k=d.finalizer;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceTryFinallyStatement",this).call(this,c,{body:_(),catchClause:b==null?null:b(),finalizer:k()})}},{key:"reduceUnaryExpression",value:function(c,d){var _=d.operand;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceUnaryExpression",this).call(this,c,{operand:_()})}},{key:"reduceUpdateExpression",value:function(c,d){var _=d.operand;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceUpdateExpression",this).call(this,c,{operand:_()})}},{key:"reduceVariableDeclaration",value:function(c,d){var _=d.declarators;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceVariableDeclaration",this).call(this,c,{declarators:_.map(function(b){return b()})})}},{key:"reduceVariableDeclarationStatement",value:function(c,d){var _=d.declaration;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceVariableDeclarationStatement",this).call(this,c,{declaration:_()})}},{key:"reduceVariableDeclarator",value:function(c,d){var _=d.binding,b=d.init;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceVariableDeclarator",this).call(this,c,{binding:_(),init:b==null?null:b()})}},{key:"reduceWhileStatement",value:function(c,d){var _=d.test,b=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceWhileStatement",this).call(this,c,{test:_(),body:b()})}},{key:"reduceWithStatement",value:function(c,d){var _=d.object,b=d.body;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceWithStatement",this).call(this,c,{object:_(),body:b()})}},{key:"reduceYieldExpression",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceYieldExpression",this).call(this,c,{expression:_==null?null:_()})}},{key:"reduceYieldGeneratorExpression",value:function(c,d){var _=d.expression;return _get$3(s.prototype.__proto__||Object.getPrototypeOf(s.prototype),"reduceYieldGeneratorExpression",this).call(this,c,{expression:_()})}}]),s}(o)}var memoize$1={},dist$3={};Object.defineProperty(dist$3,"__esModule",{value:!0});function _classCallCheck$d(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}dist$3.ArrayAssignmentTarget=function o(e){var s=e.elements,a=e.rest;_classCallCheck$d(this,o),this.type="ArrayAssignmentTarget",this.elements=s,this.rest=a};dist$3.ArrayBinding=function o(e){var s=e.elements,a=e.rest;_classCallCheck$d(this,o),this.type="ArrayBinding",this.elements=s,this.rest=a};dist$3.ArrayExpression=function o(e){var s=e.elements;_classCallCheck$d(this,o),this.type="ArrayExpression",this.elements=s};dist$3.ArrowExpression=function o(e){var s=e.isAsync,a=e.params,c=e.body;_classCallCheck$d(this,o),this.type="ArrowExpression",this.isAsync=s,this.params=a,this.body=c};dist$3.AssignmentExpression=function o(e){var s=e.binding,a=e.expression;_classCallCheck$d(this,o),this.type="AssignmentExpression",this.binding=s,this.expression=a};dist$3.AssignmentTargetIdentifier=function o(e){var s=e.name;_classCallCheck$d(this,o),this.type="AssignmentTargetIdentifier",this.name=s};dist$3.AssignmentTargetPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$d(this,o),this.type="AssignmentTargetPropertyIdentifier",this.binding=s,this.init=a};dist$3.AssignmentTargetPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$d(this,o),this.type="AssignmentTargetPropertyProperty",this.name=s,this.binding=a};dist$3.AssignmentTargetWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$d(this,o),this.type="AssignmentTargetWithDefault",this.binding=s,this.init=a};dist$3.AwaitExpression=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="AwaitExpression",this.expression=s};dist$3.BinaryExpression=function o(e){var s=e.left,a=e.operator,c=e.right;_classCallCheck$d(this,o),this.type="BinaryExpression",this.left=s,this.operator=a,this.right=c};dist$3.BindingIdentifier=function o(e){var s=e.name;_classCallCheck$d(this,o),this.type="BindingIdentifier",this.name=s};dist$3.BindingPropertyIdentifier=function o(e){var s=e.binding,a=e.init;_classCallCheck$d(this,o),this.type="BindingPropertyIdentifier",this.binding=s,this.init=a};dist$3.BindingPropertyProperty=function o(e){var s=e.name,a=e.binding;_classCallCheck$d(this,o),this.type="BindingPropertyProperty",this.name=s,this.binding=a};dist$3.BindingWithDefault=function o(e){var s=e.binding,a=e.init;_classCallCheck$d(this,o),this.type="BindingWithDefault",this.binding=s,this.init=a};dist$3.Block=function o(e){var s=e.statements;_classCallCheck$d(this,o),this.type="Block",this.statements=s};dist$3.BlockStatement=function o(e){var s=e.block;_classCallCheck$d(this,o),this.type="BlockStatement",this.block=s};dist$3.BreakStatement=function o(e){var s=e.label;_classCallCheck$d(this,o),this.type="BreakStatement",this.label=s};dist$3.CallExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$d(this,o),this.type="CallExpression",this.callee=s,this.arguments=a};dist$3.CatchClause=function o(e){var s=e.binding,a=e.body;_classCallCheck$d(this,o),this.type="CatchClause",this.binding=s,this.body=a};dist$3.ClassDeclaration=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$d(this,o),this.type="ClassDeclaration",this.name=s,this.super=a,this.elements=c};dist$3.ClassElement=function o(e){var s=e.isStatic,a=e.method;_classCallCheck$d(this,o),this.type="ClassElement",this.isStatic=s,this.method=a};dist$3.ClassExpression=function o(e){var s=e.name,a=e.super,c=e.elements;_classCallCheck$d(this,o),this.type="ClassExpression",this.name=s,this.super=a,this.elements=c};dist$3.CompoundAssignmentExpression=function o(e){var s=e.binding,a=e.operator,c=e.expression;_classCallCheck$d(this,o),this.type="CompoundAssignmentExpression",this.binding=s,this.operator=a,this.expression=c};dist$3.ComputedMemberAssignmentTarget=function o(e){var s=e.object,a=e.expression;_classCallCheck$d(this,o),this.type="ComputedMemberAssignmentTarget",this.object=s,this.expression=a};dist$3.ComputedMemberExpression=function o(e){var s=e.object,a=e.expression;_classCallCheck$d(this,o),this.type="ComputedMemberExpression",this.object=s,this.expression=a};dist$3.ComputedPropertyName=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="ComputedPropertyName",this.expression=s};dist$3.ConditionalExpression=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$d(this,o),this.type="ConditionalExpression",this.test=s,this.consequent=a,this.alternate=c};dist$3.ContinueStatement=function o(e){var s=e.label;_classCallCheck$d(this,o),this.type="ContinueStatement",this.label=s};dist$3.DataProperty=function o(e){var s=e.name,a=e.expression;_classCallCheck$d(this,o),this.type="DataProperty",this.name=s,this.expression=a};dist$3.DebuggerStatement=function o(){_classCallCheck$d(this,o),this.type="DebuggerStatement"};dist$3.Directive=function o(e){var s=e.rawValue;_classCallCheck$d(this,o),this.type="Directive",this.rawValue=s};dist$3.DoWhileStatement=function o(e){var s=e.body,a=e.test;_classCallCheck$d(this,o),this.type="DoWhileStatement",this.body=s,this.test=a};dist$3.EmptyStatement=function o(){_classCallCheck$d(this,o),this.type="EmptyStatement"};dist$3.Export=function o(e){var s=e.declaration;_classCallCheck$d(this,o),this.type="Export",this.declaration=s};dist$3.ExportAllFrom=function o(e){var s=e.moduleSpecifier;_classCallCheck$d(this,o),this.type="ExportAllFrom",this.moduleSpecifier=s};dist$3.ExportDefault=function o(e){var s=e.body;_classCallCheck$d(this,o),this.type="ExportDefault",this.body=s};dist$3.ExportFrom=function o(e){var s=e.namedExports,a=e.moduleSpecifier;_classCallCheck$d(this,o),this.type="ExportFrom",this.namedExports=s,this.moduleSpecifier=a};dist$3.ExportFromSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$d(this,o),this.type="ExportFromSpecifier",this.name=s,this.exportedName=a};dist$3.ExportLocalSpecifier=function o(e){var s=e.name,a=e.exportedName;_classCallCheck$d(this,o),this.type="ExportLocalSpecifier",this.name=s,this.exportedName=a};dist$3.ExportLocals=function o(e){var s=e.namedExports;_classCallCheck$d(this,o),this.type="ExportLocals",this.namedExports=s};dist$3.ExpressionStatement=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="ExpressionStatement",this.expression=s};dist$3.ForAwaitStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$d(this,o),this.type="ForAwaitStatement",this.left=s,this.right=a,this.body=c};dist$3.ForInStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$d(this,o),this.type="ForInStatement",this.left=s,this.right=a,this.body=c};dist$3.ForOfStatement=function o(e){var s=e.left,a=e.right,c=e.body;_classCallCheck$d(this,o),this.type="ForOfStatement",this.left=s,this.right=a,this.body=c};dist$3.ForStatement=function o(e){var s=e.init,a=e.test,c=e.update,d=e.body;_classCallCheck$d(this,o),this.type="ForStatement",this.init=s,this.test=a,this.update=c,this.body=d};dist$3.FormalParameters=function o(e){var s=e.items,a=e.rest;_classCallCheck$d(this,o),this.type="FormalParameters",this.items=s,this.rest=a};dist$3.FunctionBody=function o(e){var s=e.directives,a=e.statements;_classCallCheck$d(this,o),this.type="FunctionBody",this.directives=s,this.statements=a};dist$3.FunctionDeclaration=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$d(this,o),this.type="FunctionDeclaration",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$3.FunctionExpression=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$d(this,o),this.type="FunctionExpression",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$3.Getter=function o(e){var s=e.name,a=e.body;_classCallCheck$d(this,o),this.type="Getter",this.name=s,this.body=a};dist$3.IdentifierExpression=function o(e){var s=e.name;_classCallCheck$d(this,o),this.type="IdentifierExpression",this.name=s};dist$3.IfStatement=function o(e){var s=e.test,a=e.consequent,c=e.alternate;_classCallCheck$d(this,o),this.type="IfStatement",this.test=s,this.consequent=a,this.alternate=c};dist$3.Import=function o(e){var s=e.defaultBinding,a=e.namedImports,c=e.moduleSpecifier;_classCallCheck$d(this,o),this.type="Import",this.defaultBinding=s,this.namedImports=a,this.moduleSpecifier=c};dist$3.ImportNamespace=function o(e){var s=e.defaultBinding,a=e.namespaceBinding,c=e.moduleSpecifier;_classCallCheck$d(this,o),this.type="ImportNamespace",this.defaultBinding=s,this.namespaceBinding=a,this.moduleSpecifier=c};dist$3.ImportSpecifier=function o(e){var s=e.name,a=e.binding;_classCallCheck$d(this,o),this.type="ImportSpecifier",this.name=s,this.binding=a};dist$3.LabeledStatement=function o(e){var s=e.label,a=e.body;_classCallCheck$d(this,o),this.type="LabeledStatement",this.label=s,this.body=a};dist$3.LiteralBooleanExpression=function o(e){var s=e.value;_classCallCheck$d(this,o),this.type="LiteralBooleanExpression",this.value=s};dist$3.LiteralInfinityExpression=function o(){_classCallCheck$d(this,o),this.type="LiteralInfinityExpression"};dist$3.LiteralNullExpression=function o(){_classCallCheck$d(this,o),this.type="LiteralNullExpression"};dist$3.LiteralNumericExpression=function o(e){var s=e.value;_classCallCheck$d(this,o),this.type="LiteralNumericExpression",this.value=s};dist$3.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$d(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$3.LiteralStringExpression=function o(e){var s=e.value;_classCallCheck$d(this,o),this.type="LiteralStringExpression",this.value=s};dist$3.Method=function o(e){var s=e.isAsync,a=e.isGenerator,c=e.name,d=e.params,_=e.body;_classCallCheck$d(this,o),this.type="Method",this.isAsync=s,this.isGenerator=a,this.name=c,this.params=d,this.body=_};dist$3.Module=function o(e){var s=e.directives,a=e.items;_classCallCheck$d(this,o),this.type="Module",this.directives=s,this.items=a};dist$3.NewExpression=function o(e){var s=e.callee,a=e.arguments;_classCallCheck$d(this,o),this.type="NewExpression",this.callee=s,this.arguments=a};dist$3.NewTargetExpression=function o(){_classCallCheck$d(this,o),this.type="NewTargetExpression"};dist$3.ObjectAssignmentTarget=function o(e){var s=e.properties,a=e.rest;_classCallCheck$d(this,o),this.type="ObjectAssignmentTarget",this.properties=s,this.rest=a};dist$3.ObjectBinding=function o(e){var s=e.properties,a=e.rest;_classCallCheck$d(this,o),this.type="ObjectBinding",this.properties=s,this.rest=a};dist$3.ObjectExpression=function o(e){var s=e.properties;_classCallCheck$d(this,o),this.type="ObjectExpression",this.properties=s};dist$3.ReturnStatement=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="ReturnStatement",this.expression=s};dist$3.Script=function o(e){var s=e.directives,a=e.statements;_classCallCheck$d(this,o),this.type="Script",this.directives=s,this.statements=a};dist$3.Setter=function o(e){var s=e.name,a=e.param,c=e.body;_classCallCheck$d(this,o),this.type="Setter",this.name=s,this.param=a,this.body=c};dist$3.ShorthandProperty=function o(e){var s=e.name;_classCallCheck$d(this,o),this.type="ShorthandProperty",this.name=s};dist$3.SpreadElement=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="SpreadElement",this.expression=s};dist$3.SpreadProperty=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="SpreadProperty",this.expression=s};dist$3.StaticMemberAssignmentTarget=function o(e){var s=e.object,a=e.property;_classCallCheck$d(this,o),this.type="StaticMemberAssignmentTarget",this.object=s,this.property=a};dist$3.StaticMemberExpression=function o(e){var s=e.object,a=e.property;_classCallCheck$d(this,o),this.type="StaticMemberExpression",this.object=s,this.property=a};dist$3.StaticPropertyName=function o(e){var s=e.value;_classCallCheck$d(this,o),this.type="StaticPropertyName",this.value=s};dist$3.Super=function o(){_classCallCheck$d(this,o),this.type="Super"};dist$3.SwitchCase=function o(e){var s=e.test,a=e.consequent;_classCallCheck$d(this,o),this.type="SwitchCase",this.test=s,this.consequent=a};dist$3.SwitchDefault=function o(e){var s=e.consequent;_classCallCheck$d(this,o),this.type="SwitchDefault",this.consequent=s};dist$3.SwitchStatement=function o(e){var s=e.discriminant,a=e.cases;_classCallCheck$d(this,o),this.type="SwitchStatement",this.discriminant=s,this.cases=a};dist$3.SwitchStatementWithDefault=function o(e){var s=e.discriminant,a=e.preDefaultCases,c=e.defaultCase,d=e.postDefaultCases;_classCallCheck$d(this,o),this.type="SwitchStatementWithDefault",this.discriminant=s,this.preDefaultCases=a,this.defaultCase=c,this.postDefaultCases=d};dist$3.TemplateElement=function o(e){var s=e.rawValue;_classCallCheck$d(this,o),this.type="TemplateElement",this.rawValue=s};dist$3.TemplateExpression=function o(e){var s=e.tag,a=e.elements;_classCallCheck$d(this,o),this.type="TemplateExpression",this.tag=s,this.elements=a};dist$3.ThisExpression=function o(){_classCallCheck$d(this,o),this.type="ThisExpression"};dist$3.ThrowStatement=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="ThrowStatement",this.expression=s};dist$3.TryCatchStatement=function o(e){var s=e.body,a=e.catchClause;_classCallCheck$d(this,o),this.type="TryCatchStatement",this.body=s,this.catchClause=a};dist$3.TryFinallyStatement=function o(e){var s=e.body,a=e.catchClause,c=e.finalizer;_classCallCheck$d(this,o),this.type="TryFinallyStatement",this.body=s,this.catchClause=a,this.finalizer=c};dist$3.UnaryExpression=function o(e){var s=e.operator,a=e.operand;_classCallCheck$d(this,o),this.type="UnaryExpression",this.operator=s,this.operand=a};dist$3.UpdateExpression=function o(e){var s=e.isPrefix,a=e.operator,c=e.operand;_classCallCheck$d(this,o),this.type="UpdateExpression",this.isPrefix=s,this.operator=a,this.operand=c};dist$3.VariableDeclaration=function o(e){var s=e.kind,a=e.declarators;_classCallCheck$d(this,o),this.type="VariableDeclaration",this.kind=s,this.declarators=a};dist$3.VariableDeclarationStatement=function o(e){var s=e.declaration;_classCallCheck$d(this,o),this.type="VariableDeclarationStatement",this.declaration=s};dist$3.VariableDeclarator=function o(e){var s=e.binding,a=e.init;_classCallCheck$d(this,o),this.type="VariableDeclarator",this.binding=s,this.init=a};dist$3.WhileStatement=function o(e){var s=e.test,a=e.body;_classCallCheck$d(this,o),this.type="WhileStatement",this.test=s,this.body=a};dist$3.WithStatement=function o(e){var s=e.object,a=e.body;_classCallCheck$d(this,o),this.type="WithStatement",this.object=s,this.body=a};dist$3.YieldExpression=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="YieldExpression",this.expression=s};dist$3.YieldGeneratorExpression=function o(e){var s=e.expression;_classCallCheck$d(this,o),this.type="YieldGeneratorExpression",this.expression=s};Object.defineProperty(memoize$1,"__esModule",{value:!0});memoize$1.default=memoize;var _shiftAst$5=dist$3;_interopRequireWildcard$3(_shiftAst$5);function _interopRequireWildcard$3(o){if(o&&o.__esModule)return o;var e={};if(o!=null)for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(e[s]=o[s]);return e.default=o,e}function memoize(o){var e=new WeakMap;return{reduceArrayAssignmentTarget:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceArrayAssignmentTarget(a,c);return e.set(a,d),d},reduceArrayBinding:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceArrayBinding(a,c);return e.set(a,d),d},reduceArrayExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceArrayExpression(a,c);return e.set(a,d),d},reduceArrowExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceArrowExpression(a,c);return e.set(a,d),d},reduceAssignmentExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceAssignmentExpression(a,c);return e.set(a,d),d},reduceAssignmentTargetIdentifier:function(a){if(e.has(a))return e.get(a);var c=o.reduceAssignmentTargetIdentifier(a);return e.set(a,c),c},reduceAssignmentTargetPropertyIdentifier:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceAssignmentTargetPropertyIdentifier(a,c);return e.set(a,d),d},reduceAssignmentTargetPropertyProperty:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceAssignmentTargetPropertyProperty(a,c);return e.set(a,d),d},reduceAssignmentTargetWithDefault:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceAssignmentTargetWithDefault(a,c);return e.set(a,d),d},reduceAwaitExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceAwaitExpression(a,c);return e.set(a,d),d},reduceBinaryExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBinaryExpression(a,c);return e.set(a,d),d},reduceBindingIdentifier:function(a){if(e.has(a))return e.get(a);var c=o.reduceBindingIdentifier(a);return e.set(a,c),c},reduceBindingPropertyIdentifier:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBindingPropertyIdentifier(a,c);return e.set(a,d),d},reduceBindingPropertyProperty:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBindingPropertyProperty(a,c);return e.set(a,d),d},reduceBindingWithDefault:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBindingWithDefault(a,c);return e.set(a,d),d},reduceBlock:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBlock(a,c);return e.set(a,d),d},reduceBlockStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceBlockStatement(a,c);return e.set(a,d),d},reduceBreakStatement:function(a){if(e.has(a))return e.get(a);var c=o.reduceBreakStatement(a);return e.set(a,c),c},reduceCallExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceCallExpression(a,c);return e.set(a,d),d},reduceCatchClause:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceCatchClause(a,c);return e.set(a,d),d},reduceClassDeclaration:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceClassDeclaration(a,c);return e.set(a,d),d},reduceClassElement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceClassElement(a,c);return e.set(a,d),d},reduceClassExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceClassExpression(a,c);return e.set(a,d),d},reduceCompoundAssignmentExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceCompoundAssignmentExpression(a,c);return e.set(a,d),d},reduceComputedMemberAssignmentTarget:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceComputedMemberAssignmentTarget(a,c);return e.set(a,d),d},reduceComputedMemberExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceComputedMemberExpression(a,c);return e.set(a,d),d},reduceComputedPropertyName:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceComputedPropertyName(a,c);return e.set(a,d),d},reduceConditionalExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceConditionalExpression(a,c);return e.set(a,d),d},reduceContinueStatement:function(a){if(e.has(a))return e.get(a);var c=o.reduceContinueStatement(a);return e.set(a,c),c},reduceDataProperty:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceDataProperty(a,c);return e.set(a,d),d},reduceDebuggerStatement:function(a){if(e.has(a))return e.get(a);var c=o.reduceDebuggerStatement(a);return e.set(a,c),c},reduceDirective:function(a){if(e.has(a))return e.get(a);var c=o.reduceDirective(a);return e.set(a,c),c},reduceDoWhileStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceDoWhileStatement(a,c);return e.set(a,d),d},reduceEmptyStatement:function(a){if(e.has(a))return e.get(a);var c=o.reduceEmptyStatement(a);return e.set(a,c),c},reduceExport:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExport(a,c);return e.set(a,d),d},reduceExportAllFrom:function(a){if(e.has(a))return e.get(a);var c=o.reduceExportAllFrom(a);return e.set(a,c),c},reduceExportDefault:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExportDefault(a,c);return e.set(a,d),d},reduceExportFrom:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExportFrom(a,c);return e.set(a,d),d},reduceExportFromSpecifier:function(a){if(e.has(a))return e.get(a);var c=o.reduceExportFromSpecifier(a);return e.set(a,c),c},reduceExportLocalSpecifier:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExportLocalSpecifier(a,c);return e.set(a,d),d},reduceExportLocals:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExportLocals(a,c);return e.set(a,d),d},reduceExpressionStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceExpressionStatement(a,c);return e.set(a,d),d},reduceForAwaitStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceForAwaitStatement(a,c);return e.set(a,d),d},reduceForInStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceForInStatement(a,c);return e.set(a,d),d},reduceForOfStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceForOfStatement(a,c);return e.set(a,d),d},reduceForStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceForStatement(a,c);return e.set(a,d),d},reduceFormalParameters:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceFormalParameters(a,c);return e.set(a,d),d},reduceFunctionBody:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceFunctionBody(a,c);return e.set(a,d),d},reduceFunctionDeclaration:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceFunctionDeclaration(a,c);return e.set(a,d),d},reduceFunctionExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceFunctionExpression(a,c);return e.set(a,d),d},reduceGetter:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceGetter(a,c);return e.set(a,d),d},reduceIdentifierExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceIdentifierExpression(a);return e.set(a,c),c},reduceIfStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceIfStatement(a,c);return e.set(a,d),d},reduceImport:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceImport(a,c);return e.set(a,d),d},reduceImportNamespace:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceImportNamespace(a,c);return e.set(a,d),d},reduceImportSpecifier:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceImportSpecifier(a,c);return e.set(a,d),d},reduceLabeledStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceLabeledStatement(a,c);return e.set(a,d),d},reduceLiteralBooleanExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralBooleanExpression(a);return e.set(a,c),c},reduceLiteralInfinityExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralInfinityExpression(a);return e.set(a,c),c},reduceLiteralNullExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralNullExpression(a);return e.set(a,c),c},reduceLiteralNumericExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralNumericExpression(a);return e.set(a,c),c},reduceLiteralRegExpExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralRegExpExpression(a);return e.set(a,c),c},reduceLiteralStringExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceLiteralStringExpression(a);return e.set(a,c),c},reduceMethod:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceMethod(a,c);return e.set(a,d),d},reduceModule:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceModule(a,c);return e.set(a,d),d},reduceNewExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceNewExpression(a,c);return e.set(a,d),d},reduceNewTargetExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceNewTargetExpression(a);return e.set(a,c),c},reduceObjectAssignmentTarget:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceObjectAssignmentTarget(a,c);return e.set(a,d),d},reduceObjectBinding:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceObjectBinding(a,c);return e.set(a,d),d},reduceObjectExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceObjectExpression(a,c);return e.set(a,d),d},reduceReturnStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceReturnStatement(a,c);return e.set(a,d),d},reduceScript:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceScript(a,c);return e.set(a,d),d},reduceSetter:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSetter(a,c);return e.set(a,d),d},reduceShorthandProperty:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceShorthandProperty(a,c);return e.set(a,d),d},reduceSpreadElement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSpreadElement(a,c);return e.set(a,d),d},reduceSpreadProperty:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSpreadProperty(a,c);return e.set(a,d),d},reduceStaticMemberAssignmentTarget:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceStaticMemberAssignmentTarget(a,c);return e.set(a,d),d},reduceStaticMemberExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceStaticMemberExpression(a,c);return e.set(a,d),d},reduceStaticPropertyName:function(a){if(e.has(a))return e.get(a);var c=o.reduceStaticPropertyName(a);return e.set(a,c),c},reduceSuper:function(a){if(e.has(a))return e.get(a);var c=o.reduceSuper(a);return e.set(a,c),c},reduceSwitchCase:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSwitchCase(a,c);return e.set(a,d),d},reduceSwitchDefault:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSwitchDefault(a,c);return e.set(a,d),d},reduceSwitchStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSwitchStatement(a,c);return e.set(a,d),d},reduceSwitchStatementWithDefault:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceSwitchStatementWithDefault(a,c);return e.set(a,d),d},reduceTemplateElement:function(a){if(e.has(a))return e.get(a);var c=o.reduceTemplateElement(a);return e.set(a,c),c},reduceTemplateExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceTemplateExpression(a,c);return e.set(a,d),d},reduceThisExpression:function(a){if(e.has(a))return e.get(a);var c=o.reduceThisExpression(a);return e.set(a,c),c},reduceThrowStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceThrowStatement(a,c);return e.set(a,d),d},reduceTryCatchStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceTryCatchStatement(a,c);return e.set(a,d),d},reduceTryFinallyStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceTryFinallyStatement(a,c);return e.set(a,d),d},reduceUnaryExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceUnaryExpression(a,c);return e.set(a,d),d},reduceUpdateExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceUpdateExpression(a,c);return e.set(a,d),d},reduceVariableDeclaration:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceVariableDeclaration(a,c);return e.set(a,d),d},reduceVariableDeclarationStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceVariableDeclarationStatement(a,c);return e.set(a,d),d},reduceVariableDeclarator:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceVariableDeclarator(a,c);return e.set(a,d),d},reduceWhileStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceWhileStatement(a,c);return e.set(a,d),d},reduceWithStatement:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceWithStatement(a,c);return e.set(a,d),d},reduceYieldExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceYieldExpression(a,c);return e.set(a,d),d},reduceYieldGeneratorExpression:function(a,c){if(e.has(a))return e.get(a);var d=o.reduceYieldGeneratorExpression(a,c);return e.set(a,d),d}}}var cloneReducer={};Object.defineProperty(cloneReducer,"__esModule",{value:!0});var _createClass$a=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_shiftAst$4=dist$3,Shift$1=_interopRequireWildcard$2(_shiftAst$4);function _interopRequireWildcard$2(o){if(o&&o.__esModule)return o;var e={};if(o!=null)for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(e[s]=o[s]);return e.default=o,e}function _classCallCheck$c(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var CloneReducer=function(){function o(){_classCallCheck$c(this,o)}return _createClass$a(o,[{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=a.elements,d=a.rest;return new Shift$1.ArrayAssignmentTarget({elements:c,rest:d})}},{key:"reduceArrayBinding",value:function(s,a){var c=a.elements,d=a.rest;return new Shift$1.ArrayBinding({elements:c,rest:d})}},{key:"reduceArrayExpression",value:function(s,a){var c=a.elements;return new Shift$1.ArrayExpression({elements:c})}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;return new Shift$1.ArrowExpression({isAsync:s.isAsync,params:c,body:d})}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return new Shift$1.AssignmentExpression({binding:c,expression:d})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){return new Shift$1.AssignmentTargetIdentifier({name:s.name})}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return new Shift$1.AssignmentTargetPropertyIdentifier({binding:c,init:d})}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return new Shift$1.AssignmentTargetPropertyProperty({name:c,binding:d})}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return new Shift$1.AssignmentTargetWithDefault({binding:c,init:d})}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return new Shift$1.AwaitExpression({expression:c})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right;return new Shift$1.BinaryExpression({left:c,operator:s.operator,right:d})}},{key:"reduceBindingIdentifier",value:function(s){return new Shift$1.BindingIdentifier({name:s.name})}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return new Shift$1.BindingPropertyIdentifier({binding:c,init:d})}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return new Shift$1.BindingPropertyProperty({name:c,binding:d})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return new Shift$1.BindingWithDefault({binding:c,init:d})}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return new Shift$1.Block({statements:c})}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return new Shift$1.BlockStatement({block:c})}},{key:"reduceBreakStatement",value:function(s){return new Shift$1.BreakStatement({label:s.label})}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,d=a.arguments;return new Shift$1.CallExpression({callee:c,arguments:d})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return new Shift$1.CatchClause({binding:c,body:d})}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return new Shift$1.ClassDeclaration({name:c,super:d,elements:_})}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return new Shift$1.ClassElement({isStatic:s.isStatic,method:c})}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return new Shift$1.ClassExpression({name:c,super:d,elements:_})}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return new Shift$1.CompoundAssignmentExpression({binding:c,operator:s.operator,expression:d})}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression;return new Shift$1.ComputedMemberAssignmentTarget({object:c,expression:d})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression;return new Shift$1.ComputedMemberExpression({object:c,expression:d})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return new Shift$1.ComputedPropertyName({expression:c})}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return new Shift$1.ConditionalExpression({test:c,consequent:d,alternate:_})}},{key:"reduceContinueStatement",value:function(s){return new Shift$1.ContinueStatement({label:s.label})}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return new Shift$1.DataProperty({name:c,expression:d})}},{key:"reduceDebuggerStatement",value:function(s){return new Shift$1.DebuggerStatement}},{key:"reduceDirective",value:function(s){return new Shift$1.Directive({rawValue:s.rawValue})}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return new Shift$1.DoWhileStatement({body:c,test:d})}},{key:"reduceEmptyStatement",value:function(s){return new Shift$1.EmptyStatement}},{key:"reduceExport",value:function(s,a){var c=a.declaration;return new Shift$1.Export({declaration:c})}},{key:"reduceExportAllFrom",value:function(s){return new Shift$1.ExportAllFrom({moduleSpecifier:s.moduleSpecifier})}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;return new Shift$1.ExportDefault({body:c})}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return new Shift$1.ExportFrom({namedExports:c,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceExportFromSpecifier",value:function(s){return new Shift$1.ExportFromSpecifier({name:s.name,exportedName:s.exportedName})}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return new Shift$1.ExportLocalSpecifier({name:c,exportedName:s.exportedName})}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return new Shift$1.ExportLocals({namedExports:c})}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression;return new Shift$1.ExpressionStatement({expression:c})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return new Shift$1.ForAwaitStatement({left:c,right:d,body:_})}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return new Shift$1.ForInStatement({left:c,right:d,body:_})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return new Shift$1.ForOfStatement({left:c,right:d,body:_})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return new Shift$1.ForStatement({init:c,test:d,update:_,body:b})}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return new Shift$1.FormalParameters({items:c,rest:d})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return new Shift$1.FunctionBody({directives:c,statements:d})}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return new Shift$1.FunctionDeclaration({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body;return new Shift$1.FunctionExpression({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return new Shift$1.Getter({name:c,body:d})}},{key:"reduceIdentifierExpression",value:function(s){return new Shift$1.IdentifierExpression({name:s.name})}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return new Shift$1.IfStatement({test:c,consequent:d,alternate:_})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports;return new Shift$1.Import({defaultBinding:c,namedImports:d,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return new Shift$1.ImportNamespace({defaultBinding:c,namespaceBinding:d,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return new Shift$1.ImportSpecifier({name:s.name,binding:c})}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return new Shift$1.LabeledStatement({label:s.label,body:c})}},{key:"reduceLiteralBooleanExpression",value:function(s){return new Shift$1.LiteralBooleanExpression({value:s.value})}},{key:"reduceLiteralInfinityExpression",value:function(s){return new Shift$1.LiteralInfinityExpression}},{key:"reduceLiteralNullExpression",value:function(s){return new Shift$1.LiteralNullExpression}},{key:"reduceLiteralNumericExpression",value:function(s){return new Shift$1.LiteralNumericExpression({value:s.value})}},{key:"reduceLiteralRegExpExpression",value:function(s){return new Shift$1.LiteralRegExpExpression({pattern:s.pattern,global:s.global,ignoreCase:s.ignoreCase,multiLine:s.multiLine,dotAll:s.dotAll,unicode:s.unicode,sticky:s.sticky})}},{key:"reduceLiteralStringExpression",value:function(s){return new Shift$1.LiteralStringExpression({value:s.value})}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return new Shift$1.Method({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return new Shift$1.Module({directives:c,items:d})}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,d=a.arguments;return new Shift$1.NewExpression({callee:c,arguments:d})}},{key:"reduceNewTargetExpression",value:function(s){return new Shift$1.NewTargetExpression}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest;return new Shift$1.ObjectAssignmentTarget({properties:c,rest:d})}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest;return new Shift$1.ObjectBinding({properties:c,rest:d})}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties;return new Shift$1.ObjectExpression({properties:c})}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return new Shift$1.ReturnStatement({expression:c})}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return new Shift$1.Script({directives:c,statements:d})}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return new Shift$1.Setter({name:c,param:d,body:_})}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return new Shift$1.ShorthandProperty({name:c})}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return new Shift$1.SpreadElement({expression:c})}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return new Shift$1.SpreadProperty({expression:c})}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object;return new Shift$1.StaticMemberAssignmentTarget({object:c,property:s.property})}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object;return new Shift$1.StaticMemberExpression({object:c,property:s.property})}},{key:"reduceStaticPropertyName",value:function(s){return new Shift$1.StaticPropertyName({value:s.value})}},{key:"reduceSuper",value:function(s){return new Shift$1.Super}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return new Shift$1.SwitchCase({test:c,consequent:d})}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return new Shift$1.SwitchDefault({consequent:c})}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return new Shift$1.SwitchStatement({discriminant:c,cases:d})}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return new Shift$1.SwitchStatementWithDefault({discriminant:c,preDefaultCases:d,defaultCase:_,postDefaultCases:b})}},{key:"reduceTemplateElement",value:function(s){return new Shift$1.TemplateElement({rawValue:s.rawValue})}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements;return new Shift$1.TemplateExpression({tag:c,elements:d})}},{key:"reduceThisExpression",value:function(s){return new Shift$1.ThisExpression}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return new Shift$1.ThrowStatement({expression:c})}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return new Shift$1.TryCatchStatement({body:c,catchClause:d})}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return new Shift$1.TryFinallyStatement({body:c,catchClause:d,finalizer:_})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return new Shift$1.UnaryExpression({operator:s.operator,operand:c})}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return new Shift$1.UpdateExpression({isPrefix:s.isPrefix,operator:s.operator,operand:c})}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return new Shift$1.VariableDeclaration({kind:s.kind,declarators:c})}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return new Shift$1.VariableDeclarationStatement({declaration:c})}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,d=a.init;return new Shift$1.VariableDeclarator({binding:c,init:d})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return new Shift$1.WhileStatement({test:c,body:d})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return new Shift$1.WithStatement({object:c,body:d})}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return new Shift$1.YieldExpression({expression:c})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return new Shift$1.YieldGeneratorExpression({expression:c})}}]),o}();cloneReducer.default=CloneReducer;var lazyCloneReducer={};Object.defineProperty(lazyCloneReducer,"__esModule",{value:!0});var _createClass$9=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_shiftAst$3=dist$3,Shift=_interopRequireWildcard$1(_shiftAst$3);function _interopRequireWildcard$1(o){if(o&&o.__esModule)return o;var e={};if(o!=null)for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(e[s]=o[s]);return e.default=o,e}function _classCallCheck$b(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var LazyCloneReducer=function(){function o(){_classCallCheck$b(this,o)}return _createClass$9(o,[{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=a.elements,d=a.rest;return s.elements.length===c.length&&s.elements.every(function(_,b){return _===c[b]})&&s.rest===d?s:new Shift.ArrayAssignmentTarget({elements:c,rest:d})}},{key:"reduceArrayBinding",value:function(s,a){var c=a.elements,d=a.rest;return s.elements.length===c.length&&s.elements.every(function(_,b){return _===c[b]})&&s.rest===d?s:new Shift.ArrayBinding({elements:c,rest:d})}},{key:"reduceArrayExpression",value:function(s,a){var c=a.elements;return s.elements.length===c.length&&s.elements.every(function(d,_){return d===c[_]})?s:new Shift.ArrayExpression({elements:c})}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;return s.params===c&&s.body===d?s:new Shift.ArrowExpression({isAsync:s.isAsync,params:c,body:d})}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return s.binding===c&&s.expression===d?s:new Shift.AssignmentExpression({binding:c,expression:d})}},{key:"reduceAssignmentTargetIdentifier",value:function(s){return s}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.binding===c&&s.init===d?s:new Shift.AssignmentTargetPropertyIdentifier({binding:c,init:d})}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return s.name===c&&s.binding===d?s:new Shift.AssignmentTargetPropertyProperty({name:c,binding:d})}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return s.binding===c&&s.init===d?s:new Shift.AssignmentTargetWithDefault({binding:c,init:d})}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.AwaitExpression({expression:c})}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right;return s.left===c&&s.right===d?s:new Shift.BinaryExpression({left:c,operator:s.operator,right:d})}},{key:"reduceBindingIdentifier",value:function(s){return s}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return s.binding===c&&s.init===d?s:new Shift.BindingPropertyIdentifier({binding:c,init:d})}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return s.name===c&&s.binding===d?s:new Shift.BindingPropertyProperty({name:c,binding:d})}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return s.binding===c&&s.init===d?s:new Shift.BindingWithDefault({binding:c,init:d})}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return s.statements.length===c.length&&s.statements.every(function(d,_){return d===c[_]})?s:new Shift.Block({statements:c})}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return s.block===c?s:new Shift.BlockStatement({block:c})}},{key:"reduceBreakStatement",value:function(s){return s}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,d=a.arguments;return s.callee===c&&s.arguments.length===d.length&&s.arguments.every(function(_,b){return _===d[b]})?s:new Shift.CallExpression({callee:c,arguments:d})}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return s.binding===c&&s.body===d?s:new Shift.CatchClause({binding:c,body:d})}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return s.name===c&&s.super===d&&s.elements.length===_.length&&s.elements.every(function(b,k){return b===_[k]})?s:new Shift.ClassDeclaration({name:c,super:d,elements:_})}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return s.method===c?s:new Shift.ClassElement({isStatic:s.isStatic,method:c})}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return s.name===c&&s.super===d&&s.elements.length===_.length&&s.elements.every(function(b,k){return b===_[k]})?s:new Shift.ClassExpression({name:c,super:d,elements:_})}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return s.binding===c&&s.expression===d?s:new Shift.CompoundAssignmentExpression({binding:c,operator:s.operator,expression:d})}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression;return s.object===c&&s.expression===d?s:new Shift.ComputedMemberAssignmentTarget({object:c,expression:d})}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression;return s.object===c&&s.expression===d?s:new Shift.ComputedMemberExpression({object:c,expression:d})}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.ComputedPropertyName({expression:c})}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return s.test===c&&s.consequent===d&&s.alternate===_?s:new Shift.ConditionalExpression({test:c,consequent:d,alternate:_})}},{key:"reduceContinueStatement",value:function(s){return s}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return s.name===c&&s.expression===d?s:new Shift.DataProperty({name:c,expression:d})}},{key:"reduceDebuggerStatement",value:function(s){return s}},{key:"reduceDirective",value:function(s){return s}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return s.body===c&&s.test===d?s:new Shift.DoWhileStatement({body:c,test:d})}},{key:"reduceEmptyStatement",value:function(s){return s}},{key:"reduceExport",value:function(s,a){var c=a.declaration;return s.declaration===c?s:new Shift.Export({declaration:c})}},{key:"reduceExportAllFrom",value:function(s){return s}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;return s.body===c?s:new Shift.ExportDefault({body:c})}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return s.namedExports.length===c.length&&s.namedExports.every(function(d,_){return d===c[_]})?s:new Shift.ExportFrom({namedExports:c,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceExportFromSpecifier",value:function(s){return s}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return s.name===c?s:new Shift.ExportLocalSpecifier({name:c,exportedName:s.exportedName})}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return s.namedExports.length===c.length&&s.namedExports.every(function(d,_){return d===c[_]})?s:new Shift.ExportLocals({namedExports:c})}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.ExpressionStatement({expression:c})}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return s.left===c&&s.right===d&&s.body===_?s:new Shift.ForAwaitStatement({left:c,right:d,body:_})}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return s.left===c&&s.right===d&&s.body===_?s:new Shift.ForInStatement({left:c,right:d,body:_})}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return s.left===c&&s.right===d&&s.body===_?s:new Shift.ForOfStatement({left:c,right:d,body:_})}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return s.init===c&&s.test===d&&s.update===_&&s.body===b?s:new Shift.ForStatement({init:c,test:d,update:_,body:b})}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return s.items.length===c.length&&s.items.every(function(_,b){return _===c[b]})&&s.rest===d?s:new Shift.FormalParameters({items:c,rest:d})}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return s.directives.length===c.length&&s.directives.every(function(_,b){return _===c[b]})&&s.statements.length===d.length&&s.statements.every(function(_,b){return _===d[b]})?s:new Shift.FunctionBody({directives:c,statements:d})}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return s.name===c&&s.params===d&&s.body===_?s:new Shift.FunctionDeclaration({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body;return s.name===c&&s.params===d&&s.body===_?s:new Shift.FunctionExpression({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return s.name===c&&s.body===d?s:new Shift.Getter({name:c,body:d})}},{key:"reduceIdentifierExpression",value:function(s){return s}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return s.test===c&&s.consequent===d&&s.alternate===_?s:new Shift.IfStatement({test:c,consequent:d,alternate:_})}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports;return s.defaultBinding===c&&s.namedImports.length===d.length&&s.namedImports.every(function(_,b){return _===d[b]})?s:new Shift.Import({defaultBinding:c,namedImports:d,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return s.defaultBinding===c&&s.namespaceBinding===d?s:new Shift.ImportNamespace({defaultBinding:c,namespaceBinding:d,moduleSpecifier:s.moduleSpecifier})}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return s.binding===c?s:new Shift.ImportSpecifier({name:s.name,binding:c})}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return s.body===c?s:new Shift.LabeledStatement({label:s.label,body:c})}},{key:"reduceLiteralBooleanExpression",value:function(s){return s}},{key:"reduceLiteralInfinityExpression",value:function(s){return s}},{key:"reduceLiteralNullExpression",value:function(s){return s}},{key:"reduceLiteralNumericExpression",value:function(s){return s}},{key:"reduceLiteralRegExpExpression",value:function(s){return s}},{key:"reduceLiteralStringExpression",value:function(s){return s}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return s.name===c&&s.params===d&&s.body===_?s:new Shift.Method({isAsync:s.isAsync,isGenerator:s.isGenerator,name:c,params:d,body:_})}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return s.directives.length===c.length&&s.directives.every(function(_,b){return _===c[b]})&&s.items.length===d.length&&s.items.every(function(_,b){return _===d[b]})?s:new Shift.Module({directives:c,items:d})}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,d=a.arguments;return s.callee===c&&s.arguments.length===d.length&&s.arguments.every(function(_,b){return _===d[b]})?s:new Shift.NewExpression({callee:c,arguments:d})}},{key:"reduceNewTargetExpression",value:function(s){return s}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest;return s.properties.length===c.length&&s.properties.every(function(_,b){return _===c[b]})&&s.rest===d?s:new Shift.ObjectAssignmentTarget({properties:c,rest:d})}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest;return s.properties.length===c.length&&s.properties.every(function(_,b){return _===c[b]})&&s.rest===d?s:new Shift.ObjectBinding({properties:c,rest:d})}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties;return s.properties.length===c.length&&s.properties.every(function(d,_){return d===c[_]})?s:new Shift.ObjectExpression({properties:c})}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.ReturnStatement({expression:c})}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return s.directives.length===c.length&&s.directives.every(function(_,b){return _===c[b]})&&s.statements.length===d.length&&s.statements.every(function(_,b){return _===d[b]})?s:new Shift.Script({directives:c,statements:d})}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return s.name===c&&s.param===d&&s.body===_?s:new Shift.Setter({name:c,param:d,body:_})}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return s.name===c?s:new Shift.ShorthandProperty({name:c})}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.SpreadElement({expression:c})}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.SpreadProperty({expression:c})}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object;return s.object===c?s:new Shift.StaticMemberAssignmentTarget({object:c,property:s.property})}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object;return s.object===c?s:new Shift.StaticMemberExpression({object:c,property:s.property})}},{key:"reduceStaticPropertyName",value:function(s){return s}},{key:"reduceSuper",value:function(s){return s}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return s.test===c&&s.consequent.length===d.length&&s.consequent.every(function(_,b){return _===d[b]})?s:new Shift.SwitchCase({test:c,consequent:d})}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return s.consequent.length===c.length&&s.consequent.every(function(d,_){return d===c[_]})?s:new Shift.SwitchDefault({consequent:c})}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return s.discriminant===c&&s.cases.length===d.length&&s.cases.every(function(_,b){return _===d[b]})?s:new Shift.SwitchStatement({discriminant:c,cases:d})}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return s.discriminant===c&&s.preDefaultCases.length===d.length&&s.preDefaultCases.every(function(k,$){return k===d[$]})&&s.defaultCase===_&&s.postDefaultCases.length===b.length&&s.postDefaultCases.every(function(k,$){return k===b[$]})?s:new Shift.SwitchStatementWithDefault({discriminant:c,preDefaultCases:d,defaultCase:_,postDefaultCases:b})}},{key:"reduceTemplateElement",value:function(s){return s}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements;return s.tag===c&&s.elements.length===d.length&&s.elements.every(function(_,b){return _===d[b]})?s:new Shift.TemplateExpression({tag:c,elements:d})}},{key:"reduceThisExpression",value:function(s){return s}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.ThrowStatement({expression:c})}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return s.body===c&&s.catchClause===d?s:new Shift.TryCatchStatement({body:c,catchClause:d})}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return s.body===c&&s.catchClause===d&&s.finalizer===_?s:new Shift.TryFinallyStatement({body:c,catchClause:d,finalizer:_})}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return s.operand===c?s:new Shift.UnaryExpression({operator:s.operator,operand:c})}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return s.operand===c?s:new Shift.UpdateExpression({isPrefix:s.isPrefix,operator:s.operator,operand:c})}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return s.declarators.length===c.length&&s.declarators.every(function(d,_){return d===c[_]})?s:new Shift.VariableDeclaration({kind:s.kind,declarators:c})}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return s.declaration===c?s:new Shift.VariableDeclarationStatement({declaration:c})}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,d=a.init;return s.binding===c&&s.init===d?s:new Shift.VariableDeclarator({binding:c,init:d})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return s.test===c&&s.body===d?s:new Shift.WhileStatement({test:c,body:d})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return s.object===c&&s.body===d?s:new Shift.WithStatement({object:c,body:d})}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.YieldExpression({expression:c})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return s.expression===c?s:new Shift.YieldGeneratorExpression({expression:c})}}]),o}();lazyCloneReducer.default=LazyCloneReducer;var monoidalReducer={};Object.defineProperty(monoidalReducer,"__esModule",{value:!0});var _createClass$8=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_shiftAst$2=dist$3;_interopRequireDefault$7(_shiftAst$2);function _interopRequireDefault$7(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$5(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$a(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var MonoidalReducer$1=function(){function o(e){_classCallCheck$a(this,o);var s=e.empty();this.identity=s;var a=void 0;if(e.prototype&&typeof e.prototype.concat=="function")a=Function.prototype.call.bind(e.prototype.concat);else if(typeof e.concat=="function")a=e.concat;else throw new TypeError("Monoid must provide a `concat` method");this.append=function(){for(var c=arguments.length,d=Array(c),_=0;_<c;_++)d[_]=arguments[_];return d.reduce(a,s)}}return _createClass$8(o,[{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=a.elements,d=a.rest;return this.append.apply(this,_toConsumableArray$5(c.filter(function(_){return _!=null})).concat([d==null?this.identity:d]))}},{key:"reduceArrayBinding",value:function(s,a){var c=a.elements,d=a.rest;return this.append.apply(this,_toConsumableArray$5(c.filter(function(_){return _!=null})).concat([d==null?this.identity:d]))}},{key:"reduceArrayExpression",value:function(s,a){var c=a.elements;return this.append.apply(this,_toConsumableArray$5(c.filter(function(d){return d!=null})))}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;return this.append(c,d)}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return this.append(c,d)}},{key:"reduceAssignmentTargetIdentifier",value:function(s){return this.identity}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d==null?this.identity:d)}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return this.append(c,d)}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return c}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right;return this.append(c,d)}},{key:"reduceBindingIdentifier",value:function(s){return this.identity}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d==null?this.identity:d)}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return this.append(c,d)}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return c}},{key:"reduceBreakStatement",value:function(s){return this.identity}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,d=a.arguments;return this.append.apply(this,[c].concat(_toConsumableArray$5(d)))}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return this.append(c,d)}},{key:"reduceClassDeclaration",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return this.append.apply(this,[c,d==null?this.identity:d].concat(_toConsumableArray$5(_)))}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return c}},{key:"reduceClassExpression",value:function(s,a){var c=a.name,d=a.super,_=a.elements;return this.append.apply(this,[c==null?this.identity:c,d==null?this.identity:d].concat(_toConsumableArray$5(_)))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return this.append(c,d)}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression;return this.append(c,d)}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression;return this.append(c,d)}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return c}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return this.append(c,d,_)}},{key:"reduceContinueStatement",value:function(s){return this.identity}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return this.append(c,d)}},{key:"reduceDebuggerStatement",value:function(s){return this.identity}},{key:"reduceDirective",value:function(s){return this.identity}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return this.append(c,d)}},{key:"reduceEmptyStatement",value:function(s){return this.identity}},{key:"reduceExport",value:function(s,a){var c=a.declaration;return c}},{key:"reduceExportAllFrom",value:function(s){return this.identity}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;return c}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceExportFromSpecifier",value:function(s){return this.identity}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return c}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression;return c}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForStatement",value:function(s,a){var c=a.init,d=a.test,_=a.update,b=a.body;return this.append(c==null?this.identity:c,d==null?this.identity:d,_==null?this.identity:_,b)}},{key:"reduceFormalParameters",value:function(s,a){var c=a.items,d=a.rest;return this.append.apply(this,_toConsumableArray$5(c).concat([d==null?this.identity:d]))}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return this.append.apply(this,_toConsumableArray$5(c).concat(_toConsumableArray$5(d)))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return this.append(c,d,_)}},{key:"reduceFunctionExpression",value:function(s,a){var c=a.name,d=a.params,_=a.body;return this.append(c==null?this.identity:c,d,_)}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return this.append(c,d)}},{key:"reduceIdentifierExpression",value:function(s){return this.identity}},{key:"reduceIfStatement",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return this.append(c,d,_==null?this.identity:_)}},{key:"reduceImport",value:function(s,a){var c=a.defaultBinding,d=a.namedImports;return this.append.apply(this,[c==null?this.identity:c].concat(_toConsumableArray$5(d)))}},{key:"reduceImportNamespace",value:function(s,a){var c=a.defaultBinding,d=a.namespaceBinding;return this.append(c==null?this.identity:c,d)}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return c}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return c}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.identity}},{key:"reduceLiteralInfinityExpression",value:function(s){return this.identity}},{key:"reduceLiteralNullExpression",value:function(s){return this.identity}},{key:"reduceLiteralNumericExpression",value:function(s){return this.identity}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.identity}},{key:"reduceLiteralStringExpression",value:function(s){return this.identity}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return this.append(c,d,_)}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return this.append.apply(this,_toConsumableArray$5(c).concat(_toConsumableArray$5(d)))}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,d=a.arguments;return this.append.apply(this,[c].concat(_toConsumableArray$5(d)))}},{key:"reduceNewTargetExpression",value:function(s){return this.identity}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=a.properties,d=a.rest;return this.append.apply(this,_toConsumableArray$5(c).concat([d==null?this.identity:d]))}},{key:"reduceObjectBinding",value:function(s,a){var c=a.properties,d=a.rest;return this.append.apply(this,_toConsumableArray$5(c).concat([d==null?this.identity:d]))}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return c==null?this.identity:c}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return this.append.apply(this,_toConsumableArray$5(c).concat(_toConsumableArray$5(d)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return this.append(c,d,_)}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return c}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return c}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object;return c}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object;return c}},{key:"reduceStaticPropertyName",value:function(s){return this.identity}},{key:"reduceSuper",value:function(s){return this.identity}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return this.append.apply(this,[c].concat(_toConsumableArray$5(d)))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return this.append.apply(this,[c].concat(_toConsumableArray$5(d)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return this.append.apply(this,[c].concat(_toConsumableArray$5(d),[_],_toConsumableArray$5(b)))}},{key:"reduceTemplateElement",value:function(s){return this.identity}},{key:"reduceTemplateExpression",value:function(s,a){var c=a.tag,d=a.elements;return this.append.apply(this,[c==null?this.identity:c].concat(_toConsumableArray$5(d)))}},{key:"reduceThisExpression",value:function(s){return this.identity}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return c}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return this.append(c,d)}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return this.append(c,d==null?this.identity:d,_)}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return c}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return c}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return this.append.apply(this,_toConsumableArray$5(c))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return c}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d==null?this.identity:d)}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return this.append(c,d)}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return this.append(c,d)}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return c==null?this.identity:c}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return c}}]),o}();monoidalReducer.default=MonoidalReducer$1;var thunkedMonoidalReducer={};Object.defineProperty(thunkedMonoidalReducer,"__esModule",{value:!0});var _createClass$7=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_shiftAst$1=dist$3;_interopRequireDefault$6(_shiftAst$1);function _interopRequireDefault$6(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$4(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$9(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var MonoidalReducer=function(){function o(e){_classCallCheck$9(this,o);var s=e.empty();this.identity=s;var a=void 0;if(e.prototype&&typeof e.prototype.concatThunk=="function")a=Function.prototype.call.bind(e.prototype.concatThunk);else if(typeof e.concatThunk=="function")a=e.concatThunk;else{var c=void 0;if(e.prototype&&typeof e.prototype.concat=="function")c=Function.prototype.call.bind(e.prototype.concat);else if(typeof e.concat=="function")c=e.concat;else throw new TypeError("Monoid must provide a `concatThunk` or `concat` method");if(typeof e.isAbsorbing=="function"){var d=e.isAbsorbing;a=function(b,k){return d(b)?b:c(b,k())}}else a=function(b,k){return c(b,k())}}this.append=function(){for(var _=arguments.length,b=Array(_),k=0;k<_;k++)b[k]=arguments[k];return b.reduce(a,s)}}return _createClass$7(o,[{key:"reduceArrayAssignmentTarget",value:function(s,a){var c=this,d=a.elements,_=a.rest;return this.append.apply(this,_toConsumableArray$4(d.filter(function(b){return b!=null})).concat([_==null?function(){return c.identity}:_]))}},{key:"reduceArrayBinding",value:function(s,a){var c=this,d=a.elements,_=a.rest;return this.append.apply(this,_toConsumableArray$4(d.filter(function(b){return b!=null})).concat([_==null?function(){return c.identity}:_]))}},{key:"reduceArrayExpression",value:function(s,a){var c=a.elements;return this.append.apply(this,_toConsumableArray$4(c.filter(function(d){return d!=null})))}},{key:"reduceArrowExpression",value:function(s,a){var c=a.params,d=a.body;return this.append(c,d)}},{key:"reduceAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return this.append(c,d)}},{key:"reduceAssignmentTargetIdentifier",value:function(s){return this.identity}},{key:"reduceAssignmentTargetPropertyIdentifier",value:function(s,a){var c=this,d=a.binding,_=a.init;return this.append(d,_==null?function(){return c.identity}:_)}},{key:"reduceAssignmentTargetPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return this.append(c,d)}},{key:"reduceAssignmentTargetWithDefault",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d)}},{key:"reduceAwaitExpression",value:function(s,a){var c=a.expression;return c()}},{key:"reduceBinaryExpression",value:function(s,a){var c=a.left,d=a.right;return this.append(c,d)}},{key:"reduceBindingIdentifier",value:function(s){return this.identity}},{key:"reduceBindingPropertyIdentifier",value:function(s,a){var c=this,d=a.binding,_=a.init;return this.append(d,_==null?function(){return c.identity}:_)}},{key:"reduceBindingPropertyProperty",value:function(s,a){var c=a.name,d=a.binding;return this.append(c,d)}},{key:"reduceBindingWithDefault",value:function(s,a){var c=a.binding,d=a.init;return this.append(c,d)}},{key:"reduceBlock",value:function(s,a){var c=a.statements;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceBlockStatement",value:function(s,a){var c=a.block;return c()}},{key:"reduceBreakStatement",value:function(s){return this.identity}},{key:"reduceCallExpression",value:function(s,a){var c=a.callee,d=a.arguments;return this.append.apply(this,[c].concat(_toConsumableArray$4(d)))}},{key:"reduceCatchClause",value:function(s,a){var c=a.binding,d=a.body;return this.append(c,d)}},{key:"reduceClassDeclaration",value:function(s,a){var c=this,d=a.name,_=a.super,b=a.elements;return this.append.apply(this,[d,_==null?function(){return c.identity}:_].concat(_toConsumableArray$4(b)))}},{key:"reduceClassElement",value:function(s,a){var c=a.method;return c()}},{key:"reduceClassExpression",value:function(s,a){var c=this,d=a.name,_=a.super,b=a.elements;return this.append.apply(this,[d==null?function(){return c.identity}:d,_==null?function(){return c.identity}:_].concat(_toConsumableArray$4(b)))}},{key:"reduceCompoundAssignmentExpression",value:function(s,a){var c=a.binding,d=a.expression;return this.append(c,d)}},{key:"reduceComputedMemberAssignmentTarget",value:function(s,a){var c=a.object,d=a.expression;return this.append(c,d)}},{key:"reduceComputedMemberExpression",value:function(s,a){var c=a.object,d=a.expression;return this.append(c,d)}},{key:"reduceComputedPropertyName",value:function(s,a){var c=a.expression;return c()}},{key:"reduceConditionalExpression",value:function(s,a){var c=a.test,d=a.consequent,_=a.alternate;return this.append(c,d,_)}},{key:"reduceContinueStatement",value:function(s){return this.identity}},{key:"reduceDataProperty",value:function(s,a){var c=a.name,d=a.expression;return this.append(c,d)}},{key:"reduceDebuggerStatement",value:function(s){return this.identity}},{key:"reduceDirective",value:function(s){return this.identity}},{key:"reduceDoWhileStatement",value:function(s,a){var c=a.body,d=a.test;return this.append(c,d)}},{key:"reduceEmptyStatement",value:function(s){return this.identity}},{key:"reduceExport",value:function(s,a){var c=a.declaration;return c()}},{key:"reduceExportAllFrom",value:function(s){return this.identity}},{key:"reduceExportDefault",value:function(s,a){var c=a.body;return c()}},{key:"reduceExportFrom",value:function(s,a){var c=a.namedExports;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceExportFromSpecifier",value:function(s){return this.identity}},{key:"reduceExportLocalSpecifier",value:function(s,a){var c=a.name;return c()}},{key:"reduceExportLocals",value:function(s,a){var c=a.namedExports;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceExpressionStatement",value:function(s,a){var c=a.expression;return c()}},{key:"reduceForAwaitStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForInStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForOfStatement",value:function(s,a){var c=a.left,d=a.right,_=a.body;return this.append(c,d,_)}},{key:"reduceForStatement",value:function(s,a){var c=this,d=a.init,_=a.test,b=a.update,k=a.body;return this.append(d==null?function(){return c.identity}:d,_==null?function(){return c.identity}:_,b==null?function(){return c.identity}:b,k)}},{key:"reduceFormalParameters",value:function(s,a){var c=this,d=a.items,_=a.rest;return this.append.apply(this,_toConsumableArray$4(d).concat([_==null?function(){return c.identity}:_]))}},{key:"reduceFunctionBody",value:function(s,a){var c=a.directives,d=a.statements;return this.append.apply(this,_toConsumableArray$4(c).concat(_toConsumableArray$4(d)))}},{key:"reduceFunctionDeclaration",value:function(s,a){var c=a.name,d=a.params,_=a.body;return this.append(c,d,_)}},{key:"reduceFunctionExpression",value:function(s,a){var c=this,d=a.name,_=a.params,b=a.body;return this.append(d==null?function(){return c.identity}:d,_,b)}},{key:"reduceGetter",value:function(s,a){var c=a.name,d=a.body;return this.append(c,d)}},{key:"reduceIdentifierExpression",value:function(s){return this.identity}},{key:"reduceIfStatement",value:function(s,a){var c=this,d=a.test,_=a.consequent,b=a.alternate;return this.append(d,_,b==null?function(){return c.identity}:b)}},{key:"reduceImport",value:function(s,a){var c=this,d=a.defaultBinding,_=a.namedImports;return this.append.apply(this,[d==null?function(){return c.identity}:d].concat(_toConsumableArray$4(_)))}},{key:"reduceImportNamespace",value:function(s,a){var c=this,d=a.defaultBinding,_=a.namespaceBinding;return this.append(d==null?function(){return c.identity}:d,_)}},{key:"reduceImportSpecifier",value:function(s,a){var c=a.binding;return c()}},{key:"reduceLabeledStatement",value:function(s,a){var c=a.body;return c()}},{key:"reduceLiteralBooleanExpression",value:function(s){return this.identity}},{key:"reduceLiteralInfinityExpression",value:function(s){return this.identity}},{key:"reduceLiteralNullExpression",value:function(s){return this.identity}},{key:"reduceLiteralNumericExpression",value:function(s){return this.identity}},{key:"reduceLiteralRegExpExpression",value:function(s){return this.identity}},{key:"reduceLiteralStringExpression",value:function(s){return this.identity}},{key:"reduceMethod",value:function(s,a){var c=a.name,d=a.params,_=a.body;return this.append(c,d,_)}},{key:"reduceModule",value:function(s,a){var c=a.directives,d=a.items;return this.append.apply(this,_toConsumableArray$4(c).concat(_toConsumableArray$4(d)))}},{key:"reduceNewExpression",value:function(s,a){var c=a.callee,d=a.arguments;return this.append.apply(this,[c].concat(_toConsumableArray$4(d)))}},{key:"reduceNewTargetExpression",value:function(s){return this.identity}},{key:"reduceObjectAssignmentTarget",value:function(s,a){var c=this,d=a.properties,_=a.rest;return this.append.apply(this,_toConsumableArray$4(d).concat([_==null?function(){return c.identity}:_]))}},{key:"reduceObjectBinding",value:function(s,a){var c=this,d=a.properties,_=a.rest;return this.append.apply(this,_toConsumableArray$4(d).concat([_==null?function(){return c.identity}:_]))}},{key:"reduceObjectExpression",value:function(s,a){var c=a.properties;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceReturnStatement",value:function(s,a){var c=a.expression;return c==null?this.identity:c()}},{key:"reduceScript",value:function(s,a){var c=a.directives,d=a.statements;return this.append.apply(this,_toConsumableArray$4(c).concat(_toConsumableArray$4(d)))}},{key:"reduceSetter",value:function(s,a){var c=a.name,d=a.param,_=a.body;return this.append(c,d,_)}},{key:"reduceShorthandProperty",value:function(s,a){var c=a.name;return c()}},{key:"reduceSpreadElement",value:function(s,a){var c=a.expression;return c()}},{key:"reduceSpreadProperty",value:function(s,a){var c=a.expression;return c()}},{key:"reduceStaticMemberAssignmentTarget",value:function(s,a){var c=a.object;return c()}},{key:"reduceStaticMemberExpression",value:function(s,a){var c=a.object;return c()}},{key:"reduceStaticPropertyName",value:function(s){return this.identity}},{key:"reduceSuper",value:function(s){return this.identity}},{key:"reduceSwitchCase",value:function(s,a){var c=a.test,d=a.consequent;return this.append.apply(this,[c].concat(_toConsumableArray$4(d)))}},{key:"reduceSwitchDefault",value:function(s,a){var c=a.consequent;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceSwitchStatement",value:function(s,a){var c=a.discriminant,d=a.cases;return this.append.apply(this,[c].concat(_toConsumableArray$4(d)))}},{key:"reduceSwitchStatementWithDefault",value:function(s,a){var c=a.discriminant,d=a.preDefaultCases,_=a.defaultCase,b=a.postDefaultCases;return this.append.apply(this,[c].concat(_toConsumableArray$4(d),[_],_toConsumableArray$4(b)))}},{key:"reduceTemplateElement",value:function(s){return this.identity}},{key:"reduceTemplateExpression",value:function(s,a){var c=this,d=a.tag,_=a.elements;return this.append.apply(this,[d==null?function(){return c.identity}:d].concat(_toConsumableArray$4(_)))}},{key:"reduceThisExpression",value:function(s){return this.identity}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return c()}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return this.append(c,d)}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=this,d=a.body,_=a.catchClause,b=a.finalizer;return this.append(d,_==null?function(){return c.identity}:_,b)}},{key:"reduceUnaryExpression",value:function(s,a){var c=a.operand;return c()}},{key:"reduceUpdateExpression",value:function(s,a){var c=a.operand;return c()}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return this.append.apply(this,_toConsumableArray$4(c))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return c()}},{key:"reduceVariableDeclarator",value:function(s,a){var c=this,d=a.binding,_=a.init;return this.append(d,_==null?function(){return c.identity}:_)}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return this.append(c,d)}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return this.append(c,d)}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return c==null?this.identity:c()}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return c()}}]),o}();thunkedMonoidalReducer.default=MonoidalReducer;var adapt={};Object.defineProperty(adapt,"__esModule",{value:!0});var _get$2=function o(e,s,a){e===null&&(e=Function.prototype);var c=Object.getOwnPropertyDescriptor(e,s);if(c===void 0){var d=Object.getPrototypeOf(e);return d===null?void 0:o(d,s,a)}else{if("value"in c)return c.value;var _=c.get;return _===void 0?void 0:_.call(a)}},_shiftAst=dist$3;_interopRequireWildcard(_shiftAst);function _interopRequireWildcard(o){if(o&&o.__esModule)return o;var e={};if(o!=null)for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(e[s]=o[s]);return e.default=o,e}adapt.default=function(o,e){var s;return s={__proto__:e,reduceArrayAssignmentTarget:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceArrayAssignmentTarget",this).call(this,c,d),c)},reduceArrayBinding:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceArrayBinding",this).call(this,c,d),c)},reduceArrayExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceArrayExpression",this).call(this,c,d),c)},reduceArrowExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceArrowExpression",this).call(this,c,d),c)},reduceAssignmentExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAssignmentExpression",this).call(this,c,d),c)},reduceAssignmentTargetIdentifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAssignmentTargetIdentifier",this).call(this,c,d),c)},reduceAssignmentTargetPropertyIdentifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAssignmentTargetPropertyIdentifier",this).call(this,c,d),c)},reduceAssignmentTargetPropertyProperty:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAssignmentTargetPropertyProperty",this).call(this,c,d),c)},reduceAssignmentTargetWithDefault:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAssignmentTargetWithDefault",this).call(this,c,d),c)},reduceAwaitExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceAwaitExpression",this).call(this,c,d),c)},reduceBinaryExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBinaryExpression",this).call(this,c,d),c)},reduceBindingIdentifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBindingIdentifier",this).call(this,c,d),c)},reduceBindingPropertyIdentifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBindingPropertyIdentifier",this).call(this,c,d),c)},reduceBindingPropertyProperty:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBindingPropertyProperty",this).call(this,c,d),c)},reduceBindingWithDefault:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBindingWithDefault",this).call(this,c,d),c)},reduceBlock:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBlock",this).call(this,c,d),c)},reduceBlockStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBlockStatement",this).call(this,c,d),c)},reduceBreakStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceBreakStatement",this).call(this,c,d),c)},reduceCallExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceCallExpression",this).call(this,c,d),c)},reduceCatchClause:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceCatchClause",this).call(this,c,d),c)},reduceClassDeclaration:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceClassDeclaration",this).call(this,c,d),c)},reduceClassElement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceClassElement",this).call(this,c,d),c)},reduceClassExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceClassExpression",this).call(this,c,d),c)},reduceCompoundAssignmentExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceCompoundAssignmentExpression",this).call(this,c,d),c)},reduceComputedMemberAssignmentTarget:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceComputedMemberAssignmentTarget",this).call(this,c,d),c)},reduceComputedMemberExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceComputedMemberExpression",this).call(this,c,d),c)},reduceComputedPropertyName:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceComputedPropertyName",this).call(this,c,d),c)},reduceConditionalExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceConditionalExpression",this).call(this,c,d),c)},reduceContinueStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceContinueStatement",this).call(this,c,d),c)},reduceDataProperty:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceDataProperty",this).call(this,c,d),c)},reduceDebuggerStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceDebuggerStatement",this).call(this,c,d),c)},reduceDirective:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceDirective",this).call(this,c,d),c)},reduceDoWhileStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceDoWhileStatement",this).call(this,c,d),c)},reduceEmptyStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceEmptyStatement",this).call(this,c,d),c)},reduceExport:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExport",this).call(this,c,d),c)},reduceExportAllFrom:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportAllFrom",this).call(this,c,d),c)},reduceExportDefault:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportDefault",this).call(this,c,d),c)},reduceExportFrom:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportFrom",this).call(this,c,d),c)},reduceExportFromSpecifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportFromSpecifier",this).call(this,c,d),c)},reduceExportLocalSpecifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportLocalSpecifier",this).call(this,c,d),c)},reduceExportLocals:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExportLocals",this).call(this,c,d),c)},reduceExpressionStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceExpressionStatement",this).call(this,c,d),c)},reduceForAwaitStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceForAwaitStatement",this).call(this,c,d),c)},reduceForInStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceForInStatement",this).call(this,c,d),c)},reduceForOfStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceForOfStatement",this).call(this,c,d),c)},reduceForStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceForStatement",this).call(this,c,d),c)},reduceFormalParameters:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceFormalParameters",this).call(this,c,d),c)},reduceFunctionBody:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceFunctionBody",this).call(this,c,d),c)},reduceFunctionDeclaration:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceFunctionDeclaration",this).call(this,c,d),c)},reduceFunctionExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceFunctionExpression",this).call(this,c,d),c)},reduceGetter:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceGetter",this).call(this,c,d),c)},reduceIdentifierExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceIdentifierExpression",this).call(this,c,d),c)},reduceIfStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceIfStatement",this).call(this,c,d),c)},reduceImport:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceImport",this).call(this,c,d),c)},reduceImportNamespace:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceImportNamespace",this).call(this,c,d),c)},reduceImportSpecifier:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceImportSpecifier",this).call(this,c,d),c)},reduceLabeledStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLabeledStatement",this).call(this,c,d),c)},reduceLiteralBooleanExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralBooleanExpression",this).call(this,c,d),c)},reduceLiteralInfinityExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralInfinityExpression",this).call(this,c,d),c)},reduceLiteralNullExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralNullExpression",this).call(this,c,d),c)},reduceLiteralNumericExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralNumericExpression",this).call(this,c,d),c)},reduceLiteralRegExpExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralRegExpExpression",this).call(this,c,d),c)},reduceLiteralStringExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceLiteralStringExpression",this).call(this,c,d),c)},reduceMethod:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceMethod",this).call(this,c,d),c)},reduceModule:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceModule",this).call(this,c,d),c)},reduceNewExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceNewExpression",this).call(this,c,d),c)},reduceNewTargetExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceNewTargetExpression",this).call(this,c,d),c)},reduceObjectAssignmentTarget:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceObjectAssignmentTarget",this).call(this,c,d),c)},reduceObjectBinding:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceObjectBinding",this).call(this,c,d),c)},reduceObjectExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceObjectExpression",this).call(this,c,d),c)},reduceReturnStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceReturnStatement",this).call(this,c,d),c)},reduceScript:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceScript",this).call(this,c,d),c)},reduceSetter:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSetter",this).call(this,c,d),c)},reduceShorthandProperty:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceShorthandProperty",this).call(this,c,d),c)},reduceSpreadElement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSpreadElement",this).call(this,c,d),c)},reduceSpreadProperty:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSpreadProperty",this).call(this,c,d),c)},reduceStaticMemberAssignmentTarget:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceStaticMemberAssignmentTarget",this).call(this,c,d),c)},reduceStaticMemberExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceStaticMemberExpression",this).call(this,c,d),c)},reduceStaticPropertyName:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceStaticPropertyName",this).call(this,c,d),c)},reduceSuper:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSuper",this).call(this,c,d),c)},reduceSwitchCase:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSwitchCase",this).call(this,c,d),c)},reduceSwitchDefault:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSwitchDefault",this).call(this,c,d),c)},reduceSwitchStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSwitchStatement",this).call(this,c,d),c)},reduceSwitchStatementWithDefault:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceSwitchStatementWithDefault",this).call(this,c,d),c)},reduceTemplateElement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceTemplateElement",this).call(this,c,d),c)},reduceTemplateExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceTemplateExpression",this).call(this,c,d),c)},reduceThisExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceThisExpression",this).call(this,c,d),c)},reduceThrowStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceThrowStatement",this).call(this,c,d),c)},reduceTryCatchStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceTryCatchStatement",this).call(this,c,d),c)},reduceTryFinallyStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceTryFinallyStatement",this).call(this,c,d),c)},reduceUnaryExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceUnaryExpression",this).call(this,c,d),c)},reduceUpdateExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceUpdateExpression",this).call(this,c,d),c)},reduceVariableDeclaration:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceVariableDeclaration",this).call(this,c,d),c)},reduceVariableDeclarationStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceVariableDeclarationStatement",this).call(this,c,d),c)},reduceVariableDeclarator:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceVariableDeclarator",this).call(this,c,d),c)},reduceWhileStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceWhileStatement",this).call(this,c,d),c)},reduceWithStatement:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceWithStatement",this).call(this,c,d),c)},reduceYieldExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceYieldExpression",this).call(this,c,d),c)},reduceYieldGeneratorExpression:function(c,d){return o(_get$2(s.__proto__||Object.getPrototypeOf(s),"reduceYieldGeneratorExpression",this).call(this,c,d),c)}}};var reducers={};Object.defineProperty(reducers,"__esModule",{value:!0});reducers.ThunkedOrReducer=reducers.OrReducer=reducers.ThunkedAndReducer=reducers.AndReducer=reducers.ThunkedConcatReducer=reducers.ConcatReducer=reducers.ThunkedPlusReducer=reducers.PlusReducer=void 0;var _monoidalReducer=monoidalReducer,_monoidalReducer2=_interopRequireDefault$5(_monoidalReducer),_thunkedMonoidalReducer=thunkedMonoidalReducer,_thunkedMonoidalReducer2=_interopRequireDefault$5(_thunkedMonoidalReducer);function _interopRequireDefault$5(o){return o&&o.__esModule?o:{default:o}}function _classCallCheck$8(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$5(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$5(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}var PlusMonoid={empty:function o(){return 0},concat:function o(e,s){return e+s}},ConcatMonoid={empty:function o(){return[]},concat:function o(e,s){return e.concat(s)}},AndMonoid={empty:function o(){return!0},concat:function o(e,s){return e&&s},concatThunk:function o(e,s){return e&&s()}},OrMonoid={empty:function o(){return!1},concat:function o(e,s){return e||s},concatThunk:function o(e,s){return e||s()}};reducers.PlusReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,PlusMonoid))}return e}(_monoidalReducer2.default);reducers.ThunkedPlusReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,PlusMonoid))}return e}(_thunkedMonoidalReducer2.default);reducers.ConcatReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,ConcatMonoid))}return e}(_monoidalReducer2.default);reducers.ThunkedConcatReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,ConcatMonoid))}return e}(_thunkedMonoidalReducer2.default);reducers.AndReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,AndMonoid))}return e}(_monoidalReducer2.default);reducers.ThunkedAndReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,AndMonoid))}return e}(_thunkedMonoidalReducer2.default);reducers.OrReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,OrMonoid))}return e}(_monoidalReducer2.default);reducers.ThunkedOrReducer=function(o){_inherits$5(e,o);function e(){return _classCallCheck$8(this,e),_possibleConstructorReturn$5(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,OrMonoid))}return e}(_thunkedMonoidalReducer2.default);(function(o){Object.defineProperty(o,"__esModule",{value:!0});var e=director$2;Object.defineProperty(o,"reduce",{enumerable:!0,get:function(){return e.reduce}}),Object.defineProperty(o,"default",{enumerable:!0,get:function(){return e.reduce}});var s=thunkedDirector;Object.defineProperty(o,"thunkedReduce",{enumerable:!0,get:function(){return s.thunkedReduce}});var a=thunkify$1;Object.defineProperty(o,"thunkify",{enumerable:!0,get:function(){return et(a).default}});var c=thunkifyClass$1;Object.defineProperty(o,"thunkifyClass",{enumerable:!0,get:function(){return et(c).default}});var d=memoize$1;Object.defineProperty(o,"memoize",{enumerable:!0,get:function(){return et(d).default}});var _=cloneReducer;Object.defineProperty(o,"CloneReducer",{enumerable:!0,get:function(){return et(_).default}});var b=lazyCloneReducer;Object.defineProperty(o,"LazyCloneReducer",{enumerable:!0,get:function(){return et(b).default}});var k=monoidalReducer;Object.defineProperty(o,"MonoidalReducer",{enumerable:!0,get:function(){return et(k).default}});var $=thunkedMonoidalReducer;Object.defineProperty(o,"ThunkedMonoidalReducer",{enumerable:!0,get:function(){return et($).default}});var j=adapt;Object.defineProperty(o,"adapt",{enumerable:!0,get:function(){return et(j).default}});var _e=reducers;Object.defineProperty(o,"PlusReducer",{enumerable:!0,get:function(){return _e.PlusReducer}}),Object.defineProperty(o,"ThunkedPlusReducer",{enumerable:!0,get:function(){return _e.ThunkedPlusReducer}}),Object.defineProperty(o,"ConcatReducer",{enumerable:!0,get:function(){return _e.ConcatReducer}}),Object.defineProperty(o,"ThunkedConcatReducer",{enumerable:!0,get:function(){return _e.ThunkedConcatReducer}}),Object.defineProperty(o,"AndReducer",{enumerable:!0,get:function(){return _e.AndReducer}}),Object.defineProperty(o,"ThunkedAndReducer",{enumerable:!0,get:function(){return _e.ThunkedAndReducer}}),Object.defineProperty(o,"OrReducer",{enumerable:!0,get:function(){return _e.OrReducer}}),Object.defineProperty(o,"ThunkedOrReducer",{enumerable:!0,get:function(){return _e.ThunkedOrReducer}});function et(tt){return tt&&tt.__esModule?tt:{default:tt}}})(dist$4);var earlyErrorState={},multimap={exports:{}};(function(o,e){function s(c,d){for(var _=c.keys(),b;!(b=_.next()).done;)d(c.get(b.value),b.value,c)}var a=function(){var c;typeof Map!="undefined"&&(c=Map,Map.prototype.keys||(Map.prototype.keys=function(){var k=[];return this.forEach(function($,j){k.push(j)}),k}));function d(k){var $=this;$._map=c,d.Map&&($._map=d.Map),$._=$._map?new $._map:{},k&&k.forEach(function(j){$.set(j[0],j[1])})}d.prototype.get=function(k){return this._map?this._.get(k):this._[k]},d.prototype.set=function(k,$){var j=Array.prototype.slice.call(arguments);k=j.shift();var _e=this.get(k);return _e||(_e=[],this._map?this._.set(k,_e):this._[k]=_e),Array.prototype.push.apply(_e,j),this},d.prototype.delete=function(k,$){if(!this.has(k))return!1;if(arguments.length==1)return this._map?this._.delete(k):delete this._[k],!0;var j=this.get(k),_e=j.indexOf($);return _e!=-1?(j.splice(_e,1),!0):!1},d.prototype.has=function(k,$){var j=this._map?this._.has(k):this._.hasOwnProperty(k);if(arguments.length==1||!j)return j;var _e=this.get(k)||[];return _e.indexOf($)!=-1},d.prototype.keys=function(){return this._map?b(this._.keys()):b(Object.keys(this._))},d.prototype.values=function(){var k=[];return this.forEachEntry(function($){Array.prototype.push.apply(k,$)}),b(k)},d.prototype.forEachEntry=function(k){s(this,k)},d.prototype.forEach=function(k){var $=this;$.forEachEntry(function(j,_e){j.forEach(function(et){k(et,_e,$)})})},d.prototype.clear=function(){this._map?this._.clear():this._={}},Object.defineProperty(d.prototype,"size",{configurable:!1,enumerable:!0,get:function(){var k=0;return s(this,function($){k+=$.length}),k}}),Object.defineProperty(d.prototype,"count",{configurable:!1,enumerable:!0,get:function(){return this._.size}});var _;try{_=new Function("iterator","makeIterator","var keysArray = []; for(var key of iterator){keysArray.push(key);} return makeIterator(keysArray).next;")}catch{}function b(k){if(Array.isArray(k)){var $=0;return{next:function(){return $<k.length?{value:k[$++],done:!1}:{done:!0}}}}return!k.next&&_&&(k.next=_(k,b)),k}return d}();o&&o.exports&&(o.exports=a)})(multimap);Object.defineProperty(earlyErrorState,"__esModule",{value:!0});earlyErrorState.EarlyError=earlyErrorState.EarlyErrorState=void 0;var _createClass$6=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_multimap=multimap.exports,_multimap2=_interopRequireDefault$4(_multimap);function _interopRequireDefault$4(o){return o&&o.__esModule?o:{default:o}}function _possibleConstructorReturn$4(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$4(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}function _classCallCheck$7(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function addEach(o){for(var e=arguments.length,s=Array(e>1?e-1:0),a=1;a<e;a++)s[a-1]=arguments[a];return s.forEach(function(c){c.forEachEntry(function(d,_){o.set.apply(o,[_].concat(d))})}),o}var identity=void 0,EarlyErrorState=earlyErrorState.EarlyErrorState=function(){function o(){_classCallCheck$7(this,o),this.errors=[],this.strictErrors=[],this.usedLabelNames=[],this.freeBreakStatements=[],this.freeContinueStatements=[],this.freeLabeledBreakStatements=[],this.freeLabeledContinueStatements=[],this.newTargetExpressions=[],this.boundNames=new _multimap2.default,this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this.varDeclaredNames=new _multimap2.default,this.forOfVarDeclaredNames=[],this.exportedNames=new _multimap2.default,this.exportedBindings=new _multimap2.default,this.superCallExpressions=[],this.superCallExpressionsInConstructorMethod=[],this.superPropertyExpressions=[],this.yieldExpressions=[],this.awaitExpressions=[]}return _createClass$6(o,[{key:"addFreeBreakStatement",value:function(s){return this.freeBreakStatements.push(s),this}},{key:"addFreeLabeledBreakStatement",value:function(s){return this.freeLabeledBreakStatements.push(s),this}},{key:"clearFreeBreakStatements",value:function(){return this.freeBreakStatements=[],this}},{key:"addFreeContinueStatement",value:function(s){return this.freeContinueStatements.push(s),this}},{key:"addFreeLabeledContinueStatement",value:function(s){return this.freeLabeledContinueStatements.push(s),this}},{key:"clearFreeContinueStatements",value:function(){return this.freeContinueStatements=[],this}},{key:"enforceFreeBreakStatementErrors",value:function(s){return[].push.apply(this.errors,this.freeBreakStatements.map(s)),this.freeBreakStatements=[],this}},{key:"enforceFreeLabeledBreakStatementErrors",value:function(s){return[].push.apply(this.errors,this.freeLabeledBreakStatements.map(s)),this.freeLabeledBreakStatements=[],this}},{key:"enforceFreeContinueStatementErrors",value:function(s){return[].push.apply(this.errors,this.freeContinueStatements.map(s)),this.freeContinueStatements=[],this}},{key:"enforceFreeLabeledContinueStatementErrors",value:function(s){return[].push.apply(this.errors,this.freeLabeledContinueStatements.map(s)),this.freeLabeledContinueStatements=[],this}},{key:"observeIterationLabel",value:function(s){return this.usedLabelNames.push(s),this.freeLabeledBreakStatements=this.freeLabeledBreakStatements.filter(function(a){return a.label!==s}),this.freeLabeledContinueStatements=this.freeLabeledContinueStatements.filter(function(a){return a.label!==s}),this}},{key:"observeNonIterationLabel",value:function(s){return this.usedLabelNames.push(s),this.freeLabeledBreakStatements=this.freeLabeledBreakStatements.filter(function(a){return a.label!==s}),this}},{key:"clearUsedLabelNames",value:function(){return this.usedLabelNames=[],this}},{key:"observeSuperCallExpression",value:function(s){return this.superCallExpressions.push(s),this}},{key:"observeConstructorMethod",value:function(){return this.superCallExpressionsInConstructorMethod=this.superCallExpressions,this.superCallExpressions=[],this}},{key:"clearSuperCallExpressionsInConstructorMethod",value:function(){return this.superCallExpressionsInConstructorMethod=[],this}},{key:"enforceSuperCallExpressions",value:function(s){return[].push.apply(this.errors,this.superCallExpressions.map(s)),[].push.apply(this.errors,this.superCallExpressionsInConstructorMethod.map(s)),this.superCallExpressions=[],this.superCallExpressionsInConstructorMethod=[],this}},{key:"enforceSuperCallExpressionsInConstructorMethod",value:function(s){return[].push.apply(this.errors,this.superCallExpressionsInConstructorMethod.map(s)),this.superCallExpressionsInConstructorMethod=[],this}},{key:"observeSuperPropertyExpression",value:function(s){return this.superPropertyExpressions.push(s),this}},{key:"clearSuperPropertyExpressions",value:function(){return this.superPropertyExpressions=[],this}},{key:"enforceSuperPropertyExpressions",value:function(s){return[].push.apply(this.errors,this.superPropertyExpressions.map(s)),this.superPropertyExpressions=[],this}},{key:"observeNewTargetExpression",value:function(s){return this.newTargetExpressions.push(s),this}},{key:"clearNewTargetExpressions",value:function(){return this.newTargetExpressions=[],this}},{key:"bindName",value:function(s,a){return this.boundNames.set(s,a),this}},{key:"clearBoundNames",value:function(){return this.boundNames=new _multimap2.default,this}},{key:"observeLexicalDeclaration",value:function(){return addEach(this.lexicallyDeclaredNames,this.boundNames),this.boundNames=new _multimap2.default,this}},{key:"observeLexicalBoundary",value:function(){return this.previousLexicallyDeclaredNames=this.lexicallyDeclaredNames,this.lexicallyDeclaredNames=new _multimap2.default,this.functionDeclarationNames=new _multimap2.default,this}},{key:"enforceDuplicateLexicallyDeclaredNames",value:function(s){var a=this;return this.lexicallyDeclaredNames.forEachEntry(function(c){c.length>1&&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;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_get$1=function o(e,s,a){e===null&&(e=Function.prototype);var c=Object.getOwnPropertyDescriptor(e,s);if(c===void 0){var d=Object.getPrototypeOf(e);return d===null?void 0:o(d,s,a)}else{if("value"in c)return c.value;var _=c.get;return _===void 0?void 0:_.call(a)}},_shiftReducer$1=dist$4,_shiftReducer2=_interopRequireDefault$3(_shiftReducer$1),_utils=utils$1,_errors=errors,_earlyErrorState=earlyErrorState;function _interopRequireDefault$3(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$3(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$6(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$3(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$3(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}function isStrictFunctionBody(o){var e=o.directives;return e.some(function(s){return s.rawValue==="use strict"})}function isLabelledFunction(o){return o.type==="LabeledStatement"&&(o.body.type==="FunctionDeclaration"||isLabelledFunction(o.body))}function isIterationStatement(o){switch(o.type){case"LabeledStatement":return isIterationStatement(o.body);case"DoWhileStatement":case"ForInStatement":case"ForOfStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function isSpecialMethod(o){if(o.name.type!=="StaticPropertyName"||o.name.value!=="constructor")return!1;switch(o.type){case"Getter":case"Setter":return!0;case"Method":return o.isGenerator||o.isAsync}throw new Error("not reached")}function enforceDuplicateConstructorMethods(o,e){var s=o.elements.filter(function(a){return!a.isStatic&&a.method.type==="Method"&&!a.method.isGenerator&&a.method.name.type==="StaticPropertyName"&&a.method.name.value==="constructor"});return s.length>1&&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;at<it.length;at++){var ot=it[at];ot.enumerable=ot.enumerable||!1,ot.configurable=!0,"value"in ot&&(ot.writable=!0),Object.defineProperty(rt,ot.key,ot)}}return function(rt,it,at){return it&&st(rt.prototype,it),at&&st(rt,at),rt}}(),s=function st(rt,it,at){rt===null&&(rt=Function.prototype);var ot=Object.getOwnPropertyDescriptor(rt,it);if(ot===void 0){var ht=Object.getPrototypeOf(rt);return ht===null?void 0:st(ht,it,at)}else{if("value"in ot)return ot.value;var ct=ot.get;return ct===void 0?void 0:ct.call(at)}},a=tokenizer;Object.defineProperty(o,"Tokenizer",{enumerable:!0,get:function(){return b(a).default}}),Object.defineProperty(o,"TokenClass",{enumerable:!0,get:function(){return a.TokenClass}}),Object.defineProperty(o,"TokenType",{enumerable:!0,get:function(){return a.TokenType}});var c=parser$1,d=earlyErrors,_=utils$1;function b(st){return st&&st.__esModule?st:{default:st}}function k(st,rt){if(!(st instanceof rt))throw new TypeError("Cannot call a class as a function")}function $(st,rt){if(!st)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return rt&&(typeof rt=="object"||typeof rt=="function")?rt:st}function j(st,rt){if(typeof rt!="function"&&rt!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof rt);st.prototype=Object.create(rt&&rt.prototype,{constructor:{value:st,enumerable:!1,writable:!0,configurable:!0}}),rt&&(Object.setPrototypeOf?Object.setPrototypeOf(st,rt):st.__proto__=rt)}var _e=function(st){j(rt,st);function rt(it){k(this,rt);var at=$(this,(rt.__proto__||Object.getPrototypeOf(rt)).call(this,it));return at.locations=new WeakMap,at.comments=[],at}return e(rt,[{key:"startNode",value:function(){return this.getLocation()}},{key:"finishNode",value:function(at,ot){if(at.type==="Script"||at.type==="Module")return this.locations.set(at,{start:{line:1,column:0,offset:0},end:this.getLocation()}),at;if(at.type==="TemplateExpression")for(var ht=0;ht<at.elements.length;ht+=2){var ct=ht<at.elements.length-1?2:1,lt=at.elements[ht],ut=this.locations.get(lt);this.locations.set(lt,{start:{line:ut.start.line,column:ut.start.column+1,offset:ut.start.offset+1},end:{line:ut.end.line,column:ut.end.column-ct,offset:ut.end.offset-ct}})}return this.locations.set(at,{start:ot,end:this.getLastTokenEndLocation()}),at}},{key:"copyNode",value:function(at,ot){return this.locations.set(ot,this.locations.get(at)),ot}},{key:"skipSingleLineComment",value:function(at){var ot={line:this.line+1,column:this.index-this.lineStart,offset:this.index},ht=this.source[this.index],ct=ht==="/"?"SingleLine":ht==="<"?"HTMLOpen":"HTMLClose";s(rt.prototype.__proto__||Object.getPrototypeOf(rt.prototype),"skipSingleLineComment",this).call(this,at);var lt={line:this.line+1,column:this.index-this.lineStart,offset:this.index},ut=this.source[this.index-2]==="\r"?2:(0,_.isLineTerminator)(this.source.charCodeAt(this.index-1))?1:0,pt=this.source.substring(ot.offset+at,lt.offset-ut);this.comments.push({text:pt,type:ct,start:ot,end:lt})}},{key:"skipMultiLineComment",value:function(){var at={line:this.line+1,column:this.index-this.lineStart,offset:this.index},ot="MultiLine",ht=s(rt.prototype.__proto__||Object.getPrototypeOf(rt.prototype),"skipMultiLineComment",this).call(this),ct={line:this.line+1,column:this.index-this.lineStart,offset:this.index},lt=this.source.substring(at.offset+2,ct.offset-2);return this.comments.push({text:lt,type:ot,start:at,end:ct}),ht}}]),rt}(c.GenericParser);function et(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 c.GenericParser(it),lt=ct[st]();if(ht){var ut=d.EarlyErrorChecker.check(lt);if(ut.length>0)throw new a.JsError(0,1,0,ut[0].message)}return lt}}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),lt=ct[st]();if(ht){var ut=d.EarlyErrorChecker.check(lt);if(ut.length>0){var pt=ut[0],dt=pt.node,gt=pt.message,yt=ct.locations.get(dt).start,ft=yt.offset,mt=yt.line,Et=yt.column;throw new a.JsError(ft,mt,Et,gt)}}return{tree:lt,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={},lt=o.AssignmentTargetWithDefault={},ut=o.AwaitExpression={},pt=o.BinaryExpression={},dt=o.BindingIdentifier={},gt=o.BindingPropertyIdentifier={},yt=o.BindingPropertyProperty={},ft=o.BindingWithDefault={},mt=o.Block={},Et=o.BlockStatement={},vt=o.BreakStatement={},At=o.CallExpression={},_t=o.CatchClause={},Dt=o.ClassDeclaration={},bt=o.ClassElement={},Tt=o.ClassExpression={},St=o.CompoundAssignmentExpression={},Ct=o.ComputedMemberAssignmentTarget={},xt=o.ComputedMemberExpression={},Rt=o.ComputedPropertyName={},Mt=o.ConditionalExpression={},It=o.ContinueStatement={},Ft=o.DataProperty={},Vt=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={},gr=b(xt,jn),ir=b(ht,ct);b(Dt,Tt);var sr=b(Jt,en,tn,kt,Lt),un=b(Rt,qn);b(sn,fn);var ar=b(_n,On),yr=b(Nt,Wt,Gt,zt,nn,er),Ht=b(Ct,Qn),or=b(gt,yt),ur=b(An,Fn,$n),Er=b(Nn,Mn),Sr=b(ot,dt,cn),Ar=b(Ft,ur),Pt=b(rt,it,at,ut,pt,At,Tt,St,Mt,fn,cn,Dn,bn,xn,Tn,kn,wn,gr,Pn,Bn,Rn,Un,zn,Zn,Kn,nr,rr),qt=b(Et,vt,Dt,It,Vt,Kt,$t,sn,vn,yr,Cn,In,Vn,Gn,Yn,Hn,Xn,Jn,tr),lr=b(Ar,Ln,Wn);return b(nt,st,ir,lt,or,ft,mt,_t,bt,jt,sr,Bt,Qt,Pt,Xt,Zt,ar,mn,Ht,Yt,Ut,lr,Er,un,hn,qt,an,pn,gn,yn,rn,En,Sr),nt.typeName="ArrayAssignmentTarget",nt.fields=[{name:"type",type:_(k),value:"ArrayAssignmentTarget"},{name:"elements",type:d(c(b(lt,b(b(nt,Yt),b(ot,Ht)))))},{name:"rest",type:c(b(b(nt,Yt),b(ot,Ht)))}],st.typeName="ArrayBinding",st.fields=[{name:"type",type:_(k),value:"ArrayBinding"},{name:"elements",type:d(c(b(ft,b(dt,b(st,Ut)))))},{name:"rest",type:c(b(dt,b(st,Ut)))}],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: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(lt,b(b(nt,Yt),b(ot,Ht)))}],lt.typeName="AssignmentTargetWithDefault",lt.fields=[{name:"type",type:_(k),value:"AssignmentTargetWithDefault"},{name:"binding",type:b(b(nt,Yt),b(ot,Ht))},{name:"init",type:Pt}],ut.typeName="AwaitExpression",ut.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,Ut)))}],ft.typeName="BindingWithDefault",ft.fields=[{name:"type",type:_(k),value:"BindingWithDefault"},{name:"binding",type:b(dt,b(st,Ut))},{name:"init",type:Pt}],mt.typeName="Block",mt.fields=[{name:"type",type:_(k),value:"Block"},{name:"statements",type:d(qt)}],Et.typeName="BlockStatement",Et.fields=[{name:"type",type:_(k),value:"BlockStatement"},{name:"block",type:mt}],vt.typeName="BreakStatement",vt.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))}],_t.typeName="CatchClause",_t.fields=[{name:"type",type:_(k),value:"CatchClause"},{name:"binding",type:b(dt,b(st,Ut))},{name:"body",type:mt}],Dt.typeName="ClassDeclaration",Dt.fields=[{name:"type",type:_(k),value:"ClassDeclaration"},{name:"name",type:dt},{name:"super",type:c(Pt)},{name:"elements",type:d(bt)}],bt.typeName="ClassElement",bt.fields=[{name:"type",type:_(k),value:"ClassElement"},{name:"isStatic",type:e},{name:"method",type:ur}],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(bt)}],St.typeName="CompoundAssignmentExpression",St.fields=[{name:"type",type:_(k),value:"CompoundAssignmentExpression"},{name:"binding",type:b(ot,Ht)},{name:"operator",type:j},{name:"expression",type:Pt}],Ct.typeName="ComputedMemberAssignmentTarget",Ct.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}],Vt.typeName="DebuggerStatement",Vt.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:qt},{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(Dt,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(Dt,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:qt}],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:qt}],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:qt}],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:qt}],Xt.typeName="FormalParameters",Xt.fields=[{name:"type",type:_(k),value:"FormalParameters"},{name:"items",type:d(b(ft,b(dt,b(st,Ut))))},{name:"rest",type:c(b(dt,b(st,Ut)))}],Zt.typeName="FunctionBody",Zt.fields=[{name:"type",type:_(k),value:"FunctionBody"},{name:"directives",type:d(jt)},{name:"statements",type:d(qt)}],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:qt},{name:"alternate",type:c(qt)}],_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:qt}],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(sr,ar,qt))}],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(ir)},{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(or)},{name:"rest",type:c(b(dt,b(st,Ut)))}],Rn.typeName="ObjectExpression",Rn.fields=[{name:"type",type:_(k),value:"ObjectExpression"},{name:"properties",type:d(lr)}],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(qt)}],$n.typeName="Setter",$n.fields=[{name:"type",type:_(k),value:"Setter"},{name:"name",type:un},{name:"param",type:b(ft,b(dt,b(st,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(qt)}],gn.typeName="SwitchDefault",gn.fields=[{name:"type",type:_(k),value:"SwitchDefault"},{name:"consequent",type:d(qt)}],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:mt},{name:"catchClause",type:_t}],Xn.typeName="TryFinallyStatement",Xn.fields=[{name:"type",type:_(k),value:"TryFinallyStatement"},{name:"body",type:mt},{name:"catchClause",type:c(_t)},{name:"finalizer",type:mt}],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(st,Ut))},{name:"init",type:c(Pt)}],er.typeName="WhileStatement",er.fields=[{name:"type",type:_(k),value:"WhileStatement"},{name:"test",type:Pt},{name:"body",type:qt}],tr.typeName="WithStatement",tr.fields=[{name:"type",type:_(k),value:"WithStatement"},{name:"object",type:Pt},{name:"body",type:qt}],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 lt={},ut,pt;for(ut in ct)ct.hasOwnProperty(ut)&&(pt=ct[ut],typeof pt=="object"&&pt!==null?lt[ut]=$(pt):lt[ut]=pt);return lt}function j(ct,lt){var ut,pt,dt,gt;for(pt=ct.length,dt=0;pt;)ut=pt>>>1,gt=dt+ut,lt(ct[gt])?pt=ut:(dt=gt+1,pt-=ut+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,lt){this.parent=ct,this.key=lt}_e.prototype.replace=function(lt){this.parent[this.key]=lt},_e.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function et(ct,lt,ut,pt){this.node=ct,this.path=lt,this.wrap=ut,this.ref=pt}function tt(){}tt.prototype.path=function(){var lt,ut,pt,dt,gt,yt;function ft(mt,Et){if(Array.isArray(Et))for(pt=0,dt=Et.length;pt<dt;++pt)mt.push(Et[pt]);else mt.push(Et)}if(!this.__current.path)return null;for(gt=[],lt=2,ut=this.__leavelist.length;lt<ut;++lt)yt=this.__leavelist[lt],ft(gt,yt.path);return ft(gt,this.__current.path),gt},tt.prototype.type=function(){var ct=this.current();return ct.type||this.__current.wrap},tt.prototype.parents=function(){var lt,ut,pt;for(pt=[],lt=1,ut=this.__leavelist.length;lt<ut;++lt)pt.push(this.__leavelist[lt].node);return pt},tt.prototype.current=function(){return this.__current.node},tt.prototype.__execute=function(lt,ut){var pt,dt;return dt=void 0,pt=this.__current,this.__current=ut,this.__state=null,lt&&(dt=lt.call(this,ut.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=pt,dt},tt.prototype.notify=function(lt){this.__state=lt},tt.prototype.skip=function(){this.notify(b)},tt.prototype.break=function(){this.notify(_)},tt.prototype.remove=function(){this.notify(k)},tt.prototype.__initialize=function(ct,lt){this.visitor=lt,this.root=ct,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,lt.fallback==="iteration"?this.__fallback=Object.keys:typeof lt.fallback=="function"&&(this.__fallback=lt.fallback),this.__keys=d,lt.keys&&(this.__keys=Object.assign(Object.create(this.__keys),lt.keys))};function nt(ct){return ct==null?!1:typeof ct=="object"&&typeof ct.type=="string"}function st(ct,lt){return(ct===a.ObjectExpression||ct===a.ObjectPattern)&<==="properties"}function rt(ct,lt){for(var ut=ct.length-1;ut>=0;--ut)if(ct[ut].node===lt)return!0;return!1}tt.prototype.traverse=function(lt,ut){var pt,dt,gt,yt,ft,mt,Et,vt,At,_t,Dt,bt;for(this.__initialize(lt,ut),bt={},pt=this.__worklist,dt=this.__leavelist,pt.push(new et(lt,null,null,null)),dt.push(new et(null,null,null,null));pt.length;){if(gt=pt.pop(),gt===bt){if(gt=dt.pop(),mt=this.__execute(ut.leave,gt),this.__state===_||mt===_)return;continue}if(gt.node){if(mt=this.__execute(ut.enter,gt),this.__state===_||mt===_)return;if(pt.push(bt),dt.push(gt),this.__state===b||mt===b)continue;if(yt=gt.node,ft=yt.type||gt.wrap,_t=this.__keys[ft],!_t)if(this.__fallback)_t=this.__fallback(yt);else throw new Error("Unknown node type "+ft+".");for(vt=_t.length;(vt-=1)>=0;)if(Et=_t[vt],Dt=yt[Et],!!Dt){if(Array.isArray(Dt)){for(At=Dt.length;(At-=1)>=0;)if(!!Dt[At]&&!rt(dt,Dt[At])){if(st(ft,_t[vt]))gt=new et(Dt[At],[Et,At],"Property",null);else if(nt(Dt[At]))gt=new et(Dt[At],[Et,At],null,null);else continue;pt.push(gt)}}else if(nt(Dt)){if(rt(dt,Dt))continue;pt.push(new et(Dt,Et,null,null))}}}}},tt.prototype.replace=function(lt,ut){var pt,dt,gt,yt,ft,mt,Et,vt,At,_t,Dt,bt,Tt;function St(Ct){var xt,Rt,Mt,It;if(Ct.ref.remove()){for(Rt=Ct.ref.key,It=Ct.ref.parent,xt=pt.length;xt--;)if(Mt=pt[xt],Mt.ref&&Mt.ref.parent===It){if(Mt.ref.key<Rt)break;--Mt.ref.key}}}for(this.__initialize(lt,ut),Dt={},pt=this.__worklist,dt=this.__leavelist,bt={root:lt},mt=new et(lt,null,null,new _e(bt,"root")),pt.push(mt),dt.push(mt);pt.length;){if(mt=pt.pop(),mt===Dt){if(mt=dt.pop(),ft=this.__execute(ut.leave,mt),ft!==void 0&&ft!==_&&ft!==b&&ft!==k&&mt.ref.replace(ft),(this.__state===k||ft===k)&&St(mt),this.__state===_||ft===_)return bt.root;continue}if(ft=this.__execute(ut.enter,mt),ft!==void 0&&ft!==_&&ft!==b&&ft!==k&&(mt.ref.replace(ft),mt.node=ft),(this.__state===k||ft===k)&&(St(mt),mt.node=null),this.__state===_||ft===_)return bt.root;if(gt=mt.node,!!gt&&(pt.push(Dt),dt.push(mt),!(this.__state===b||ft===b))){if(yt=gt.type||mt.wrap,At=this.__keys[yt],!At)if(this.__fallback)At=this.__fallback(gt);else throw new Error("Unknown node type "+yt+".");for(Et=At.length;(Et-=1)>=0;)if(Tt=At[Et],_t=gt[Tt],!!_t)if(Array.isArray(_t)){for(vt=_t.length;(vt-=1)>=0;)if(!!_t[vt]){if(st(yt,At[Et]))mt=new et(_t[vt],[Tt,vt],"Property",new _e(_t,vt));else if(nt(_t[vt]))mt=new et(_t[vt],[Tt,vt],null,new _e(_t,vt));else continue;pt.push(mt)}}else nt(_t)&&pt.push(new et(_t,Tt,null,new _e(gt,Tt)))}}return bt.root};function it(ct,lt){var ut=new tt;return ut.traverse(ct,lt)}function at(ct,lt){var ut=new tt;return ut.replace(ct,lt)}function ot(ct,lt){var ut;return ut=j(lt,function(dt){return dt.range[0]>ct.range[0]}),ct.extendedRange=[ct.range[0],ct.range[1]],ut!==lt.length&&(ct.extendedRange[1]=lt[ut].range[0]),ut-=1,ut>=0&&(ct.extendedRange[0]=lt[ut].range[1]),ct}function ht(ct,lt,ut){var pt=[],dt,gt,yt,ft;if(!ct.range)throw new Error("attachComments needs range information");if(!ut.length){if(lt.length){for(yt=0,gt=lt.length;yt<gt;yt+=1)dt=$(lt[yt]),dt.extendedRange=[0,ct.range[0]],pt.push(dt);ct.leadingComments=pt}return ct}for(yt=0,gt=lt.length;yt<gt;yt+=1)pt.push(ot($(lt[yt]),ut));return ft=0,it(ct,{enter:function(mt){for(var Et;ft<pt.length&&(Et=pt[ft],!(Et.extendedRange[1]>mt.range[0]));)Et.extendedRange[1]===mt.range[0]?(mt.leadingComments||(mt.leadingComments=[]),mt.leadingComments.push(Et),pt.splice(ft,1)):ft+=1;if(ft===pt.length)return c.Break;if(pt[ft].extendedRange[0]>mt.range[1])return c.Skip}}),ft=0,it(ct,{leave:function(mt){for(var Et;ft<pt.length&&(Et=pt[ft],!(mt.range[1]<Et.extendedRange[0]));)mt.range[1]===Et.extendedRange[0]?(mt.trailingComments||(mt.trailingComments=[]),mt.trailingComments.push(Et),pt.splice(ft,1)):ft+=1;if(ft===pt.length)return c.Break;if(pt[ft].extendedRange[0]>mt.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<arguments.length;d++){s=Object(arguments[d]);for(var _ in s)hasOwnProperty$1.call(s,_)&&(a[_]=s[_]);if(getOwnPropertySymbols){c=getOwnPropertySymbols(s);for(var b=0;b<c.length;b++)propIsEnumerable.call(s,c[b])&&(a[c[b]]=s[c[b]])}}return a},utils={},ast={exports:{}};(function(){function o(_){if(_==null)return!1;switch(_.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function e(_){if(_==null)return!1;switch(_.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function s(_){if(_==null)return!1;switch(_.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function a(_){return s(_)||_!=null&&_.type==="FunctionDeclaration"}function c(_){switch(_.type){case"IfStatement":return _.alternate!=null?_.alternate:_.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return _.body}return null}function d(_){var b;if(_.type!=="IfStatement"||_.alternate==null)return!1;b=_.consequent;do{if(b.type==="IfStatement"&&b.alternate==null)return!0;b=c(b)}while(b);return!1}ast.exports={isExpression:o,isStatement:s,isIterationStatement:e,isSourceElement:a,isProblematicIfStatement:d,trailingStatement:c}})();var code$1={exports:{}};(function(){var o,e,s,a,c,d;e={NonAsciiIdentifierStart:/[\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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},o={NonAsciiIdentifierStart:/[\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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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]/,NonAsciiIdentifierPart:/[\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/};function _(rt){return 48<=rt&&rt<=57}function b(rt){return 48<=rt&&rt<=57||97<=rt&&rt<=102||65<=rt&&rt<=70}function k(rt){return rt>=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;++tt)if(st=et.charCodeAt(tt),!o.isIdentifierPartES5(st))return!1;return!0}function k(et,tt){return(et-55296)*1024+(tt-56320)+65536}function $(et){var tt,nt,st,rt,it;if(et.length===0)return!1;for(it=o.isIdentifierStartES6,tt=0,nt=et.length;tt<nt;++tt){if(st=et.charCodeAt(tt),55296<=st&&st<=56319){if(++tt,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<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}();coderep.getPrecedence=getPrecedence;coderep.escapeStringLiteral=escapeStringLiteral;function _possibleConstructorReturn$2(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$2(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}function _classCallCheck$4(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}var Precedence={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponential:13,Prefix:14,Postfix:15,New:16,Call:17,TaggedTemplate:18,Member:19,Primary:20};coderep.Precedence=Precedence;var BinaryPrecedence={",":Precedence.Sequence,"||":Precedence.LogicalOR,"&&":Precedence.LogicalAND,"|":Precedence.BitwiseOR,"^":Precedence.BitwiseXOR,"&":Precedence.BitwiseAND,"==":Precedence.Equality,"!=":Precedence.Equality,"===":Precedence.Equality,"!==":Precedence.Equality,"<":Precedence.Relational,">":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;c<d;++c){var _=o[c];_==='"'?++a:_==="'"&&++s}var b=a>s?"'":'"';e+=b;for(var k=0;k<o.length;k++){var $=o.charAt(k);switch($){case b:e+="\\"+b;break;case`
|
|
`: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 o(){_classCallCheck$4(this,o),this.containsIn=!1,this.containsGroup=!1,this.startsWithCurly=!1,this.startsWithFunctionOrClass=!1,this.startsWithLet=!1,this.startsWithLetSquareBracket=!1,this.endsWithMissingElse=!1}return _createClass$4(o,[{key:"forEach",value:function(s){s(this)}}]),o}();coderep.Empty=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(){}}]),e}(CodeRep);var Token=coderep.Token=function(o){_inherits$2(e,o);function e(s){var a=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=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;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_objectAssign$1=objectAssign,_objectAssign2$1=_interopRequireDefault$2(_objectAssign$1),_esutils$1=utils,_coderep$1=coderep;function _interopRequireDefault$2(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$2(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$3(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function p$1(o,e,s){return(0,_coderep$1.getPrecedence)(o)<e?paren(s):s}function t$1(o){var e=arguments.length>1&&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;s<o;s++)e[s]=arguments[s];return new _coderep$1.Seq(e)}function semi(){return new _coderep$1.Semi}function semiOp(){return new _coderep$1.SemiOp}function empty$2(){return new _coderep$1.Empty}function commaSep(o){return new _coderep$1.CommaSep(o)}function getAssignmentExpr(o){return o?o.containsGroup?paren(o):o:empty$2()}var MinimalCodeGen=function(){function o(){_classCallCheck$3(this,o)}return _createClass$3(o,[{key:"parenToAvoidBeingDirective",value:function(s,a){return s&&s.type==="ExpressionStatement"&&s.expression.type==="LiteralStringExpression"?seq$1(paren(a.children[0]),semiOp()):a}},{key:"regenerateArrowParams",value:function(s,a){return s.rest==null&&s.items.length===1&&s.items[0].type==="BindingIdentifier"?this.reduceBindingIdentifier(s.items[0]):a}},{key:"reduceArrayExpression",value:function(s,a){var c=a.elements;if(c.length===0)return bracket$1(empty$2());var d=commaSep(c.map(getAssignmentExpr));return c.length>0&&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;b<k;++b)s.elements[b].type==="TemplateElement"?_=seq$1(_,b>0?t$1("}"):empty$2(),d[b],b<k-1?t$1("${"):empty$2()):_=seq$1(_,d[b]);return _=seq$1(_,t$1("`")),s.tag!=null&&(_.startsWithCurly=c.startsWithCurly,_.startsWithLet=c.startsWithLet,_.startsWithLetSquareBracket=c.startsWithLetSquareBracket,_.startsWithFunctionOrClass=c.startsWithFunctionOrClass),_}},{key:"reduceTemplateElement",value:function(s){return new _coderep$1.RawToken(s.rawValue)}},{key:"reduceThisExpression",value:function(){return t$1("this")}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return seq$1(t$1("throw"),c,semiOp())}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return seq$1(t$1("try"),c,d)}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return seq$1(t$1("try"),c,d||empty$2(),t$1("finally"),_)}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return s.expression==null?t$1("yield"):(0,_objectAssign2$1.default)(seq$1(t$1("yield"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return(0,_objectAssign2$1.default)(seq$1(t$1("yield"),t$1("*"),p$1(s.expression,(0,_coderep$1.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceDirective",value:function(s){var a=s.rawValue.match(/(^|[^\\])(\\\\)*"/)?"'":'"';return seq$1(t$1(a+s.rawValue+a),semiOp())}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return seq$1(t$1(s.kind),commaSep(c))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return seq$1(c,semiOp())}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,d=a.init,_=d&&d.containsIn&&!d.containsGroup;return d&&(d.containsGroup?d=paren(d):d=markContainsIn$1(d)),(0,_objectAssign2$1.default)(d==null?c:seq$1(c,t$1("="),d),{containsIn:_})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1("while"),paren(c),d),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return(0,_objectAssign2$1.default)(seq$1(t$1("with"),paren(c),d),{endsWithMissingElse:d.endsWithMissingElse})}}]),o}();minimalCodegen.default=MinimalCodeGen;var formattedCodegen={};Object.defineProperty(formattedCodegen,"__esModule",{value:!0});formattedCodegen.FormattedCodeGen=formattedCodegen.ExtensibleCodeGen=formattedCodegen.Sep=void 0;var _createClass$2=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_objectAssign=objectAssign,_objectAssign2=_interopRequireDefault$1(_objectAssign),_esutils=utils,_coderep=coderep;function _interopRequireDefault$1(o){return o&&o.__esModule?o:{default:o}}function _toConsumableArray$1(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$2(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn$1(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits$1(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}var INDENT=" ",Linebreak=function(o){_inherits$1(e,o);function e(){_classCallCheck$2(this,e);var s=_possibleConstructorReturn$1(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return s.indentation=0,s}return _createClass$2(e,[{key:"emit",value:function(a){a.put(`
|
|
`);for(var c=0;c<this.indentation;++c)a.put(INDENT)}}]),e}(_coderep.CodeRep);function empty$1(){return new _coderep.Empty}function noIn(o){return new _coderep.NoIn(o)}function markContainsIn(o){return o.containsIn?new _coderep.ContainsIn(o):o}function seq(){for(var o=arguments.length,e=Array(o),s=0;s<o;s++)e[s]=arguments[s];return new _coderep.Seq(e)}function isEmpty(o){return o instanceof _coderep.Empty||o instanceof Linebreak||o instanceof _coderep.Seq&&o.children.every(isEmpty)}var Sep={},separatorNames=["ARRAY_EMPTY","ARRAY_BEFORE_COMMA","ARRAY_AFTER_COMMA","SPREAD","AWAIT","AFTER_FORAWAIT_AWAIT","BEFORE_DEFAULT_EQUALS","AFTER_DEFAULT_EQUALS","REST","OBJECT_BEFORE_COMMA","OBJECT_AFTER_COMMA","BEFORE_PROP","AFTER_PROP","BEFORE_JUMP_LABEL","ARGS_BEFORE_COMMA","ARGS_AFTER_COMMA","CALL","BEFORE_CATCH_BINDING","AFTER_CATCH_BINDING","BEFORE_CLASS_NAME","BEFORE_EXTENDS","AFTER_EXTENDS","BEFORE_CLASS_DECLARATION_ELEMENTS","BEFORE_CLASS_EXPRESSION_ELEMENTS","AFTER_STATIC","BEFORE_CLASS_ELEMENT","AFTER_CLASS_ELEMENT","BEFORE_TERNARY_QUESTION","AFTER_TERNARY_QUESTION","BEFORE_TERNARY_COLON","AFTER_TERNARY_COLON","COMPUTED_MEMBER_EXPRESSION","COMPUTED_MEMBER_ASSIGNMENT_TARGET","AFTER_DO","BEFORE_DOWHILE_WHILE","AFTER_DOWHILE_WHILE","AFTER_FORIN_FOR","BEFORE_FORIN_IN","AFTER_FORIN_FOR","BEFORE_FORIN_BODY","AFTER_FOROF_FOR","BEFORE_FOROF_OF","AFTER_FOROF_FOR","BEFORE_FOROF_BODY","AFTER_FOR_FOR","BEFORE_FOR_INIT","AFTER_FOR_INIT","EMPTY_FOR_INIT","BEFORE_FOR_TEST","AFTER_FOR_TEST","EMPTY_FOR_TEST","BEFORE_FOR_UPDATE","AFTER_FOR_UPDATE","EMPTY_FOR_UPDATE","BEFORE_FOR_BODY","BEFORE_GENERATOR_STAR","AFTER_GENERATOR_STAR","BEFORE_FUNCTION_PARAMS","BEFORE_FUNCTION_DECLARATION_BODY","BEFORE_FUNCTION_EXPRESSION_BODY","AFTER_FUNCTION_DIRECTIVES","BEFORE_ARROW","AFTER_ARROW","AFTER_GET","BEFORE_GET_PARAMS","BEFORE_GET_BODY","AFTER_IF","AFTER_IF_TEST","BEFORE_ELSE","AFTER_ELSE","PARAMETER_BEFORE_COMMA","PARAMETER_AFTER_COMMA","NAMED_IMPORT_BEFORE_COMMA","NAMED_IMPORT_AFTER_COMMA","IMPORT_BEFORE_COMMA","IMPORT_AFTER_COMMA","BEFORE_IMPORT_BINDINGS","BEFORE_IMPORT_MODULE","AFTER_IMPORT_BINDINGS","AFTER_FROM","BEFORE_IMPORT_NAMESPACE","BEFORE_IMPORT_STAR","AFTER_IMPORT_STAR","AFTER_IMPORT_AS","AFTER_NAMESPACE_BINDING","BEFORE_IMPORT_AS","AFTER_IMPORT_AS","EXPORTS_BEFORE_COMMA","EXPORTS_AFTER_COMMA","BEFORE_EXPORT_STAR","AFTER_EXPORT_STAR","BEFORE_EXPORT_BINDINGS","AFTER_EXPORT_FROM_BINDINGS","AFTER_EXPORT_LOCAL_BINDINGS","AFTER_EXPORT","EXPORT_DEFAULT","AFTER_EXPORT_DEFAULT","BEFORE_EXPORT_AS","AFTER_EXPORT_AS","BEFORE_LABEL_COLON","AFTER_LABEL_COLON","AFTER_METHOD_GENERATOR_STAR","AFTER_METHOD_ASYNC","AFTER_METHOD_NAME","BEFORE_METHOD_BODY","AFTER_MODULE_DIRECTIVES","AFTER_NEW","BEFORE_NEW_ARGS","EMPTY_NEW_CALL","NEW_TARGET_BEFORE_DOT","NEW_TARGET_AFTER_DOT","RETURN","AFTER_SET","BEFORE_SET_PARAMS","BEFORE_SET_BODY","AFTER_SCRIPT_DIRECTIVES","BEFORE_STATIC_MEMBER_DOT","AFTER_STATIC_MEMBER_DOT","BEFORE_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT","AFTER_STATIC_MEMBER_ASSIGNMENT_TARGET_DOT","BEFORE_CASE_TEST","AFTER_CASE_TEST","BEFORE_CASE_BODY","AFTER_CASE_BODY","DEFAULT","AFTER_DEFAULT_BODY","BEFORE_SWITCH_DISCRIM","BEFORE_SWITCH_BODY","TEMPLATE_TAG","BEFORE_TEMPLATE_EXPRESSION","AFTER_TEMPLATE_EXPRESSION","THROW","AFTER_TRY","BEFORE_CATCH","BEFORE_FINALLY","AFTER_FINALLY","VARIABLE_DECLARATION","YIELD","BEFORE_YIELD_STAR","AFTER_YIELD_STAR","DECLARATORS_BEFORE_COMMA","DECLARATORS_AFTER_COMMA","BEFORE_INIT_EQUALS","AFTER_INIT_EQUALS","AFTER_WHILE","BEFORE_WHILE_BODY","AFTER_WITH","BEFORE_WITH_BODY","PAREN_AVOIDING_DIRECTIVE_BEFORE","PAREN_AVOIDING_DIRECTIVE_AFTER","PRECEDENCE_BEFORE","PRECEDENCE_AFTER","EXPRESSION_PAREN_BEFORE","EXPRESSION_PAREN_AFTER","CALL_PAREN_BEFORE","CALL_PAREN_AFTER","CALL_PAREN_EMPTY","CATCH_PAREN_BEFORE","CATCH_PAREN_AFTER","DO_WHILE_TEST_PAREN_BEFORE","DO_WHILE_TEST_PAREN_AFTER","EXPRESSION_STATEMENT_PAREN_BEFORE","EXPRESSION_STATEMENT_PAREN_AFTER","FOR_LET_PAREN_BEFORE","FOR_LET_PAREN_AFTER","FOR_IN_LET_PAREN_BEFORE","FOR_IN_LET_PAREN_AFTER","FOR_IN_PAREN_BEFORE","FOR_IN_PAREN_AFTER","FOR_OF_LET_PAREN_BEFORE","FOR_OF_LET_PAREN_AFTER","FOR_OF_PAREN_BEFORE","FOR_OF_PAREN_AFTER","PARAMETERS_PAREN_BEFORE","PARAMETERS_PAREN_AFTER","PARAMETERS_PAREN_EMPTY","ARROW_PARAMETERS_PAREN_BEFORE","ARROW_PARAMETERS_PAREN_AFTER","ARROW_PARAMETERS_PAREN_EMPTY","ARROW_BODY_PAREN_BEFORE","ARROW_BODY_PAREN_AFTER","BEFORE_ARROW_ASYNC_PARAMS","GETTER_PARAMS","IF_PAREN_BEFORE","IF_PAREN_AFTER","EXPORT_PAREN_BEFORE","EXPORT_PAREN_AFTER","NEW_CALLEE_PAREN_BEFORE","NEW_CALLEE_PAREN_AFTER","NEW_PAREN_BEFORE","NEW_PAREN_AFTER","NEW_PAREN_EMPTY","SETTER_PARAM_BEFORE","SETTER_PARAM_AFTER","SWITCH_DISCRIM_PAREN_BEFORE","SWITCH_DISCRIM_PAREN_AFTER","WHILE_TEST_PAREN_BEFORE","WHILE_TEST_PAREN_AFTER","WITH_PAREN_BEFORE","WITH_PAREN_AFTER","OBJECT_BRACE_INITIAL","OBJECT_BRACE_FINAL","OBJECT_EMPTY","BLOCK_BRACE_INITIAL","BLOCK_BRACE_FINAL","BLOCK_EMPTY","CLASS_BRACE_INITIAL","CLASS_BRACE_FINAL","CLASS_EMPTY","CLASS_EXPRESSION_BRACE_INITIAL","CLASS_EXPRESSION_BRACE_FINAL","CLASS_EXPRESSION_BRACE_EMPTY","FUNCTION_BRACE_INITIAL","FUNCTION_BRACE_FINAL","FUNCTION_EMPTY","FUNCTION_EXPRESSION_BRACE_INITIAL","FUNCTION_EXPRESSION_BRACE_FINAL","FUNCTION_EXPRESSION_EMPTY","ARROW_BRACE_INITIAL","ARROW_BRACE_FINAL","ARROW_BRACE_EMPTY","GET_BRACE_INTIAL","GET_BRACE_FINAL","GET_BRACE_EMPTY","MISSING_ELSE_INTIIAL","MISSING_ELSE_FINAL","MISSING_ELSE_EMPTY","IMPORT_BRACE_INTIAL","IMPORT_BRACE_FINAL","IMPORT_BRACE_EMPTY","EXPORT_BRACE_INITIAL","EXPORT_BRACE_FINAL","EXPORT_BRACE_EMPTY","METHOD_BRACE_INTIAL","METHOD_BRACE_FINAL","METHOD_BRACE_EMPTY","SET_BRACE_INTIIAL","SET_BRACE_FINAL","SET_BRACE_EMPTY","SWITCH_BRACE_INTIAL","SWITCH_BRACE_FINAL","SWITCH_BRACE_EMPTY","ARRAY_INITIAL","ARRAY_FINAL","COMPUTED_MEMBER_BRACKET_INTIAL","COMPUTED_MEMBER_BRACKET_FINAL","COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_INTIAL","COMPUTED_MEMBER_ASSIGNMENT_TARGET_BRACKET_FINAL","COMPUTED_PROPERTY_BRACKET_INTIAL","COMPUTED_PROPERTY_BRACKET_FINAL"];for(var i$1=0;i$1<separatorNames.length;++i$1)Sep[separatorNames[i$1]]={type:separatorNames[i$1]};Sep.BEFORE_ASSIGN_OP=function(o){return{type:"BEFORE_ASSIGN_OP",op:o}};Sep.AFTER_ASSIGN_OP=function(o){return{type:"AFTER_ASSIGN_OP",op:o}};Sep.BEFORE_BINOP=function(o){return{type:"BEFORE_BINOP",op:o}};Sep.AFTER_BINOP=function(o){return{type:"AFTER_BINOP",op:o}};Sep.BEFORE_POSTFIX=function(o){return{type:"BEFORE_POSTFIX",op:o}};Sep.UNARY=function(o){return{type:"UNARY",op:o}};Sep.AFTER_STATEMENT=function(o){return{type:"AFTER_STATEMENT",node:o}};Sep.BEFORE_FUNCTION_NAME=function(o){return{type:"BEFORE_FUNCTION_NAME",node:o}};formattedCodegen.Sep=Sep;var ExtensibleCodeGen=formattedCodegen.ExtensibleCodeGen=function(){function o(){_classCallCheck$2(this,o)}return _createClass$2(o,[{key:"parenToAvoidBeingDirective",value:function(s,a){return s&&s.type==="ExpressionStatement"&&s.expression.type==="LiteralStringExpression"?seq(this.paren(a.children[0],Sep.PAREN_AVOIDING_DIRECTIVE_BEFORE,Sep.PAREN_AVOIDING_DIRECTIVE_AFTER),this.semiOp()):a}},{key:"t",value:function(s){var a=arguments.length>1&&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)<a?this.paren(c,Sep.PRECEDENCE_BEFORE,Sep.PRECEDENCE_AFTER):c}},{key:"getAssignmentExpr",value:function(s){return s?s.containsGroup?this.paren(s,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER):s:empty$1()}},{key:"paren",value:function(s,a,c,d){return isEmpty(s)?new _coderep.Paren(this.sep(d)):new _coderep.Paren(seq(a?this.sep(a):empty$1(),s,c?this.sep(c):empty$1()))}},{key:"brace",value:function(s,a,c,d,_){return isEmpty(s)?new _coderep.Brace(this.sep(_)):new _coderep.Brace(seq(this.sep(c),s,this.sep(d)))}},{key:"bracket",value:function(s,a,c,d){return isEmpty(s)?new _coderep.Bracket(this.sep(d)):new _coderep.Bracket(seq(this.sep(a),s,this.sep(c)))}},{key:"commaSep",value:function(s,a,c){var d=this,_=!0;return s=s.map(function(b){return _?(_=!1,b):seq(d.sep(a),d.t(","),d.sep(c),b)}),seq.apply(void 0,_toConsumableArray$1(s))}},{key:"semiOp",value:function(){return new _coderep.SemiOp}},{key:"sep",value:function(){return empty$1()}},{key:"reduceArrayExpression",value:function(s,a){var c=this,d=a.elements;if(d.length===0)return this.bracket(empty$1(),null,null,Sep.ARRAY_EMPTY);var _=this.commaSep(d.map(function(b){return c.getAssignmentExpr(b)}),Sep.ARRAY_BEFORE_COMMA,Sep.ARRAY_AFTER_COMMA);return d.length>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;b<k;++b)if(s.elements[b].type==="TemplateElement"){var $="";b>0&&($+="}"),$+=s.elements[b].rawValue,b<k-1&&($+="${"),_=seq(_,this.t($))}else _=seq(_,this.sep(Sep.BEFORE_TEMPLATE_EXPRESSION),d[b],this.sep(Sep.AFTER_TEMPLATE_EXPRESSION));return _=seq(_,this.t("`")),s.tag!=null&&(_.startsWithCurly=c.startsWithCurly,_.startsWithLet=c.startsWithLet,_.startsWithLetSquareBracket=c.startsWithLetSquareBracket,_.startsWithFunctionOrClass=c.startsWithFunctionOrClass),_}},{key:"reduceTemplateElement",value:function(s){return this.t(s.rawValue)}},{key:"reduceThisExpression",value:function(){return this.t("this")}},{key:"reduceThrowStatement",value:function(s,a){var c=a.expression;return seq(this.t("throw"),this.sep(Sep.THROW),c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTryCatchStatement",value:function(s,a){var c=a.body,d=a.catchClause;return seq(this.t("try"),this.sep(Sep.AFTER_TRY),c,this.sep(Sep.BEFORE_CATCH),d,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceTryFinallyStatement",value:function(s,a){var c=a.body,d=a.catchClause,_=a.finalizer;return seq(this.t("try"),this.sep(Sep.AFTER_TRY),c,d?seq(this.sep(Sep.BEFORE_CATCH),d):empty$1(),this.sep(Sep.BEFORE_FINALLY),this.t("finally"),this.sep(Sep.AFTER_FINALLY),_,this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceYieldExpression",value:function(s,a){var c=a.expression;return s.expression==null?this.t("yield"):(0,_objectAssign2.default)(seq(this.t("yield"),this.sep(Sep.YIELD),this.p(s.expression,(0,_coderep.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceYieldGeneratorExpression",value:function(s,a){var c=a.expression;return(0,_objectAssign2.default)(seq(this.t("yield"),this.sep(Sep.BEFORE_YIELD_STAR),this.t("*"),this.sep(Sep.AFTER_YIELD_STAR),this.p(s.expression,(0,_coderep.getPrecedence)(s),c)),{containsIn:c.containsIn})}},{key:"reduceDirective",value:function(s){var a=s.rawValue.match(/(^|[^\\])(\\\\)*"/)?"'":'"';return seq(this.t(a+s.rawValue+a),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceVariableDeclaration",value:function(s,a){var c=a.declarators;return seq(this.t(s.kind),this.sep(Sep.VARIABLE_DECLARATION),this.commaSep(c,Sep.DECLARATORS_BEFORE_COMMA,Sep.DECLARATORS_AFTER_COMMA))}},{key:"reduceVariableDeclarationStatement",value:function(s,a){var c=a.declaration;return seq(c,this.semiOp(),this.sep(Sep.AFTER_STATEMENT(s)))}},{key:"reduceVariableDeclarator",value:function(s,a){var c=a.binding,d=a.init,_=d&&d.containsIn&&!d.containsGroup;return d&&(d.containsGroup?d=this.paren(d,Sep.EXPRESSION_PAREN_BEFORE,Sep.EXPRESSION_PAREN_AFTER):d=markContainsIn(d)),(0,_objectAssign2.default)(d==null?c:seq(c,this.sep(Sep.BEFORE_INIT_EQUALS),this.t("="),this.sep(Sep.AFTER_INIT_EQUALS),d),{containsIn:_})}},{key:"reduceWhileStatement",value:function(s,a){var c=a.test,d=a.body;return(0,_objectAssign2.default)(seq(this.t("while"),this.sep(Sep.AFTER_WHILE),this.paren(c,Sep.WHILE_TEST_PAREN_BEFORE,Sep.WHILE_TEST_PAREN_AFTER),this.sep(Sep.BEFORE_WHILE_BODY),d,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d.endsWithMissingElse})}},{key:"reduceWithStatement",value:function(s,a){var c=a.object,d=a.body;return(0,_objectAssign2.default)(seq(this.t("with"),this.sep(Sep.AFTER_WITH),this.paren(c,Sep.WITH_PAREN_BEFORE,Sep.WITH_PAREN_AFTER),this.sep(Sep.BEFORE_WITH_BODY),d,this.sep(Sep.AFTER_STATEMENT(s))),{endsWithMissingElse:d.endsWithMissingElse})}}]),o}();function withoutTrailingLinebreak(o){if(o&&o instanceof _coderep.Seq){for(var e=o.children[o.children.length-1];e instanceof _coderep.Empty;)o.children.pop(),e=o.children[o.children.length-1];e instanceof _coderep.Seq?withoutTrailingLinebreak(e):e instanceof Linebreak&&o.children.pop()}return o}function indent(o,e){var s=void 0;function a(c){c instanceof Linebreak&&(s=c,++c.indentation)}return o.forEach(a),e||--s.indentation,o}formattedCodegen.FormattedCodeGen=function(o){_inherits$1(e,o);function e(){return _classCallCheck$2(this,e),_possibleConstructorReturn$1(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return _createClass$2(e,[{key:"parenToAvoidBeingDirective",value:function(a,c){return a&&a.type==="ExpressionStatement"&&a.expression.type==="LiteralStringExpression"?seq(this.paren(c.children[0],Sep.PAREN_AVOIDING_DIRECTIVE_BEFORE,Sep.PAREN_AVOIDING_DIRECTIVE_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(a))):c}},{key:"brace",value:function(a,c){if(isEmpty(a))return this.t("{}");switch(c.type){case"ObjectAssignmentTarget":case"ObjectBinding":case"Import":case"ExportFrom":case"ExportLocals":case"ObjectExpression":return new _coderep.Brace(a)}return a=seq(new Linebreak,a),indent(a,!1),new _coderep.Brace(a)}},{key:"reduceDoWhileStatement",value:function(a,c){var d=c.body,_=c.test;return seq(this.t("do"),this.sep(Sep.AFTER_DO),withoutTrailingLinebreak(d),this.sep(Sep.BEFORE_DOWHILE_WHILE),this.t("while"),this.sep(Sep.AFTER_DOWHILE_WHILE),this.paren(_,Sep.DO_WHILE_TEST_PAREN_BEFORE,Sep.DO_WHILE_TEST_PAREN_AFTER),this.semiOp(),this.sep(Sep.AFTER_STATEMENT(a)))}},{key:"reduceIfStatement",value:function(a,c){var d=c.test,_=c.consequent,b=c.alternate;return b&&_.endsWithMissingElse&&(_=this.brace(_,a)),(0,_objectAssign2.default)(seq(this.t("if"),this.sep(Sep.AFTER_IF),this.paren(d,Sep.IF_PAREN_BEFORE,Sep.IF_PAREN_AFTER),this.sep(Sep.AFTER_IF_TEST),withoutTrailingLinebreak(_),b?seq(this.sep(Sep.BEFORE_ELSE),this.t("else"),this.sep(Sep.AFTER_ELSE),withoutTrailingLinebreak(b)):empty$1(),this.sep(Sep.AFTER_STATEMENT(a))),{endsWithMissingElse:b?b.endsWithMissingElse:!0})}},{key:"reduceSwitchCase",value:function(a,c){var d=c.test,_=c.consequent;return _=indent(withoutTrailingLinebreak(seq.apply(void 0,[this.sep(Sep.BEFORE_CASE_BODY)].concat(_toConsumableArray$1(_)))),!0),seq(this.t("case"),this.sep(Sep.BEFORE_CASE_TEST),d,this.sep(Sep.AFTER_CASE_TEST),this.t(":"),_,this.sep(Sep.AFTER_CASE_BODY))}},{key:"reduceSwitchDefault",value:function(a,c){var d=c.consequent;return d=indent(withoutTrailingLinebreak(seq.apply(void 0,[this.sep(Sep.BEFORE_CASE_BODY)].concat(_toConsumableArray$1(d)))),!0),seq(this.t("default"),this.sep(Sep.DEFAULT),this.t(":"),d,this.sep(Sep.AFTER_DEFAULT_BODY))}},{key:"sep",value:function(a){switch(a.type){case"AWAIT":case"AFTER_FORAWAIT_AWAIT":case"ARRAY_AFTER_COMMA":case"OBJECT_AFTER_COMMA":case"ARGS_AFTER_COMMA":case"PARAMETER_AFTER_COMMA":case"DECLARATORS_AFTER_COMMA":case"NAMED_IMPORT_AFTER_COMMA":case"IMPORT_AFTER_COMMA":case"BEFORE_DEFAULT_EQUALS":case"AFTER_DEFAULT_EQUALS":case"AFTER_PROP":case"BEFORE_JUMP_LABEL":case"BEFORE_CATCH_BINDING":case"AFTER_CATCH_BINDING":case"BEFORE_CLASS_NAME":case"BEFORE_EXTENDS":case"AFTER_EXTENDS":case"BEFORE_CLASS_DECLARATION_ELEMENTS":case"BEFORE_CLASS_EXPRESSION_ELEMENTS":case"AFTER_STATIC":case"BEFORE_TERNARY_QUESTION":case"AFTER_TERNARY_QUESTION":case"BEFORE_TERNARY_COLON":case"AFTER_TERNARY_COLON":case"AFTER_DO":case"BEFORE_DOWHILE_WHILE":case"AFTER_DOWHILE_WHILE":case"AFTER_FORIN_FOR":case"BEFORE_FORIN_IN":case"BEFORE_FORIN_BODY":case"BEFORE_FOROF_OF":case"AFTER_FOROF_FOR":case"BEFORE_FOROF_BODY":case"AFTER_FOR_FOR":case"BEFORE_FOR_TEST":case"BEFORE_FOR_UPDATE":case"BEFORE_FOR_BODY":case"BEFORE_FUNCTION_DECLARATION_BODY":case"BEFORE_FUNCTION_EXPRESSION_BODY":case"BEFORE_ARROW":case"AFTER_ARROW":case"BEFORE_ARROW_ASYNC_PARAMS":case"AFTER_GET":case"BEFORE_GET_BODY":case"AFTER_IF":case"AFTER_IF_TEST":case"BEFORE_ELSE":case"AFTER_ELSE":case"BEFORE_IMPORT_BINDINGS":case"BEFORE_IMPORT_MODULE":case"AFTER_IMPORT_BINDINGS":case"AFTER_FROM":case"BEFORE_IMPORT_NAMESPACE":case"BEFORE_IMPORT_STAR":case"AFTER_IMPORT_STAR":case"AFTER_NAMESPACE_BINDING":case"BEFORE_IMPORT_AS":case"AFTER_IMPORT_AS":case"EXPORTS_AFTER_COMMA":case"BEFORE_EXPORT_STAR":case"AFTER_EXPORT_STAR":case"BEFORE_EXPORT_BINDINGS":case"AFTER_EXPORT_FROM_BINDINGS":case"AFTER_EXPORT":case"AFTER_EXPORT_DEFAULT":case"BEFORE_EXPORT_AS":case"AFTER_EXPORT_AS":case"AFTER_LABEL_COLON":case"AFTER_METHOD_ASYNC":case"BEFORE_METHOD_BODY":case"AFTER_NEW":case"RETURN":case"AFTER_SET":case"BEFORE_SET_BODY":case"BEFORE_SET_PARAMS":case"BEFORE_CASE_TEST":case"BEFORE_SWITCH_DISCRIM":case"BEFORE_SWITCH_BODY":case"THROW":case"AFTER_TRY":case"BEFORE_CATCH":case"BEFORE_FINALLY":case"AFTER_FINALLY":case"VARIABLE_DECLARATION":case"YIELD":case"AFTER_YIELD_STAR":case"BEFORE_INIT_EQUALS":case"AFTER_INIT_EQUALS":case"AFTER_WHILE":case"BEFORE_WHILE_BODY":case"AFTER_WITH":case"BEFORE_WITH_BODY":case"BEFORE_FUNCTION_NAME":case"AFTER_BINOP":case"BEFORE_ASSIGN_OP":case"AFTER_ASSIGN_OP":return this.t(" ");case"AFTER_STATEMENT":switch(a.node.type){case"ForInStatement":case"ForOfStatement":case"ForStatement":case"WhileStatement":case"WithStatement":return empty$1();default:return new Linebreak}case"AFTER_CLASS_ELEMENT":case"BEFORE_CASE_BODY":case"AFTER_CASE_BODY":case"AFTER_DEFAULT_BODY":return new Linebreak;case"BEFORE_BINOP":return a.op===","?empty$1():this.t(" ");case"UNARY":return a.op==="delete"||a.op==="void"||a.op==="typeof"?this.t(" "):empty$1();default:return empty$1()}}}]),e}(ExtensibleCodeGen);var withLocation={},tokenStream={},unicode={};Object.defineProperty(unicode,"__esModule",{value:!0});unicode.whitespaceArray=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];unicode.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.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.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.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.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(tokenStream,"__esModule",{value:!0});tokenStream.TokenStream=void 0;var _createClass$1=function(){function o(e,s){for(var a=0;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}();tokenStream.needsDoubleDot=needsDoubleDot;var _unicode=unicode;function _toConsumableArray(o){if(Array.isArray(o)){for(var e=0,s=Array(o.length);e<o.length;e++)s[e]=o[e];return s}else return Array.from(o)}function _classCallCheck$1(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function isIdentifierPartES6(o){var e=o.charCodeAt(0);return e<128?_unicode.idContinueBool[e]:_unicode.idContinueLargeRegex.test(o)}function needsDoubleDot(o){return o.indexOf(".")<0&&o.indexOf("e")<0&&o.indexOf("x")<0}function renderNumber(o){var e=void 0;return o>=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;a<s.length;a++){var c=s[a];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}return function(e,s,a){return s&&o(e.prototype,s),a&&o(e,a),e}}(),_get=function o(e,s,a){e===null&&(e=Function.prototype);var c=Object.getOwnPropertyDescriptor(e,s);if(c===void 0){var d=Object.getPrototypeOf(e);return d===null?void 0:o(d,s,a)}else{if("value"in c)return c.value;var _=c.get;return _===void 0?void 0:_.call(a)}};withLocation.default=codeGenWithLocation;var _shiftReducer=dist$4,_tokenStream=tokenStream,_minimalCodegen=minimalCodegen,_minimalCodegen2=_interopRequireDefault(_minimalCodegen);function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _classCallCheck(o,e){if(!(o instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(o,e){if(!o)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:o}function _inherits(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);o.prototype=Object.create(e&&e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(o,e):o.__proto__=e)}function mightHaveSemi(o){return/(Import)|(Export)|(Statement)|(Directive)|(SwitchCase)|(SwitchDefault)/.test(o)}var TokenStreamWithLocation=function(o){_inherits(e,o);function e(){_classCallCheck(this,e);var s=_possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return s.line=1,s.column=0,s.startingNodes=[],s.finishingStatements=[],s.lastNumberNode=null,s.locations=new WeakMap,s}return _createClass(e,[{key:"putRaw",value:function(a){var c=this.result.length;_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"putRaw",this).call(this,a),this.startNodes(a,c)}},{key:"put",value:function(a,c){if(this.optionalSemi&&a!=="}"){var d=!0,_=!1,b=void 0;try{for(var k=this.finishingStatements[Symbol.iterator](),$;!(d=($=k.next()).done);d=!0){var j=$.value;++j.end.column,++j.end.offset}}catch(tt){_=!0,b=tt}finally{try{!d&&k.return&&k.return()}finally{if(_)throw b}}}if(this.finishingStatements=[],this.lastNumber!==null&&a==="."&&(0,_tokenStream.needsDoubleDot)(this.lastNumber)){var _e=this.locations.get(this.lastNumberNode).end;++_e.column,++_e.offset}this.lastNumberNode=null;var et=this.result.length;_get(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"put",this).call(this,a,c),this.startNodes(a,et)}},{key:"startNodes",value:function(a,c){for(var d=/\r\n?|[\n\u2028\u2029]/g,_=!1,b=void 0,k=this.line,$=this.column;b=d.exec(a);)++this.line,this.column=a.length-b.index-b[0].length,_=!0;_||(this.column+=this.result.length-c,$=this.column-a.length);var j=!0,_e=!1,et=void 0;try{for(var tt=this.startingNodes[Symbol.iterator](),nt;!(j=(nt=tt.next()).done);j=!0){var st=nt.value;this.locations.set(st,{start:{line:k,column:$,offset:this.result.length-a.length},end:null})}}catch(rt){_e=!0,et=rt}finally{try{!j&&tt.return&&tt.return()}finally{if(_e)throw et}}this.startingNodes=[]}},{key:"startEmit",value:function(a){this.startingNodes.push(a)}},{key:"finishEmit",value:function(a){this.locations.get(a).end={line:this.line,column:this.column,offset:this.result.length},mightHaveSemi(a.type)&&this.finishingStatements.push(this.locations.get(a))}}]),e}(_tokenStream.TokenStream);function addLocation(o,e){var s=o.emit.bind(o);return e.type==="Script"||e.type==="Module"?o.emit=function(a){for(var c=arguments.length,d=Array(c>1?c-1:0),_=1;_<c;_++)d[_-1]=arguments[_];a.locations.set(e,{start:{line:1,column:0,offset:0},end:null}),s.apply(void 0,[a].concat(d)),a.locations.get(e).end={line:a.line,column:a.column,offset:a.result.length}}:e.type==="LiteralNumericExpression"?o.emit=function(a){for(var c=arguments.length,d=Array(c>1?c-1:0),_=1;_<c;_++)d[_-1]=arguments[_];a.startEmit(e),s.apply(void 0,[a].concat(d)),a.finishEmit(e),a.lastNumberNode=e}:o.emit=function(a){for(var c=arguments.length,d=Array(c>1?c-1:0),_=1;_<c;_++)d[_-1]=arguments[_];a.startEmit(e),s.apply(void 0,[a].concat(d)),a.finishEmit(e)},o}function addLocationToReducer(o){var e=(0,_shiftReducer.adapt)(addLocation,o),s=e.regenerateArrowParams.bind(e);e.regenerateArrowParams=function(c,d){var _=s(c,d);return _!==d&&addLocation(_,c),_};var a=e.parenToAvoidBeingDirective.bind(e);return e.parenToAvoidBeingDirective=function(c,d){var _=a(c,d);return _!==d&&addLocation(_,c),_},e}function codeGenWithLocation(o){var e=arguments.length>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,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(Ot({},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(_),codegen(_)};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;o<extend.length;o++)extend[o]+=extend[o-1];function isExtendingChar(o){for(let e=1;e<extend.length;e+=2)if(extend[e]>o)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<o.length;){let c=codePointAt(o,e);if(a==ZWJ||c==ZWJ||s&&isExtendingChar(c))e+=codePointSize(c),a=c;else if(isRegionalIndicator(c)){let d=0,_=e-2;for(;_>=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<e)return a;e--}return 0}function surrogateLow(o){return o>=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<s;)o.charCodeAt(c)==9?(a+=e-a%e,c++):(a++,c=findClusterBreak(o,c));return a}function findColumn(o,e,s,a){for(let c=0,d=0;;){if(d>=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=`
|
|
`){let c="";for(let d=0,_=0;d<=s&&_<this.text.length;_++){let b=this.text[_],k=d+b.length;d>e&&_&&(c+=a),e<k&&s>d&&(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<this.children.length;d++){let b=this.children[d],k=_+b.length;if(e<=k&&s>=_){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<this.lines)for(let c=0,d=0;c<this.children.length;c++){let _=this.children[c],b=d+_.length;if(e>=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;d<this.children.length&&_<=s;d++){let b=this.children[d],k=_+b.length;_>e&&d&&(c+=a),e<k&&s>_&&(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<o.length&&c<=a;d++){let b=o[d],k=c+b.length;k>=s&&(k>a&&(b=b.slice(0,a-c)),c<s&&(b=b.slice(s-c)),_?(e[e.length-1]+=b,_=!1):e.push(b)),c=k+1}return e}function sliceText(o,e,s){return appendText(o,[""],e,s)}class RawTextCursor{constructor(e,s=1){this.dir=s,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[s>0?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;s<this.sections.length;s+=2)e+=this.sections[s];return e}get newLength(){let e=0;for(let s=0;s<this.sections.length;s+=2){let a=this.sections[s+1];e+=a<0?this.sections[s]:a}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let s=0,a=0,c=0;s<this.sections.length;){let d=this.sections[s++],_=this.sections[s++];_<0?(e(a,c,d),c+=d):c+=_,a+=d}}iterChangedRanges(e,s=!1){iterChanges(this,e,s)}get invertedDesc(){let e=[];for(let s=0;s<this.sections.length;){let a=this.sections[s++],c=this.sections[s++];c<0?e.push(a,c):e.push(c,a)}return new ChangeDesc(e)}composeDesc(e){return this.empty?e:e.empty?this:composeSets(this,e)}mapDesc(e,s=!1){return e.empty?this:mapSet(this,e,s)}mapPos(e,s=-1,a=MapMode.Simple){let c=0,d=0;for(let _=0;_<this.sections.length;){let b=this.sections[_++],k=this.sections[_++],$=c+b;if(k<0){if($>e)return d+(e-c);d+=b}else{if(a!=MapMode.Simple&&$>=e&&(a==MapMode.TrackDel&&c<e&&$>e||a==MapMode.TrackBefore&&c<e||a==MapMode.TrackAfter&&$>e))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<this.sections.length&&c<=s;){let d=this.sections[a++],_=this.sections[a++],b=c+d;if(_>=0&&c<=s&&b>=e)return c<e&&b>s?"cover":!0;c=b}return!1}toString(){let e="";for(let s=0;s<this.sections.length;){let a=this.sections[s++],c=this.sections[s++];e+=(e?" ":"")+a+(c>=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<s.length;c+=2){let _=s[c],b=s[c+1];if(b>=0){s[c]=b,s[c+1]=_;let k=c>>1;for(;a.length<k;)a.push(Text.empty);a.push(_?e.slice(d,d+_):Text.empty)}d+=_}return new ChangeSet(s,a)}compose(e){return this.empty?e:e.empty?this:composeSets(this,e,!0)}map(e,s=!1){return e.empty?this:mapSet(this,e,s,!0)}iterChanges(e,s=!1){iterChanges(this,e,s)}get desc(){return new ChangeDesc(this.sections)}filter(e){let s=[],a=[],c=[],d=new SectionIter(this);e:for(let _=0,b=0;;){let k=_==e.length?1e9:e[_++];for(;b<k||b==k&&d.len==0;){if(d.done)break e;let j=Math.min(d.len,k-b);addSection(c,j,-1);let _e=d.ins==-1?-1:d.off==0?d.ins:0;addSection(s,j,_e),_e>0&&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<this.sections.length;s+=2){let a=this.sections[s],c=this.sections[s+1];c<0?e.push(a):c==0?e.push([a]):e.push([a].concat(this.inserted[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;_<s&&addSection(c,s-_,-1);let _e=new ChangeSet(c,d);b=b?b.compose(_e.map(b)):_e,c=[],d=[],_=0}function $(j){if(Array.isArray(j))for(let _e of j)$(_e);else if(j instanceof ChangeSet){if(j.length!=s)throw new RangeError(`Mismatched change set length (got ${j.length}, expected ${s})`);k(),b=b?b.compose(j.map(b)):j}else{let{from:_e,to:et=_e,insert:tt}=j;if(_e>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;c<e.length;c++){let d=e[c];if(typeof d=="number")s.push(d,-1);else{if(!Array.isArray(d)||typeof d[0]!="number"||d.some((_,b)=>b&&typeof _!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(d.length==1)s.push(d[0],0);else{for(;a.length<c;)a.push(Text.empty);a[c]=Text.of(d.slice(1)),s.push(d[0],a[c].length)}}}return new ChangeSet(s,a)}}function addSection(o,e,s,a=!1){if(e==0&&s<=0)return;let c=o.length-2;c>=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<o.length)o[o.length-1]=o[o.length-1].append(s);else{for(;o.length<a;)o.push(Text.empty);o.push(s)}}function iterChanges(o,e,s){let a=o.inserted;for(let c=0,d=0,_=0;_<o.sections.length;){let b=o.sections[_++],k=o.sections[_++];if(k<0)c+=b,d+=b;else{let $=c,j=d,_e=Text.empty;for(;$+=b,j+=k,k&&a&&(_e=_e.append(a[_-2>>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&&$<k){let j=Math.min(b.len,k-$);b.forward(j),addSection(c,j,-1),$+=j}else if(b.ins>=0&&(_.done||$<k||$==k&&(b.len<_.len||b.len==_.len&&!s))){for(addSection(c,b.ins,-1);k>$&&!_.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<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,s=this.i-2>>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;s<this.ranges.length;s++)if(!this.ranges[s].eq(e.ranges[s]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main])}addRange(e,s=!0){return EditorSelection.create([e].concat(this.ranges),s?0:this.mainIndex+1)}replaceRange(e,s=this.mainIndex){let a=this.ranges.slice();return a[s]=e,EditorSelection.create(a,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.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;c<e.length;c++){let d=e[c];if(d.empty?d.from<=a:d.from<a)return normalized(e.slice(),s);a=d.to}return new EditorSelection(e,s)}static cursor(e,s=0,a,c){return new SelectionRange(e,e,(s==0?0:s<0?4:8)|(a==null?3:Math.min(2,a))|(c!=null?c:33554431)<<5)}static range(e,s,a){let c=(a!=null?a:33554431)<<5;return s<e?new SelectionRange(s,e,16|c|8):new SelectionRange(e,s,c|(s>e?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;a<o.length;a++){let c=o[a],d=o[a-1];if(c.empty?c.from<=d.to:c.from<d.to){let _=d.from,b=Math.max(c.to,d.to);a<=e&&e--,o.splice(--a,2,c.anchor>c.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 st=getAddr(et,nt);if(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;a<o.length;a++)if(!s(o[a],e[a]))return!1;return!0}function dynamicFacetSlot(o,e,s){let a=s.map(k=>o[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;j<a.length;j++){let _e=getAddr(k,a[j]);if(c[j]==2)for(let et of _e)$.push(et);else $.push(_e)}return e.combine($)}return{create(k){for(let $ of a)ensureAddr(k,$);return k.values[_]=b(k),1},update(k,$){if(!d.some(_e=>ensureAddr(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<a.length;)this.statusTemplate.push(0)}staticFacet(e){let s=this.address[e.id];return s==null?e.default:this.staticValues[s>>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,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.length&&(c==e.length||e[c]>=o[a]))d=o[a++],_=o[a++];else if(c<e.length)d=e[c++],_=e[c++];else return s;!s.length||s[s.length-1]<d?s.push(d,_):s[s.length-1]<_&&(s[s.length-1]=_)}}function mergeTransaction(o,e,s){var a;let c,d,_;return s?(c=e.changes,d=ChangeSet.empty(e.changes.length),_=o.changes.compose(e.changes)):(c=e.changes.map(o.changes),d=o.changes.mapDesc(e.changes,!0),_=o.changes.compose(c)),{changes:_,selection:e.selection?e.selection.map(d):(a=o.selection)===null||a===void 0?void 0:a.map(c),effects:StateEffect.mapEffects(o.effects,c).concat(StateEffect.mapEffects(e.effects,d)),annotations:o.annotations.length?o.annotations.concat(e.annotations):e.annotations,scrollIntoView:o.scrollIntoView||e.scrollIntoView}}function resolveTransactionInner(o,e,s){let a=e.selection,c=asArray$1(e.annotations);return e.userEvent&&(c=c.concat(Transaction.userEvent.of(e.userEvent))),{changes:e.changes instanceof ChangeSet?e.changes:ChangeSet.of(e.changes||[],s,o.facet(lineSeparator)),selection:a&&(a instanceof EditorSelection?a:EditorSelection.single(a.anchor,a.head)),effects:asArray$1(e.effects),annotations:c,scrollIntoView:!!e.scrollIntoView}}function resolveTransaction(o,e,s){let a=resolveTransactionInner(o,e.length?e[0]:{},o.doc.length);e.length&&e[0].filter===!1&&(s=!1);for(let d=1;d<e.length;d++){e[d].filter===!1&&(s=!1);let _=!!e[d].sequential;a=mergeTransaction(a,resolveTransactionInner(o,e[d],_?a.changes.newLength:o.doc.length),_)}let c=new Transaction(o,a.changes,a.selection,a.effects,a.annotations,a.scrollIntoView);return extendTransaction(s?filterTransaction(c):c)}function filterTransaction(o){let e=o.startState,s=!0;for(let c of e.facet(changeFilter)){let d=c(o);if(d===!1){s=!1;break}Array.isArray(d)&&(s=s===!0?d:joinRanges(s,d))}if(s!==!0){let c,d;if(s===!1)d=o.changes.invertedDesc,c=ChangeSet.empty(e.doc.length);else{let _=o.changes.filter(s);c=_.changes,d=_.filtered.invertedDesc}o=new Transaction(e,c,o.selection&&o.selection.map(d),StateEffect.mapEffects(o.effects,d),o.annotations,o.scrollIntoView)}let a=e.facet(transactionFilter);for(let c=a.length-1;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<o.length;e++){let s=o[e];if(/\w/.test(s)||s>"\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<o.length;s++)if(e.indexOf(o[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;b<this.config.dynamicSlots.length;b++)ensureAddr(this,b<<1);this.computeSlot=null}field(e,s=!0){let a=this.config.address[e.id];if(a==null){if(s)throw new RangeError("Field is not present in this state");return}return ensureAddr(this,a),getAddr(this,a)}update(...e){return resolveTransaction(this,e,!0)}applyTransaction(e){let s=this.config,{base:a,compartments:c}=s;for(let _ of e.effects)_.is(Compartment.reconfigure)?(s&&(c=new Map,s.compartments.forEach((b,k)=>c.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<s.ranges.length;b++){let k=e(s.ranges[b]),$=this.changes(k.changes),j=$.map(c);for(let et=0;et<b;et++)d[et]=d[et].map(j);let _e=c.mapDesc($,!0);d.push(k.range.map(_e)),c=c.compose(j),_=StateEffect.mapEffects(_,j).concat(StateEffect.mapEffects(asArray$1(k.effects),_e))}return{changes:c,selection:EditorSelection.create(d,s.mainIndex),effects:_}}changes(e=[]){return e instanceof ChangeSet?e:ChangeSet.of(e,this.doc.length,this.facet(EditorState.lineSeparator))}toText(e){return Text.of(e.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(e=0,s=this.doc.length){return this.doc.sliceString(e,s,this.lineBreak)}facet(e){let s=this.config.address[e.id];return s==null?e.default:(ensureAddr(this,s),getAddr(this,s))}toJSON(e){let s={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let a in e){let c=e[a];c instanceof StateField&&(s[a]=c.spec.toJSON(this.field(e[a]),this))}return s}static fromJSON(e,s={},a){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let c=[];if(a)for(let d in a){let _=a[d],b=e[d];c.push(_.init(k=>_.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(;b<c;){let k=findClusterBreak(s,b);if(d(s.slice(b,k))!=CharCategory.Word)break;b=k}return _==b?null:EditorSelection.range(_+a,b+a)}}EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=Facet.define({combine:o=>o.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(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<e.length;d++){let _=e[d],b=this.modules.indexOf(_);if(b<c&&b>-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<b;)a+=this.modules[c++].rules.length;a+=_.rules.length,c++}}if(!s){let d="";for(let _=0;_<this.modules.length;_++)d+=this.modules[_].getRules()+`
|
|
`;this.styleTag.textContent=d}}}class RangeValue{eq(e){return this==e}range(e,s=e){return new Range$1(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}}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;k<this.value.length;k++){let $=this.value[k],j=this.from[k]+e,_e=this.to[k]+e,et,tt;if(j==_e){let nt=s.mapPos(j,$.startSide,$.mapMode);if(nt==null||(et=tt=nt,$.startSide!=$.endSide&&(tt=s.mapPos(j,$.endSide),tt<et)))continue}else if(et=s.mapPos(j,$.startSide),tt=s.mapPos(_e,$.endSide),et>tt||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<s.length;)if(k<s.length&&(b.from-s[k].from||b.startSide-s[k].value.startSide)>=0){let _e=s[k++];j.addInner(_e.from,_e.to,_e.value)||$.push(_e)}else b.rangeIndex==1&&b.chunkIndex<this.chunk.length&&(k==s.length||this.chunkEnd(b.chunkIndex)<s[k].from)&&(!_||c>this.chunkEnd(b.chunkIndex)||d<this.chunkPos[b.chunkIndex])&&j.addChunk(this.chunkPos[b.chunkIndex],this.chunk[b.chunkIndex])?b.nextChunk():((!_||c>b.to||d<b.from||_(b.from,b.to,b.value))&&(j.addInner(b.from,b.to,b.value)||$.push(new Range$1(b.from,b.to,b.value))),b.next());return j.finishInner(this.nextLayer.isEmpty&&!$.length?RangeSet.empty:this.nextLayer.update({add:$,filter:_,filterFrom:c,filterTo:d}))}map(e){if(e.empty||this.isEmpty)return this;let s=[],a=[],c=-1;for(let _=0;_<this.chunk.length;_++){let b=this.chunkPos[_],k=this.chunk[_],$=e.touchesRange(b,b+k.length);if($===!1)c=Math.max(c,k.maxPoint),s.push(k),a.push(e.mapPos(b));else if($===!0){let{mapped:j,pos:_e}=k.map(b,e);j&&(c=Math.max(c,j.maxPoint),s.push(j),a.push(_e))}}let d=this.nextLayer.map(e);return s.length==0?d:new RangeSet(a,s,d,c)}between(e,s,a){if(!this.isEmpty){for(let c=0;c<this.chunk.length;c++){let d=this.chunkPos[c],_=this.chunk[c];if(s>=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;s<o.length;s++){let a=o[s];if(cmpRange(e,a)>0)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;_<d.chunk.length;_++)d.chunk[_].maxPoint<=0&&a.set(d.chunk[_],d.chunkPos[_]);let c=new Set;for(let d of e)for(let _=0;_<d.chunk.length;_++){let b=a.get(d.chunk[_]);b!=null&&(s?s.mapPos(b):b)==d.chunkPos[_]&&!(s!=null&&s.touchesRange(b,b+d.chunk[_].length))&&c.add(d.chunk[_])}return c}class LayerCursor{constructor(e,s,a,c=0){this.layer=e,this.skip=s,this.minPoint=a,this.rank=c}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,s=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,s,!1),this}gotoInner(e,s,a){for(;this.chunkIndex<this.layer.chunk.length;){let c=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(c)||this.layer.chunkEnd(this.chunkIndex)<e||c.maxPoint<this.minPoint))break;this.chunkIndex++,a=!1}if(this.chunkIndex<this.layer.chunk.length){let c=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],s,!0);(!a||this.rangeIndex<c)&&this.setRangeIndex(c)}this.next()}forward(e,s){(this.to-e||this.endSide-s)<0&&this.gotoInner(e,s,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],s=this.layer.chunk[this.chunkIndex],a=e+s.from[this.rangeIndex];if(this.from=a,this.to=e+s.to[this.rangeIndex],this.value=s.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class HeapCursor{constructor(e){this.heap=e}static from(e,s=null,a=-1){let c=[];for(let d=0;d<e.length;d++)for(let _=e[d];!_.isEmpty;_=_.nextLayer)_.maxPoint>=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<o.length&&c.compare(o[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<this.activeRank.length&&this.activeRank[s]<=d;)s++;insert(this.active,s,a),insert(this.activeTo,s,c),insert(this.activeRank,s,d),e&&insert(e,s,this.cursor.from),this.minActive=findMinIndex(this.active,this.activeTo)}next(){let e=this.to,s=this.point;this.point=null;let a=this.openStart<0?[]:null,c=0;for(;;){let d=this.minActive;if(d>-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<this.cursor.to)this.cursor.next();else if(!this.filterPoint(this.cursor.from,this.cursor.to,this.cursor.value,this.cursor.rank))this.cursor.next();else{this.point=_,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=_.endSide,this.cursor.from<e&&(c=1),this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(a){let d=0;for(;d<a.length&&a[d]<e;)d++;this.openStart=d+c}}activeForPoint(e){if(!this.active.length)return this.active;let s=[];for(let a=this.active.length-1;a>=0&&!(this.activeRank[a]<this.pointRank);a--)(this.activeTo[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<o.length;s++)if(o[s]!=e[s]&&!o[s].eq(e[s]))return!1;return!0}function remove(o,e){for(let s=e,a=o.length-1;s<a;s++)o[s]=o[s+1];o.pop()}function insert(o,e,s){for(let a=o.length-1;a>=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.length;c++)(e[c]-a||o[c].endSide-o[s].endSide)<0&&(s=c,a=e[c]);return s}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;s<e.length;){let a=e[s++],c=e[s++],d=e[s++];a.scrollTop!=c&&(a.scrollTop=c),a.scrollLeft!=d&&(a.scrollLeft=d)}}}let scratchRange;function textRange(o,e,s=e){let a=scratchRange||(scratchRange=document.createRange());return a.setEnd(o,s),a.setStart(o,e),a}function dispatchKey(o,e,s){let a={key:e,code:e,keyCode:s,which:s,cancelable:!0},c=new KeyboardEvent("keydown",a);c.synthetic=!0,o.dispatchEvent(c);let d=new KeyboardEvent("keyup",a);return d.synthetic=!0,o.dispatchEvent(d),c.defaultPrevented||d.defaultPrevented}function getRoot(o){for(;o;){if(o&&(o.nodeType==9||o.nodeType==11&&o.host))return o;o=o.assignedSlot||o.parentNode}return null}function clearAttributes(o){for(;o.attributes.length;)o.removeAttributeNode(o.attributes[0])}class DOMPos{constructor(e,s,a=!0){this.node=e,this.offset=s,this.precise=a}static before(e,s){return new DOMPos(e.parentNode,domIndex(e),s)}static after(e,s){return new DOMPos(e.parentNode,domIndex(e)+1,s)}}const noChildren=[];class ContentView{constructor(){this.parent=null,this.dom=null,this.dirty=2}get editorView(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let s=this.posAtStart;for(let a of this.children){if(a==e)return s;s+=a.length+a.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}coordsAt(e,s){return null}sync(e){if(this.dirty&2){let s=this.dom,a=null,c;for(let d of this.children){if(d.dirty){if(!d.dom&&(c=a?a.nextSibling:s.firstChild)){let _=ContentView.get(c);(!_||!_.parent&&_.constructor==d.constructor)&&d.reuseDOM(c)}d.sync(e),d.dirty=0}if(c=a?a.nextSibling:s.firstChild,e&&!e.written&&e.node==s&&c!=d.dom&&(e.written=!0),d.dom.parentNode==s)for(;c&&c!=d.dom;)c=rm$1(c);else s.insertBefore(d.dom,c);a=d.dom}for(c=a?a.nextSibling:s.firstChild,c&&e&&e.node==s&&(e.written=!0);c;)c=rm$1(c)}else if(this.dirty&1)for(let s of this.children)s.dirty&&(s.sync(e),s.dirty=0)}reuseDOM(e){}localPosFromDOM(e,s){let a;if(e==this.dom)a=this.dom.childNodes[s];else{let c=maxOffset(e)==0?0:s==0?-1:1;for(;;){let d=e.parentNode;if(d==this.dom)break;c==0&&d.firstChild!=d.lastChild&&(e==d.firstChild?c=-1:c=1),e=d}c<0?a=e:a=e.nextSibling}if(a==this.dom.firstChild)return 0;for(;a&&!ContentView.get(a);)a=a.nextSibling;if(!a)return this.length;for(let c=0,d=0;;c++){let _=this.children[c];if(_.dom==a)return d;d+=_.length+_.breakAfter}}domBoundsAround(e,s,a=0){let c=-1,d=-1,_=-1,b=-1;for(let k=0,$=a,j=a;k<this.children.length;k++){let _e=this.children[k],et=$+_e.length;if($<e&&et>s)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:_<this.children.length&&_>=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;c<s;c++){let d=this.children[c];d.parent==this&&d.destroy()}this.children.splice(e,s-e,...a);for(let c=0;c<a.length;c++)a[c].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new ChildCursor(this.children,e,this.children.length)}childPos(e,s=1){return this.childCursor().findPos(e,s)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}merge(e,s,a,c,d,_){return!1}become(e){return!1}getSide(){return 0}destroy(){this.parent=null}}ContentView.prototype.breakAfter=0;function rm$1(o){let e=o.nextSibling;return o.parentNode.removeChild(o),e}class ChildCursor{constructor(e,s,a){this.children=e,this.pos=s,this.i=a,this.off=0}findPos(e,s=1){for(;;){if(e>this.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&&c<tt.length?(e==a&&(tt=tt.split(c),c=0),!et&&_e&&tt.merge(0,c,_e,!0,0,k)?d[d.length-1]=tt:(c&&tt.merge(0,c,null,!1,0,k),d.push(tt))):tt!=null&&tt.breakAfter&&(_e?_e.breakAfter=1:_=1),a++}for(j&&(j.breakAfter=_,s>0&&(!_&&d.length&&j.merge(s,j.length,d[0],!1,b,0)?j.breakAfter=d.shift().breakAfter:(s<j.length||j.children.length&&j.children[j.children.length-1].length==0)&&j.merge(s,j.length,null,!1,b,0),e++));e<a&&d.length;)if($[a-1].become(d[d.length-1]))a--,d.pop(),k=d.length?0:b;else if($[e].become(d[0]))e++,d.shift(),b=d.length?0:k;else break;!d.length&&e&&a<$.length&&!$[e-1].breakAfter&&$[a].merge(0,0,$[e-1],!1,b,k)&&e--,(e<a||d.length)&&o.replaceChildren(e,a,d)}}function mergeChildrenInto(o,e,s,a,c,d){let _=o.childCursor(),{i:b,off:k}=_.findPos(s,1),{i:$,off:j}=_.findPos(e,-1),_e=e-s;for(let et of a)_e+=et.length;o.length+=_e,replaceRange(o,$,j,b,k,a,0,c,d)}let nav=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""},doc=typeof document!="undefined"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent),ie_upto10=/MSIE \d/.test(nav.userAgent),ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent),ie=!!(ie_upto10||ie_11up||ie_edge),gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent),chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent),webkit="webkitFontSmoothing"in doc.documentElement.style,safari=!ie&&/Apple Computer/.test(nav.vendor),ios$1=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);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||s<this.length&&_<=0)?!1:(mergeChildrenInto(this,e,s,a?a.children:[],d-1,_-1),this.markDirty(),!0)}split(e){let s=[],a=0,c=-1,d=0;for(let b of this.children){let k=a+b.length;k>e&&s.push(a<e?b.split(e-a):b),c<0&&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||s<this.length&&_<=0)?!1:(this.length=e+(a?a.length:0)+(this.length-s),!0)}become(e){return e.length==this.length&&e instanceof WidgetView&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.eq(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return Text.empty;let e=this;for(;e.parent;)e=e.parent;let s=e.editorView,a=s&&s.state.doc,c=this.posAtStart;return a?a.slice(c,c+this.length):Text.empty}domAtPos(e){return e==0?DOMPos.before(this.dom):DOMPos.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,s){let a=this.dom.getClientRects(),c=null;if(!a.length)return Rect0;for(let d=e>0?a.length-1:0;c=a[d],!(e>0?d==0:d==a.length-1||c.top<c.bottom);d+=e>0?-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(o<k||o==k&&_.getSide()<=0)return b?scanCompositionTree(o,e,_,a,c,d):c(_,o,e);o-=k}return c(s,s.length,-1)}else return s.dom==a?d(o,e):c(s,o,e)}function posFromDOMInCompositionTree(o,e,s,a){if(s instanceof MarkView)for(let c of s.children){let d=0,_=contains(c.dom,a);if(contains(c.dom,o))return d+(_?posFromDOMInCompositionTree(o,e,c,a):c.localPosFromDOM(o,e));d+=_?a.nodeValue.length:c.length}else if(s.dom==a)return Math.min(e,a.nodeValue.length);return s.localPosFromDOM(o,e)}class WidgetBufferView extends ContentView{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof WidgetBufferView&&e.side==this.side}split(){return new WidgetBufferView(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return DOMPos.before(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){let s=this.dom.getBoundingClientRect(),a=inlineSiblingRect(this,this.side>0?-1:1);return a&&a.top<s.bottom&&a.bottom>s.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:a<s.children.length){let c=s.children[a+e];if(c instanceof TextView){let d=c.coordsAt(e<0?c.length:0,e);if(d)return d}a+=e}else if(s instanceof MarkView&&s.parent)a=s.parent.children.indexOf(s)+(e<0?0:1),s=s.parent;else{let c=s.dom.lastChild;if(c&&c.nodeName=="BR")return c.getClientRects()[0];break}}function inlineDOMAtPos(o,e,s){let a=0;for(let c=0;a<e.length;a++){let d=e[a],_=c+d.length;if(!(_==c&&d.getSide()<=0)){if(s>c&&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;_<o.children.length;_++){let b=o.children[_],k=d+b.length,$;if((s<=0||k==o.length||b.getSide()>0?k>=e:k>e)&&(e<k||_+1==o.children.length||($=o.children[_+1]).length||$.getSide()>0)){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<this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&this.widget.estimatedHeight>=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;d<this.children.length;d++)s.append(this.children[d],0);for(;a>0&&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<e.children.length;a++){let d=e.children[a],_=c+d.length;if(_>=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||s<this.length&&_<=0)?!1:(this.length=e+(a?a.length:0)+(this.length-s),!0)}domAtPos(e){return e==0?DOMPos.before(this.dom):DOMPos.after(this.dom,e==this.length)}split(e){let s=this.length-e;this.length=e;let a=new BlockWidgetView(this.widget,s,this.type);return a.breakAfter=this.breakAfter,a}get children(){return noChildren}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")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Text.empty}domBoundsAround(){return null}become(e){return e instanceof BlockWidgetView&&e.type==this.type&&e.widget.constructor==this.widget.constructor?(e.widget.eq(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class ContentBuilder{constructor(e,s,a,c){this.doc=e,this.pos=s,this.end=a,this.disallowBlockEffectsBelow=c,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=s}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!e.breakAfter&&!(e instanceof BlockWidgetView&&e.type==BlockType.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new LineView),this.atCursorPos=!0),this.curLine}flushBuffer(e){this.pendingBuffer&&(this.curLine.append(wrapMarks(new WidgetBufferView(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer([]),this.curLine=null,this.content.push(e)}finish(e){e?this.pendingBuffer=0:this.flushBuffer([]),this.posCovered()||this.getLine()}buildText(e,s,a){for(;e>0;){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&&(e<s||a.startSide>0),$=!b.isEditable&&(e<s||a.startSide<=0),j=this.getLine();this.pendingBuffer==2&&!k&&(this.pendingBuffer=0),this.flushBuffer(c),k&&(j.append(wrapMarks(new WidgetBufferView(1),c),d),d=c.length+Math.max(0,d-c.length)),j.append(wrapMarks(b,c),d),this.atCursorPos=$,this.pendingBuffer=$?e<s?1:2:0}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(a);_&&(this.textOff+_<=this.text.length?this.textOff+=_:(this.skip+=_-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=s),this.openStart<0&&(this.openStart=d)}filterPoint(e,s,a,c){if(c<this.disallowBlockEffectsBelow&&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")}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.toA<a.fromA)break;a=a.join(c),e.splice(s-1,1)}}return e.splice(s,0,a),e}static extendWithRanges(e,s){if(s.length==0)return e;let a=[];for(let c=0,d=0,_=0,b=0;;c++){let k=c==e.length?null:e[c],$=_-b,j=k?k.fromB:1e9;for(;d<s.length&&s[d]<j;){let _e=s[d],et=s[d+1],tt=Math.max(b,_e),nt=Math.min(j,et);if(tt<=nt&&new ChangedRange(tt+$,nt+$,tt,nt).addToSet(a),et>j)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<o.length;s++)e.push(1<<+o[s]);return e}const LowTypes=dec("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),ArabicTypes=dec("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Brackets=Object.create(null),BracketStack=[];for(let o of["()","[]","{}"]){let e=o.charCodeAt(0),s=o.charCodeAt(1);Brackets[e]=s,Brackets[s]=-e}function charType(o){return o<=247?LowTypes[o]:1424<=o&&o<=1524?2:1536<=o&&o<=1785?ArabicTypes[o-1536]:1774<=o&&o<=2220?4:8192<=o&&o<=8203||o==8204?256:1}const BidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;class BidiSpan{constructor(e,s,a){this.from=e,this.to=s,this.level=a}get dir(){return this.level%2?RTL:LTR}side(e,s){return this.dir==s==e?this.to:this.from}static find(e,s,a,c){let d=-1;for(let _=0;_<e.length;_++){let b=e[_];if(b.from<=s&&b.to>=s){if(b.level==a)return _;(d<0||(c!=0?c<0?b.from<s:b.to>s: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;_<s;_++){let $=charType(o.charCodeAt(_));$==512?$=b:$==8&&k==4&&($=16),types[_]=$==4?2:$,$&7&&(k=$),b=$}for(let _=0,b=a,k=a;_<s;_++){let $=types[_];if($==128)_<s-1&&b==types[_+1]&&b&24?$=types[_]=b:types[_]=256;else if($==64){let j=_+1;for(;j<s&&types[j]==64;)j++;let _e=_&&b==8||j<s&&types[j]==8?k==1?1:8:256;for(let et=_;et<j;et++)types[et]=_e;_=j-1}else $==8&&k==1&&(types[_]=1);b=$,$&7&&(k=$)}for(let _=0,b=0,k=0,$,j,_e;_<s;_++)if(j=Brackets[$=o.charCodeAt(_)])if(j<0){for(let et=b-3;et>=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;_<s;_++)if(types[_]==256){let b=_+1;for(;b<s&&types[b]==256;)b++;let k=(_?types[_-1]:a)==1,$=(b<s?types[b]:a)==1,j=k==$?k?1:2:a;for(let _e=_;_e<b;_e++)types[_e]=j;_=b-1}let d=[];if(a==1)for(let _=0;_<s;){let b=_,k=types[_++]!=1;for(;_<s&&k==(types[_]!=1);)_++;if(k)for(let $=_;$>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;_<s;){let b=_,k=types[_++]==2;for(;_<s&&k==(types[_]==2);)_++;d.push(new BidiSpan(b,_,k?1:2))}return d}function trivialOrder(o){return[new BidiSpan(0,o,0)]}let movedOver="";function moveVisually(o,e,s,a,c){var d;let _=a.head-o.from,b=-1;if(_==0){if(!c||!o.length)return null;e[0].level!=s&&(_=e[0].side(!1,s),b=0)}else if(_==o.length){if(c)return null;let et=e[e.length-1];et.level!=s&&(_=et.side(!0,s),b=e.length-1)}b<0&&(b=BidiSpan.find(e,_,(d=a.bidiLevel)!==null&&d!==void 0?d:-1,a.assoc));let k=e[b];_==k.side(c,s)&&(k=e[b+=c?1:-1],_=k.side(!c,s));let $=c==(k.dir==s),j=findClusterBreak(o.text,_,$);if(movedOver=o.text.slice(Math.min(_,j),Math.max(_,j)),j!=k.side(c,s))return EditorSelection.cursor(j+o.from,$?-1:1,k.level);let _e=b==(c?e.length-1:0)?null:e[b+(c?1:-1)];return!_e&&k.level!=s?EditorSelection.cursor(c?o.to:o.from,c?-1:1,s):_e&&_e.level<k.level?EditorSelection.cursor(_e.side(!c,s)+o.from,c?1:-1,_e.level):EditorSelection.cursor(j+o.from,c?-1:1,k.level)}const LineBreakPlaceholder="\uFFFF";class DOMReader{constructor(e,s){this.points=e,this.text="",this.lineSeparator=s.facet(EditorState.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=LineBreakPlaceholder}readRange(e,s){if(!e)return this;let a=e.parentNode;for(let c=e;;){this.findPointBefore(a,c),this.readNode(c);let d=c.nextSibling;if(d==s)break;let _=ContentView.get(c),b=ContentView.get(d);(_&&b?_.breakAfter:(_?_.breakAfter:isBlockElement(c))||isBlockElement(d)&&(c.nodeName!="BR"||c.cmIgnore))&&this.lineBreak(),c=d}return this.findPointBefore(a,s),this}readTextNode(e){let s=e.nodeValue;for(let a of this.points)a.node==e&&(a.pos=this.text.length+Math.min(a.offset,s.length));for(let a=0,c=this.lineSeparator?null:/\r\n?|\n/g;;){let d=-1,_=1,b;if(this.lineSeparator?(d=s.indexOf(this.lineSeparator,a),_=this.lineSeparator.length):(b=c.exec(s))&&(d=b.index,_=b[0].length),this.append(s.slice(a,d<0?s.length:d)),d<0)break;if(this.lineBreak(),_>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})=>b<this.minWidthFrom||_>this.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<this.view.state.doc.length)for(let d of this.children)d instanceof BlockWidgetView&&d.widget instanceof BlockGapWidget&&c.push(d.dom);a.updateGaps(c)}updateChildren(e,s){let a=this.childCursor(s);for(let c=e.length-1;;c--){let d=c>=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: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.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<this.children.length-1;){let c=this.children[s];if(a<c.length||c instanceof LineView)break;s++,a=0}return this.children[s].domAtPos(a)}coordsAt(e,s){for(let a=this.length,c=this.children.length-1;;c--){let d=this.children[c],_=a-d.breakAfter-d.length;if(e>_||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;k<this.children.length;k++){let $=this.children[k],j=b+$.length;if(j>a)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],st=this.view.textDirection==Direction.LTR?nt.right-_e.left:_e.right-nt.left;st>_&&(_=st,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.head<s.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==Direction.LTR)}}function betweenUneditable(o){return o.node.nodeType==1&&o.node.firstChild&&(o.offset==0||o.node.childNodes[o.offset-1].contentEditable=="false")&&(o.offset==o.node.childNodes.length||o.node.childNodes[o.offset].contentEditable=="false")}class BlockGapWidget extends WidgetType{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function compositionSurroundingNode(o){let e=o.observer.selectionRange,s=e.focusNode&&nearbyTextNode(e.focusNode,e.focusOffset,0);if(!s)return null;let a=o.docView.nearest(s);if(!a)return null;if(a instanceof LineView){let c=s;for(;c.parentNode!=a.dom;)c=c.parentNode;let d=c.previousSibling;for(;d&&!ContentView.get(d);)d=d.previousSibling;let _=d?ContentView.get(d).posAtEnd:a.posAtStart;return{from:_,to:_,node:c,text:s}}else{for(;;){let{parent:d}=a;if(!d)return null;if(d instanceof LineView)break;a=d}let c=a.posAtStart;return{from:c,to:c+a.length,node:a.dom,text:s}}}function computeCompositionDeco(o,e){let s=compositionSurroundingNode(o);if(!s)return Decoration.none;let{from:a,to:c,node:d,text:_}=s,b=e.mapPos(a,1),k=Math.max(b,e.mapPos(c,-1)),{state:$}=o,j=d.nodeType==3?d.nodeValue:new DOMReader([],$).readRange(d.firstChild,null).text;if(k-b<j.length)if($.doc.sliceString(b,Math.min($.doc.length,b+j.length),LineBreakPlaceholder)==j)k=b+j.length;else if($.doc.sliceString(Math.max(0,k-j.length),k,LineBreakPlaceholder)==j)b=k-j.length;else return Decoration.none;else if($.doc.sliceString(b,k,LineBreakPlaceholder)!=j)return Decoration.none;let _e=ContentView.get(d);return _e instanceof CompositionView?_e=_e.widget.topView:_e&&(_e.parent=null),Decoration.set(Decoration.replace({widget:new CompositionWidget(d,_,_e)}).range(b,k))}class CompositionWidget extends WidgetType{constructor(e,s,a){super(),this.top=e,this.text=s,this.topView=a}eq(e){return this.top==e.top&&this.text==e.text}toDOM(){return this.top}ignoreEvent(){return!1}get customView(){return CompositionView}}function nearbyTextNode(o,e,s){for(;;){if(o.nodeType==3)return o;if(o.nodeType==1&&e>0&&s<=0)o=o.childNodes[e-1],e=maxOffset(o);else if(o.nodeType==1&&e<o.childNodes.length&&s>=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)|(e<o.childNodes.length&&o.childNodes[e].contentEditable=="false"?2:0)}class DecorationComparator$1{constructor(){this.changes=[]}compareRange(e,s){addRange(e,s,this.changes)}comparePoint(e,s){addRange(e,s,this.changes)}}function findChangedDeco(o,e,s){let a=new DecorationComparator$1;return RangeSet.compare(o,e,s,a),a.changes}function inUneditable(o,e){for(let s=o;s&&s!=e;s=s.assignedSlot||s.parentNode)if(s.nodeType==1&&s.contentEditable=="false")return!0;return!1}function groupAt(o,e,s=1){let a=o.charCategorizer(e),c=o.doc.lineAt(e),d=e-c.from;if(c.length==0)return EditorSelection.cursor(e);d==0?s=1:d==c.length&&(s=-1);let _=d,b=d;s<0?_=findClusterBreak(c.text,d,!1):b=findClusterBreak(c.text,d);let k=a(c.text.slice(_,b));for(;_>0;){let $=findClusterBreak(c.text,_,!1);if(a(c.text.slice($,_))!=k)break;_=$}for(;b<c.length;){let $=findClusterBreak(c.text,b);if(a(c.text.slice(b,$))!=k)break;b=$}return EditorSelection.range(_+c.from,b+c.from)}function getdx(o,e){return e.left>o?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.top<e.bottom-1&&o.bottom>e.top+1}function upTop(o,e){return e<o.top?{top:e,left:o.left,right:o.right,bottom:o.bottom}:o}function upBot(o,e){return e>o.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 st=0;st<nt.length;st++){let rt=nt[st];c&&yOverlap(c,rt)&&(rt=upTop(upBot(rt,c.bottom),c.top));let it=getdx(e,rt),at=getdy(s,rt);if(it==0&&at==0)return tt.nodeType==3?domPosInText(tt,e,s):domPosAtCoords(tt,e,s);(!a||_>at||_==at&&d>it)&&(a=tt,c=rt,d=it,_=at),it==0?s>rt.bottom&&(!$||$.bottom<rt.bottom)?(b=tt,$=rt):s<rt.top&&(!j||j.top>rt.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;b<a;b++){let k=textRange(o,b,b+1).getClientRects();for(let $=0;$<k.length;$++){let j=k[$];if(j.top==j.bottom)continue;_||(_=e-j.left);let _e=(j.top>s?j.top-s:s-j.bottom)-1;if(j.left-1<=e&&j.right+1>=e&&_e<d){let et=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(_e<o.viewport.from)return o.viewport.from==0?0:a?null:posAtCoordsImprecise(o,_,k,e,s);if(_e>o.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,browser.safari&&isSuspiciousCaretResult(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 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,st=posAtCoords(o,{x:_e,y:nt},!1,d);if(nt<k.top||nt>k.bottom||(d<0?st<c:st>c))return EditorSelection.cursor(st,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.from<b&&(s=e.from>s.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()<this.lastEscPress+2e3)return!0;if(browser.android&&browser.chrome&&!s.synthetic&&(s.keyCode==13||s.keyCode==8))return e.observer.delayAndroidKey(s.key,s.keyCode),!0;let a;return browser.ios&&(a=PendingKeys.find(c=>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<c.length;d++){let _=c[d];if(_.left<=e.clientX&&_.right>=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 b<o.state.doc.length&&b==d.to&&b++,EditorSelection.range(_,b)}}let insideY=(o,e)=>o>=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;_<s.length;_++){let b=new FileReader;b.onerror=d,b.onload=()=>{/[\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<e.length;a++){let c=e[a];c<0?a++:this.heightSamples[Math.floor(c*10)]||(s=!0,this.heightSamples[Math.floor(c*10)]=!0)}return s}refresh(e,s,a,c,d,_){let b=wrappingWhiteSpace.indexOf(e)>-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.index<this.heights.length}}class BlockInfo{constructor(e,s,a,c,d){this.from=e,this.length=s,this.top=a,this.height=c,this.type=d}get to(){return this.from+this.length}get bottom(){return this.top+this.height}join(e){let s=(Array.isArray(this.type)?this.type:[this]).concat(Array.isArray(e.type)?e.type:[e]);return new BlockInfo(this.from,this.length+e.length,this.top,this.height+e.height,s)}moveY(e){return e?new BlockInfo(this.from,this.length,this.top+e,this.height,Array.isArray(this.type)?this.type.map(s=>s.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(c<d){let b=e[s++];b&&(c+=b.size)}else{let b=e[--a];b&&(d+=b.size)}let _=0;return e[s-1]==null?(_=1,s--):e[s]==null&&(_=1,a++),new HeightMapBranch(HeightMap.of(e.slice(0,s)),_,HeightMap.of(e.slice(a)))}}HeightMap.prototype.size=1;class HeightMapBlock extends HeightMap{constructor(e,s,a){super(e,s),this.type=a}blockAt(e,s,a,c){return new BlockInfo(c,this.length,a,this.height,this.type)}lineAt(e,s,a,c,d){return this.blockAt(0,a,c,d)}forEachLine(e,s,a,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 e<d?this.left.blockAt(e,s,a,c):this.right.blockAt(e,s,d,c+this.left.length+this.break)}lineAt(e,s,a,c,d){let _=c+this.left.height,b=d+this.left.length+this.break,k=s==QueryType$1.ByHeight?e<_:e<b,$=k?this.left.lineAt(e,s,a,c,d):this.right.lineAt(e,s,a,_,b);if(this.break||(k?$.to<b:$.from>b))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.left.forEachLine(e,s,a,c,d,_),s>=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(s<c)return this.balanced(this.left.replace(e,s,a),this.right);if(e>this.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<this.length){let b=d.length;this.decomposeRight(s,d),mergeGaps(d,b)}return HeightMap.of(d)}decomposeLeft(e,s){let a=this.left.length;if(e<=a)return this.left.decomposeLeft(e,s);s.push(this.left),this.break&&(a++,e>=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);e<a&&this.left.decomposeRight(e,s),this.break&&e<c&&s.push(null),s.push(this.right)}balanced(e,s){return e.size>2*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<s||a.heightRelevant){let c=a.widget?a.widget.estimatedHeight:0;c<0&&(c=this.oracle.lineHeight);let d=s-e;a.block?this.addBlock(new HeightMapBlock(d,c,a.type)):(d||c>=relevantWidgetHeight)&&this.addLineDeco(c,d)}else s>e&&this.span(e,s);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:s}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=s,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&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<this.pos||s==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let a=e;for(let c of this.nodes)c instanceof HeightMapText&&c.updateHeight(this.oracle,a),a+=c?c.length:1;return this.nodes}static build(e,s,a,c){let d=new NodeBuilder(a,e);return RangeSet.spans(s,a,c,d,0),d.finish(a)}}function heightRelevantDecoChanges(o,e,s){let a=new DecorationComparator;return RangeSet.compare(o,e,s,a,0),a.changes}class DecorationComparator{constructor(){this.changes=[]}compareRange(){}comparePoint(e,s,a,c){(e<s||a&&a.heightRelevant||c&&c.heightRelevant)&&addRange(e,s,this.changes,5)}}function visiblePixelRange(o,e){let s=o.getBoundingClientRect(),a=Math.max(0,s.left),c=Math.min(innerWidth,s.right),d=Math.max(0,s.top),_=Math.min(innerHeight,s.bottom),b=o.ownerDocument.body;for(let k=o.parentNode;k&&k!=b;)if(k.nodeType==1){let $=k,j=window.getComputedStyle($);if(($.scrollHeight>$.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;a<e.length;a++){let c=e[a],d=s[a];if(c.from!=d.from||c.to!=d.to||c.size!=d.size)return!1}return!0}draw(e){return Decoration.replace({widget:new LineGapWidget(this.size,e)}).range(this.from,this.to)}}class LineGapWidget extends WidgetType{constructor(e,s){super(),this.size=e,this.vertical=s}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class ViewState{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.heightOracle=new HeightOracle,this.scaler=IdScaler,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1,this.heightMap=HeightMap.empty().applyChanges(e.facet(decorations),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){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.head<k.from||s.range.head>k.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 it=parseInt(a.paddingTop)||0,at=parseInt(a.paddingBottom)||0;(this.paddingTop!=it||this.paddingBottom!=at)&&($|=8,this.paddingTop=it,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 st=s.clientWidth;if((this.contentDOMWidth!=st||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=st,this.editorHeight=e.scrollDOM.clientHeight,$|=8),k){let it=e.docView.measureVisibleLineHeights();if(c.mustRefreshForHeights(it)&&(b=!0),b||c.lineWrapping&&Math.abs(st-this.contentDOMWidth)>c.charWidth){let{lineHeight:at,charWidth:ot}=e.docView.measureTextSize();b=c.refresh(d,_,at,ot,st/ot,it),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,it)),c.heightChanged&&($|=2)}let rt=!this.viewportIsAppropriate(this.viewport,j)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.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.from||$>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"&&$<k.from?et=_e.top:et=_e.bottom-j,k=new Viewport(c.lineAt(et-1e3/2,QueryType$1.ByHeight,d,0,0).from,c.lineAt(et+j+1e3/2,QueryType$1.ByHeight,d,0,0).to)}}return k}mapViewport(e,s){let a=s.mapPos(e.from,-1),c=s.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(a,QueryType$1.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(c,QueryType$1.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:s},a=0){if(!this.inView)return!0;let{top:c}=this.heightMap.lineAt(e,QueryType$1.ByPos,this.state.doc,0,0),{bottom:d}=this.heightMap.lineAt(s,QueryType$1.ByPos,this.state.doc,0,0),{visibleTop:_,visibleBottom:b}=this;return(e==0||c<=_-Math.max(10,Math.min(-a,250)))&&(s==this.state.doc.length||d>=b+Math.max(10,Math.min(a,250)))&&c>_-2*1e3&&d<b+2*1e3}mapLineGaps(e,s){if(!e.length||s.empty)return e;let a=[];for(let c of e)s.touchesRange(c.from,c.to)||a.push(new LineGap(s.mapPos(c.from),s.mapPos(c.to),c.size));return a}ensureLineGaps(e){let s=[];if(this.heightOracle.direction!=Direction.LTR)return s;for(let a of this.viewportLines){if(a.length<4e3)continue;let c=lineStructure(a.from,a.to,this.state);if(c.total<4e3)continue;let d,_;if(this.heightOracle.lineWrapping){let $=2e3/this.heightOracle.lineLength*this.heightOracle.lineHeight;d=findPosition(c,(this.visibleTop-a.top-$)/a.height),_=findPosition(c,(this.visibleBottom-a.top+$)/a.height)}else{let $=c.total*this.heightOracle.charWidth,j=2e3*this.heightOracle.charWidth;d=findPosition(c,(this.pixelViewport.left-j)/$),_=findPosition(c,(this.pixelViewport.right+j)/$)}let b=[];d>a.from&&b.push({from:a.from,to:d}),_<a.to&&b.push({from:_,to:a.to});let k=this.state.selection.main;k.from>=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<e&&(a.push({from:c,to:e}),d+=e-c),{total:d,ranges:a}}function findPosition({total:o,ranges:e},s){if(s<=0)return e[0].from;if(s>=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;a<o.length;a++){let c=o[a];if(c.from<s&&c.to>e){let d=[];c.from<e&&d.push({from:c.from,to:e}),c.to>s&&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=s<this.viewports.length?this.viewports[s]:null;if(!d||e<d.top)return c+(e-a)*this.scale;if(e<=d.bottom)return d.domTop+(e-d.top);a=d.bottom,c=d.domBottom}}fromDOM(e){for(let s=0,a=0,c=0;;s++){let d=s<this.viewports.length?this.viewports[s]:null;if(!d||e<d.domTop)return a+(e-c)/this.scale;if(e<=d.domBottom)return d.top+(e-d.domTop);a=d.bottom,c=d.domBottom}}}function scaleBlock(o,e){if(e.scale==1)return o;let s=e.toDOM(o.top),a=e.toDOM(o.bottom);return new BlockInfo(o.from,o.length,s,a-s,Array.isArray(o.type)?o.type.map(c=>scaleBlock(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<Date.now()-75&&this.onResize()}),this.resize.observe(e.scrollDOM)),window.addEventListener("beforeprint",this.onPrint=this.onPrint.bind(this)),this.start(),window.addEventListener("scroll",this.onScroll=this.onScroll.bind(this)),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(c=>{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<this.scrollTargets.length&&this.scrollTargets[e]==a?e++:s||(s=this.scrollTargets.slice(0,e)),s&&s.push(a),a=a.assignedSlot||a.parentNode;else if(a.nodeType==11)a=a.host;else break;if(e<this.scrollTargets.length&&!s&&(s=this.scrollTargets.slice(0,e)),s){for(let a of this.scrollTargets)a.removeEventListener("scroll",this.onScroll);for(let a of this.scrollTargets=s)a.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,observeOptions),useCharData&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){!this.active||(this.active=!1,this.observer.disconnect(),useCharData&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,s){this.delayedAndroidKey||requestAnimationFrame(()=>{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=_.from<c.from?b.sliceDoc(_.from,c.from):"",et=_.to>c.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";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(;d<c&&o.charCodeAt(d)==e.charCodeAt(d);)d++;if(d==c&&o.length==e.length)return null;let _=o.length,b=e.length;for(;_>0&&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&&o.length<e.length?(d-=s<=d&&s>=_?d-s:0,b=d+(b-_),_=d):b<d&&(d-=s<=d&&s>=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<this.plugins.length;c++)this.plugins[c].update(this)}measure(e=!0){if(this.destroyed)return;this.measureScheduled>-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;s<this.measureRequests.length;s++)if(this.measureRequests[s].key===e.key){this.measureRequests[s]=e;return}}this.measureRequests.push(e)}}pluginField(e){let s=[];for(let a of this.plugins)a.update(this).takeField(e,s);return s}plugin(e){let s=this.pluginMap.get(e);return(s===void 0||s&&s.spec!=e)&&this.pluginMap.set(e,s=this.plugins.find(a=>a.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<e.length;d++){let _=e[d];_.dir==c&&!s.touchesRange(_.from,_.to)&&a.push(new CachedOrder(s.mapPos(_.from,1),s.mapPos(_.to,-1),_.dir,_.order))}return a}}function attrsFromFacet(o,e,s){for(let a=o.state.facet(e),c=a.length-1;c>=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;k<s.length-1;++k){const $=s[k];if(/^(cmd|meta|m)$/i.test($))b=!0;else if(/^a(lt)?$/i.test($))c=!0;else if(/^(c|ctrl|control)$/i.test($))d=!0;else if(/^s(hift)?$/i.test($))_=!0;else if(/^mod$/i.test($))e=="mac"?b=!0:d=!0;else throw new Error("Unrecognized modifier name: "+$)}return c&&(a="Alt-"+a),d&&(a="Ctrl-"+a),b&&(a="Meta-"+a),_&&(a="Shift-"+a),a}function modifiers(o,e,s){return e.altKey&&(o="Alt-"+o),e.ctrlKey&&(o="Ctrl-"+o),e.metaKey&&(o="Meta-"+o),s!==!1&&e.shiftKey&&(o="Shift-"+o),o}const handleKeyEvents=EditorView.domEventHandlers({keydown(o,e){return runHandlers(getKeymap(e.state),o,e,"editor")}}),keymap=Facet.define({enables:handleKeyEvents}),Keymaps=new WeakMap;function getKeymap(o){let e=o.facet(keymap),s=Keymaps.get(e);return s||Keymaps.set(e,s=buildKeymap(e.reduce((a,c)=>a.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=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(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.bottom<ht.top&&o.elementAtHeight((ot.bottom+ht.top)/2).type==BlockType.Text&&(ot.bottom=ht.top=(ot.bottom+ht.top)/2),rt(ot).concat(ct).concat(rt(ht))}function st(ot,ht,ct,lt){return new Piece(ot-b.left,ht-b.top-.01,ct-ot,lt-ht+.01,"cm-selectionBackground")}function rt({top:ot,bottom:ht,horizontal:ct}){let lt=[];for(let ut=0;ut<ct.length;ut+=2)lt.push(st(ct[ut],ot,ct[ut+1],ht));return lt}function it(ot,ht,ct){let lt=1e9,ut=-1e9,pt=[];function dt(ft,mt,Et,vt,At){let _t=o.coordsAtPos(ft,ft==ct.to?-2:2),Dt=o.coordsAtPos(Et,Et==ct.from?2:-2);lt=Math.min(_t.top,Dt.top,lt),ut=Math.max(_t.bottom,Dt.bottom,ut),At==Direction.LTR?pt.push(c&&mt?$:_t.left,c&&vt?j:Dt.right):pt.push(!c&&vt?$:Dt.left,!c&&mt?j:_t.right)}let gt=ot!=null?ot:ct.from,yt=ht!=null?ht:ct.to;for(let ft of o.visibleRanges)if(ft.to>gt&&ft.from<yt)for(let mt=Math.max(ft.from,gt),Et=Math.min(ft.to,yt);;){let vt=o.state.doc.lineAt(mt);for(let At of o.bidiSpans(vt)){let _t=At.from+vt.from,Dt=At.to+vt.from;if(_t>=Et)break;Dt>mt&&dt(Math.max(_t,mt),ot==null&&_t<=gt,Math.min(Dt,Et),ht==null&&Dt>=yt,At.dir)}if(mt=vt.to+1,mt>=Et)break}return pt.length==0&&dt(gt,ot==null,yt,ht==null,o.textDirection),{top:lt,bottom:ut,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&&b<e.view.viewport.to&&(a=Math.min(b,a),c=Math.max(k,c))}),e.viewportChanged||c-a>1e3?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.to<b?e.state.doc.lineAt(b):k,j=Math.max(d.from,k.from),_e=Math.min(d.to,$.to);if(this.boundary){for(;_>k.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,st,rt)=>et.push(this.getDeco(rt,e,nt).range(nt,st)));s=s.update({filterFrom:j,filterTo:_e,filter:(nt,st)=>nt<j||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\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<s.length;){let $=s[k++],j=s[k++];b>=$&&_<=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.prevTime<c&&isAdjacent(b.changes,e.changes)||a=="input.type.compose")?_=updateBranch(_,_.length-1,d,new HistEvent(e.changes.compose(b.changes),conc(e.effects,b.effects),b.mapped,b.startSelection,none$1)):_=updateBranch(_,_.length,d,e),new HistoryState(_,none$1,s,a)}addSelection(e,s,a,c){let d=this.done.length?this.done[this.done.length-1].selectionsAfter:none$1;return d.length>0&&s-this.prevTime<c&&a==this.prevUserEvent&&a&&/^select($|\.)/.test(a)&&eqSelectionShape(d[d.length-1],e)?this:new HistoryState(addSelection(this.done,e),this.undone,s,a)}addMapping(e){return new HistoryState(addMappingToBranch(this.done,e),addMappingToBranch(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,s,a){let c=e==0?this.done:this.undone;if(c.length==0)return null;let d=c[c.length-1];if(a&&d.selectionsAfter.length)return s.update({selection:d.selectionsAfter[d.selectionsAfter.length-1],annotations:fromHistory.of({side:e,rest:popSelection(c)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(d.changes){let _=c.length==1?none$1:c.slice(0,c.length-1);return d.mapped&&(_=addMappingToBranch(_,d.mapped)),s.update({changes:d.changes,selection:d.startSelection,effects:d.effects,annotations:fromHistory.of({side:e,rest:_}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}HistoryState.empty=new HistoryState(none$1,none$1);const historyKeymap=[{key:"Mod-z",run:undo,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:redo,preventDefault:!0},{key:"Mod-u",run:undoSelection,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:redoSelection,preventDefault:!0}],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<e.length;s++)if(e[s].id!=s)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let s=[];for(let a of this.types){let c=null;for(let d of e){let _=d(a);_&&(c||(c=Object.assign({},a.props)),c[_[0].id]=_[1])}s.push(c?new NodeType(a.name,c,a.id,a.flags):a)}return new NodeSet(s)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;class Tree{constructor(e,s,a,c,d){if(this.type=e,this.children=s,this.positions=a,this.length=c,this.props=null,d&&d.length){this.props=Object.create(null);for(let[_,b]of d)this.props[typeof _=="number"?_:_.id]=b}}toString(){let e=this.prop(NodeProp.mounted);if(e&&!e.overlay)return e.tree.toString();let s="";for(let a of this.children){let c=a.toString();c&&(s&&(s+=","),s+=c)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(s.length?"("+s+")":""):s}cursor(e,s=0){let a=e!=null&&CachedNode.get(this)||this.topNode,c=new TreeCursor(a);return e!=null&&(c.moveTo(e,s),CachedNode.set(this,c._tree)),c}fullCursor(){return new TreeCursor(this.topNode,1)}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,s=0){let a=resolveNode(CachedNode.get(this)||this.topNode,e,s,!1);return CachedNode.set(this,a),a}resolveInner(e,s=0){let a=resolveNode(CachedInnerNode.get(this)||this.topNode,e,s,!0);return CachedInnerNode.set(this,a),a}iterate(e){let{enter:s,leave:a,from:c=0,to:d=this.length}=e;for(let _=this.cursor(),b=()=>_.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;s<this.buffer.length;)e.push(this.childString(s)),s=this.buffer[s+3];return e.join(",")}childString(e){let s=this.buffer[e],a=this.buffer[e+3],c=this.set.types[s],d=c.name;if(/\W/.test(d)&&!c.isError&&(d=JSON.stringify(d)),e+=4,a==e)return d;let _=[];for(;e<a;)_.push(this.childString(e)),e=this.buffer[e+3];return d+"("+_.join(",")+")"}findChild(e,s,a,c,d){let{buffer:_}=this,b=-1;for(let k=e;k!=s&&!(checkSide(d,c,_[k+1],_[k+2])&&(b=k,a>0));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<s;)_[k++]=d[b++],_[k++]=d[b++]-a,_[k++]=d[b++]-a,_[k++]=d[b++]-e;return new TreeBuffer(_,c-a,this.set)}}function checkSide(o,e,s,a){switch(o){case-2:return s<e;case-1:return a>=e&&s<e;case 0:return s<e&&a>e;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.to<e);){let d=!a&&o instanceof TreeNode&&o.index<0?null:o.parent;if(!d)return o;o=d}if(a)for(let d=o,_=d.parent;_;d=_,_=d.parent)d instanceof TreeNode&&d.index<0&&((c=_.enter(e,s,!0))===null||c===void 0?void 0:c.from)!=d.from&&(o=_);for(;;){let d=o.enter(e,s,a);if(!d)return o;o=d}}class TreeNode{constructor(e,s,a,c){this.node=e,this._from=s,this.index=a,this._parent=c}get type(){return this.node.type}get name(){return this.node.type.name}get from(){return this._from}get to(){return this._from+this.node.length}nextChild(e,s,a,c,d=0){for(let _=this;;){for(let{children:b,positions:k}=_.node,$=s>0?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<c.buffer.buffer.length)return!1}else for(let d=0;d<this.index;d++)if(c.buffer.buffer[d+3]<this.index)return!1;({index:s,parent:a}=c)}else({index:s,_parent:a}=this._tree);for(;a;{index:s,_parent:a}=a)if(s>-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<e))&&this.parent(););for(;this.enterChild(1,e,s););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,s=null,a=0;if(e&&e.context==this.buffer){e:for(let c=this.index,d=this.stack.length;d>=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<this.stack.length;c++)s=new BufferNode(this.buffer,s,this.stack[c]);return this.bufferNode=new BufferNode(this.buffer,s,this.index)}get tree(){return this.buffer?null:this._tree.node}}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,lt,ut,pt){let{id:dt,start:gt,end:yt,size:ft}=b,mt=j;for(;ft<0;)if(b.next(),ft==-1){let Dt=d[dt];lt.push(Dt),ut.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 Et=k[dt],vt,At,_t=gt-ht;if(yt-gt<=c&&(At=st(b.pos-ct,pt))){let Dt=new Uint16Array(At.size-At.skip),bt=b.pos-At.size,Tt=Dt.length;for(;b.pos>bt;)Tt=rt(At.start,Dt,Tt);vt=new TreeBuffer(Dt,yt-At.start,a),_t=At.start-ht}else{let Dt=b.pos-ft;b.next();let bt=[],Tt=[],St=dt>=_?dt:-1,Ct=0,xt=yt;for(;b.pos>Dt;)St>=0&&b.id==St&&b.size>=0?(b.end<=xt-c&&(tt(bt,Tt,gt,Ct,b.end,xt,St,mt),Ct=bt.length,xt=b.end),b.next()):_e(gt,Dt,bt,Tt,St);if(St>=0&&Ct>0&&Ct<bt.length&&tt(bt,Tt,gt,Ct,gt,xt,St,mt),bt.reverse(),Tt.reverse(),St>-1&&Ct>0){let Rt=et(Et);vt=balanceRange(Et,bt,Tt,0,bt.length,0,yt-gt,Rt,Rt)}else vt=nt(Et,bt,Tt,yt-gt,mt-yt)}lt.push(vt),ut.push(_t)}function et(ht){return(ct,lt,ut)=>{let pt=0,dt=ct.length-1,gt,yt;if(dt>=0&&(gt=ct[dt])instanceof Tree){if(!dt&>.type==ht&>.length==ut)return gt;(yt=gt.prop(NodeProp.lookAhead))&&(pt=lt[dt]+gt.length+yt)}return nt(ht,ct,lt,ut,pt)}}function tt(ht,ct,lt,ut,pt,dt,gt,yt){let ft=[],mt=[];for(;ht.length>ut;)ft.push(ht.pop()),mt.push(ct.pop()+lt-pt);ht.push(nt(a.types[gt],ft,mt,dt-pt,yt-dt)),ct.push(pt-lt)}function nt(ht,ct,lt,ut,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,lt,ut,dt)}function st(ht,ct){let lt=b.fork(),ut=0,pt=0,dt=0,gt=lt.end-c,yt={size:0,start:0,skip:0};e:for(let ft=lt.pos-ht;lt.pos>ft;){let mt=lt.size;if(lt.id==ct&&mt>=0){yt.size=ut,yt.start=pt,yt.skip=dt,dt+=4,ut+=4,lt.next();continue}let Et=lt.pos-mt;if(mt<0||Et<ft||lt.start<gt)break;let vt=lt.id>=_?4:0,At=lt.start;for(lt.next();lt.pos>Et;){if(lt.size<0)if(lt.size==-3)vt+=4;else break e;else lt.id>=_&&(vt+=4);lt.next()}pt=At,ut+=mt,dt+=vt}return(ct<0||ut==ht)&&(yt.size=ut,yt.start=pt,yt.skip=dt),yt.size>4?yt:void 0}function rt(ht,ct,lt){let{id:ut,start:pt,end:dt,size:gt}=b;if(b.next(),gt>=0&&ut<_){let yt=lt;if(gt>4){let ft=b.pos-(gt-4);for(;b.pos>ft;)lt=rt(ht,ct,lt)}ct[--lt]=yt,ct[--lt]=dt-ht,ct[--lt]=pt-ht,ct[--lt]=ut}else gt==-3?$=ut:gt==-4&&(j=ut);return lt}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<c;nt++)$+=nodeSize(o,e[nt]);let j=Math.ceil($*1.5/8),_e=[],et=[];function tt(nt,st,rt,it,at){for(let ot=rt;ot<it;){let ht=ot,ct=st[ot],lt=nodeSize(o,nt[ot]);for(ot++;ot<it;ot++){let ut=nodeSize(o,nt[ot]);if(lt+ut>=j)break;lt+=ut}if(ot==ht+1){if(lt>j){let ut=nt[ht];tt(ut.children,ut.positions,0,ut.children.length,st[ht]+at);continue}_e.push(nt[ht])}else{let ut=st[ot-1]+nt[ot-1].length-ct;_e.push(balanceRange(o,nt,st,ht,ot,ct,ut,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<s.length?s[b]:null,_e=j?j.fromA:1e9;if(_e-k>=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;_=d<e.length?e[d++]:null}if(!j)break;k=j.toA,$=j.toA-j.toB}return c}}class Parser{startParse(e,s,a){return typeof e=="string"&&(e=new StringInput(e)),a=a?a.length?a.map(c=>new 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;k<d.children.length;k++){let $=d.children[k];$ instanceof Tree&&c($,d.positions[k]+_)}};return c(syntaxTree(e),0),a}get allowsNesting(){return!0}}Language.setState=StateEffect.define();function languageDataFacetAt(o,e,s){let a=o.facet(language);if(!a)return null;let c=a.data;if(a.allowsNesting)for(let d=syntaxTree(o).topNode;d;d=d.enter(e,s,!0,!1))c=d.type.prop(languageDataProp)||c;return c}class LRLanguage extends Language{constructor(e,s){super(e,s,s.topNode),this.parser=s}static define(e){let s=defineLanguageFacet(e.languageData);return new LRLanguage(s,e.parser.configure({props:[languageDataProp.add(a=>a.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<a||s>=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.state.doc.length&&this.parse.stopAt(s);;){let c=this.parse.advance();if(c)if(this.fragments=this.withoutTempSkipped(TreeFragment.addTree(c,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(a=this.parse.stoppedAt)!==null&&a!==void 0?a:this.state.doc.length,this.tree=c,this.parse=null,this.treeLen<(s!=null?s:this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,s;this.parse&&(e=this.parse.parsedPos)>=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;a<this.skipped.length;a++){let{from:c,to:d}=this.skipped[a];c<e.to&&d>e.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.chunkEnd<s&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=s+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:a,viewport:{to:c}}=this.view,d=a.field(Language.state);if(d.tree==d.context.tree&&d.context.isDone(c+1e5))return;let _=Date.now()+Math.min(this.chunkBudget,100,e&&!isInputPending?Math.max(25,e.timeRemaining()-5):1e9),b=d.context.treeLen<c&&a.doc.length>c+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<e;c++)s+=" ";return s}function getIndentation(o,e){o instanceof EditorState&&(o=new IndentContext(o));for(let a of o.state.facet(indentService)){let c=a(o,e);if(c!=null)return c}let s=syntaxTree(o.state);return s?syntaxIndentation(o,s,e):null}class IndentContext{constructor(e,s={}){this.state=e,this.options=s,this.unit=getIndentUnit(e)}lineAt(e,s=1){let a=this.state.doc.lineAt(e),{simulateBreak:c,simulateDoubleBreak:d}=this.options;return c!=null&&c>=a.from&&c<=a.to?d&&c==e?{text:"",from:e}:(s<0?c<e:c<=e)?{text:a.text.slice(c-a.from),from:c}:{text:a.text.slice(0,c-a.from),from:a.from}:a}textAfterPos(e,s=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:a,from:c}=this.lineAt(e,s);return a.slice(e-c,Math.min(a.length,e+100-c))}column(e,s=1){let{text:a,from:c}=this.lineAt(e,s),d=this.countColumn(a,e-c),_=this.options.overrideIndentation?this.options.overrideIndentation(c):-1;return _>-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.to<s.from?{from:e.to,to:s.type.isError?o.to:s.from}:null}function syntaxFolding(o,e,s){let a=syntaxTree(o);if(a.length==0)return null;let c=a.resolveInner(s),d=null;for(let _=c;_;_=_.parent){if(_.to<=s||_.from>s)continue;if(d&&_.from<e)break;let b=_.type.prop(foldNodeProp);if(b&&(_.to<a.length-50||a.length==o.doc.length||!isUnfinished(_))){let k=b(_,o);k&&k.from<=s&&k.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=d<s.length?s[d++]:null,$=!1;if(k){let j=k.elementClass;j&&(a+=" "+j);for(let _e=_;_e<this.markers.length;_e++)if(this.markers[_e].compare(k)){b=_e,$=!0;break}}else b=this.markers.length;for(;_<b;){let j=this.markers[_++];if(j.toDOM){j.destroy(c);let _e=c.nextSibling;c.remove(),c=_e}}if(!k)break;k.toDOM&&($?c=c.nextSibling:this.dom.insertBefore(k.toDOM(e),c)),$&&_++}this.dom.className=a,this.markers=s}destroy(){this.setMarkers(null,[])}}function sameMarkers(o,e){if(o.length!=e.length)return!1;for(let s=0;s<o.length;s++)if(!o[s].compare(e[s]))return!1;return!0}const lineNumberMarkers=Facet.define(),lineNumberConfig=Facet.define({combine(o){return combineConfig(o,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,s){let a=Object.assign({},e);for(let c in s){let d=a[c],_=s[c];a[c]=d?(b,k,$)=>d(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<o;)e=e*10+9;return e}const activeLineGutterMarker=new class extends GutterMarker{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},activeLineGutterHighlighter=gutterLineClass.compute(["selection"],o=>{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)=>{c<a&&d>a&&(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<e.doc.length;){let c=o.lineBlockAt(a),d=foldable(e,c.from,c.to);d&&s.push(foldEffect.of(d)),a=(d?o.lineBlockAt(d.to):c).to+1}return s.length&&o.dispatch({effects:maybeEnable(o.state,s)}),!!s.length},unfoldAll=o=>{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.head<e.state.doc.length&&matchBrackets(e.state,c.head+1,-1,a));if(!d)continue;let _=d.matched?matchingMark:nonmatchingMark;s.push(_.range(d.start.from,d.start.to)),d.end&&s.push(_.range(d.end.from,d.end.to))}return Decoration.set(s,!0)},provide:o=>EditorView.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<k.to)return matchMarkedBrackets(o,e,s,k,$,d)}return matchPlainBrackets(o,e,s,_,b.type,c,d)}function matchMarkedBrackets(o,e,s,a,c,d){let _=a.parent,b={from:a.from,to:a.to},k=0,$=_==null?void 0:_.cursor;if($&&(s<0?$.childBefore(a.from):$.childAfter(a.to)))do if(s<0?$.to<=a.from:$.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 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.resolve(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}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.bottom<d.bottom?EditorView.scrollIntoView(a.main.head,{y:"start",yMargin:c.top-d.top}):void 0}),!0}const cursorPageUp=o=>cursorByPage(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.head<o.doc.length&&matchBrackets(o,d.head+1,-1);if(!_||!_.end)return d;a=!0;let b=_.start.from==d.head?_.end.to:_.end.from;return s?EditorSelection.range(d.anchor,b):EditorSelection.cursor(b)});return a?(e(setSel(o,c)),!0):!1}const cursorMatchingBracket=({state:o,dispatch:e})=>toMatchingBracket(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.from&&d.to>=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)=>{c<e&&d>e&&(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&&s<c.from+200&&!/[^ \t]/.test(d=c.text.slice(0,s-c.from))){if(d[d.length-1]==" ")return s-1;let b=countColumn(d,a.tabSize),k=b%getIndentUnit(a)||getIndentUnit(a);for(let $=0;$<k&&d[d.length-1-$]==" ";$++)s--;_=s}else _=findClusterBreak(c.text,s-c.from,e,e)+c.from,_==s&&c.number!=(e?a.doc.lines:1)&&(_+=e?1:-1);return skipAtomic(o,_,e)}),deleteCharBackward=o=>deleteByChar(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,e<s?s:Math.min(o.state.doc.length,e+1),!0)}),deleteToLineStart=o=>deleteBy(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--:d<e.doc.length&&d++,{from:c,to:d}))),a=updateSel(e.selection,c=>o.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.to&&/\s/.test(b.text[_-b.from]);)_++;k?{from:d,to:_}=k:d>b.from&&d<b.from+100&&!/\S/.test(b.text.slice(0,d))&&(d=b.from);let _e=["",indentString(e,j)];return k&&_e.push(indentString(e,$.lineIndent(b.from,-1))),{changes:{from:d,to:_,insert:Text.of(_e)},range:EditorSelection.cursor(d+1+_e[1].length)}});return s(e.update(a,{scrollIntoView:!0,userEvent:"input"})),!0}}function changeBySelectedLine(o,e){let s=-1;return o.changeByRange(a=>{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.from<d.from+$.length)&&(s[d.from]=k,_.push({from:d.from,to:d.from+$.length,insert:j}))});return c.changes.empty||e(o.update(c,{userEvent:"indent"})),!0},indentMore=({state:o,dispatch:e})=>o.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(;_<c.length&&_<b.length&&c.charCodeAt(_)==b.charCodeAt(_);)_++;a.push({from:s.from+_,to:s.from+c.length,insert:b.slice(_)})}),{userEvent:"delete.dedent"})),!0),emacsStyleKeymap=[{key:"Ctrl-b",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Ctrl-f",run:cursorCharRight,shift:selectCharRight},{key:"Ctrl-p",run:cursorLineUp,shift:selectLineUp},{key:"Ctrl-n",run:cursorLineDown,shift:selectLineDown},{key:"Ctrl-a",run:cursorLineStart,shift:selectLineStart},{key:"Ctrl-e",run:cursorLineEnd,shift:selectLineEnd},{key:"Ctrl-d",run:deleteCharForward},{key:"Ctrl-h",run:deleteCharBackward},{key:"Ctrl-k",run:deleteToLineEnd},{key:"Ctrl-Alt-h",run:deleteGroupBackward},{key:"Ctrl-o",run:splitLine},{key:"Ctrl-t",run:transposeChars},{key:"Ctrl-v",run:cursorPageDown}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp,preventDefault:!0},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown,preventDefault:!0},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCharBackward,shift:deleteCharBackward},{key:"Delete",run:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteToLineStart},{mac:"Mod-Delete",run:deleteToLineEnd}].concat(emacsStyleKeymap.map(o=>({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<definedClosing.length;e+=2)if(definedClosing.charCodeAt(e)==o)return definedClosing.charAt(e+1);return fromCodePoint(o<128?o:o+1)}function config(o,e){return o.languageDataAt("closeBrackets",e)[0]||defaults}const android=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),inputHandler=EditorView.inputHandler.of((o,e,s,a)=>{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(;e<arguments.length;e++)add(o,arguments[e]);return o}function add(o,e){if(typeof e=="string")o.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)o.appendChild(e);else if(Array.isArray(e))for(var s=0;s<e.length;s++)add(o,e[s]);else throw new RangeError("Unsupported child node: "+e)}const basicNormalize=typeof String.prototype.normalize=="function"?o=>o.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&&d<s.length&&s.charCodeAt(d)==b&&_++}}}match(e,s){let a=null;for(let c=0;c<this.matches.length;c+=2){let d=this.matches[c],_=!1;this.query.charCodeAt(d)==e&&(d==this.query.length-1?a={from:this.matches[c+1],to:s+1}:(this.matches[c]++,_=!0)),_||(this.matches.splice(c,2),c-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?a={from:s,to:s+1}:this.matches.push(1,s)),a}}typeof Symbol!="undefined"&&(SearchCursor.prototype[Symbol.iterator]=function(){return this});const empty={from:-1,to:-1,match:/.*/.exec("")},baseFlags="gm"+(/x/.unicode==null?"":"u");class RegExpCursor{constructor(e,s,a,c=0,d=e.length){if(this.to=d,this.curLine="",this.done=!1,this.value=empty,/\\[sWDnr]|\n|\r|\[\^/.test(s))return new MultilineRegExpCursor(e,s,a,c,d);this.re=new RegExp(s,baseFlags+(a!=null&&a.ignoreCase?"i":"")),this.iter=e.iter();let _=e.lineAt(c);this.curLineStart=_.from,this.matchPos=c,this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.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(),a<c||a>this.value.to)return this.value={from:a,to:c,match:s},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const flattened=new WeakMap;class FlattenedDoc{constructor(e,s){this.from=e,this.text=s}get to(){return this.from+this.text.length}static get(e,s,a){let c=flattened.get(e);if(!c||c.from>=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<a&&(d+=e.sliceString(c.to,a)),flattened.set(e,new FlattenedDoc(_,d)),new FlattenedDoc(s,d.slice(s-_,a-_))}}class MultilineRegExpCursor{constructor(e,s,a,c,d){this.text=e,this.to=d,this.done=!1,this.value=empty,this.matchPos=c,this.re=new RegExp(s,baseFlags+(a!=null&&a.ignoreCase?"i":"")),this.flat=FlattenedDoc.get(e,c,this.chunkEnd(c+5e3))}chunkEnd(e){return e>=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.to<this.to&&s.index+s[0].length>this.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(k<e.minSelectionLength||k>200)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<e.match.length?e.match[a]:s)}matchAll(e,s){let a=regexpCursor(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=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;k<AnnounceMargin;k++)if(!Break.test(b[k+1])&&Break.test(b[k])){b=b.slice(k);break}}if(_!=c){for(let k=b.length-1;k>b.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<a.length;d++){let _=a[d],b=-1;if(!!_){for(let k=0;k<this.tooltips.length;k++){let $=this.tooltips[k];$&&$.create==_.create&&(b=k)}if(b<0)c[d]=this.createTooltipView(_);else{let k=c[d]=this.tooltipViews[b];k.update&&k.update(e)}}}for(let d of this.tooltipViews)c.indexOf(d)<0&&d.dom.remove();return this.input=s,this.tooltips=a,this.tooltipViews=c,!0}}function windowSpace(){return{top:0,left:0,bottom:innerHeight,right:innerWidth}}const tooltipConfig=Facet.define({combine:o=>{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<this.manager.tooltips.length;c++){let d=this.manager.tooltips[c],_=this.manager.tooltipViews[c],{dom:b}=_,k=o.pos[c],$=o.size[c];if(!k||k.bottom<=Math.max(e.top,s.top)||k.top>=Math.min(e.bottom,s.bottom)||k.right<Math.max(e.left,s.left)-.1||k.left>Math.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.y<s.top:k.bottom+($.bottom-$.top)+nt.y>s.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.left<ot&&ht.right>rt&&ht.top<at+tt&&ht.bottom>at&&(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$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;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){var e;clearTimeout(this.restartTimeout);let{lastMove:s}=this,a=this.view.contentDOM.contains(s.target)?this.view.posAtCoords(s):null;if(a==null)return;let c=this.view.coordsAtPos(a);if(c==null||s.y<c.top||s.y>c.bottom||s.x<c.left-this.view.defaultCharacterWidth||s.x>c.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<c.left?-_:_);if(!((e=b)===null||e===void 0)&&e.then){let k=this.pending={pos:a};b.then($=>{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;d<c.length;d++)s[c[d]]=!0}let a=toSet(e)+toSet(s)+"*$";return[new RegExp("^"+a),new RegExp(a)]}function completeFromList(o){let e=o.map(c=>typeof 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<e.length;){let a=codePointAt(e,s),c=codePointSize(a);this.chars.push(a);let d=e.slice(s,s+c),_=d.toUpperCase();this.folded.push(codePointAt(_==d?d.toLowerCase():_,0)),s+=c}this.astral=e.length!=this.chars.length}match(e){if(this.pattern.length==0)return[0];if(e.length<this.pattern.length)return null;let{chars:s,folded:a,any:c,precise:d,byWord:_}=this;if(s.length==1){let at=codePointAt(e,0);return at==s[0]?[0,0,codePointSize(at)]:at==a[0]?[-200,0,codePointSize(at)]:null}let b=e.indexOf(this.pattern);if(b==0)return[0,0,this.pattern.length];let k=s.length,$=0;if(b<0){for(let at=0,ot=Math.min(e.length,200);at<ot&&$<k;){let ht=codePointAt(e,at);(ht==s[$]||ht==a[$])&&(c[$++]=at),at+=codePointSize(ht)}if($<k)return null}let j=0,_e=0,et=!1,tt=0,nt=-1,st=-1,rt=/[a-z]/.test(e),it=!0;for(let at=0,ot=Math.min(e.length,200),ht=0;at<ot&&_e<k;){let ct=codePointAt(e,at);b<0&&(j<k&&ct==s[j]&&(d[j++]=at),tt<k&&(ct==s[tt]||ct==a[tt]?(tt==0&&(nt=at),st=at+1,tt++):tt=0));let lt,ut=ct<255?ct>=48&&ct<=57||ct>=97&&ct<=122?2:ct>=65&&ct<=90?1:0:(lt=fromCodePoint(ct))!=lt.toLowerCase()?1:lt!=lt.toUpperCase()?2:0;(!at||ut==1&&rt||ht==0&&ut!=0)&&(s[_e]==ct||a[_e]==ct&&(et=!0)?_[_e++]=at:_.length&&(it=!1)),ht=ut,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,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;k<c.length;){let $=c[k++],j=c[k++];$>b&&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]<c.length){applyCompletion(e,c[+$[1]]),b.preventDefault();return}}),this.list=this.dom.appendChild(this.createListBox(c,a.id,this.range)),this.list.addEventListener("scroll",()=>{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.from||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.bottom<Math.max(0,s.top)+10)return null;let d=Math.max(0,Math.min(c.top,innerHeight-a.height))-s.top,_=this.view.textDirection==Direction.RTL,b=s.left,k=innerWidth-s.right;return _&&b<Math.min(a.width,k)?_=!1:!_&&k<Math.min(a.width,b)&&(_=!0),{top:d,left:_}}positionInfo(e){this.info&&(this.info.style.top=(e?e.top:-1e6)+"px",e&&(this.info.classList.toggle("cm-completionInfo-left",e.left),this.info.classList.toggle("cm-completionInfo-right",!e.left)))}createListBox(e,s,a){const c=document.createElement("ul");c.id=s,c.setAttribute("role","listbox"),c.setAttribute("aria-expanded","true");for(let d=a.from;d<a.to;d++){let{completion:_,match:b}=e[d];const k=c.appendChild(document.createElement("li"));k.id=s+"-"+d,k.setAttribute("role","option");let $=this.optionClass(_);$&&(k.className=$);for(let j of this.optionContent){let _e=j(_,this.view.state,b);_e&&k.appendChild(_e)}}return a.from&&c.classList.add("cm-completionListIncompleteTop"),a.to<e.length&&c.classList.add("cm-completionListIncompleteBottom"),c}}function completionTooltip(o){return e=>new CompletionTooltip(e,o)}function scrollIntoView(o,e){let s=o.getBoundingClientRect(),a=e.getBoundingClientRect();a.top<s.top?o.scrollTop-=s.top-a.top:a.bottom>s.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(;s<o.length&&!o[s].hasResult;)s++;for(;a<e.length&&!e[a].hasResult;)a++;let c=s==o.length,d=a==e.length;if(c||d)return c==d;if(o[s++].result!=e[a++].result)return!1}}const baseAttrs={"aria-autocomplete":"list"};function makeAttrs(o,e){return{"aria-autocomplete":"list","aria-haspopup":"listbox","aria-activedescendant":o+"-"+e,"aria-controls":o}}const none=[];function cmpOption(o,e){let s=e.match[0]-o.match[0];return s||o.completion.label.localeCompare(e.completion.label)}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,this.span=_}hasResult(){return!0}handleUserEvent(e,s,a){let c=e.changes.mapPos(this.from),d=e.changes.mapPos(this.to,1),_=cur(e.state);if((this.explicitPos<0?_<=c:_<this.from)||_>d||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<CompletionInteractMargin)return!1;let c=1,d;e=="page"&&(d=getTooltip(s,a.open.tooltip))&&(c=Math.max(2,Math.floor(d.dom.offsetHeight/d.dom.querySelector("li").offsetHeight)-1));let _=a.open.selected+c*(o?1:-1),{length:b}=a.open.options;return _<0?_=e=="page"?0:b-1:_>=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.timestamp<CompletionInteractMargin?!1:(applyCompletion(o,e.open.options[e.open.selected]),!0)},startCompletion=o=>o.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;a<this.running.length;a++){let c=this.running[a];if(s||c.updates.length+o.transactions.length>MaxUpdateCount&&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<this.running.length;a++){let c=this.running[a];if(c.done===void 0)continue;if(this.running.splice(a--,1),c.done){let _=new ActiveResult(c.active.source,c.active.explicitPos,c.done,c.done.from,(o=c.done.to)!==null&&o!==void 0?o:cur(c.updates.length?c.updates[0].startState:this.view.state),c.done.span&&c.done.filter!==!1?ensureAnchor(c.done.span,!0):null);for(let b of c.updates)_=_.update(b,s);if(_.hasResult()){e.push(_);continue}}let d=this.view.state.field(completionState).active.find(_=>_.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;_e<j;_e++)$+=e.facet(indentUnit);c.push(s+$.length-j),k=$+k.slice(j)}a.push(k),s+=k.length+1}let b=this.fieldPositions.map(k=>new 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<s.length;j++)(b!=null?s[j].seq==b:k?s[j].name==k:!1)&&($=j);if($<0){let j=0;for(;j<s.length&&(b==null||s[j].seq!=null&&s[j].seq<b);)j++;s.splice(j,0,{seq:b,name:k}),$=j;for(let _e of c)_e.field>=$&&_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.length;_++)if(b=c[_]){let k=a[_],{open:$,close:j}=b;d.push({from:$.pos-k.open.length,to:$.pos+$.margin},{from:j.pos-j.margin,to:j.pos+k.close.length})}return{changes:d}}return null}function changeLineComment(o,e,s=e.selection.ranges){let a=[],c=-1;for(let{from:d,to:_}of s){let b=a.length,k=1e9;for(let $=d;$<=_;){let j=e.doc.lineAt($);if(j.from>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;et<j.text.length&&et<k&&(k=et),a.push({line:j,comment:nt,token:_e,indent:et,empty:tt,single:!1})}$=j.to+1}if(k<1e9)for(let $=b;$<a.length;$++)a[$].indent<a[$].line.text.length&&(a[$].indent=k);a.length==b+1&&(a[b].single=!0)}if(o!=2&&a.some(d=>d.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;s<o.length;s++)for(let a of permute(o.slice(0,s).concat(o.slice(s+1))))e.push(a);return e}function styleTags(o){let e=Object.create(null);for(let s in o){let a=o[s];Array.isArray(a)||(a=[a]);for(let c of s.split(" "))if(c){let d=[],_=2,b=c;for(let _e=0;;){if(b=="..."&&_e>0&&_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<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}class HighlightStyle{constructor(e,s){this.map=Object.create(null);let a;function c(_){let b=StyleModule.newName();return(a||(a=Object.create(null)))["."+b]=_,b}this.all=typeof s.all=="string"?s.all:s.all?c(s.all):null;for(let _ of e){let b=(_.class||c(Object.assign({},_,{tag:null})))+(this.all?" "+this.all:""),k=_.tag;if(!Array.isArray(k))this.map[k.id]=b;else for(let $ of k)this.map[$.id]=b}this.module=a?new StyleModule(a):null,this.scope=s.scope||null,this.match=this.match.bind(this);let d=[treeHighlighter];this.module&&d.push(EditorView.styleModule.of(this.module)),this.extension=d.concat(s.themeType==null?highlightStyle.of(this):highlightStyle.computeN([EditorView.darkTheme],_=>_.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<e.view.viewport.to&&!c&&s.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(s!=this.tree||e.viewportChanged||c)&&(this.tree=s,this.decorations=this.buildDeco(e.view,a))}buildDeco(e,s){if(!s||!this.tree.length)return Decoration.none;let a=new RangeSetBuilder;for(let{from:c,to:d}of e.visibleRanges)highlightTreeRange(this.tree,c,d,s,(_,b,k)=>{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 st=this.style(nt,_);st&&(j&&(j+=" "),j+=st,_e.mode==1?c+=(c?" ":"")+st:_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),st=e.firstChild();for(let rt=0,it=k;;rt++){let at=rt<tt.overlay.length?tt.overlay[rt]:null,ot=at?at.from+k:$,ht=Math.max(s,it),ct=Math.min(a,ot);if(ht<ct&&st)for(;e.from<ct&&(this.highlightRange(e,ht,ct,c,d+1,_),this.startSpan(Math.min(a,e.to),j),!(e.to>=ot||!e.nextSibling())););if(!at||ot>a)break;it=at.to+k,it>s&&(this.highlightRange(nt.cursor,Math.max(s,at.from+k),Math.min(a,it),c,d,tt.tree.type),this.startSpan(it,j))}st&&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)&&(e<k||s<0))&&(c.push($.diagnostic),d=Math.min(b,d),_=Math.max(k,_))}),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}];function assignKeys(o){let e=[];if(o)e:for(let{name:s}of o){for(let a=0;a<s.length;a++){let c=s[a];if(/[a-zA-Z]/.test(c)&&!e.some(d=>d.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;d<this.items.length;d++)this.items[d].dom.contains(c.target)&&this.moveSelection(d)};this.list=crelt("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:s,onclick:a}),this.dom=crelt("div",{class:"cm-panel-lint"},this.list,crelt("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>closeLintPanel(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(lintState).selected;if(!e)return-1;for(let s=0;s<this.items.length;s++)if(this.items[s].diagnostic==e.diagnostic)return s;return-1}update(){let{diagnostics:e,selected:s}=this.view.state.field(lintState),a=0,c=!1,d=null;for(e.between(0,this.view.state.doc.length,(_,b,{spec:k})=>{let $=-1,j;for(let _e=a;_e<this.items.length;_e++)if(this.items[_e].diagnostic==k.diagnostic){$=_e;break}$<0?(j=new PanelItem(this.view,k.diagnostic),this.items.splice(a,0,j),c=!0):(j=this.items[$],$>a&&(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<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)c=!0,this.items.pop();this.items.length==0&&(this.items.push(new PanelItem(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),c=!0),d?(this.list.setAttribute("aria-activedescendant",d.id),this.view.requestMeasure({key:this,read:()=>({sel:d.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:_,panel:b})=>{_.top<b.top?this.list.scrollTop-=b.top-_.top:_.bottom>b.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,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(o)}</svg>')`}function underline(o){return svg(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${o}" fill="none" stroke-width=".7"/>`,'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
|
|
* 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;a<c;a++){s=arguments[a];for(var d in s)Object.prototype.hasOwnProperty.call(s,d)&&(e[d]=s[d])}return e},__assign.apply(this,arguments)};function __rest(o,e){var s={};for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&e.indexOf(a)<0&&(s[a]=o[a]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,a=Object.getOwnPropertySymbols(o);c<a.length;c++)e.indexOf(a[c])<0&&Object.prototype.propertyIsEnumerable.call(o,a[c])&&(s[a[c]]=o[a[c]]);return s}function __read(o,e){var s=typeof Symbol=="function"&&o[Symbol.iterator];if(!s)return o;var a=s.call(o),c,d=[],_;try{for(;(e===void 0||e-- >0)&&!(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;a<c;a++)(d||!(a in e))&&(d||(d=Array.prototype.slice.call(e,0,a)),d[a]=e[a]);return o.concat(d||Array.prototype.slice.call(e))}var noop=function o(){},CodeMirrorLite=function o(e){var s=e.value,a=e.onChange,c=e.extensions,d=c===void 0?[]:c,_=e.onViewChange,b=_===void 0?noop:_,k=__rest(e,["value","onChange","extensions","onViewChange"]),$=react.exports.useRef(s);$.current=s;var j=react.exports.useRef(a);j.current=a;var _e=react.exports.useRef(b);_e.current=b;var et=react.exports.useRef(d),tt=react.exports.useRef(null),nt=react.exports.useRef(null),st=react.exports.useRef(null);return react.exports.useEffect(function(){var rt;if(tt.current!==null){var it=void 0,at=EditorState.create({doc:$.current,extensions:[EditorView.theme({"&":{alignSelf:"stretch",flex:"1 0 auto"}}),et.current,EditorState.transactionFilter.of(function(ot){var ht,ct=it;if(ct!==void 0){var lt=ct.state.doc.toString(),ut=ot.newDoc.toString();return lt===ut?ot:(st.current=function(pt){return st.current=null,pt===ut?(ct.dispatch(ct.state.update({changes:ot.changes,selection:ot.selection,effects:ot.effects,scrollIntoView:ot.scrollIntoView,filter:!1})),!0):!1},(ht=j.current)===null||ht===void 0||ht.call(j,ut),[])}else return[]})]});it=new EditorView({state:at,parent:tt.current}),(rt=_e.current)===null||rt===void 0||rt.call(_e,it),nt.current={view:it}}return function(){var ot;nt.current!==null&&(nt.current.view.destroy(),nt.current=null,(ot=_e.current)===null||ot===void 0||ot.call(_e,null))}},[tt]),react.exports.useEffect(function(){var rt=st.current,it=rt==null?void 0:rt(s);it!==!0&&nt.current!==null&&nt.current.view.dispatch(nt.current.view.state.update({changes:{from:0,to:nt.current.view.state.doc.toString().length,insert:s},filter:!1}))},[s]),jsx("div",Ot({},__assign({},k,{ref:tt})))},CodeMirror$1=function o(e){var s=e.value,a=e.onChange,c=e.onViewChange,d=e.extensions,_=d===void 0?[]:d,b=e.keymap,k=b===void 0?[]:b,$=__rest(e,["value","onChange","onViewChange","extensions","keymap"]);return jsx(CodeMirrorLite,Ot({},__assign({value:s,onChange:a,onViewChange:c,extensions:[lineNumbers(),highlightActiveLineGutter(),highlightSpecialChars(),history(),foldGutter(),drawSelection(),EditorState.allowMultipleSelections.of(!0),indentOnInput(),defaultHighlightStyle.fallback,bracketMatching(),closeBrackets(),autocompletion(),rectangularSelection(),highlightActiveLine(),highlightSelectionMatches(),keymap.of(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([],__read(closeBracketsKeymap)),__read(defaultKeymap)),__read(searchKeymap)),__read(historyKeymap)),__read(foldKeymap)),__read(commentKeymap)),__read(completionKeymap)),__read(lintKeymap)),__read(k))),_]},$)))};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<c.minRepeatTerm&&this.storeNode(a,this.reducePos,this.reducePos,4,!0),this.reduceContext(a,this.reducePos);return}let _=this.stack.length-(s-1)*3-(e&262144?6:0),b=this.stack[_-2],k=this.stack[_-1],$=this.bufferBase+this.buffer.length-k;if(a<c.minRepeatTerm||e&131072){let j=c.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(a,b,j,$+4,!0)}if(e&262144)this.state=this.stack[_];else{let j=this.stack[_-3];this.state=c.getGoto(j,a,!0)}for(;this.stack.length>_;)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,_;d<s.length;d+=2)(_=s[d+1])!=this.state&&this.p.parser.hasAction(_,e)&&c.push(s[d],_);if(this.stack.length<120)for(let d=0;c.length<4<<1&&d<s.length;d+=2){let _=s[d+1];c.some((b,k)=>k&1&&b==_)||c.push(s[d],_)}s=c}let a=[];for(let c=0;c<s.length&&a.length<4;c+=2){let d=s[c+1];if(d==this.state)continue;let _=this.split();_.storeNode(0,_.pos,_.pos,4,!0),_.pushState(d,this.pos),_.shiftContext(s[c],this.pos),_.score-=200,a.push(_)}return a}forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if((e&65536)==0)return!1;let{parser:s}=this.p;if(!s.validAction(this.state,e)){let a=e>>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;s<this.stack.length;s+=3)if(this.stack[s]!=e.stack[s])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,s){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(s)))}reduceContext(e,s){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(s)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.reducePos,this.reducePos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.reducePos,this.reducePos,-4)}updateContext(e){if(e!=this.curContext.context){let s=new StackContext(this.curContext.tracker,e);s.hash!=this.curContext.hash&&this.emitContext(),this.curContext=s}}setLookAhead(e){e>this.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(;d<a.from;){if(!c)return null;let _=this.ranges[--c];d-=a.from-_.to,a=_}for(;s<0?d>a.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.chunk.length)a=this.pos+e,c=this.chunk.charCodeAt(s);else{let d=this.resolveOffset(e,1);if(d==null)return-1;if(a=d,a>=this.chunk2Pos&&a<this.chunk2Pos+this.chunk2.length)c=this.chunk2.charCodeAt(a-this.chunk2Pos);else{let _=this.rangeIndex,b=this.range;for(;b.to<=a;)b=this.ranges[++_];this.chunk2=this.input.chunk(this.chunk2Pos=a),a+this.chunk2.length>b.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.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=a}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:s}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=s,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),s=this.pos+e.length;this.chunk=s>this.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.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,s){if(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<<a,{parser:_}=s.p,{dialect:b}=_;e:for(;(d&o[c])!=0;){let k=o[c+1];for(let $=c+3;$<k;$+=2)if((o[$+1]&d)>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],st=o[tt+1];if($<nt)_e=et;else 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<o.length;){let d=0;for(;;){let _=o.charCodeAt(a++),b=!1;if(_==126){d=65535;break}_>=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.to<e:a.from>e)&&!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(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let s=this.trees.length-1;if(s<0)return this.nextFragment(),null;let a=this.trees[s],c=this.index[s];if(c==a.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let d=a.children[c],_=this.start[s]+a.positions[c];if(_>e)return this.nextStart=_,null;if(d instanceof Tree){if(_==e){if(_<this.safeFrom)return null;let b=_+d.length;if(b<=this.safeTo){let k=d.prop(NodeProp.lookAhead);if(!k||b+k<this.fragment.to)return d}}this.index[s]++,_+d.length>=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;$<d.length;$++){if((1<<$&_)==0)continue;let j=d[$],_e=this.tokens[$];if(!(a&&!j.fallback)&&((j.contextual||_e.start!=e.pos||_e.mask!=_||_e.context!=b)&&(this.updateCachedToken(_e,j,e),_e.mask=_,_e.context=b),_e.lookAhead>_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<c.specialized.length;d++)if(c.specialized[d]==e.value){let _=c.specializers[d](this.stream.read(e.start,e.end),a);if(_>=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;d<c;d+=3)if(this.actions[d]==e)return c;return this.actions[c++]=e,this.actions[c++]=s,this.actions[c++]=a,c}addActions(e,s,a,c){let{state:d}=e,{parser:_}=e.p,{data:b}=_;for(let k=0;k<2;k++)for(let $=_.stateSlot(d,k?2:1);;$+=3){if(b[$]==65535)if(b[$+1]==1)$=pair(b,$+2);else{c==0&&b[$+1]==2&&(c=this.putAction(pair(b,$+2),s,a,c));break}b[$]==s&&(c=this.putAction(pair(b,$+1),s,a,c))}return c}}var Rec;(function(o){o[o.Distance=5]="Distance",o[o.MaxRemainingPerStep=3]="MaxRemainingPerStep",o[o.MinBufferLengthPrune=500]="MinBufferLengthPrune",o[o.ForceReduceLimit=10]="ForceReduceLimit",o[o.CutDepth=15e3]="CutDepth",o[o.CutTo=9e3]="CutTo"})(Rec||(Rec={}));class Parse{constructor(e,s,a,c){this.parser=e,this.input=s,this.ranges=c,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.stream=new InputStream(s,c),this.tokens=new TokenCache(e,this.stream),this.topTerm=e.top[1];let{from:d}=c[0];this.stacks=[Stack.start(this,e.top[0],d)],this.fragments=a.length&&this.stream.end-d>e.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;_<e.length;_++){let b=e[_];for(;;){if(this.tokens.mainToken=null,b.pos>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;_<a.length-1;_++){let b=a[_];for(let k=_+1;k<a.length;k++){let $=a[k];if(b.sameState($)||b.buffer.length>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;_<a.length;_++)a[_].pos<this.minStackPos&&(this.minStackPos=a[_].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,s,a){let c=e.pos,{parser:d}=this,_=verbose?this.stackID(e)+" -> ":"";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;$<k.length;){let j=k[$++],_e=k[$++],et=k[$++],tt=$==k.length||!a,nt=tt?e:e.split();if(nt.apply(j,_e,et),verbose&&console.log(_+this.stackID(nt)+` (via ${(j&65536)==0?"shift":`reduce of ${d.getName(j&65535)}`} for ${d.getName(_e)} @ ${c}${nt==e?"":", split"})`),tt)return!0;nt.pos>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;_<e.length;_++){let b=e[_],k=s[_<<1],$=s[(_<<1)+1],j=verbose?this.stackID(b)+" -> ":"";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.score<b.score)&&(c=b)}return c}stackToTree(e){return e.close(),Tree.build({buffer:StackBufferCursor.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let s=(stackIDs||(stackIDs=new WeakMap)).get(e);return s||stackIDs.set(e,s=String.fromCodePoint(this.nextStackID++)),s+e}}function pushStackDedup(o,e){for(let s=0;s<e.length;s++){let a=e[s];if(a.pos==o.pos&&a.sameState(o)){e[s].score<o.score&&(e[s]=o);return}}e.push(o)}class Dialect{constructor(e,s,a){this.source=e,this.flags=s,this.disabled=a}allows(e){return!this.disabled||this.disabled[e]==0}}const id=o=>o;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;b<e.repeatNodeCount;b++)s.push("");let a=Object.keys(e.topRules).map(b=>e.topRules[b][1]),c=[];for(let b=0;b<s.length;b++)c.push([]);function d(b,k,$){c[b].push([k,k.deserialize(String($))])}if(e.nodeProps)for(let b of e.nodeProps){let k=b[0];for(let $=1;$<b.length;){let j=b[$++];if(j>=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;b<e.specialized.length;b++)this.specialized[b]=e.specialized[b].term,this.specializers[b]=e.specialized[b].get;this.states=decodeArray(e.states,Uint32Array),this.data=decodeArray(e.stateData),this.goto=decodeArray(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(b=>typeof 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)<a}configure(e){let s=Object.assign(Object.create(LRParser.prototype),this);if(e.props&&(s.nodeSet=this.nodeSet.extend(...e.props)),e.top){let a=this.topRules[e.top];if(!a)throw new RangeError(`Invalid top rule name ${e.top}`);s.top=a}return e.tokenizers&&(s.tokenizers=this.tokenizers.map(a=>{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;d<s.length;d++)if(!a[d])for(let _=this.dialects[s[d]],b;(b=this.data[_++])!=65535;)(c||(c=new Uint8Array(this.maxTerm+1)))[b]=1;return new Dialect(e,a,c)}static deserialize(e){return new LRParser(e)}}function pair(o,e){return o[e]|o[e+1]<<16}function findOffset(o,e,s){for(let a=e,c;(c=o[a])!=65535;a++)if(c==s)return a-e;return-1}function findFinished(o){let e=null;for(let s of o){let a=s.p.stoppedAt;(s.pos==s.p.stream.end||a!=null&&s.pos>a)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.score<s.score)&&(e=s)}return e}const noSemi=279,incdec=1,incdecPrefix=2,templateContent=280,InterpolationStart=3,templateEnd=281,insertSemi=282,TSExtends=4,spaces=284,newline=285,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()}});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,5<TONxQWO,5;RO){QYO,5;fO! bQpO'#JTO! PQpO'#JTO! iQpO'#JTO! zQpO,5;qOOOO,5;{,5;{O!!YQYO'#FcOOOO'#H|'#H|O3rO!bO,5;nO!!aQpO'#FeOOQ!LS,5;n,5;nO!!}Q,UO'#CrOOQ!LS'#Cu'#CuO!#bQWO'#CuO!#gOSO'#CyO!$TQ#tO,5<QO!$[QWO,5<SO!%hQWO'#FrO!%uQWO'#FsO!%zQWO'#FwO!&|Q&jO'#F{O!'oQ,UO'#IoOOQ!LS'#Io'#IoO!'yQWO'#InO!(XQWO'#ImOOQ!LS'#Cs'#CsOOQ!LS'#C|'#C|O!(aQWO'#DOOJdQWO'#FjOJdQWO'#FlO!(fQWO'#FnO!(kQWO'#FoO!(pQWO'#FuOJdQWO'#FzO!(uQWO'#E^O!)^QWO,5<RO`QYO,5>YOOQQ'#Ii'#IiOOQQ,5>Z,5>ZOOQQ-E;n-E;nO!+YQ!LdO,5:UOOQ!LQ'#Cp'#CpO!+yQ#tO,5<vOOQO'#Cf'#CfO!,[QWO'#CqO!,dQ!LYO'#IjO5_QWO'#IjO:^QWO,59XO!,rQpO,59XO!,zQ#tO,59XO5vQ#tO,59XO!-VQWO,5:vO!-_QWO'#GxO!-mQWO'#J`O){QYO,5;kO!-uQ&jO,5;mO!-zQWO,5=cO!.PQWO,5=cO!.UQWO,5=cO5iQ!LYO,5=cO5qQWO,5<vO!.dQWO'#E_O!.xQ&jO'#E`OOQ!LQ'#I}'#I}O!/ZQ!LYO'#J]O5iQ!LYO,5<zO7pQWO,5=QOOQO'#Cr'#CrO!/fQpO,5<}O!/nQ#tO,5=OO!/yQWO,5=QO!0OQ`O,5=TO:^QWO'#GnO5qQWO'#GpO!0WQWO'#GpO5vQ#tO'#GsO!0]QWO'#GsOOQQ,5=W,5=WO!0bQWO'#GtO!0jQWO'#CmO!0oQWO,59OO!0yQWO,59OO!2{QYO,59OOOQQ,59O,59OO!3YQ!LYO,59OO){QYO,59OO!3eQYO'#G{OOQQ'#G|'#G|OOQQ'#G}'#G}O`QYO,5=eO!3uQWO,5=eO){QYO'#DxO`QYO,5=kO`QYO,5=mO!3zQWO,5=oO`QYO,5=qO!4PQWO,5=tO!4UQYO,5=zOOQQ,5>O,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,5<P,5<PO#2_QpO,5<POOQ!LS,59a,59aOITQWO'#C{OOOS'#Hq'#HqO#2dOSO,59eOOQ!LS,59e,59eO){QYO1G1lO!(kQWO'#IPO#2oQWO,5<eOOQ!LS,5<b,5<bOOQO'#GV'#GVOJdQWO,5<pOOQO'#GX'#GXOJdQWO,5<rOJdQWO,5<tOOQO1G1n1G1nO#2zQ`O'#CpO#3_Q`O,5<^O#3fQWO'#JXO5qQWO'#JXO#3tQWO,5<`OJdQWO,5<_O#3yQ`O'#FqO#4WQ`O'#JYO#4bQWO'#JYOITQWO'#JYO#4gQWO,5<cOOQ!LQ'#Dg'#DgO#4lQWO'#FtO#4wQpO'#F|O!&wQ&jO'#F|O!&wQ&jO'#GOO#5YQWO'#GPO!(pQWO'#GSOOQO'#IR'#IRO#5_Q&jO,5<gOOQ!LS,5<g,5<gO#5fQ&jO'#F|O#5tQ&jO'#F}O#5|Q&jO'#F}OOQ!LS,5<u,5<uOJdQWO,5?YOJdQWO,5?YO#6RQWO'#ISO#6^QWO,5?XOOQ!LS'#Ch'#ChO#7QQ#tO,59jOOQ!LS,59j,59jO#7sQ#tO,5<UO#8fQ#tO,5<WO#8pQWO,5<YOOQ!LS,5<Z,5<ZO#8uQWO,5<aO#8zQ#tO,5<fOGTQYO1G1mO#9[QWO1G1mOOQQ1G3t1G3tOOQ!LS1G/p1G/pONXQWO1G/pOOQQ1G2b1G2bOITQWO1G2bO){QYO1G2bOITQWO1G2bO#9aQWO1G2bO#9oQWO,59]O#:xQWO'#EWOOQ!LQ,5?U,5?UO#;SQ!LYO,5?UOOQQ1G.s1G.sO:^QWO1G.sO!,rQpO1G.sO!,zQ#tO1G.sO#;bQWO1G0bO#;gQWO'#ChO#;rQWO'#JaO#;zQWO,5=dO#<PQWO'#JaO#<UQWO'#JaO#<^QWO'#I[O#<lQWO,5?zO#<tQbO1G1VOOQ!LS1G1X1G1XO5qQWO1G2}O#<{QWO1G2}O#=QQWO1G2}O#=VQWO1G2}OOQQ1G2}1G2}O#=[Q#tO1G2bO7VQWO'#JOO7VQWO'#EaO7VQWO'#IUO#=mQ!LYO,5?wOOQQ1G2f1G2fO!/yQWO1G2lOITQWO1G2iO#=xQWO1G2iOOQQ1G2j1G2jOITQWO1G2jO#=}QWO1G2jO#>VQ&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<TO#DuQbO1G3yOOQO1G4O1G4OO){QYO,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,5<UO#NnQ!LdO,5<WO$!pQ!LdO,5<fOOQ!LS7+%|7+%|O$$xQ!LdO7+%|O$%iQWO'#HuO$%sQWO,5?cOOQ!LS1G/r1G/rO$%{QYO'#HvO$&YQWO,5?dO$&bQbO,5?dOOQ!LS1G/w1G/wOOQ!LS7+&V7+&VO$&lQ7^O,5:^O){QYO7+&iO$&vQ7^O,5:UOOQO1G1_1G1_OOQO1G1`1G1`O$'TQMhO,5;vOLXQYO,5;uOOQO-E;y-E;yOOQ!LS7+&w7+&wOOOO7+'Q7+'QOOOO1G1i1G1iO$'`QWO1G1iOOQ!LS1G1k1G1kO$'eQ`O,59gOOOS-E;o-E;oOOQ!LS1G/P1G/PO$'lQ!LdO7+'WOOQ!LS,5>k,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,5<hO5iQ!LYO,5<iO$,[QWO,5<iO#5TQWO,5<iO!,rQpO,5<hO$,aQWO,5<jO5iQ!LYO,5<kO$,[QWO,5<nOOQO-E<P-E<POOQ!LS1G2R1G2RO!&wQ&jO,5<hO$,iQWO,5<iO!&wQ&jO,5<jO!&wQ&jO,5<iO$,tQ#tO1G4tO$-OQ#tO1G4tOOQO,5>n,5>nOOQO-E<Q-E<QO!-uQ&jO,59lO){QYO,59lO$-]QWO1G1tOJdQWO1G1{O$-bQ!LdO7+'XOOQ!LS7+'X7+'XOGTQYO7+'XOOQ!LS7+%[7+%[O$.RQ`O'#JZO#IWQWO7+'|O$.]QWO7+'|O$.eQ`O7+'|OOQQ7+'|7+'|OITQWO7+'|O){QYO7+'|OITQWO7+'|OOQO1G.w1G.wO$.oQ!LbO'#ChO$/PQ!LbO,5<lO$/nQWO,5<lOOQ!LQ1G4p1G4pOOQQ7+$_7+$_O:^QWO7+$_O!,rQpO7+$_OGTQYO7+%|O$/sQWO'#IZO$0UQWO,5?{OOQO1G3O1G3OO5qQWO,5?{O$0UQWO,5?{O$0^QWO,5?{OOQO,5>v,5>vOOQO-E<Y-E<YOOQ!LS7+&q7+&qO$0cQWO7+(iO5iQ!LYO7+(iO5qQWO7+(iO$0hQWO7+(iO$0mQWO7+'|OOQ!LQ,5>p,5>pOOQ!LQ-E<S-E<SOOQQ7+(W7+(WO$0{Q!LbO7+(TOITQWO7+(TO$1VQ`O7+(UOOQQ7+(U7+(UOITQWO7+(UO$1^QWO'#J^O$1iQWO,5=SOOQO,5>r,5>rOOQO-E<U-E<UOOQQ7+(Z7+(ZO$2cQ&jO'#GqOOQQ1G2v1G2vOITQWO1G2vO){QYO1G2vOITQWO1G2vO$2jQWO1G2vO$2xQ#tO1G2vO5iQ!LYO1G2yO#5YQWO1G2yO5_QWO1G2yO!,rQpO1G2yO!,zQ#tO1G2yO$3ZQWO'#IYO$3fQWO,5?yO$3nQ&jO,5?yOOQ!LQ1G2z1G2zOOQQ7+$U7+$UO$3vQWO7+$UO5iQ!LYO7+$UO$3{QWO7+$UO){QYO1G5hO){QYO1G5iO$4QQYO1G3RO$4XQWO1G3RO$4^QYO1G3RO$4eQ!LYO1G5hOOQQ7+(k7+(kO5iQ!LYO7+(uO`QYO7+(wOOQQ'#Jd'#JdOOQQ'#I]'#I]O$4oQYO,5=vOOQQ,5=v,5=vO){QYO'#H]O$4|QWO'#H_OOQQ7+)Q7+)QO$5RQYO7+)QO7VQWO7+)QOOQQ7+)U7+)UOOQQ7+)Y7+)YOOQQ7+)[7+)[OOQO1G4|1G4|O$9PQ7^O1G0gO$9ZQWO1G0gOOQO1G/i1G/iO$9fQ7^O1G/iO:^QWO1G/iOLXQYO'#DcOOQO,5>`,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$<QQ!LdO7+*nO){QYO7+*nOOQO1G4Q1G4QO7VQWO1G4QO$<bQWO7+*mO$<jQ!LdO1G2[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<<JTO%#iQ7^O1G0mO%%XQ7^O'#IoO%'UQ7^O1G1QOLXQYO'#F^OOQO'#JV'#JVOOQO1G1b1G1bO%'cQWO1G1aO%'hQ7^O,5>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-E<O-E<OO%(tQ`O1G5`O%)OQWO1G5`OOQO1G2S1G2SOOQO1G2T1G2TO5iQ!LYO1G2TO$,[QWO1G2TO5iQ!LYO1G2SO%)WQWO1G2UOITQWO1G2UOOQO1G2V1G2VO5iQ!LYO1G2YO!,rQpO1G2SO#5TQWO1G2TO%)]QWO1G2UO%)eQWO1G2TOJdQWO7+*`OOQ!LS1G/W1G/WO%)pQWO1G/WOOQ!LS7+'`7+'`O%)uQ#tO7+'gO%*VQ!LdO<<JsOOQ!LS<<Js<<JsOITQWO'#ITO%*vQWO,5?uOOQQ<<Kh<<KhOITQWO<<KhO#IWQWO<<KhO%+OQWO<<KhO%+WQ`O<<KhOITQWO1G2WOOQQ<<Gy<<GyO:^QWO<<GyO%+bQ!LdO<<IhOOQ!LS<<Ih<<IhOOQO,5>u,5>uO%,RQWO,5>uO%,WQWO,5>uOOQO-E<X-E<XO%,`QWO1G5gO%,`QWO1G5gO5qQWO1G5gO%,hQWO<<LTOOQQ<<LT<<LTO%,mQWO<<LTO5iQ!LYO<<LTO){QYO<<KhOITQWO<<KhOOQQ<<Ko<<KoO$0{Q!LbO<<KoOOQQ<<Kp<<KpO$1VQ`O<<KpO%,rQ&jO'#IVO%,}QWO,5?xOLXQYO,5?xOOQQ1G2n1G2nO#GWQ!LrO'#ETO!?{Q&jO'#GrOOQO'#IX'#IXO%-VQ&jO,5=]OOQQ,5=],5=]O%-^Q&jO'#ETO%-iQ&jO'#ETO%.QQ&jO'#ETO%.[Q&jO'#GrO%.mQWO7+(bO%.rQWO7+(bO%.zQ`O7+(bOOQQ7+(b7+(bOITQWO7+(bO){QYO7+(bOITQWO7+(bO%/UQWO7+(bOOQQ7+(e7+(eO5iQ!LYO7+(eO#5YQWO7+(eO5_QWO7+(eO!,rQpO7+(eO%/dQWO,5>tOOQO-E<W-E<WOOQO'#Gu'#GuO%/oQWO1G5eO5iQ!LYO<<GpOOQQ<<Gp<<GpO%/wQWO<<GpO%/|QWO7++SO%0RQWO7++TOOQQ7+(m7+(mO%0WQWO7+(mO%0]QYO7+(mO%0dQWO7+(mO){QYO7++SO){QYO7++TOOQQ<<La<<LaOOQQ<<Lc<<LcOOQQ-E<Z-E<ZOOQQ1G3b1G3bO%0iQWO,5=wOOQQ,5=y,5=yO:^QWO<<LlO%0nQWO<<LlOLXQYO7+&ROOQO7+%T7+%TO%0sQ7^O1G5VO:^QWO7+%TOOQO1G0T1G0TO%0}Q!LdO1G0ZOOQO1G0Z1G0ZO){QYO1G0ZO%1XQ!LYO1G0ZO:^QWO1G0TO!,rQpO1G0TO!?{Q&jO1G0TO%1dQ!LYO1G0ZO%1rQ&jO1G0TO%2TQ!LYO1G0ZO%2iQ!LrO1G0ZO%2sQ&jO1G0TO!?{Q&jO1G0ZOOQ!LS<<IV<<IVOOQ!LS<<Ig<<IgO:^QWO<<IgO%2zQ!LdO<<NYOOQO7+)l7+)lO%3[Q!LdO7+'gO%5dQbO1G3|O%5nQ7^O7+%|O%5{Q7^O,59jO%7xQ7^O,5<UO%9uQ7^O,5<WO%;rQ7^O,5<fO%=bQ7^O7+'WO%=oQ7^O7+'XO%=|QWO,5;xOOQO7+&{7+&{O%>RQ#tO<<KfOOQO1G4U1G4UO%>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<<MzOOQ!LS7+$r7+$rO%@OQ`O,5>oOOQO-E<R-E<RO#IWQWOANASOOQQANASANASOITQWOANASO%@YQ!LbO7+'rOOQQAN=eAN=eO5qQWO1G4aOOQO1G4a1G4aO%@gQWO1G4aO%@lQWO7++RO%@lQWO7++RO5iQ!LYOANAoO%@tQWOANAoOOQQANAoANAoO%@yQWOANASO%ARQ`OANASOOQQANAZANAZOOQQANA[ANA[O%A]QWO,5>qOOQO-E<T-E<TO%AhQ7^O1G5dO#5YQWO,5=^O5_QWO,5=^O!,rQpO,5=^OOQO-E<V-E<VOOQQ1G2w1G2wO$:lQ!LrO,5:oO!?{Q&jO,5=^O%ArQ&jO,5=^O%BTQ&jO,5:oOOQQ<<K|<<K|OITQWO<<K|O%.mQWO<<K|O%B_QWO<<K|O%BgQ`O<<K|O){QYO<<K|OITQWO<<K|OOQQ<<LP<<LPO5iQ!LYO<<LPO#5YQWO<<LPO5_QWO<<LPO%BqQ&jO1G4`O%ByQWO7++POOQQAN=[AN=[O5iQ!LYOAN=[OOQQ<<Nn<<NnOOQQ<<No<<NoOOQQ<<LX<<LXO%CRQWO<<LXO%CWQYO<<LXO%C_QWO<<NnO%CdQWO<<NoOOQQ1G3c1G3cOOQQANBWANBWO:^QWOANBWO%CiQ7^O<<ImOOQO<<Ho<<HoOOQO7+%u7+%uO%0}Q!LdO7+%uO){QYO7+%uOOQO7+%o7+%oO:^QWO7+%oO!,rQpO7+%oO%CsQ!LYO7+%uO!?{Q&jO7+%oO%DOQ!LYO7+%uO%D^Q&jO7+%oO%DoQ!LYO7+%uOOQ!LSAN?RAN?RO%ETQ!LdO<<KfO%G]Q7^O<<JTO%GjQ7^O1G1yO%IYQ7^O1G2[O%KVQ7^O1G2^O%MSQ7^O<<JsO%MaQ7^O<<IhOOQO1G1d1G1dOOQO7+)p7+)pO%MnQWO7+)pO%MyQWO<<NeO%NRQ`O7+)rOOQO<<KZ<<KZO5iQ!LYO<<K[O$,[QWO<<K[OOQO<<KY<<KYO5iQ!LYO<<KZO%N]Q`O<<K[O$,[QWO<<KZOOQQG26nG26nO#IWQWOG26nOOQO7+){7+){O5qQWO7+){O%NdQWO<<NmOOQQG27ZG27ZO5iQ!LYOG27ZOITQWOG26nOLXQYO1G4]O%NlQWO7++OO5iQ!LYO1G2xO#5YQWO1G2xO5_QWO1G2xO!,rQpO1G2xO!?{Q&jO1G2xO%2iQ!LrO1G0ZO%NtQ&jO1G2xO%.mQWOANAhOOQQANAhANAhOITQWOANAhO& VQWOANAhO& _Q`OANAhOOQQANAkANAkO5iQ!LYOANAkO#5YQWOANAkOOQO'#Gv'#GvOOQO7+)z7+)zOOQQG22vG22vOOQQANAsANAsO& iQWOANAsOOQQANDYANDYOOQQANDZANDZO& nQYOG27rOOQO<<Ia<<IaO%0}Q!LdO<<IaOOQO<<IZ<<IZO:^QWO<<IZO){QYO<<IaO!,rQpO<<IZO&%lQ!LYO<<IaO!?{Q&jO<<IZO&%wQ!LYO<<IaO&&VQ7^O7+'gOOQO<<M[<<M[OOQOAN@vAN@vO5iQ!LYOAN@vOOQOAN@uAN@uO$,[QWOAN@vO5iQ!LYOAN@uOOQQLD,YLD,YOOQO<<Mg<<MgOOQQLD,uLD,uO#IWQWOLD,YO&'uQ7^O7+)wOOQO7+(d7+(dO5iQ!LYO7+(dO#5YQWO7+(dO5_QWO7+(dO!,rQpO7+(dO!?{Q&jO7+(dOOQQG27SG27SO%.mQWOG27SOITQWOG27SOOQQG27VG27VO5iQ!LYOG27VOOQQG27_G27_O:^QWOLD-^OOQOAN>{AN>{OOQOAN>uAN>uO%0}Q!LdOAN>{O:^QWOAN>uO){QYOAN>{O!,rQpOAN>uO&(PQ!LYOAN>{O&([Q7^O<<KfOOQOG26bG26bO5iQ!LYOG26bOOQOG26aG26aOOQQ!$( t!$( tOOQO<<LO<<LOO5iQ!LYO<<LOO#5YQWO<<LOO5_QWO<<LOO!,rQpO<<LOOOQQLD,nLD,nO%.mQWOLD,nOOQQLD,qLD,qOOQQ!$(!x!$(!xOOQOG24gG24gOOQOG24aG24aO%0}Q!LdOG24gO:^QWOG24aO){QYOG24gOOQOLD+|LD+|OOQOANAjANAjO5iQ!LYOANAjO#5YQWOANAjO5_QWOANAjOOQQ!$(!Y!$(!YOOQOLD*RLD*ROOQOLD){LD){O%0}Q!LdOLD*ROOQOG27UG27UO5iQ!LYOG27UO#5YQWOG27UOOQO!$'Mm!$'MmOOQOLD,pLD,pO5iQ!LYOLD,pOOQO!$(![!$(![OLXQYO'#DrO&)zQbO'#IrOLXQYO'#DjO&*RQ!LdO'#ChO&*lQbO'#ChO&*|QYO,5:vOLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO,5;ROLXQYO'#H}O&,|QWO,5<TO&.`QWO,5;ROLXQYO,5;fO!(aQWO'#DOO!(aQWO'#DOOITQWO'#FjO&-UQWO'#FjOITQWO'#FlO&-UQWO'#FlOITQWO'#FzO&-UQWO'#FzOLXQYO,5?kO&*|QYO1G0bO&.gQ7^O'#ChOLXQYO1G1lOITQWO,5<pO&-UQWO,5<pOITQWO,5<rO&-UQWO,5<rOITQWO,5<_O&-UQWO,5<_O&*|QYO1G1mOLXQYO7+&iOITQWO1G1{O&-UQWO1G1{O&*|QYO7+'XO&*|QYO7+%|OITQWO7+'zO&-UQWO7+'zO&.qQWO'#E[O&.vQWO'#E[O&/OQWO'#EzO&/TQWO'#EgO&/YQWO'#JPO&/eQWO'#I}O&/pQWO,5:vO&/uQ#tO,5<QO&/|QWO'#FsO&0RQWO'#FsO&0WQWO,5<RO&0`QWO,5:vO&0hQ7^O1G0}O&0oQWO,5<aO&0tQWO,5<aO&0yQWO1G1mO&1OQWO1G0bO&1TQ#tO1G2`O&1[Q#tO1G2`O4QQWO'#FhO5_QWO'#FgOBwQWO'#EZOLXQYO,5;cO!(pQWO'#FuO!(pQWO'#FuOJdQWO,5<tOJdQWO,5<t",stateData:"&2X~O'WOS'XOSTOSUOS~OPTOQTOXyO]cO_hObnOcmOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!TSO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!nlO#dsO#tpO#x^O%PqO%RtO%TrO%UrO%XuO%ZvO%^wO%_wO%axO%nzO%t{O%v|O%x}O%z!OO%}!PO&T!QO&X!RO&Z!SO&]!TO&_!UO&a!VO'ZPO'dQO'mYO'zaO~OP[XZ[X_[Xj[Xu[Xv[Xx[X!R[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'U[X'd[X'n[X'u[X'v[X~O!]$lX~P$zOR!WO'S!XO'T!ZO~OPTOQTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'Z![O'dQO'mYO'zaO~O!Q!`O!R!]O!O'hP!O'rP~P'dO!S!mO~P`OPTOQTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'Z9YO'dQO'mYO'zaO~OPTOQTO]cOb!kOc!jOhcOjTOkcOlcOqTOsTOxRO{cO|cO}cO!T!bO!_kO!dUO!gTO!hTO!iTO!jTO!kTO!n!iO#t!lO#x^O'dQO'mYO'zaO~O!Q!rO#U!uO#V!rO'Z9ZO!c'oP~P+{O#W!vO~O!]!wO#W!vO~OP#^OZ#dOj#ROu!{Ov!{Ox!|O!R#bO!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_'fX'U'fX!c'fX!O'fX!T'fX%Q'fX!]'fX~P.jO!{#eO#o#eOP'gXZ'gX_'gXj'gXu'gXv'gXx'gX!R'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~O#c'gX'U'gX!O'gX!c'gXn'gX!T'gX%Q'gX!]'gX~P0zO!{#eO~O#z#fO$R#jO~O!T#kO#x^O$U#lO$W#nO~O]#qOh$OOj#rOk#qOl#qOq$POs$QOx#xO!T#yO!_$VO!d#vO#V$WO#t$TO$_$RO$a$SO$d$UO'Z#pO'd#sO'_'aP~O!d$XO~O!]$ZO~O_$[O'U$[O~O'Z$`O~O!d$XO'Z$`O'[$bO'`$cO~Oc$iO!d$XO'Z$`O~O#c#TO~O]$rOu$nO!T$kO!d$mO%R$qO'Z$`O'[$bO^(SP~O!n$sO~Ox$tO!T$uO'Z$`O~Ox$tO!T$uO%Z$yO'Z$`O~O'Z$zO~O#dsO%RtO%TrO%UrO%XuO%ZvO%^wO%_wO~Ob%TOc%SO!n%QO%P%RO%c%PO~P7uOb%WOcmO!T%VO!nlO#dsO%PqO%TrO%UrO%XuO%ZvO%^wO%_wO%axO~O`%ZO!{%^O%R%XO'[$bO~P8tO!d%_O!g%cO~O!d%dO~O!TSO~O_$[O'R%lO'U$[O~O_$[O'R%oO'U$[O~O_$[O'R%qO'U$[O~OR!WO'S!XO'T%uO~OP[XZ[Xj[Xu[Xv[Xx[X!R[X!RdX!a[X!b[X!d[X!j[X!{[X!{dX#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~O!O[X!OdX~P;aO!Q%wO!O&gX!O&lX!R&gX!R&lX~P'dO!R%yO!O'hX~OP#^OZ#dOj#ROu!{Ov!{Ox!|O!R%yO!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!O'hX~P>^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.[3n5b5uP5uPPP5uP7c5uP5uP7gPP7lP8Q<cPPPP<gPPPP<g?XPPP?_AjP<gPDTPPPPE{<gPPPPPGt<gPPJuKrPPPPKvM`PMhNiPKr<g<g!#p!&k!+^!+^!.mPPP!.t!1j<gPPPPPPPPPP!4aP!5rPP<g!7PP<gP<g<g<g<gP<g!9dPP!<]P!?Q!?Y!?^!?^P!<YP!?b!?bP!BVP!BZ<g<g!Ba!ET5uP5uP5u5uP!FW5u5u!HO5u!JQ5u!Kr5u5u!L`!NY!NY!N^!NY!NfP!NYP5u# b5u#!l5u5u-uPPP##yPP#$c#$cP#$cP#$x#$cPP#%OP#$uP#$u#%bMd#$u#&P#&V#&Y(Y#&](YP#&d#&d#&dP(YP(YP(YP(YPP(YP#&j#&mP#&m(YPPP(YP(YP(YP(YP(YP(Y(Y#&q#&{#'R#'X#'g#'m#'s#'}#(T#(d#(j#(x#)O#)U#)d#)y#+]#+k#+q#+w#+}#,T#,_#,e#,k#,u#-X#-_PPPPPPPP#-ePP#.X#2VPP#3m#3t#3|PP#8Y#:m#@i#@l#@o#@z#@}PP#AQ#AU#As#Bj#Bn#CSPP#CW#C^#CbP#Ce#Ci#Cl#D[#Dr#Dw#Dz#D}#ET#EW#E[#E`mhOSj}!n$Z%b%e%f%h*m*r/a/dQ$hmQ$opQ%YyS&U!b+[Q&j!jS(j#y(oQ)e$iQ)r$qQ*^%SQ+b&]S+g&c+iQ+y&kQ-e(qQ/O*_Y0S+k+l+m+n+oS2o.s2qU3x0T0V0YU5e2t2u2vS6[3z3}S7S5f5gQ7n6^R8R7U$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8t!j'd#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nQ(z$QQ)j$kQ*`%VQ*g%_Q,T9lQ.Q)_Q.])kQ/W*eQ2Y.WQ3U/PQ4X9mR5Q2ZpeOSjy}!n$Z%X%b%e%f%h*m*r/a/dR*b%Z&WVOSTjkn}!S!W!k!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$Z$m%Z%^%_%b%d%e%f%h%l%y&R&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:m:n[!cRU!]!`%w&VQ$alQ$gmS$lp$qv$vrs!r!u$X$t&_&s&v)v)w)x*k+U+d,O,Q/j0eQ%OwQ&g!iQ&i!jS(^#v(hS)d$h$iQ)h$kQ)u$sQ*X%QQ*]%SS+x&j&kQ-R(_Q.U)eQ.[)kQ.^)lQ.a)pQ.y*YS.}*^*_Q0a+yQ1Z,}Q2X.WQ2].ZQ2b.cQ3T/OQ4d1[Q5P2ZQ5S2_Q6v5OR7x6w!Y$em!j$g$h$i&T&i&j&k(i)d)e+X+f+x+y-_.U/y0P0U0a1p3w3|6Y7l8`Q)]$aQ)}${Q*Q$|Q*[%SQ.e)uQ.x*XU.|*]*^*_Q3O.yS3S.}/OQ5`2nQ5r3TS7Q5a5dS8P7R7TQ8j8QR8y8kW#|a$c(w:kS${t%XQ$|uQ$}vR){$y$V#{a!w!y#d#v#x$R$S$W&f'|(V(X(Y(a(e(u(v)Y)[)_)|*P+u,Z-U-W-p-z-|.j.m.u.w1Y1c1m1t1{2O2S2e2{2}4g4s4{5i5n6{7X8U9j9n9o9p9q9r9s9x9y9z9{9|9}:Q:R:U:V:k:q:rT'}#s(OV({$Q9l9mU&Y!b$u+_Q'T!{Q)o$nQ.n*RQ1u-mR5[2j&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:n$]#aZ!_!o$_%v%|&x'P'V'W'X'Y'Z'[']'^'_'`'a'c'f'j't)n*}+Y+c+z,Y,`,c,e,s-q/o/r0b0l0p0q0r0s0t0u0v0w0x0y0z0{0|1P1U1y2V3o3r4S4V4W4]4^5^6R6U6b6f6g7h7{8]8r8}9W:dT!XQ!Y&_cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nQ&W!bR/u+[Y&Q!b&U&]+[+bS(i#y(oS+f&c+iS-_(j(qQ-`(kQ-f(rQ.p*TU0P+g+k+lU0U+m+n+oS0Z+p2sQ1p-eQ1r-gQ1s-hS2n.s2qU3w0S0T0VQ3{0WQ3|0YS5a2o2vS5d2t2uU6Y3x3z3}Q6_4OS7R5e5fQ7T5gS7l6[6^S8Q7S7UQ8`7nR8k8RlhOSj}!n$Z%b%e%f%h*m*r/a/dQ%j!QS&w!v9[Q)b$fQ*V%OQ*W%PQ+v&hS,X&|9uS-r)S:OQ.S)cQ.r*UQ/h*tQ/i*uQ/q+VQ0X+mQ0_+wS1z-s:SQ2T.TS2W.V:TQ3n/sQ3q/zQ4Q0`Q4}2UQ6P3kQ6S3pQ6W3vQ6`4RQ7f6QQ7i6XQ8[7jQ8o8YQ8q8^R8|8s$W#`Z!_!o%v%|&x'P'V'W'X'Y'Z'[']'^'_'`'a'c'f'j't)n*}+Y+c+z,Y,`,c,s-q/o/r0b0l0p0q0r0s0t0u0v0w0x0y0z0{0|1P1U1y2V3o3r4S4V4W4]4^5^6R6U6b6f6g7h7{8]8r8}9W:dU(t#z&{1OT)W$_,e$W#_Z!_!o%v%|&x'P'V'W'X'Y'Z'[']'^'_'`'a'c'f'j't)n*}+Y+c+z,Y,`,c,s-q/o/r0b0l0p0q0r0s0t0u0v0w0x0y0z0{0|1P1U1y2V3o3r4S4V4W4]4^5^6R6U6b6f6g7h7{8]8r8}9W:dQ'e#`S)V$_,eR-t)W&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nQ%e{Q%f|Q%h!OQ%i!PR/`*pQ&d!iQ)X$aQ+s&gS-y)])uS0[+q+rW1}-v-w-x.eS4P0]0^U4z2P2Q2RU6t4y5W5XQ7w6uR8f7zT+h&c+iS+f&c+iU0P+g+k+lU0U+m+n+oS0Z+p2sS2n.s2qU3w0S0T0VQ3{0WQ3|0YS5a2o2vS5d2t2uU6Y3x3z3}Q6_4OS7R5e5fQ7T5gS7l6[6^S8Q7S7UQ8`7nR8k8RS+h&c+iT2p.s2qS&q!q/^Q-Q(^Q-](iS0O+f2nQ1`-RS1j-^-fU3y0U0Z5dQ4c1ZS4q1q1sU6]3{3|7TQ6j4dQ6s4tR7o6_Q!xXS&p!q/^Q)T$YQ)`$dQ)f$jQ+|&qQ-P(^Q-[(iQ-a(lQ.R)aQ.z*ZS/}+f2nS1_-Q-RS1i-]-fQ1l-`Q1o-bQ3Q.{W3u0O0U0Z5dQ4b1ZQ4f1`S4k1j1sQ4r1rQ5p3RW6Z3y3{3|7TS6i4c4dQ6n4mQ6q4qQ7O5_Q7]5qS7m6]6_Q7q6jQ7s6oQ7v6sQ7}7PQ8W7^Q8a7oQ8d7uQ8h8OQ8w8iQ9P8xQ9T9QQ:^:XQ:g:bR:h:c$rWORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8tS!xn!k!j:W#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nR:^:m$rXORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8tQ$Yb!Y$dm!j$g$h$i&T&i&j&k(i)d)e+X+f+x+y-_.U/y0P0U0a1p3w3|6Y7l8`S$jn!kQ)a$eQ*Z%SW.{*[*]*^*_U3R.|.}/OQ5_2nS5q3S3TU7P5`5a5dQ7^5rU8O7Q7R7TS8i8P8QS8x8j8kQ9Q8y!j:X#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nQ:b:lR:c:m$f]OSTjk}!S!W!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%b%d%e%f%h%l%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8tY!hRU!]!`%wv$vrs!r!u$X$t&_&s&v)v)w)x*k+U+d,O,Q/j0eQ*h%_!h:Y#]#k'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nR:]&VS&Z!b$uR/w+_$p[ORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8t!j'd#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nR*g%_$roORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8tQ'T!{!k:Z#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:n!h#VZ!_$_%v%|&x'P'^'_'`'a'f'j)n*}+c+z,Y,`,s-q0b0l0|1y2V3r4S4V6U7h8]8r8}9W!R9c'c't+Y,e/o/r0p0x0y0z0{1P1U3o4W4]4^5^6R6b6f6g7{:d!d#XZ!_$_%v%|&x'P'`'a'f'j)n*}+c+z,Y,`,s-q0b0l0|1y2V3r4S4V6U7h8]8r8}9W}9e'c't+Y,e/o/r0p0z0{1P1U3o4W4]4^5^6R6b6f6g7{:d!`#]Z!_$_%v%|&x'P'f'j)n*}+c+z,Y,`,s-q0b0l0|1y2V3r4S4V6U7h8]8r8}9Wl(Y#t&})R,{-T-i-j0j1x4a4u:_:i:jx:n'c't+Y,e/o/r0p1P1U3o4W4]4^5^6R6b6f6g7{:d!`:q&y'h(](c+r,W,p-X-u-x.i.k0^0i1a1e2R2g2i2y4U4h4n4w4|5X5l6a6l6r7ZZ:r0}4[6c7p8b&^cORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nS#l`#mR1R,h&e_ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,h,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nS#g^#nT'm#i'qT#h^#nT'o#i'q&e`ORSTU`jk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#]#b#e#k#m$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&V&^&e&o&|'Q'v(Q)S)Z*i*m*r+P+T+W+t+{,^,d,h,i-n-s-{.V.v/X/Y/Z/]/a/d/f/t/|0c0m1Q2d2l2|3a3c3d3m3t5m5{6V6|7k8_8t9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:nT#l`#mQ#o`R'x#m$rbORSTUjk}!S!W!]!`!n!v!z!|#P#Q#R#S#T#U#V#W#X#Y#Z#b#e$Z$m%Z%^%_%b%d%e%f%h%l%w%y&R&^&e&o&|'Q(Q)S)Z*i*m*r+P+t+{,^,d-n-s-{.V.v/X/Y/Z/]/a/d/f/|0c0m2d2|3a3c3d3t5m5{6V7k8_8t!k:l#]#k&V'v+T+W,i/t1Q2l3m6|9V9X9[9]9^9_9`9a9b9c9d9e9f9g9h9k9t9u9w:O:P:S:T:n#RdOSUj}!S!W!n!|#k$Z%Z%^%_%b%d%e%f%h%l&R&e'v)Z*i*m*r+t,i-n-{.v/X/Y/Z/]/a/d/f1Q2d2|3a3c3d5m5{t#za!y$R$S$W(V(X(Y(a(u(v,Z-p1Y1t:k:q:r!|&{!w#d#v#x&f'|(e)Y)[)_)|*P+u-U-W-z-|.j.m.u.w1c1m1{2O2S2e2{2}4g4s4{5i5n6{7X8U9n9p9r9x9z9|:Q:UQ)P$UQ,t(Rc1O9j9o9q9s9y9{9}:R:Vt#wa!y$R$S$W(V(X(Y(a(u(v,Z-p1Y1t:k:q:rS(l#y(oQ)Q$VQ-b(m!|:`!w#d#v#x&f'|(e)Y)[)_)|*P+u-U-W-z-|.j.m.u.w1c1m1{2O2S2e2{2}4g4s4{5i5n6{7X8U9n9p9r9x9z9|:Q:Ub:a9j9o9q9s9y9{9}:R:VQ:e:oR:f:pt#za!y$R$S$W(V(X(Y(a(u(v,Z-p1Y1t:k:q:r!|&{!w#d#v#x&f'|(e)Y)[)_)|*P+u-U-W-z-|.j.m.u.w1c1m1{2O2S2e2{2}4g4s4{5i5n6{7X8U9n9p9r9x9z9|:Q:Uc1O9j9o9q9s9y9{9}:R:VlfOSj}!n$Z%b%e%f%h*m*r/a/dQ(d#xQ*y%oQ*z%qR1b-U$U#{a!w!y#d#v#x$R$S$W&f'|(V(X(Y(a(e(u(v)Y)[)_)|*P+u,Z-U-W-p-z-|.j.m.u.w1Y1c1m1t1{2O2S2e2{2}4g4s4{5i5n6{7X8U9j9n9o9p9q9r9s9x9y9z9{9|9}:Q:R:U:V:k:q:rQ*O$|Q.l*QQ2h.kR5Z2iT(n#y(oS(n#y(oT2p.s2qQ)`$dQ-a(lQ.R)aQ.z*ZQ3Q.{Q5p3RQ7O5_Q7]5qQ7}7PQ8W7^Q8h8OQ8w8iQ9P8xR9T9Ql(V#t&})R,{-T-i-j0j1x4a4u:_:i:j!`9x&y'h(](c+r,W,p-X-u-x.i.k0^0i1a1e2R2g2i2y4U4h4n4w4|5X5l6a6l6r7ZZ9y0}4[6c7p8bn(X#t&})R,y,{-T-i-j0j1x4a4u:_:i:j!b9z&y'h(](c+r,W,p-X-u-x.i.k0^0g0i1a1e2R2g2i2y4U4h4n4w4|5X5l6a6l6r7Z]9{0}4[6c6d7p8bpeOSjy}!n$Z%X%b%e%f%h*m*r/a/dQ%UxR*i%_peOSjy}!n$Z%X%b%e%f%h*m*r/a/dR%UxQ*S$}R.h){qeOSjy}!n$Z%X%b%e%f%h*m*r/a/dQ.t*XS2z.x.yW5h2w2x2y3OU7W5j5k5lU8S7V7Y7ZQ8l8TR8z8mQ%]yR*c%XR3X/RR7`5sS$lp$qR.^)lQ%bzR*m%cR*s%iT/b*r/dQjOQ!nST$^j!nQ(O#sR,q(OQ!YQR%t!YQ!^RU%z!^%{+QQ%{!_R+Q%|Q+]&WR/v+]Q,[&}R0k,[Q,_'PS0n,_0oR0o,`Q+i&cR0Q+iS!eR$tU&`!e&a+RQ&a!fR+R%}Q+`&ZR/x+`Q&t!sQ+}&rU,R&t+}0fR0f,SQ'q#iR,j'qQ#m`R'w#mQ#cZU'g#c*|9iQ*|9WR9i'tQ-O(^W1]-O1^4e6kU1^-P-Q-RS4e1_1`R6k4f#q(T#t&y&}'h(](c(|(})R+r,U,V,W,p,y,z,{-T-X-i-j-u-x.i.k0^0g0h0i0j0}1a1e1x2R2g2i2y4U4Y4Z4[4a4h4n4u4w4|5X5l6a6c6d6e6l6r7Z7p8b:_:i:jQ-V(cU1d-V1f4iQ1f-XR4i1eQ(o#yR-c(oQ(x#}R-l(xQ1|-uR4x1|Q)y$wR.g)yQ2k.nS5]2k6}R6}5^Q*U%OR.q*UQ2q.sR5b2qQ/Q*`S3V/Q5tR5t3XQ.X)hW2[.X2^5R6xQ2^.[Q5R2]R6x5SQ)m$lR._)mQ/d*rR3g/dWiOSj!nQ%g}Q)U$ZQ*l%bQ*n%eQ*o%fQ*q%hQ/_*mS/b*r/dR3f/aQ$]gQ%k!RQ%n!TQ%p!UQ%r!VQ)t$rQ)z$xQ*b%]Q*w%mS/T*c*fQ/k*vQ/l*yQ/m*zS/{+f2nQ1g-ZQ1h-[Q1n-aQ2a.bQ2f.iQ3P.zQ3Z/VQ3e/`Y3s/}0O0U0Z5dQ4j1iQ4l1kQ4o1oQ5V2cQ5Y2gQ5o3QQ5u3Y[6T3r3u3y3{3|7TQ6m4kQ6p4pQ6y5TQ7[5pQ7a5vW7g6U6Z6]6_Q7r6nQ7t6qQ7y6zQ7|7OQ8V7]U8Z7h7m7oQ8c7sQ8e7vQ8g7}Q8n8WS8p8]8aQ8u8dQ8v8hQ8{8rQ9O8wQ9R8}Q9S9PR9U9TQ$fmQ&h!jU)c$g$h$iQ+V&TU+w&i&j&kQ-Z(iS.T)d)eQ/s+XQ/z+fS0`+x+yQ1k-_Q2U.UQ3p/yS3v0P0UQ4R0aQ4p1pS6X3w3|Q7j6YQ8^7lR8s8`S#ua:kR)^$cU#}a$c:kR-k(wQ#taS&y!w)_Q&}!yQ'h#dQ(]#vQ(c#xQ(|$RQ(}$SQ)R$WQ+r&fQ,U9nQ,V9pQ,W9rQ,p'|Q,y(VQ,z(XQ,{(YQ-T(aQ-X(eQ-i(uQ-j(vd-u)Y-z.u2O2{4{5i6{7X8UQ-x)[Q.i)|Q.k*PQ0^+uQ0g9xQ0h9zQ0i9|Q0j,ZQ0}9jQ1a-UQ1e-WQ1x-pQ2R-|Q2g.jQ2i.mQ2y.wQ4U:QQ4Y9oQ4Z9qQ4[9sQ4a1YQ4h1cQ4n1mQ4u1tQ4w1{Q4|2SQ5X2eQ5l2}Q6a:UQ6c9}Q6d9yQ6e9{Q6l4gQ6r4sQ7Z5nQ7p:RQ8b:VQ:_:kQ:i:qR:j:rlgOSj}!n$Z%b%e%f%h*m*r/a/dS!pU%dQ%m!SQ%s!WQ'U!|Q'u#kS*f%Z%^Q*j%_Q*v%lQ+S&RQ+q&eQ,n'vQ-w)ZQ/[*iQ0]+tQ1T,iQ1v-nQ2Q-{Q2x.vQ3]/XQ3^/YQ3`/ZQ3b/]Q3i/fQ4_1QQ5W2dQ5k2|Q5z3aQ5|3cQ5}3dQ7Y5mR7c5{!vZOSUj}!S!n!|$Z%Z%^%_%b%d%e%f%h%l&R&e)Z*i*m*r+t-n-{.v/X/Y/Z/]/a/d/f2d2|3a3c3d5m5{Q!_RQ!oTQ$_kS%v!]%yQ%|!`Q&x!vQ'P!zQ'V#PQ'W#QQ'X#RQ'Y#SQ'Z#TQ'[#UQ']#VQ'^#WQ'_#XQ'`#YQ'a#ZQ'c#]Q'f#bQ'j#eW't#k'v,i1QQ)n$mS*}%w+PS+Y&V/tQ+c&^Q+z&oQ,Y&|Q,`'QQ,c9VQ,e9XQ,s(QQ-q)SQ/o+TQ/r+WQ0b+{Q0l,^Q0p9[Q0q9]Q0r9^Q0s9_Q0t9`Q0u9aQ0v9bQ0w9cQ0x9dQ0y9eQ0z9fQ0{9gQ0|,dQ1P9kQ1U9hQ1y-sQ2V.VQ3o9tQ3r/|Q4S0cQ4V0mQ4W9uQ4]9wQ4^:OQ5^2lQ6R3mQ6U3tQ6b:PQ6f:SQ6g:TQ7h6VQ7{6|Q8]7kQ8r8_Q8}8tQ9W!WR:d:nR!aRR&X!bS&T!b+[S+X&U&]R/y+bR'O!yR'R!zT!tU$XS!sU$XU$wrs*kS&r!r!uQ,P&sQ,S&vQ.f)xS0d,O,QR4T0e`!dR!]!`$t%w&_)v+dh!qUrs!r!u$X&s&v)x,O,Q0eQ/^*kQ/p+UQ3l/jT:[&V)wT!gR$tS!fR$tS%x!]&_S%}!`)vS+O%w+dT+Z&V)wT&[!b$uQ#i^R'z#nT'p#i'qR1S,hT(`#v(hR(f#xQ-v)YQ2P-zQ2w.uQ4y2OQ5j2{Q6u4{Q7V5iQ7z6{Q8T7XR8m8UlhOSj}!n$Z%b%e%f%h*m*r/a/dQ%[yR*b%XV$xrs*kR.o*RR*a%VQ$ppR)s$qR)i$kT%`z%cT%az%cT/c*r/d",nodeNames:"\u26A0 ArithOp ArithOp InterpolationStart extends 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 catch finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement",maxTerm:330,context:trackNewline,nodeProps:[[NodeProp.closedBy,3,"InterpolationEnd",40,"]",51,"}",66,")",132,"JSXSelfCloseEndTag JSXEndTag",146,"JSXEndTag"],[NodeProp.group,-26,8,15,17,58,184,188,191,192,194,197,200,211,213,219,221,223,225,228,234,238,240,242,244,246,248,249,"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"],[NodeProp.openedBy,30,"InterpolationStart",46,"[",50,"{",65,"(",131,"JSXStartTag",141,"JSXStartTag JSXStartCloseTag"]],skippedNodes:[0,5,6],repeatNodeCount:28,tokenData:"!C}~R!`OX%TXY%cYZ'RZ[%c[]%T]^'R^p%Tpq%cqr'crs(kst0htu2`uv4pvw5ewx6cxy<yyz=Zz{=k{|>k|}?O}!O>k!O!P?`!P!QCl!Q!R!0[!R![!1q![!]!7s!]!^!8V!^!_!8g!_!`!9d!`!a!:[!a!b!<R!b!c%T!c!}2`!}#O!=d#O#P%T#P#Q!=t#Q#R!>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#P<e#P#o;k#o#p9f#p~;k!Z;rZ$UW]!ROY;kYZ%TZw;kwx/rx!^;k!^!_9f!_#O;k#O#P<e#P#o;k#o#p9f#p~;k!Z<jT$UWO!^;k!^!_9f!_#o;k#o#p9f#p~;k%V=QR!d$}$UWO!^%T!_#o%T#p~%TZ=bR!cR$UWO!^%T!_#o%T#p~%T%R=tU'[!R#_#v$UWOz%Tz{>W{!^%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!<YV'n%o$UWO!O%T!O!P!<o!P!^%T!_!a%T!a!b!=P!b#o%T#p~%T$`!<vRv$W$UWO!^%T!_#o%T#p~%T$O!=WS$UW#j#vO!^%T!_!`5T!`#o%T#p~%T&e!=kRx&]$UWO!^%T!_#o%T#p~%TZ!={R!OR$UWO!^%T!_#o%T#p~%T$O!>]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 {
|
|
\${}
|
|
} catch (\${error}) {
|
|
\${}
|
|
}`,{label:"try",detail:"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(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(Ot({},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:"#2C323699"},"&.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-activeLine":{backgroundColor:highlightBackground},".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],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: 1px 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]})})}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(ft=>_e(mt=>mt+`${mt?`
|
|
|
|
`:""}${ft}`),[]),lt=react.exports.useMemo(()=>{if(k&&!k.includes("strudel disable-highlighting"))return(ft,mt)=>c==null?void 0:c(ft,mt,k)},[k,c]),ut=useCycle({onDraw:lt,onEvent:react.exports.useCallback((ft,mt,Et)=>{var vt;try{a==null||a(mt),(vt=mt.context.logs)!=null&&vt.length&&mt.context.logs.forEach(ct);const{onTrigger:At,velocity:_t}=mt.context;if(At)At(ft,mt,Et,1,mt.wholeOrPart().begin.valueOf(),mt.duration.valueOf());else if(e){const Dt=getPlayableNoteValue(mt);e.triggerAttackRelease(Dt,mt.duration.valueOf(),ft,_t)}else throw new Error("no defaultSynth passed to useRepl.")}catch(At){console.warn(At),At.message="unplayable event: "+(At==null?void 0:At.message),ct(At.message)}},[a,ct,e]),onQuery:react.exports.useCallback(ft=>{try{return(at==null?void 0:at.query(ft))||[]}catch(mt){return console.warn(mt),mt.message="query error: "+mt.message,tt(mt),[]}},[at]),onSchedule:react.exports.useCallback((ft,mt)=>gt(ft,mt),[]),ready:!!at&&!!k}),pt=usePostMessage(({data:{from:ft,type:mt}})=>{mt==="start"&&ft!==d&&(ut.setStarted(!1),$(void 0))}),dt=react.exports.useCallback(async(ft=_)=>{if(k&&!ht){tt(void 0),ut.start();return}try{st(!0);const mt=await evaluate(ft);ut.start(),pt({type:"start",from:d}),ot(()=>mt.pattern),s&&(window.location.hash="#"+encodeURIComponent(btoa(_))),it(generateHash(_)),tt(void 0),$(ft),st(!1)}catch(mt){mt.message="evaluation error: "+mt.message,console.warn(mt),tt(mt)}},[k,ht,_,ut,s,d,pt]),gt=(ft,mt)=>{ft.length};return{pending:nt,code:_,setCode:b,pattern:at,error:et,cycle:ut,setPattern:ot,dirty:ht,log:j,togglePlay:()=>{ut.started?ut.stop():dt()},setActiveCode:$,activateCode:dt,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_10e1g_1",header="_header_10e1g_5",buttons="_buttons_10e1g_9",button="_button_10e1g_9",buttonDisabled="_buttonDisabled_10e1g_17",error="_error_10e1g_21",body="_body_10e1g_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}){const{code:a,setCode:c,pattern:d,activateCode:_,error:b,cycle:k,dirty:$,togglePlay:j}=useRepl({tune:o,defaultSynth:e,autolink:!1}),[_e,et]=react.exports.useState(),[tt,nt]=useInView({threshold:.01}),st=react.exports.useRef(),rt=react.exports.useMemo(()=>((nt||!s)&&(st.current=!0),nt||st.current),[nt,s]);return useHighlighting({view:_e,pattern:d,active:k.started}),jsxs("div",{className:styles.container,ref:tt,children:[jsxs("div",{className:styles.header,children:[jsxs("div",{className:styles.buttons,children:[jsx("button",{className:cx(styles.button,k.started?"sc-animate-pulse":""),onClick:()=>j(),children:jsx(Icon,{type:k.started?"pause":"play"})}),jsx("button",{className:cx($?styles.button:styles.buttonDisabled),onClick:()=>_(),children:jsx(Icon,{type:"refresh"})})]}),b&&jsx("div",{className:styles.error,children:b.message})]}),jsx("div",{className:styles.body,children:rt&&jsx(CodeMirror,{value:a,onChange:c,onViewChanged:et})})]})}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 lt=this.ac.createGain();this.disconnectOnEnd(lt),ct.gain.value=Math.cos(rt*Math.PI/2)*nt,lt.gain.value=Math.sin(rt*Math.PI/2)*nt,_e.connect(ct),_e.connect(lt),this.gain1=ct,this.gain2=lt;var ut=this.ac.createChannelMerger(this.audioOutputs);this.disconnectOnEnd(ut),ct.connect(ut,0,it),lt.connect(ut,0,at),ut.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=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;$<this.source.disconnectQueue.length;$++)this.source.disconnectQueue[$].disconnect();this.source.disconnectQueue=null;try{this.source.stop()}catch{}}},c.prototype.disconnectHandler=function(){var $=this;return function(){setTimeout(function(){if($.source.disconnectQueue==null)throw Error("WebDirt: no disconnectQueue for event "+$.eventCounter);for(var j=0;j<$.source.disconnectQueue.length;j++)$.source.disconnectQueue[j].disconnect();$.source.disconnectQueue=null},250)}},c.prototype.coarse=function($,j){if(j=parseInt(j),isNaN(j)&&(j=1),j>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;et<this.cutGroups.length;et++){var tt=this.cutGroups[et];tt.cutGroup==$&&($<0?tt.sampleName==j&&(tt.node.stop(this.when),this.cutGroups.splice(et,1)):(tt.node.stop(this.when),this.cutGroups.splice(et,1)))}this.cutGroups.push(_e)}},c.prototype.delay=function($,j,_e,et){if(isNaN(parseInt(j))&&(j=0),(j=Math.abs(j))!=0){var tt=this.ac.createDelay();this.disconnectOnEnd(tt),isNaN(parseInt(_e))&&(console.log("WebDirt: warning: delaytime not a number, using default of 1"),_e=1),tt.delayTime.value=_e;var nt=this.ac.createGain();this.disconnectOnEnd(nt),isNaN(parseInt(et))&&(console.log("WebDirt: warning: delayfeedback not a number, using default of 0.5"),et=.5),nt.gain.value=Math.min(Math.abs(et),.995);var st=this.ac.createGain();return this.disconnectOnEnd(st),st.gain.value=j,$.connect(tt),tt.connect(nt),tt.connect(st),st.gain.setValueAtTime(st.gain.value,this.when+parseFloat(_e)),nt.connect(tt),st}return $},c.prototype.highPassFilter=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="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<rt;at++)st[at]=tt[at];for(at=0;at<et-rt;at++)st[at+rt]=tt[rt-at];nt.copyToChannel(st,it,0)}return nt},c.prototype.accel=function($,j,_e){if(isNaN(parseFloat(j)))return $;j=parseFloat(j);try{var et=$.length}catch{return void console.log("WebDirt: Warning, buffer data not loaded, accelerate effect not applied")}for(var tt=new Float32Array(et),nt=this.ac.createBuffer($.numberOfChannels,$.length,this.ac.sampleRate),st=new Float32Array(et),rt=0;rt<$.numberOfChannels;rt++){var it=_e;$.copyFromChannel(tt,rt,0);for(var at=0,ot=0;ot<et&&(st[at]=tt[Math.round(ot)],it+=j/this.ac.sampleRate,!(ot<0));ot+=it)at++;nt.copyToChannel(st,rt,0)}return nt},c.prototype.shape=function($,j){if(j=parseFloat(j),isNaN(j)&&(j=0),j>=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 $};var _={a:{freqs:[660,1120,2750,3e3,3350],amps:[1,.5012,.0708,.0631,.0126],qs:[80,90,120,130,140]},e:{freqs:[440,1800,2700,3e3,3300],amps:[1,.1995,.1259,.1,.1],qs:[70,80,100,120,120]},i:{freqs:[270,1850,2900,3350,3590],amps:[1,.0631,.0631,.0158,.0158],qs:[40,90,100,120,120]},o:{freqs:[430,820,2700,3e3,3300],amps:[1,.3162,.0501,.0794,.01995],qs:[40,80,100,120,120]},u:{freqs:[370,630,2750,3e3,3400],amps:[1,.1,.0708,.0316,.01995],qs:[40,60,100,120,120]}};function b($,j,_e){this.STATUS_PRELOAD=0,this.STATUS_LOADING=1,this.STATUS_READY=2,this.STATUS_ERROR=3,this.sampleMapUrl=$,this.urlPrefix=j,this.samples={};var et=new XMLHttpRequest;et.open("GET",this.sampleMapUrl,!0),et.responseType="json";var tt=this;et.onload=function(){if(et.readyState!=4)throw Error("WebDirt: readyState != 4 in callback of sampleMap load");if(et.status!=200)throw Error("WebDirt: status != 200 in callback of sampleMap load");if(et.response==null)throw Error("WebDirt: JSON response null in callback of sampleMap load");tt.sampleMap=et.response,console.log("WebDirt: sampleMap loaded from "+tt.sampleMapUrl),typeof _e=="function"&&_e()},et.onerror=function(){console.log("WebDirt: unspecified error in loading of sampleMap from "+tt.sampleMapUrl)},et.send()}function k($){this.workletsAvailable=!1,$===void 0&&($={}),typeof $=="object"?(typeof $.sampleMapUrl=="string"?($.sampleFolder==null&&($.sampleFolder="samples"),console.log("WebDirt: will manage own sample bank, samplemap="+$.sampleMapUrl+" sampleFolder="+$.sampleFolder),this.sampleBank=new b($.sampleMapUrl,$.sampleFolder,$.readyCallback)):console.log("WebDirt: will expect application to provide sample buffers"),$.latency==null&&($.latency=.4),this.latency=$.latency,typeof $.maxLateness!="number"?this.maxLateness=.005:this.maxLateness=$.maxLateness,this.ac=$.audioContext,this.destination=$.destination,this.cutGroups=new Array,this.eventCounter=0,this.audioOutputs=2,this.ac==null?console.log("WebDirt: initialized (without audio context)"):this.destination==null?(this.destination=this.ac.destination,console.log("WebDirt: initialized with provided context")):console.log("WebDirt: initialized with provided context + destination")):console.log("WebDirt: unable to construct WebDirt object, arguments object not provided to constructor")}return b.prototype.loadAllNamed=function($){if(this.ac==null)throw Error("WebDirt: called SampleBank.loadAllNamed with null audio context");if(this.sampleMap==null)throw Error("WebDirt: SampleBank.loadAllNamed: sampleMap is null");if(this.sampleMap[$]!=null)for(var j=0;j<this.sampleMap[$].length;j++)this.load(this.getFilename($,j));else console.log("WebDirt: can't loadAllNamed "+$+" (not present in sampleMap)")},b.prototype.load=function($,j){if(this.samples[$]==null&&(this.samples[$]={},this.samples[$].status=this.STATUS_PRELOAD),this.samples[$].status!=this.STATUS_READY){if(this.samples[$].status!=this.STATUS_ERROR&&this.samples[$].status!=this.STATUS_LOADING){this.samples[$].status=this.STATUS_LOADING;var _e=this.urlPrefix+"/"+$,et=new XMLHttpRequest;try{et.open("GET",_e,!0),et.responseType="arraybuffer";var tt=this;et.onload=function(){tt.ac.decodeAudioData(et.response,function(nt){tt.samples[$].buffer=nt,tt.samples[$].status=tt.STATUS_READY,typeof j=="function"&&j()},function(nt){console.log("WebDirt: error decoding "+_e),tt.samples[$].status=tt.STATUS_ERROR})},et.onerror=function(){console.log("WebDirt: error requesting "+_e),tt.samples[$].status=tt.STATUS_ERROR},et.send()}catch(nt){console.log("WebDirt: exception loading "+_e+" = "+nt),tt.samples[$].status=tt.STATUS_ERROR}}}else typeof j=="function"&&j()},b.prototype.sampleNameExists=function($){return this.sampleMap==null?(console.log("WebDirt: can't lookup sample bank because sampleMap doesn't exist"),!1):this.sampleMap[$]!=null},b.prototype.getFilename=function($,j){return j==null&&(j=0),j<0&&(j=this.sampleMap[$].length-Math.abs(j)%this.sampleMap[$].length),j%=this.sampleMap[$].length,this.sampleMap[$][j]},b.prototype.getBufferMightSucceed=function($,j){var _e=this.getFilename($,j);if(this.samples[_e]==null)return!0;if(this.samples[_e].status==this.STATUS_PRELOAD)return!1;if(this.samples[_e].status==this.STATUS_LOADING||this.samples[_e].status==this.STATUS_READY)return!0;if(this.samples[_e].status==this.STATUS_ERROR)return!1;throw Error("WebDirt: SampleBank.getBufferMightSucceed: unrecognized status for "+$+":"+j)},b.prototype.getBuffer=function($,j){var _e=this.getFilename($,j);return this.samples[_e]==null?(this.load(_e),null):this.samples[_e].status==this.STATUS_PRELOAD?(console.log("WebDirt: *strange error* in SampleBank.getBuffer: sample "+$+":"+j+" status is PRELOAD"),null):this.samples[_e].status==this.STATUS_ERROR?(console.log("WebDirt: SampleBank.getBuffer: sample "+$+" has status error"),null):this.samples[_e].status==this.STATUS_LOADING?(console.log("WebDirt: SampleBank.getBuffer: "+$+":"+j+" is still loading"),null):this.samples[_e].status==this.STATUS_READY?this.samples[_e].buffer:(console.log("WebDirt: *strange error* in SampleBank.getBuffer: sample "+$+":"+j+" has unknown status"),null)},b.prototype.getReverseBuffer=function($,j){if(this.sampleMap[$]!=null){var _e=this.getFilename($,j);if(this.samples[_e]!=null){if(this.samples[_e].reverseBuffer!=null)return this.samples[_e].reverseBuffer;if(this.samples[_e].status==this.STATUS_READY)return this.samples[_e].reverseBuffer=function(et,tt){for(var nt=tt.length,st=new Float32Array(nt),rt=et.createBuffer(tt.numberOfChannels,tt.length,et.sampleRate),it=new Float32Array(nt),at=0;at<tt.numberOfChannels;at++){tt.copyFromChannel(st,at,0);for(var ot=0;ot<nt;ot++)it[ot]=st[nt-ot];it[0]=it[1],rt.copyToChannel(it,at,0)}return rt}(this.ac,this.samples[_e].buffer),this.samples[_e].reverseBuffer}return this.load(_e),null}console.log("WebDirt: can't getReverseBuffer "+$+" (not present in sampleMap)")},k.prototype.initializeWebAudio=function(){if(this.ac==null)try{window.AudioContext=window.AudioContext||window.webkitAudioContext,this.ac=new AudioContext,this.destination=this.ac.destination,console.log("WebDirt: own audio context created")}catch(j){return console.log(j),void alert("Web Audio API is not supported in this browser")}if(this.ac!=null){this.ac.audioWorklet!=null?this.ac.audioWorklet.addModule("WebDirt/AudioWorklets.js").then(()=>{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(Ot({},$),{[(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=Ot(Ot({},sampleCache.current),Object.fromEntries(Object.entries(o).map(([s,a])=>[s,(typeof a=="string"?[a]:a).map(c=>(e+c).replace("github:","https://raw.githubusercontent.com/"))])))},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)=>{const s=getAudioContext(),a=getLoadedSamples();if(!a)throw new Error("no samples loaded");const c=a==null?void 0:a[o];if(!c)throw new Error("sample not found:",o,"try one of "+Object.keys(a));const d=c[e%c.length],_=await loadBuffer(d,s),b=s.createBufferSource();return b.buffer=_,b};Pattern$1.prototype.out=function(){return this.onTrigger(async(o,e,s)=>{const a=getAudioContext();o=a.currentTime+o-s;let{freq:c,s:d,sf:_,n:b=0,gain:k=1,cutoff:$,resonance:j=1,hcutoff:_e,hresonance:et=1,bandf:tt,bandq:nt=1,pan:st,attack:rt=.001,decay:it=0,sustain:at=1,release:ot=.001,speed:ht=1,begin:ct=0,end:lt=1}=e.value;const ut=[];if(typeof b=="string"&&(b=toMidi(b)),!d||["sine","square","triangle","sawtooth"].includes(d)){!c&&typeof b=="number"&&(c=fromMidi(b));const dt=getOscillator({t:o,s:d,freq:c,duration:e.duration,release:ot});ut.push(dt);const gt=a.createGain();gt.gain.value=.5,ut.push(gt);const yt=getADSR(rt,it,at,ot,1,o,o+e.duration);ut.push(yt)}else{if(ht===0)return;if(!d){console.warn("no sample specified");return}const dt=getSoundfontKey(d);let gt;try{dt?gt=await globalThis.getFontBufferSource(dt,b,a):gt=await getSampleBufferSource(d,b)}catch(mt){console.warn(mt);return}if(a.currentTime>o){console.warn("sample still loading:",d,b);return}if(!gt){console.warn("no buffer source");return}gt.playbackRate.value=Math.abs(ht)*gt.playbackRate.value;let yt=dt?e.duration:gt.buffer.duration;const ft=ct*yt;if(yt=(lt-ct)*yt/Math.abs(ht),dt?gt.start(o,ft):gt.start(o,ft,yt),gt.stop(o+yt),ut.push(gt),dt){const mt=a.createGain();mt.gain.value=1;const Et=.1;mt.gain.value=.5,mt.gain.setValueAtTime(.5,o+yt-Et),mt.gain.linearRampToValueAtTime(0,o+yt),ut.push(mt)}}if($!==void 0&&ut.push(getFilter("lowpass",$,j)),_e!==void 0&&ut.push(getFilter("highpass",_e,et)),tt!==void 0&&ut.push(getFilter("bandpass",tt,nt)),st!==void 0){const dt=a.createStereoPanner();dt.pan.value=2*st-1,ut.push(dt)}const pt=a.createGain();pt.gain.value=.8*k,ut.push(pt),ut.push(a.destination),ut.slice(1).reduce((dt,gt)=>dt.connect(gt),ut[0])})};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(Ot({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=Ot({buffer:{buffer:tt}},k);webDirt.playSample(nt,d)}}};return o.setContext(wt(Ot({},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.bc775c5e.js"),[]),__vitePreload(()=>import("./index.12de088d.js"),[]),__vitePreload(()=>import("./index.9b63be13.js"),[]),__vitePreload(()=>import("./index.5da8098b.js"),[]),__vitePreload(()=>import("./index.95dc6c47.js"),[]),__vitePreload(()=>import("./index.11c98b2e.js"),[]),__vitePreload(()=>import("./osc.920f5d31.js"),[]),__vitePreload(()=>import("./index.7a5955e3.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(Ot(Ot({},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:"#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:"#appendpat"},"append(pat)")),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());
|
|
const hihat = new MetalSynth().set(adsr(0, .08, 0, .1)).chain(vol(.3).connect(delay),out());
|
|
const bass = new Synth().set({ ...osc('sawtooth'), ...adsr(0, .1, .4) }).chain(lowpass(900), vol(.5), out());
|
|
const keys = new PolySynth().set({ ...osc('sawtooth'), ...adsr(0, .5, .2, .7) }).chain(lowpass(1200), vol(.5), out());
|
|
const drums = stack(
|
|
"c1*2".tone(kick).bypass("<0@7 1>/8"),
|
|
"~ <x!7 [x@3 x]>".tone(snare).bypass("<0@7 1>/4"),
|
|
"[~ c4]*2".tone(hihat)
|
|
);
|
|
const thru = (x) => x.transpose("<0 1>/8").transpose(-1);
|
|
const synths = stack(
|
|
"<eb4 d4 c4 b3>/2".scale(timeCat([3,'C minor'],[1,'C melodic minor']).slow(8)).struct("[~ x]*2")
|
|
.edit(
|
|
scaleTranspose(0).early(0),
|
|
scaleTranspose(2).early(1/8),
|
|
scaleTranspose(7).early(1/4),
|
|
scaleTranspose(8).early(3/8)
|
|
).edit(thru).tone(keys).bypass("<1 0>/16"),
|
|
"<C2 Bb1 Ab1 [G1 [G2 G1]]>/2".struct("[x [~ x] <[~ [~ x]]!3 [x x]>@2]/2".fast(2)).edit(thru).tone(bass),
|
|
"<Cm7 Bb7 Fm7 G7b13>/2".struct("~ [x@0.1 ~]".fast(2)).voicings().edit(thru).every(2, early(1/8)).tone(keys).bypass("<0@7 1>/8".early(1/4))
|
|
)
|
|
stack(
|
|
drums.fast(2),
|
|
synths
|
|
).slow(2);
|
|
`,mdxType:"MiniRepl"}),createElement("p",null,createElement("a",{parentName:"p",href:"https://strudel.tidalcycles.org/#KCkgPT4gewogIGNvbnN0IGRlbGF5ID0gbmV3IEZlZWRiYWNrRGVsYXkoMS84LCAuNCkuY2hhaW4odm9sKDAuNSksIG91dCk7CiAgY29uc3Qga2ljayA9IG5ldyBNZW1icmFuZVN5bnRoKCkuY2hhaW4odm9sKC44KSwgb3V0KTsKICBjb25zdCBzbmFyZSA9IG5ldyBOb2lzZVN5bnRoKCkuY2hhaW4odm9sKC44KSwgb3V0KTsKICBjb25zdCBoaWhhdCA9IG5ldyBNZXRhbFN5bnRoKCkuc2V0KGFkc3IoMCwgLjA4LCAwLCAuMSkpLmNoYWluKHZvbCguMykuY29ubmVjdChkZWxheSksb3V0KTsKICBjb25zdCBiYXNzID0gbmV3IFN5bnRoKCkuc2V0KHsgLi4ub3NjKCdzYXd0b290aCcpLCAuLi5hZHNyKDAsIC4xLCAuNCkgfSkuY2hhaW4obG93cGFzcyg5MDApLCB2b2woLjUpLCBvdXQpOwogIGNvbnN0IGtleXMgPSBuZXcgUG9seVN5bnRoKCkuc2V0KHsgLi4ub3NjKCdzYXd0b290aCcpLCAuLi5hZHNyKDAsIC41LCAuMiwgLjcpIH0pLmNoYWluKGxvd3Bhc3MoMTIwMCksIHZvbCguNSksIG91dCk7CiAgCiAgY29uc3QgZHJ1bXMgPSBzdGFjaygKICAgICdjMSoyJy5tLnRvbmUoa2ljaykuYnlwYXNzKCc8MEA3IDE%2BLzgnLm0pLAogICAgJ34gPHghNyBbeEAzIHhdPicubS50b25lKHNuYXJlKS5ieXBhc3MoJzwwQDcgMT4vNCcubSksCiAgICAnW34gYzRdKjInLm0udG9uZShoaWhhdCkKICApOwogIAogIGNvbnN0IHRocnUgPSAoeCkgPT4geC50cmFuc3Bvc2UoJzwwIDE%2BLzgnLm0pLnRyYW5zcG9zZSgtMSk7CiAgY29uc3Qgc3ludGhzID0gc3RhY2soCiAgICAnPGViNCBkNCBjNCBiMz4vMicubS5zY2FsZSh0aW1lQ2F0KFszLCdDIG1pbm9yJ10sWzEsJ0MgbWVsb2RpYyBtaW5vciddKS5zbG93KDgpKS5ncm9vdmUoJ1t%2BIHhdKjInLm0pCiAgICAuZWRpdCgKICAgICAgc2NhbGVUcmFuc3Bvc2UoMCkuZWFybHkoMCksCiAgICAgIHNjYWxlVHJhbnNwb3NlKDIpLmVhcmx5KDEvOCksCiAgICAgIHNjYWxlVHJhbnNwb3NlKDcpLmVhcmx5KDEvNCksCiAgICAgIHNjYWxlVHJhbnNwb3NlKDgpLmVhcmx5KDMvOCkKICAgICkuZWRpdCh0aHJ1KS50b25lKGtleXMpLmJ5cGFzcygnPDEgMD4vMTYnLm0pLAogICAgJzxDMiBCYjEgQWIxIFtHMSBbRzIgRzFdXT4vMicubS5ncm9vdmUoJ1t4IFt%2BIHhdIDxbfiBbfiB4XV0hMyBbeCB4XT5AMl0vMicubS5mYXN0KDIpKS5lZGl0KHRocnUpLnRvbmUoYmFzcyksCiAgICAnPENtNyBCYjcgRm03IEc3YjEzPi8yJy5tLmdyb292ZSgnfiBbeEAwLjEgfl0nLm0uZmFzdCgyKSkudm9pY2luZ3MoKS5lZGl0KHRocnUpLmV2ZXJ5KDIsIGVhcmx5KDEvOCkpLnRvbmUoa2V5cykuYnlwYXNzKCc8MEA3IDE%2BLzgnLm0uZWFybHkoMS80KSkKICApCiAgcmV0dXJuIHN0YWNrKAogICAgZHJ1bXMuZmFzdCgyKSwgCiAgICBzeW50aHMKICApLnNsb3coMik7Cn0%3D"},"Open this track in the REPL")),createElement("h2",{id:"disclaimer"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#disclaimer"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Disclaimer"),createElement("ul",null,createElement("li",{parentName:"ul"},"This project is still in its experimental state. In the future, parts of it might change significantly."),createElement("li",{parentName:"ul"},"This tutorial is far from complete.")),createElement("br",null),createElement("h1",{id:"mini-notation"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#mini-notation"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Mini Notation"),createElement("p",null,`Similar to Tidal Cycles, Strudel has an embedded mini language that is designed to write rhythmic patterns in a short manner.
|
|
Before diving deeper into the details, here is a flavor of how the mini language looks like:`),createElement(MiniRepl,{tune:`\`[
|
|
[
|
|
[e5 [b4 c5] d5 [c5 b4]]
|
|
[a4 [a4 c5] e5 [d5 c5]]
|
|
[b4 [~ c5] d5 e5]
|
|
[c5 a4 a4 ~]
|
|
[[~ d5] [~ f5] a5 [g5 f5]]
|
|
[e5 [~ c5] e5 [d5 c5]]
|
|
[b4 [b4 c5] d5 e5]
|
|
[c5 a4 a4 ~]
|
|
],[
|
|
[[e2 e3]*4]
|
|
[[a2 a3]*4]
|
|
[[g#2 g#3]*2 [e2 e3]*2]
|
|
[a2 a3 a2 a3 a2 a3 b1 c2]
|
|
[[d2 d3]*4]
|
|
[[c2 c3]*4]
|
|
[[b1 b2]*2 [e2 e3]*2]
|
|
[[a1 a2]*4]
|
|
]
|
|
]/16\``,mdxType:"MiniRepl"}),createElement("p",null,'The snippet above is enclosed in backticks (`), which allows you to write multi-line strings.\nYou can also use double quotes (") for single line mini notation.'),createElement("h2",{id:"notes"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#notes"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Notes"),createElement("p",null,"Notes are notated with the note letter, followed by the octave number. You can notate flats with ",createElement("inlineCode",{parentName:"p"},"b")," and sharps with ",createElement("inlineCode",{parentName:"p"},"#"),"."),createElement(MiniRepl,{tune:'"e5"',mdxType:"MiniRepl"}),createElement("p",null,'Here, the same note is played over and over again, once a second. This one second is the default length of one so called "cycle".'),createElement("p",null,`By the way, you can edit the contents of the player, and press "update" to hear your change!
|
|
You can also press "play" on the next player without needing to stop the last one.`),createElement("h2",{id:"sequences"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#sequences"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Sequences"),createElement("p",null,"We can play more notes by separating them with spaces:"),createElement(MiniRepl,{tune:'"e5 b4 d5 c5"',mdxType:"MiniRepl"}),createElement("p",null,"Here, those four notes are squashed into one cycle, so each note is a quarter second long."),createElement("h2",{id:"division"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#division"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Division"),createElement("p",null,"We can slow the sequence down by enclosing it in brackets and dividing it by a number:"),createElement(MiniRepl,{tune:'"[e5 b4 d5 c5]/2"',mdxType:"MiniRepl"}),createElement("p",null,`The division by two means that the sequence will be played over the course of two cycles.
|
|
You can also use decimal numbers for any tempo you like.`),createElement("h2",{id:"angle-brackets"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#angle-brackets"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Angle Brackets"),createElement("p",null,"Using angle brackets, we can define the sequence length based on the number of children:"),createElement(MiniRepl,{tune:'"<e5 b4 d5 c5>"',mdxType:"MiniRepl"}),createElement("p",null,"The above snippet is the same as:"),createElement(MiniRepl,{tune:'"[e5 b4 d5 c5]/4"',mdxType:"MiniRepl"}),createElement("p",null,"The advantage of the angle brackets, is that we can add more children without needing to change the number at the end."),createElement("h2",{id:"multiplication"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#multiplication"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Multiplication"),createElement("p",null,"Contrary to division, a sequence can be sped up by multiplying it by a number:"),createElement(MiniRepl,{tune:'"[e5 b4 d5 c5]*2"',mdxType:"MiniRepl"}),createElement("p",null,"The multiplication by 2 here means that the sequence will play twice a cycle."),createElement("h2",{id:"bracket-nesting"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#bracket-nesting"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Bracket Nesting"),createElement("p",null,"To create more interesting rhythms, you can nest sequences with brackets, like this:"),createElement(MiniRepl,{tune:'"e5 [b4 c5] d5 [c5 b4]"',mdxType:"MiniRepl"}),createElement("h2",{id:"rests"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#rests"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Rests"),createElement("p",null,'The "~" represents a rest:'),createElement(MiniRepl,{tune:'"[b4 [~ c5] d5 e5]"',mdxType:"MiniRepl"}),createElement("h2",{id:"parallel"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#parallel"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Parallel"),createElement("p",null,"Using commas, we can play chords:"),createElement(MiniRepl,{tune:'"g3,b3,e4"',mdxType:"MiniRepl"}),createElement("p",null,"To play multiple chords in a sequence, we have to wrap them in brackets:"),createElement(MiniRepl,{tune:'"<[g3,b3,e4] [a3,c3,e4] [b3,d3,f#4] [b3,e4,g4]>"',mdxType:"MiniRepl"}),createElement("h2",{id:"elongation"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#elongation"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Elongation"),createElement("p",null,'With the "@" symbol, we can specify temporal "weight" of a sequence child:'),createElement(MiniRepl,{tune:'"<[g3,b3,e4]@2 [a3,c3,e4] [b3,d3,f#4]>"',mdxType:"MiniRepl"}),createElement("p",null,"Here, the first chord has a weight of 2, making it twice the length of the other chords. The default weight is 1."),createElement("h2",{id:"replication"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#replication"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Replication"),createElement("p",null,'Using "!" we can repeat without speeding up:'),createElement(MiniRepl,{tune:'"<[g3,b3,e4]!2 [a3,c3,e4] [b3,d3,f#4]>"',mdxType:"MiniRepl"}),createElement("p",null,"In essence, the ",createElement("inlineCode",{parentName:"p"},"x!n")," is like a shortcut for ",createElement("inlineCode",{parentName:"p"},"[x*n]@n"),"."),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:!0,disabled:!0})," ",'Euclidean algorithm "c3(3,2,1)" TODO: document'),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.
|
|
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),
|
|
stack(a3,c3,e4),
|
|
stack(b3,d3,fs4),
|
|
stack(b3,e4,g4)
|
|
)`,mdxType:"MiniRepl"}),createElement("p",null,"The above is equivalent to"),createElement(MiniRepl,{tune:'"<[g3,b3,e4] [a3,c3,e4] [b3,d3,f#4] [b3,e4,g4]>"',mdxType:"MiniRepl"}),createElement("h3",{id:"timecatweightvalue"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#timecatweightvalue"},createElement("span",{parentName:"a",className:"icon icon-link"})),"timeCat(...","[weight,value]",")"),createElement("p",null,'Like with "@" in mini notation, we can specify weights to the items in a sequence:'),createElement(MiniRepl,{tune:"timeCat([3,e3],[1, g3])",mdxType:"MiniRepl"}),createElement("h3",{id:"polyrhythmvalues"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#polyrhythmvalues"},createElement("span",{parentName:"a",className:"icon icon-link"})),"polyrhythm(...","[...values]",")"),createElement("p",null,"Plays the given items at the same time, within the same length:"),createElement(MiniRepl,{tune:"polyrhythm([e3, g3], [e4, g4, b4])",mdxType:"MiniRepl"}),createElement("p",null,"We can write the same with ",createElement("strong",{parentName:"p"},"stack")," and ",createElement("strong",{parentName:"p"},"cat"),":"),createElement(MiniRepl,{tune:"stack(seq(e3, g3), seq(e4, g4, b4))",mdxType:"MiniRepl"}),createElement("p",null,"You can also use the shorthand ",createElement("strong",{parentName:"p"},"pr")," instead of ",createElement("strong",{parentName:"p"},"polyrhythm"),"."),createElement("h2",{id:"pattern-modifier-functions"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#pattern-modifier-functions"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern modifier functions"),createElement("p",null,"The following functions modify a pattern."),createElement("h3",{id:"slowfactor"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#slowfactor"},createElement("span",{parentName:"a",className:"icon icon-link"})),"slow(factor)"),createElement("p",null,'Like "/" in mini notation, ',createElement("strong",{parentName:"p"},"slow")," will slow down a pattern over the given number of cycles:"),createElement(MiniRepl,{tune:"seq(e5, b4, d5, c5).slow(2)",mdxType:"MiniRepl"}),createElement("p",null,"The same in mini notation:"),createElement(MiniRepl,{tune:'"[e5 b4 d5 c5]/2"',mdxType:"MiniRepl"}),createElement("h3",{id:"fastfactor"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#fastfactor"},createElement("span",{parentName:"a",className:"icon icon-link"})),"fast(factor)"),createElement("p",null,'Like "',"*",'" in mini notation, ',createElement("strong",{parentName:"p"},"fast")," will play a pattern times the given number in one cycle:"),createElement(MiniRepl,{tune:"seq(e5, b4, d5, c5).fast(2)",mdxType:"MiniRepl"}),createElement("h3",{id:"earlycycles"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#earlycycles"},createElement("span",{parentName:"a",className:"icon icon-link"})),"early(cycles)"),createElement("p",null,"With early, you can nudge a pattern to start earlier in time:"),createElement(MiniRepl,{tune:"seq(e5, b4.early(0.5))",mdxType:"MiniRepl"}),createElement("h3",{id:"latecycles"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#latecycles"},createElement("span",{parentName:"a",className:"icon icon-link"})),"late(cycles)"),createElement("p",null,"Like early, but in the other direction:"),createElement(MiniRepl,{tune:"seq(e5, b4.late(0.5))",mdxType:"MiniRepl"}),createElement("h3",{id:"rev"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#rev"},createElement("span",{parentName:"a",className:"icon icon-link"})),"rev()"),createElement("p",null,"Will reverse the pattern:"),createElement(MiniRepl,{tune:"seq(c3,d3,e3,f3).rev()",mdxType:"MiniRepl"}),createElement("h3",{id:"everyn-func"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#everyn-func"},createElement("span",{parentName:"a",className:"icon icon-link"})),"every(n, func)"),createElement("p",null,"Will apply the given function every n cycles:"),createElement(MiniRepl,{tune:'seq(e5, "b4".every(4, late(0.5)))',mdxType:"MiniRepl"}),createElement("p",null,"Note that late is called directly. This is a shortcut for:"),createElement(MiniRepl,{tune:'seq(e5, "b4".every(4, x => x.late(0.5)))',mdxType:"MiniRepl"}),createElement("h3",{id:"addn"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#addn"},createElement("span",{parentName:"a",className:"icon icon-link"})),"add(n)"),createElement("p",null,"Adds the given number to each item in the pattern:"),createElement(MiniRepl,{tune:`"0 2 4".add("<0 3 4 0>").scale('C major')`,mdxType:"MiniRepl"}),createElement("p",null,"Here, the triad ",createElement("inlineCode",{parentName:"p"},"0, 2, 4")," is shifted by different amounts. Without add, the equivalent would be:"),createElement(MiniRepl,{tune:`"<[0 2 4] [3 5 7] [4 6 8] [0 2 4]>".scale('C major')`,mdxType:"MiniRepl"}),createElement("p",null,"You can also use add with notes:"),createElement(MiniRepl,{tune:'"c3 e3 g3".add("<0 5 7 0>")',mdxType:"MiniRepl"}),createElement("p",null,"Behind the scenes, the notes are converted to midi numbers as soon before add is applied, which is equivalent to:"),createElement(MiniRepl,{tune:'"48 52 55".add("<0 5 7 0>")',mdxType:"MiniRepl"}),createElement("h3",{id:"subn"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#subn"},createElement("span",{parentName:"a",className:"icon icon-link"})),"sub(n)"),createElement("p",null,"Like add, but the given numbers are subtracted:"),createElement(MiniRepl,{tune:`"0 2 4".sub("<0 1 2 3>").scale('C4 minor')`,mdxType:"MiniRepl"}),createElement("p",null,"See add for more information."),createElement("h3",{id:"muln"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#muln"},createElement("span",{parentName:"a",className:"icon icon-link"})),"mul(n)"),createElement("p",null,"Multiplies each number by the given factor:"),createElement(MiniRepl,{tune:`"0,1,2".mul("<2 3 4 3>").scale('C4 minor')`,mdxType:"MiniRepl"}),createElement("p",null,"... is equivalent to:"),createElement(MiniRepl,{tune:`"<[0,2,4] [0,3,6] [0,4,8] [0,3,6]>".scale('C4 minor')`,mdxType:"MiniRepl"}),createElement("p",null,"This function is really useful in combination with signals:"),createElement(MiniRepl,{tune:`sine.struct("x*16").mul(7).round().scale('C major')`,mdxType:"MiniRepl"}),createElement("p",null,"Here, we sample a sine wave 16 times, and multiply each sample by 7. This way, we let values oscillate between 0 and 7."),createElement("h3",{id:"divn"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#divn"},createElement("span",{parentName:"a",className:"icon icon-link"})),"div(n)"),createElement("p",null,"Like mul, but dividing by the given number."),createElement("h3",{id:"round"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#round"},createElement("span",{parentName:"a",className:"icon icon-link"})),"round()"),createElement("p",null,"Rounds all values to the nearest integer:"),createElement(MiniRepl,{tune:`"0.5 1.5 2.5".round().scale('C major')`,mdxType:"MiniRepl"}),createElement("h3",{id:"structbinary_pat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#structbinary_pat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"struct(binary_pat)"),createElement("p",null,"Applies the given structure to the pattern:"),createElement(MiniRepl,{tune:'"c3,eb3,g3".struct("x ~ x ~ ~ x ~ x ~ ~ ~ x ~ x ~ ~").slow(4)',mdxType:"MiniRepl"}),createElement("p",null,"This is also useful to sample signals:"),createElement(MiniRepl,{tune:`sine.struct("x ~ x ~ ~ x ~ x ~ ~ ~ x ~ x ~ ~").mul(7).round()
|
|
.scale('C minor').slow(4)`,mdxType:"MiniRepl"}),createElement("h3",{id:"whenbinary_pat-func"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#whenbinary_pat-func"},createElement("span",{parentName:"a",className:"icon icon-link"})),"when(binary_pat, func)"),createElement("p",null,"Applies the given function whenever the given pattern is in a true state."),createElement(MiniRepl,{tune:'"c3 eb3 g3".when("<0 1>/2", sub(5))',mdxType:"MiniRepl"}),createElement("h3",{id:"superimposefunc"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#superimposefunc"},createElement("span",{parentName:"a",className:"icon icon-link"})),"superimpose(...func)"),createElement("p",null,"Superimposes the result of the given function(s) on top of the original pattern:"),createElement(MiniRepl,{tune:`"<c3 eb3 g3>".scale('C minor').superimpose(scaleTranspose("2,4"))`,mdxType:"MiniRepl"}),createElement("h3",{id:"layerfunc"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#layerfunc"},createElement("span",{parentName:"a",className:"icon icon-link"})),"layer(...func)"),createElement("p",null,"Layers the result of the given function(s) on top of each other. Like superimpose, but the original pattern is not part of the result."),createElement(MiniRepl,{tune:`"<c3 eb3 g3>".scale('C minor').layer(scaleTranspose("0,2,4"))`,mdxType:"MiniRepl"}),createElement("h3",{id:"applyfunc"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#applyfunc"},createElement("span",{parentName:"a",className:"icon icon-link"})),"apply(func)"),createElement("p",null,"Like layer, but with a single function:"),createElement(MiniRepl,{tune:`"<c3 eb3 g3>".scale('C minor').apply(scaleTranspose("0,2,4"))`,mdxType:"MiniRepl"}),createElement("h3",{id:"offtime-func"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#offtime-func"},createElement("span",{parentName:"a",className:"icon icon-link"})),"off(time, func)"),createElement("p",null,"Applies the given function by the given time offset:"),createElement(MiniRepl,{tune:'"c3 eb3 g3".off(1/8, add(7))',mdxType:"MiniRepl"}),createElement("h3",{id:"appendpat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#appendpat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"append(pat)"),createElement("p",null,"Appends the given pattern after the current pattern:"),createElement(MiniRepl,{tune:'"c4,eb4,g4".append("c4,f4,ab4")',mdxType:"MiniRepl"}),createElement("h3",{id:"stackpat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#stackpat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"stack(pat)"),createElement("p",null,"Stacks the given pattern to the current pattern:"),createElement(MiniRepl,{tune:'"c4,eb4,g4".stack("bb4,d5")',mdxType:"MiniRepl"}),createElement("h2",{id:"tone-api"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#tone-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Tone API"),createElement("p",null,"To make the sounds more interesting, we can use Tone.js instruments ands effects."),createElement("p",null,createElement("a",{parentName:"p",href:"https://github.com/tidalcycles/strudel/blob/main/repl/src/tone.ts"},"Show Source on Github")),createElement(MiniRepl,{tune:`stack(
|
|
"[c5 c5 bb4 c5] [~ g4 ~ g4] [c5 f5 e5 c5] ~"
|
|
.tone(synth(adsr(0,.1,0,0)).chain(out())),
|
|
"[c2 c3]*8"
|
|
.tone(synth({
|
|
...osc('sawtooth'),
|
|
...adsr(0,.1,0.4,0)
|
|
}).chain(lowpass(300), out()))
|
|
).slow(4)`,mdxType:"MiniRepl"}),createElement("h3",{id:"toneinstrument"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#toneinstrument"},createElement("span",{parentName:"a",className:"icon icon-link"})),"tone(instrument)"),createElement("p",null,"To change the instrument of a pattern, you can pass any ",createElement("a",{parentName:"p",href:"https://tonejs.github.io/docs/14.7.77/index.html"},"Tone.js Source")," to .tone:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(new FMSynth().toDestination())`,mdxType:"MiniRepl"}),createElement("p",null,"While this works, it is a little bit verbose. To simplify things, all Tone Synths have a shortcut:"),createElement("pre",null,createElement("code",{parentName:"pre",className:"language-js"},`const amsynth = (options) => new AMSynth(options);
|
|
const duosynth = (options) => new DuoSynth(options);
|
|
const fmsynth = (options) => new FMSynth(options);
|
|
const membrane = (options) => new MembraneSynth(options);
|
|
const metal = (options) => new MetalSynth(options);
|
|
const monosynth = (options) => new MonoSynth(options);
|
|
const noise = (options) => new NoiseSynth(options);
|
|
const pluck = (options) => new PluckSynth(options);
|
|
const polysynth = (options) => new PolySynth(options);
|
|
const synth = (options) => new Synth(options);
|
|
const sampler = (options, baseUrl?) => new Sampler(options); // promisified, see below
|
|
const players = (options, baseUrl?) => new Sampler(options); // promisified, see below
|
|
`)),createElement("h3",{id:"sampler"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#sampler"},createElement("span",{parentName:"a",className:"icon icon-link"})),"sampler"),createElement("p",null,"With sampler, you can create tonal instruments from samples:"),createElement(MiniRepl,{tune:`sampler({
|
|
C5: 'https://freesound.org/data/previews/536/536549_11935698-lq.mp3'
|
|
}).then(kalimba =>
|
|
saw.struct("x*8").mul(16).round()
|
|
.legato(4).scale('D dorian').slow(2)
|
|
.tone(kalimba.toDestination())
|
|
)`,mdxType:"MiniRepl"}),createElement("p",null,"The sampler function promisifies ",createElement("a",{parentName:"p",href:"https://tonejs.github.io/docs/14.7.77/Sampler"},"Tone.js Sampler"),"."),createElement("p",null,`Note that this function currently only works with this promise notation, but in the future,
|
|
it will be possible to use async instruments in a synchronous fashion.`),createElement("h3",{id:"players"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#players"},createElement("span",{parentName:"a",className:"icon icon-link"})),"players"),createElement("p",null,"With players, you can create sound banks:"),createElement(MiniRepl,{tune:`players({
|
|
bd: 'samples/tidal/bd/BT0A0D0.wav',
|
|
sn: 'samples/tidal/sn/ST0T0S3.wav',
|
|
hh: 'samples/tidal/hh/000_hh3closedhh.wav'
|
|
}, 'https://loophole-letters.vercel.app/')
|
|
.then(drums=>
|
|
"bd hh sn hh".tone(drums.toDestination())
|
|
)
|
|
`,mdxType:"MiniRepl"}),createElement("p",null,"The sampler function promisifies ",createElement("a",{parentName:"p",href:"https://tonejs.github.io/docs/14.7.77/Players"},"Tone.js Players"),"."),createElement("p",null,`Note that this function currently only works with this promise notation, but in the future,
|
|
it will be possible to use async instruments in a synchronous fashion.`),createElement("h3",{id:"out"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#out"},createElement("span",{parentName:"a",className:"icon icon-link"})),"out"),createElement("p",null,"Shortcut for Tone.Destination. Intended to be used with Tone's .chain:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(membrane().chain(out()))`,mdxType:"MiniRepl"}),createElement("p",null,"This alone is not really useful, so read on.."),createElement("h3",{id:"volvolume"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#volvolume"},createElement("span",{parentName:"a",className:"icon icon-link"})),"vol(volume)"),createElement("p",null,"Helper that returns a Gain Node with the given volume. Intended to be used with Tone's .chain:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(noise().chain(vol(0.5), out()))`,mdxType:"MiniRepl"}),createElement("h3",{id:"osctype"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#osctype"},createElement("span",{parentName:"a",className:"icon icon-link"})),"osc(type)"),createElement("p",null,"Helper to set the waveform of a synth, monosynth or polysynth:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(synth(osc('sawtooth4')).chain(out()))`,mdxType:"MiniRepl"}),createElement("p",null,"The base types are ",createElement("inlineCode",{parentName:"p"},"sine"),", ",createElement("inlineCode",{parentName:"p"},"square"),", ",createElement("inlineCode",{parentName:"p"},"sawtooth"),", ",createElement("inlineCode",{parentName:"p"},"triangle"),". You can also append a number between 1 and 32 to reduce the harmonic partials."),createElement("h3",{id:"lowpasscutoff"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#lowpasscutoff"},createElement("span",{parentName:"a",className:"icon icon-link"})),"lowpass(cutoff)"),createElement("p",null,"Helper that returns a Filter Node of type lowpass with the given cutoff. Intended to be used with Tone's .chain:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(synth(osc('sawtooth')).chain(lowpass(800), out()))`,mdxType:"MiniRepl"}),createElement("h3",{id:"highpasscutoff"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#highpasscutoff"},createElement("span",{parentName:"a",className:"icon icon-link"})),"highpass(cutoff)"),createElement("p",null,"Helper that returns a Filter Node of type highpass with the given cutoff. Intended to be used with Tone's .chain:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(synth(osc('sawtooth')).chain(highpass(2000), out()))`,mdxType:"MiniRepl"}),createElement("h3",{id:"adsr"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#adsr"},createElement("span",{parentName:"a",className:"icon icon-link"})),"adsr"),createElement("p",null,"Helper to set the envelope of a Tone.js instrument. Intended to be used with Tone's .set:"),createElement(MiniRepl,{tune:`"[c4 c4 bb3 c4] [~ g3 ~ g3] [c4 f4 e4 c4] ~".slow(4)
|
|
.tone(synth(adsr(0,.1,0,0)).chain(out()))`,mdxType:"MiniRepl"}),createElement("h2",{id:"tonal-api"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#tonal-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Tonal API"),createElement("p",null,"The Tonal API, uses ",createElement("a",{parentName:"p",href:"https://github.com/tonaljs/tonal"},"tonaljs")," to provide helpers for musical operations."),createElement("h3",{id:"transposesemitones"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#transposesemitones"},createElement("span",{parentName:"a",className:"icon icon-link"})),"transpose(semitones)"),createElement("p",null,"Transposes all notes to the given number of semitones:"),createElement(MiniRepl,{tune:'"c2 c3".fast(2).transpose("<0 -2 5 3>".slow(2)).transpose(0)',mdxType:"MiniRepl"}),createElement("p",null,"This method gets really exciting when we use it with a pattern as above."),createElement("p",null,"Instead of numbers, scientific interval notation can be used as well:"),createElement(MiniRepl,{tune:'"c2 c3".fast(2).transpose("<1P -2M 4P 3m>".slow(2)).transpose(1)',mdxType:"MiniRepl"}),createElement("h3",{id:"scalename"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#scalename"},createElement("span",{parentName:"a",className:"icon icon-link"})),"scale(name)"),createElement("p",null,"Turns numbers into notes in the scale (zero indexed). Also sets scale for other scale operations, like scaleTranpose."),createElement(MiniRepl,{tune:`"0 2 4 6 4 2"
|
|
.scale(seq('C2 major', 'C2 minor').slow(2))`,mdxType:"MiniRepl"}),createElement("p",null,"Note that the scale root is octaved here. You can also omit the octave, then index zero will default to octave 3."),createElement("p",null,"All the available scale names can be found ",createElement("a",{parentName:"p",href:"https://github.com/tonaljs/tonal/blob/main/packages/scale-type/data.ts"},"here"),"."),createElement("h3",{id:"scaletransposesteps"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#scaletransposesteps"},createElement("span",{parentName:"a",className:"icon icon-link"})),"scaleTranspose(steps)"),createElement("p",null,"Transposes notes inside the scale by the number of steps:"),createElement(MiniRepl,{tune:`"-8 [2,4,6]"
|
|
.scale('C4 bebop major')
|
|
.scaleTranspose("<0 -1 -2 -3 -4 -5 -6 -4>")`,mdxType:"MiniRepl"}),createElement("h3",{id:"voicingsrange"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#voicingsrange"},createElement("span",{parentName:"a",className:"icon icon-link"})),"voicings(range?)"),createElement("p",null,"Turns chord symbols into voicings, using the smoothest voice leading possible:"),createElement(MiniRepl,{tune:'stack("<C^7 A7 Dm7 G7>".voicings(), "<C3 A2 D3 G2>")',mdxType:"MiniRepl"}),createElement("h3",{id:"rootnotesoctave--2"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#rootnotesoctave--2"},createElement("span",{parentName:"a",className:"icon icon-link"})),"rootNotes(octave = 2)"),createElement("p",null,"Turns chord symbols into root notes of chords in given octave."),createElement(MiniRepl,{tune:'"<C^7 A7b13 Dm7 G7>".rootNotes(3)',mdxType:"MiniRepl"}),createElement("p",null,"Together with edit, struct and voicings, this can be used to create a basic backing track:"),createElement(MiniRepl,{tune:`"<C^7 A7b13 Dm7 G7>".edit(
|
|
x => x.voicings(['d3','g4']).struct("~ x"),
|
|
x => x.rootNotes(2).tone(synth(osc('sawtooth4')).chain(out()))
|
|
)`,mdxType:"MiniRepl"}),createElement("h2",{id:"microtonal-api"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#microtonal-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Microtonal API"),createElement("p",null,"TODO"),createElement("h2",{id:"midi-api"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#midi-api"},createElement("span",{parentName:"a",className:"icon icon-link"})),"MIDI API"),createElement("p",null,"Strudel also supports midi via ",createElement("a",{parentName:"p",href:"https://npmjs.com/package/webmidi"},"webmidi"),"."),createElement("h3",{id:"midioutputname"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#midioutputname"},createElement("span",{parentName:"a",className:"icon icon-link"})),"midi(outputName?)"),createElement("p",null,`Make sure to have a midi device connected or to use an IAC Driver.
|
|
If no outputName is given, it uses the first midi output it finds.`),createElement("p",null,"Midi is currently not supported by the mini repl used here, but you can ",createElement("a",{parentName:"p",href:"https://strudel.tidalcycles.org/#c3RhY2soIjxDXjcgQTcgRG03IEc3PiIubS52b2ljaW5ncygpLCAnPEMzIEEyIEQzIEcyPicubSkKICAubWlkaSgp"},"open the midi example in the repl"),"."),createElement("p",null,"In the REPL, you will se a log of the available MIDI devices."),createElement("h1",{id:"contributing"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#contributing"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Contributing"),createElement("p",null,"Contributions of any sort are very welcome! You can contribute by editing ",createElement("a",{parentName:"p",href:"https://github.com/tidalcycles/strudel/blob/main/repl/src/tutorial/tutorial.mdx"},"this file"),`.
|
|
All you need is a github account.`),createElement("p",null,"If you want to run the tutorial locally, you can clone the and run:"),createElement("pre",null,createElement("code",{parentName:"pre",className:"language-sh"},`cd repl && npm i && npm run tutorial
|
|
`)),createElement("p",null,"If you want to contribute in another way, either"),createElement("ul",null,createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"https://github.com/tidalcycles/strudel"},"fork strudel repo on GitHub")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"https://discord.gg/remJ6gQA"},"Join the Discord Channel")),createElement("li",{parentName:"ul"},createElement("a",{parentName:"li",href:"https://strudel.tidalcycles.org/"},"play with the Strudel REPL"))),createElement("br",null),createElement("br",null),createElement("h1",{id:"api-docs"},createElement("a",{parentName:"h1","aria-hidden":"true",tabIndex:-1,href:"#api-docs"},createElement("span",{parentName:"a",className:"icon icon-link"})),"API Docs"),createElement("p",null,"The following is generated from the source documentation."),createElement("h2",{id:"pattern-factories"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#pattern-factories"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern Factories"),createElement("p",null,"The following functions will return a pattern. We will see later what that means."),createElement("h3",{id:"pure"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#pure"},createElement("span",{parentName:"a",className:"icon icon-link"})),"pure"),createElement("p",null,"A discrete value that repeats once per cycle:"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"value (any): The value to repeat")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"pure('e4')",mdxType:"MiniRepl"})),createElement("h3",{id:"slowcat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#slowcat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"slowcat"),createElement("p",null,"Concatenation: combines a list of patterns, switching between them successively, one per cycle:"),createElement("p",null,"synonyms: ",createElement("a",{href:"#cat"},"cat")),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"items (any): The items to concatenate")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"slowcat(e5, b4, [d5, c5])",mdxType:"MiniRepl"})),createElement("h3",{id:"fastcat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#fastcat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"fastcat"),createElement("p",null,"Concatenation: as with ",createElement("a",{href:"#slowcat"},"slowcat"),", but squashes a cycle from each pattern into one cycle"),createElement("p",null,"Synonyms: ",createElement("a",{href:"#seq"},"seq"),", ",createElement("a",{href:"#sequence"},"sequence")),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"items (any): The items to concatenate")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:`fastcat(e5, b4, [d5, c5])
|
|
// sequence(e5, b4, [d5, c5])
|
|
// seq(e5, b4, [d5, c5])`,mdxType:"MiniRepl"})),createElement("h3",{id:"stack"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#stack"},createElement("span",{parentName:"a",className:"icon icon-link"})),"stack"),createElement("p",null,"The given items are played at the same time at the same length:"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"items (any): The items to stack")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"stack(g3, b3, [e4, d4])",mdxType:"MiniRepl"})),createElement("h3",{id:"timecat"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#timecat"},createElement("span",{parentName:"a",className:"icon icon-link"})),"timeCat"),createElement("p",null,"Like ",createElement("a",{href:"#fastcat"},"fastcat"),", but where each step has a temporal weight:"),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"items (Array): The items to concatenate")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"timeCat([3,e3],[1, g3])",mdxType:"MiniRepl"})),createElement("h2",{id:"pattern-modifiers"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#pattern-modifiers"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern Modifiers"),createElement("h3",{id:"patternslow"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#patternslow"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern.slow"),createElement("p",null,"Slow down a pattern over the given number of cycles."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"factor (number|Pattern): slow down factor")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"seq(e5, b4, d5, c5).slow(2)",mdxType:"MiniRepl"})),createElement("h3",{id:"patternfast"},createElement("a",{parentName:"h3","aria-hidden":"true",tabIndex:-1,href:"#patternfast"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Pattern.fast"),createElement("p",null,"Speed up a pattern by the given factor."),createElement("p",null,createElement("strong",{parentName:"p"},"Parameters")),createElement("ul",null,createElement("li",{parentName:"ul"},"factor (number|Pattern): speed up factor")),createElement("p",null,createElement("strong",{parentName:"p"},"Examples")),createElement("div",{className:"space-y-2"},createElement(MiniRepl,{tune:"seq(e5, b4, d5, c5).fast(2)",mdxType:"MiniRepl"})),createElement("h2",{id:"continuous-signals"},createElement("a",{parentName:"h2","aria-hidden":"true",tabIndex:-1,href:"#continuous-signals"},createElement("span",{parentName:"a",className:"icon icon-link"})),"Continuous Signals"),createElement("p",null,`Signals are patterns with continuous values, meaning they have theoretically infinite steps.
|
|
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("<c4 d4 e4 g4>").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("<bd sd>,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};
|