-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathtoolgood.algorithm.js
More file actions
2 lines (2 loc) · 84.8 KB
/
Copy pathtoolgood.algorithm.js
File metadata and controls
2 lines (2 loc) · 84.8 KB
1
2
/*! For license information please see toolgood.algorithm.js.LICENSE.txt */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["ToolGood.Algorithm"]=e():t["ToolGood.Algorithm"]=e()}(this,()=>(()=>{"use strict";var t={d:(e,s)=>{for(var i in s)t.t(s,i)&&!t.t(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:s[i]})},t:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};t.d(e,{default:()=>Me});class s{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.i=null,this.line=null,this.h=null,this.l=null}u(){return this.source[0]}o(){return this.source[1]}get text(){return this.l}set text(t){this.l=t}}s.p=0,s.EPSILON=-2,s.S=1,s.EOF=-1,s.m=0,s.T=1;class i{constructor(t,e){if(this.name="<empty>",this.v=t,this.k=e||!1,this.N=0,this.data=[],this.k)for(let t=0;t<this.v.length;){let e=this.v.codePointAt(t);this.data.push(e),t+=e<=65535?1:2}else{this.data=new Array(this.v.length);for(let t=0;t<this.v.length;t++)this.data[t]=this.v.charCodeAt(t)}this.L=this.data.length}reset(){this.N=0}O(){if(this.N>=this.L)throw"cannot consume EOF";this.N+=1}LA(t){if(0===t)return 0;t<0&&(t+=1);let e=this.N+t-1;return e<0||e>=this.L?s.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){t<=this.N?this.N=t:this.N=Math.min(t,this.L)}P(t,e){if(e>=this.L&&(e=this.L-1),t>=this.L)return"";if(this.k){let s="";for(let i=t;i<=e;i++)s+=String.fromCodePoint(this.data[i]);return s}return this.v.slice(t,e+1)}toString(){return this.v}get index(){return this.N}get size(){return this.L}}class n extends i{constructor(t,e){super(t,e)}LA(t){if(0===t)return 0;t<0&&(t+=1);let e=this.N+t-1;if(e<0||e>=this.L)return s.EOF;let i=this.data[e];return n.F(String.fromCharCode(i)).charCodeAt(0)}static F(t){if("string"!=typeof t||1!==t.length)return t;let e=t.charCodeAt(0);return e>=65&&e<=90?t:e<=127?t.toUpperCase():e<=65280?"×"==t?"*":"÷"==t?"/":"‘"==t||"’"==t?"'":'"'==t||'"'==t?'"':12288==e?String.fromCharCode(32):"【"==t?"[":"】"==t?"]":"〔"==t?"(":"〕"==t?")":t:(e<65375&&(t=String.fromCharCode(e-65248)),t.toUpperCase())}}function r(t,e){if(!Array.isArray(t)||!Array.isArray(e))return!1;if(t===e)return!0;if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!(t[s]===e[s]||t[s].equals&&t[s].equals(e[s])))return!1;return!0}let h=Math.round(Math.random()*Math.pow(2,32));function l(t){if(!t)return 0;let e,s,i=typeof t,n="string"===i?t:!("object"!==i||!t.toString)&&t.toString();if(!n)return 0;let r=3&n.length,l=n.length-r,u=h,o=3432918353,a=461845907,c=0;for(;c<l;)s=255&n.charCodeAt(c)|(255&n.charCodeAt(++c))<<8|(255&n.charCodeAt(++c))<<16|(255&n.charCodeAt(++c))<<24,++c,s=(65535&s)*o+(((s>>>16)*o&65535)<<16)&4294967295,s=s<<15|s>>>17,s=(65535&s)*a+(((s>>>16)*a&65535)<<16)&4294967295,u^=s,u=u<<13|u>>>19,e=5*(65535&u)+((5*(u>>>16)&65535)<<16)&4294967295,u=27492+(65535&e)+(((e>>>16)+58964&65535)<<16);switch(s=0,r){case 3:s^=(255&n.charCodeAt(c+2))<<16;case 2:s^=(255&n.charCodeAt(c+1))<<8;case 1:s^=255&n.charCodeAt(c),s=(65535&s)*o+(((s>>>16)*o&65535)<<16)&4294967295,s=s<<15|s>>>17,s=(65535&s)*a+(((s>>>16)*a&65535)<<16)&4294967295,u^=s}return u^=n.length,u^=u>>>16,u=2246822507*(65535&u)+((2246822507*(u>>>16)&65535)<<16)&4294967295,u^=u>>>13,u=3266489909*(65535&u)+((3266489909*(u>>>16)&65535)<<16)&4294967295,u^=u>>>16,u>>>0}class u{constructor(){this.count=0,this.hash=0}update(){for(let t=0;t<arguments.length;t++){let e=arguments[t];if(null!=e)if(Array.isArray(e))this.update.apply(this,e);else{let t=0;switch(typeof e){case"undefined":case"function":continue;case"number":case"boolean":t=e;break;case"string":t=l(e);break;default:e._&&e._(this);continue}t*=3432918353,t=t<<15|t>>>17,t*=461845907,this.count=this.count+1;let s=this.hash^t;s=s<<13|s>>>19,s=5*s+3864292196,this.hash=s}}}finish(){let t=this.hash^4*this.count;return t^=t>>>16,t*=2246822507,t^=t>>>13,t*=3266489909,t^=t>>>16,t}static M(){let t=new u;return t.update.apply(t,arguments),t.finish()}}function o(t){return t?"string"==typeof t?l(t):t.q():-1}function a(t,e){return t&&t.equals?t.equals(e):t===e}function c(t){return null===t?"null":t}function f(t){return Array.isArray(t)?"["+t.map(c).join(", ")+"]":"null"}class d{constructor(t,e){this.H=new Array(16),this.threshold=Math.floor(12),this.V=0,this.U=t||o,this.j=e||a}get(t){if(null==t)return t;let e=this.K(t);if(!e)return null;for(let s of e)if(this.j(s,t))return s;return null}add(t){return this.G(t)===t}G(t){this.$();let e=this.tt(t),s=this.H[e];if(!s)return s=[t],this.H[e]=s,this.V++,t;for(let e of s)if(this.j(e,t))return e;return s.push(t),this.V++,t}has(t){return null!=this.get(t)}values(){return this.H.filter(t=>null!=t).flat(1)}toString(){return f(this.values())}get length(){return this.V}tt(t){return this.U(t)&this.H.length-1}K(t){return this.H[this.tt(t)]}$(){if(this.V<=this.threshold)return;let t=this.H,e=2*this.H.length;this.H=new Array(e),this.threshold=Math.floor(.75*e);for(let e of t)if(e)for(let t of e){let e=this.tt(t),s=this.H[e];s||(s=[],this.H[e]=s),s.push(t)}}}class g{q(){let t=new u;return this._(t),t.finish()}evaluate(t,e){}et(t,e){return this}static st(t,e){if(null===t||t===g.NONE)return e;if(null===e||e===g.NONE)return t;let s=new w(t,e);return 1===s.it.length?s.it[0]:s}static nt(t,e){if(null===t)return e;if(null===e)return t;if(t===g.NONE||e===g.NONE)return g.NONE;let s=new p(t,e);return 1===s.it.length?s.it[0]:s}}class w extends g{constructor(t,e){super();let s=new d;t instanceof w?t.it.map(function(t){s.add(t)}):s.add(t),e instanceof w?e.it.map(function(t){s.add(t)}):s.add(e);let i=x(s);if(i.length>0){let t=null;i.map(function(e){(null===t||e.rt<t.rt)&&(t=e)}),s.add(t)}this.it=Array.from(s.values())}equals(t){return this===t||t instanceof w&&r(this.it,t.it)}_(t){t.update(this.it,"AND")}evaluate(t,e){for(let s=0;s<this.it.length;s++)if(!this.it[s].evaluate(t,e))return!1;return!0}et(t,e){let s=!1,i=[];for(let n=0;n<this.it.length;n++){let r=this.it[n],h=r.et(t,e);if(s|=h!==r,null===h)return null;h!==g.NONE&&i.push(h)}if(!s)return this;if(0===i.length)return g.NONE;let n=null;return i.map(function(t){n=null===n?t:g.st(n,t)}),n}toString(){let t=this.it.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("&&")}}class p extends g{constructor(t,e){super();let s=new d;t instanceof p?t.it.map(function(t){s.add(t)}):s.add(t),e instanceof p?e.it.map(function(t){s.add(t)}):s.add(e);let i=x(s);if(i.length>0){let t=i.sort(function(t,e){return t.ht(e)}),e=t[t.length-1];s.add(e)}this.it=Array.from(s.values())}equals(t){return this===t||t instanceof p&&r(this.it,t.it)}_(t){t.update(this.it,"OR")}evaluate(t,e){for(let s=0;s<this.it.length;s++)if(this.it[s].evaluate(t,e))return!0;return!1}et(t,e){let s=!1,i=[];for(let n=0;n<this.it.length;n++){let r=this.it[n],h=r.et(t,e);if(s|=h!==r,h===g.NONE)return g.NONE;null!==h&&i.push(h)}return s?(0===i.length||i.map(function(t){return t}),null):this}toString(){let t=this.it.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("||")}}function x(t){let e=[];return t.values().map(function(t){t instanceof g.PrecedencePredicate&&e.push(t)}),e}function S(t,e){if(null===t){let t={state:null,alt:null,context:null,lt:null};return e&&(t.ut=0),t}{let s={};return s.state=t.state||null,s.alt=void 0===t.alt?null:t.alt,s.context=t.context||null,s.lt=t.lt||null,e&&(s.ut=t.ut||0,s.ot=t.ot||!1),s}}class m{constructor(t,e){this.ct(t,e),t=S(t),e=S(e,!0),this.state=null!==t.state?t.state:e.state,this.alt=null!==t.alt?t.alt:e.alt,this.context=null!==t.context?t.context:e.context,this.lt=null!==t.lt?t.lt:null!==e.lt?e.lt:g.NONE,this.ut=e.ut,this.ot=e.ot}ct(t,e){null!==t.context&&void 0!==t.context||null!==e&&null!==e.context&&void 0!==e.context||(this.context=null)}q(){let t=new u;return this._(t),t.finish()}_(t){t.update(this.state.ft,this.alt,this.context,this.lt)}equals(t){return this===t||t instanceof m&&this.state.ft===t.state.ft&&this.alt===t.alt&&(null===this.context?null===t.context:this.context.equals(t.context))&&this.lt.equals(t.lt)&&this.ot===t.ot}dt(){let t=new u;return t.update(this.state.ft,this.alt,this.lt),t.finish()}gt(t){return this===t||t instanceof m&&this.state.ft===t.state.ft&&this.alt===t.alt&&this.lt.equals(t.lt)}toString(){return"("+this.state+","+this.alt+(null!==this.context?",["+this.context.toString()+"]":"")+(this.lt!==g.NONE?","+this.lt.toString():"")+(this.ut>0?",up="+this.ut:"")+")"}}class T{constructor(t,e){this.start=t,this.stop=e}clone(){return new T(this.start,this.stop)}contains(t){return t>=this.start&&t<this.stop}toString(){return this.start===this.stop-1?this.start.toString():this.start.toString()+".."+(this.stop-1).toString()}get length(){return this.stop-this.start}}T.wt=new T(-1,-2);class y{constructor(){this.xt=null,this.readOnly=!1}first(t){return null===this.xt||0===this.xt.length?s.p:this.xt[0].start}St(t){this.Tt(new T(t,t+1))}addRange(t,e){this.Tt(new T(t,e+1))}Tt(t){if(null===this.xt)this.xt=[],this.xt.push(t.clone());else{for(let e=0;e<this.xt.length;e++){let s=this.xt[e];if(t.stop<s.start)return void this.xt.splice(e,0,t);if(t.stop===s.start)return void(this.xt[e]=new T(t.start,s.stop));if(t.start<=s.stop)return this.xt[e]=new T(Math.min(s.start,t.start),Math.max(s.stop,t.stop)),void this.reduce(e)}this.xt.push(t.clone())}}yt(t){return null!==t.xt&&t.xt.forEach(t=>this.Tt(t),this),this}reduce(t){if(t<this.xt.length-1){let e=this.xt[t],s=this.xt[t+1];e.stop>=s.stop?(this.xt.splice(t+1,1),this.reduce(t)):e.stop>=s.start&&(this.xt[t]=new T(e.start,s.stop),this.xt.splice(t+1,1))}}At(t,e){let s=new y;return s.Tt(new T(t,e+1)),null!==this.xt&&this.xt.forEach(t=>s.removeRange(t)),s}contains(t){if(null===this.xt)return!1;for(let e=0;e<this.xt.length;e++)if(this.xt[e].contains(t))return!0;return!1}removeRange(t){if(t.start===t.stop-1)this.vt(t.start);else if(null!==this.xt){let e=0;for(let s=0;s<this.xt.length;s++){let s=this.xt[e];if(t.stop<=s.start)return;if(t.start>s.start&&t.stop<s.stop){this.xt[e]=new T(s.start,t.start);let i=new T(t.stop,s.stop);return void this.xt.splice(e,0,i)}t.start<=s.start&&t.stop>=s.stop?(this.xt.splice(e,1),e-=1):t.start<s.stop?this.xt[e]=new T(s.start,t.start):t.stop<s.stop&&(this.xt[e]=new T(t.stop,s.stop)),e+=1}}}vt(t){if(null!==this.xt)for(let e=0;e<this.xt.length;e++){let s=this.xt[e];if(t<s.start)return;if(t===s.start&&t===s.stop-1)return void this.xt.splice(e,1);if(t===s.start)return void(this.xt[e]=new T(s.start+1,s.stop));if(t===s.stop-1)return void(this.xt[e]=new T(s.start,s.stop-1));if(t<s.stop-1){let i=new T(s.start,t);return s.start=t+1,void this.xt.splice(e,0,i)}}}toString(t,e,s){return t=t||null,e=e||null,s=s||!1,null===this.xt?"{}":null!==t||null!==e?this.Ct(t,e):s?this.Et():this.kt()}Et(){let t=[];for(let e=0;e<this.xt.length;e++){let i=this.xt[e];i.stop===i.start+1?i.start===s.EOF?t.push("<EOF>"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}kt(){let t=[];for(let e=0;e<this.xt.length;e++){let i=this.xt[e];i.stop===i.start+1?i.start===s.EOF?t.push("<EOF>"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}Ct(t,e){let s=[];for(let i=0;i<this.xt.length;i++){let n=this.xt[i];for(let i=n.start;i<n.stop;i++)s.push(this.bt(t,e,i))}return s.length>1?"{"+s.join(", ")+"}":s[0]}bt(t,e,i){return i===s.EOF?"<EOF>":i===s.EPSILON?"<EPSILON>":t[i]||e[i]}get length(){return this.xt.map(t=>t.length).reduce((t,e)=>t+e)}}class A{constructor(){this.Nt=null,this.ft=A.Rt,this.Lt=null,this.Ot=0,this.Pt=!1,this.It=[],this.Ft=null}toString(){return this.ft}equals(t){return t instanceof A&&this.ft===t.ft}Dt(){return!1}_t(t,e){void 0===e&&(e=-1),0===this.It.length?this.Pt=t.Mt:this.Pt!==t.Mt&&(this.Pt=!1),-1===e?this.It.push(t):this.It.splice(e,1,t)}}A.p=0,A.BASIC=1,A.qt=2,A.Ht=3,A.Bt=4,A.Vt=5,A.zt=6,A.Ut=7,A.jt=8,A.Kt=9,A.Wt=10,A.Gt=11,A.Jt=12,A.$t=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],A.Rt=-1;class v extends A{constructor(){return super(),this.Lt=A.Ut,this}}class C{constructor(t){if(null==t)throw"target cannot be null.";this.target=t,this.Mt=!1,this.label=null}}C.EPSILON=1,C.RANGE=2,C.RULE=3,C.PREDICATE=4,C.ATOM=5,C.ACTION=6,C.SET=7,C.Qt=8,C.WILDCARD=9,C.PRECEDENCE=10,C.$t=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"],C.Xt={EpsilonTransition:C.EPSILON,RangeTransition:C.RANGE,RuleTransition:C.RULE,PredicateTransition:C.PREDICATE,AtomTransition:C.ATOM,ActionTransition:C.ACTION,Yt:C.SET,NotSetTransition:C.Qt,WildcardTransition:C.WILDCARD,PrecedencePredicateTransition:C.PRECEDENCE};class E extends C{constructor(t,e,s,i){super(t),this.Ot=e,this.rt=s,this.Zt=i,this.te=C.RULE,this.Mt=!0}matches(t,e,s){return!1}}class k extends C{constructor(t,e){super(t),this.te=C.SET,null!=e?this.label=e:(this.label=new y,this.label.St(s.p))}matches(t,e,s){return this.label.contains(t)}toString(){return this.label.toString()}}class b extends k{constructor(t,e){super(t,e),this.te=C.Qt}matches(t,e,s){return t>=e&&t<=s&&!super.matches(t,e,s)}toString(){return"~"+super.toString()}}class N extends C{constructor(t){super(t),this.te=C.WILDCARD}matches(t,e,s){return t>=e&&t<=s}toString(){return"."}}class R extends C{constructor(t){super(t)}}class L{}class O extends L{}class P extends O{}class I extends P{get ee(){throw new Error("missing interface implementation")}}class F extends P{}class D extends F{}let _={se:function(t,e,s){e=e||null,null!==(s=s||null)&&(e=s.ie);let i=_.ne(t,e);i=function(t){return t.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}(i);let n=t.re();if(0===n)return i;let r="("+i+" ";n>0&&(i=_.se(t.he(0),e),r=r.concat(i));for(let s=1;s<n;s++)i=_.se(t.he(s),e),r=r.concat(" "+i);return r=r.concat(")"),r},ne:function(t,e,i){if(e=e||null,null!==(i=i||null)&&(e=i.ie),null!==e){if(t instanceof I){let s=t.ee.le();return 0!=s?e[t.Ot]+":"+s:e[t.Ot]}if(t instanceof D)return t.toString();if(t instanceof F&&null!==t.ue)return t.ue.text}let n=t.oe();return n instanceof s?n.text:t.oe().toString()},ae:function(t){let e=[];for(let s=0;s<t.re();s++)e.push(t.he(s));return e},ce:function(t){let e=[];for(t=t.getParent();null!==t;)e=[t].concat(e),t=t.getParent();return e},fe:function(t,e){return _.de(t,e,!0)},ge:function(t,e){return _.de(t,e,!1)},de:function(t,e,s){let i=[];return _.we(t,e,s,i),i},we:function(t,e,s,i){s&&t instanceof F?t.ue.type===e&&i.push(t):!s&&t instanceof I&&t.Ot===e&&i.push(t);for(let n=0;n<t.re();n++)_.we(t.he(n),e,s,i)},pe:function(t){let e=[t];for(let s=0;s<t.re();s++)e=e.concat(_.pe(t.he(s)));return e}};const M=_;class q extends I{constructor(t,e){super(),this.xe=t||null,this.Se=e||-1}me(){let t=0,e=this;for(;null!==e;)e=e.xe,t+=1;return t}Te(){return-1===this.Se}ye(){return T.wt}get ee(){return this}oe(){return this}P(){return 0===this.re()?"":this.children.map(function(t){return t.P()}).join("")}le(){return 0}Ae(t){}he(t){return null}re(){return 0}accept(t){return t.ve(this)}se(t,e){return M.se(this,t,e)}toString(t,e){t=t||null,e=e||null;let s=this,i="[";for(;null!==s&&s!==e;){if(null===t)s.Te()||(i+=s.Se);else{let e=s.Ot;i+=e>=0&&e<t.length?t[e]:""+e}null===s.xe||null===t&&s.xe.Te()||(i+=" "),s=s.xe}return i+="]",i}}class H{constructor(t){this.Ce=t}Te(){return this===H.EMPTY}Ee(){return this.ke(this.length-1)===H.be}q(){return this.Ce}_(t){t.update(this.Ce)}}H.EMPTY=null,H.be=2147483647,H.Ne=1,H.id=H.Ne,H.Re=!1;class B extends H{constructor(t,e){let s=new u;return s.update(t,e),super(s.finish()),this.Le=t,this.Oe=e,this}Te(){return this.Oe[0]===H.be}getParent(t){return this.Le[t]}ke(t){return this.Oe[t]}equals(t){return this===t||t instanceof B&&this.q()===t.q()&&r(this.Oe,t.Oe)&&r(this.Le,t.Le)}toString(){if(this.Te())return"[]";{let t="[";for(let e=0;e<this.Oe.length;e++)e>0&&(t+=", "),this.Oe[e]!==H.be?(t+=this.Oe[e],null!==this.Le[e]?t=t+" "+this.Le[e]:t+="null"):t+="$";return t+"]"}}get length(){return this.Oe.length}}class V extends H{constructor(t,e){let s=0,i=new u;null!==t?i.update(t,e):i.update(1),s=i.finish(),super(s),this.xe=t,this.Pe=e}getParent(t){return this.xe}ke(t){return this.Pe}equals(t){return this===t||t instanceof V&&this.q()===t.q()&&this.Pe===t.Pe&&(null==this.xe?null==t.xe:this.xe.equals(t.xe))}toString(){let t=null===this.xe?"":this.xe.toString();return 0===t.length?this.Pe===H.be?"$":""+this.Pe:this.Pe+" "+t}get length(){return 1}static create(t,e){return e===H.be&&null===t?H.EMPTY:new V(t,e)}}class z extends V{constructor(){super(null,H.be)}Te(){return!0}getParent(t){return null}ke(t){return this.Pe}equals(t){return this===t}toString(){return"$"}}H.EMPTY=new z;class U{constructor(t,e){this.H=new Array(16),this.threshold=Math.floor(12),this.V=0,this.U=t||o,this.j=e||a}set(t,e){this.$();let s=this.tt(t),i=this.H[s];if(!i)return i=[[t,e]],this.H[s]=i,this.V++,e;let n=i.find(e=>this.j(e[0],t),this);if(n){let t=n[1];return n[1]=e,t}return i.push([t,e]),this.V++,e}Ie(t){let e=this.K(t);return!!e&&!!e.find(e=>this.j(e[0],t),this)}get(t){let e=this.K(t);if(!e)return null;let s=e.find(e=>this.j(e[0],t),this);return s?s[1]:null}entries(){return this.H.filter(t=>null!=t).flat(1)}Fe(){return this.entries().map(t=>t[0])}getValues(){return this.entries().map(t=>t[1])}toString(){return"["+this.entries().map(t=>"{"+t[0]+":"+t[1]+"}").join(", ")+"]"}get length(){return this.V}tt(t){return this.U(t)&this.H.length-1}K(t){return this.H[this.tt(t)]}$(){if(this.V<=this.threshold)return;let t=this.H,e=2*this.H.length;this.H=new Array(e),this.threshold=Math.floor(.75*e);for(let e of t)if(e)for(let t of e){let e=this.tt(t[0]),s=this.H[e];s||(s=[],this.H[e]=s),s.push(t)}}}function j(t,e){if(null==e&&(e=q.EMPTY),null===e.xe||e===q.EMPTY)return H.EMPTY;let s=j(t,e.xe),i=t.states[e.Se].It[0];return V.create(s,i.Zt.ft)}function K(t,e,s){if(t.Te())return t;let i=s.get(t)||null;if(null!==i)return i;if(i=e.get(t),null!==i)return s.set(t,i),i;let n=!1,r=[];for(let i=0;i<r.length;i++){let h=K(t.getParent(i),e,s);if(n||h!==t.getParent(i)){if(!n){r=[];for(let e=0;e<t.length;e++)r[e]=t.getParent(e);n=!0}r[i]=h}}if(!n)return e.add(t),s.set(t,t),t;let h=null;return h=0===r.length?H.EMPTY:1===r.length?V.create(r[0],t.ke(0)):new B(r,t.Oe),e.add(h),s.set(h,h),s.set(t,h),h}function W(t,e,s,i){if(t===e)return t;if(t instanceof V&&e instanceof V)return function(t,e,s,i){if(null!==i){let s=i.get(t,e);if(null!==s)return s;if(s=i.get(e,t),null!==s)return s}let n=function(t,e,s){if(s){if(t===H.EMPTY)return H.EMPTY;if(e===H.EMPTY)return H.EMPTY}else{if(t===H.EMPTY&&e===H.EMPTY)return H.EMPTY;if(t===H.EMPTY){let t=[e.Pe,H.be],s=[e.xe,null];return new B(s,t)}if(e===H.EMPTY){let e=[t.Pe,H.be],s=[t.xe,null];return new B(s,e)}}return null}(t,e,s);if(null!==n)return null!==i&&i.set(t,e,n),n;if(t.Pe===e.Pe){let n=W(t.xe,e.xe,s,i);if(n===t.xe)return t;if(n===e.xe)return e;let r=V.create(n,t.Pe);return null!==i&&i.set(t,e,r),r}{let s=null;if((t===e||null!==t.xe&&t.xe===e.xe)&&(s=t.xe),null!==s){let n=[t.Pe,e.Pe];t.Pe>e.Pe&&(n[0]=e.Pe,n[1]=t.Pe);let r=new B([s,s],n);return null!==i&&i.set(t,e,r),r}let n=[t.Pe,e.Pe],r=[t.xe,e.xe];t.Pe>e.Pe&&(n[0]=e.Pe,n[1]=t.Pe,r=[e.xe,t.xe]);let h=new B(r,n);return null!==i&&i.set(t,e,h),h}}(t,e,s,i);if(s){if(t instanceof z)return t;if(e instanceof z)return e}return t instanceof V&&(t=new B([t.getParent()],[t.Pe])),e instanceof V&&(e=new B([e.getParent()],[e.Pe])),function(t,e,s,i){if(null!==i){let s=i.get(t,e);if(null!==s)return H.Re,s;if(s=i.get(e,t),null!==s)return H.Re,s}let n=0,r=0,h=0,l=new Array(t.Oe.length+e.Oe.length).fill(0),u=new Array(t.Oe.length+e.Oe.length).fill(null);for(;n<t.Oe.length&&r<e.Oe.length;){let o=t.Le[n],a=e.Le[r];if(t.Oe[n]===e.Oe[r]){let e=t.Oe[n];e===H.be&&null===o&&null===a||null!==o&&null!==a&&o===a?(u[h]=o,l[h]=e):(u[h]=W(o,a,s,i),l[h]=e),n+=1,r+=1}else t.Oe[n]<e.Oe[r]?(u[h]=o,l[h]=t.Oe[n],n+=1):(u[h]=a,l[h]=e.Oe[r],r+=1);h+=1}if(n<t.Oe.length)for(let e=n;e<t.Oe.length;e++)u[h]=t.Le[e],l[h]=t.Oe[e],h+=1;else for(let t=r;t<e.Oe.length;t++)u[h]=e.Le[t],l[h]=e.Oe[t],h+=1;if(h<u.length){if(1===h){let s=V.create(u[0],l[0]);return null!==i&&i.set(t,e,s),s}u=u.slice(0,h),l=l.slice(0,h)}let o=new B(u,l);return o.equals(t)?(null!==i&&i.set(t,e,t),H.Re,t):o.equals(e)?(null!==i&&i.set(t,e,e),H.Re,e):(function(t){let e=new U;for(let s=0;s<t.length;s++){let i=t[s];e.Ie(i)||e.set(i,i)}for(let s=0;s<t.length;s++)t[s]=e.get(t[s])}(u),null!==i&&i.set(t,e,o),H.Re,o)}(t,e,s,i)}class G{constructor(){this.data=new Uint32Array(1)}set(t){G.De(t),this._e(t),this.data[t>>>5]|=1<<t%32}get(t){G.De(t);let e=t>>>5;return!(e>=this.data.length||!(this.data[e]&1<<t%32))}clear(t){G.De(t);let e=t>>>5;e<this.data.length&&(this.data[e]&=~(1<<t))}or(t){let e=Math.min(this.data.length,t.data.length);for(let s=0;s<e;++s)this.data[s]|=t.data[s];if(this.data.length<t.data.length){this._e((t.data.length<<5)-1);let s=t.data.length;for(let i=e;i<s;++i)this.data[i]=t.data[i]}}values(){let t=new Array(this.length),e=0,s=this.data.length;for(let i=0;i<s;++i){let s=this.data[i];for(;0!==s;){let n=s&-s;t[e++]=(i<<5)+G.Me(n-1),s^=n}}return t}minValue(){for(let t=0;t<this.data.length;++t){let e=this.data[t];if(0!==e){let s=0;for(;!(1&e);)s++,e>>=1;return s+32*t}}return 0}q(){return u.M(this.values())}equals(t){return t instanceof G&&r(this.data,t.data)}toString(){return"{"+this.values().join(", ")+"}"}get length(){return this.data.map(t=>G.Me(t)).reduce((t,e)=>t+e,0)}_e(t){let e=t+32>>>5;if(e<=this.data.length)return;let s=new Uint32Array(e);s.set(this.data),s.fill(0,this.data.length),this.data=s}static De(t){if(t<0)throw new RangeError("index cannot be negative")}static Me(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,0+(t+=t>>16)&63}}class J{constructor(t){this.Nt=t}qe(t){if(null===t)return null;let e=t.It.length,s=[];for(let i=0;i<e;i++){s[i]=new y;let e=new d,n=!1;this.He(t.transition(i).target,null,H.EMPTY,s[i],e,new G,n,!1),(0===s[i].length||s[i].contains(J.Be))&&(s[i]=null)}return s}LOOK(t,e,s){let i=new y,n=null!==(s=s||null)?j(t.Nt,s):null;return this.He(t,e,n,i,new d,new G,!0,!0),i}He(t,e,i,n,r,h,l,u){let o=new m({state:t,alt:0,context:i},null);if(!r.has(o)){if(r.add(o),t===e){if(null===i)return void n.St(s.EPSILON);if(i.Te()&&u)return void n.St(s.EOF)}if(t instanceof v){if(null===i)return void n.St(s.EPSILON);if(i.Te()&&u)return void n.St(s.EOF);if(i!==H.EMPTY){let s=h.get(t.Ot);try{h.clear(t.Ot);for(let t=0;t<i.length;t++){let s=this.Nt.states[i.ke(t)];this.He(s,e,i.getParent(t),n,r,h,l,u)}}finally{s&&h.set(t.Ot)}return}}for(let o=0;o<t.It.length;o++){let a=t.It[o];if(a.constructor===E){if(h.get(a.target.Ot))continue;let t=V.create(i,a.Zt.ft);try{h.set(a.target.Ot),this.He(a.target,e,t,n,r,h,l,u)}finally{h.clear(a.target.Ot)}}else if(a instanceof R)l?this.He(a.target,e,i,n,r,h,l,u):n.St(J.Be);else if(a.Mt)this.He(a.target,e,i,n,r,h,l,u);else if(a.constructor===N)n.addRange(s.S,this.Nt.Ve);else{let t=a.label;null!==t&&(a instanceof b&&(t=t.At(s.S,this.Nt.Ve)),n.yt(t))}}}}}J.Be=s.p;class ${constructor(t,e){this.ze=t,this.Ve=e,this.states=[],this.Ue=[],this.je=[],this.Ke=null,this.We={},this.Ge=null,this.Je=null,this.$e=[]}Qe(t,e){return new J(this).LOOK(t,null,e)}Xe(t){return null!==t.Ft||(t.Ft=this.Qe(t,null),t.Ft.readOnly=!0),t.Ft}Ye(t,e){return void 0===e?this.Xe(t):this.Qe(t,e)}Ze(t){null!==t&&(t.Nt=this,t.ft=this.states.length),this.states.push(t)}ts(t){this.states[t.ft]=null}es(t){return this.Ue.push(t),t.ss=this.Ue.length-1,t.ss}ns(t){return 0===this.Ue.length?null:this.Ue[t]}rs(t,e){if(t<0||t>=this.states.length)throw"Invalid state number.";let i=this.states[t],n=this.Ye(i);if(!n.contains(s.EPSILON))return n;let r=new y;for(r.yt(n),r.vt(s.EPSILON);null!==e&&e.Se>=0&&n.contains(s.EPSILON);){let t=this.states[e.Se].It[0];n=this.Ye(t.Zt),r.yt(n),r.vt(s.EPSILON),e=e.xe}return n.contains(s.EPSILON)&&r.St(s.EOF),r}}$.hs=0;class Q extends A{constructor(){super(),this.Lt=A.BASIC}}class X extends A{constructor(){return super(),this.ss=-1,this.ls=!1,this}}class Y extends X{constructor(){return super(),this.us=null,this}}class Z extends A{constructor(){return super(),this.Lt=A.jt,this.cs=null,this}}class tt extends A{constructor(){return super(),this.Lt=A.Jt,this.fs=null,this}}class et extends A{constructor(){return super(),this.Lt=A.qt,this.ds=null,this.gs=!1,this}}class st extends X{constructor(){return super(),this.Lt=A.zt,this}}class it extends X{constructor(){return super(),this.Lt=A.Gt,this}}class nt extends A{constructor(){return super(),this.Lt=A.Kt,this}}class rt extends X{constructor(){return super(),this.Lt=A.Wt,this.fs=null,this.ws=null,this}}class ht extends Y{constructor(){return super(),this.Lt=A.Bt,this.fs=null,this}}class lt extends Y{constructor(){return super(),this.Lt=A.Vt,this}}class ut extends Y{constructor(){return super(),this.Lt=A.Ht,this}}class ot extends C{constructor(t,e){super(t),this.ps=e,this.label=this.xs(),this.te=C.ATOM}xs(){let t=new y;return t.St(this.ps),t}matches(t,e,s){return this.ps===t}toString(){return this.ps}}class at extends C{constructor(t,e,s){super(t),this.te=C.RANGE,this.start=e,this.stop=s,this.label=this.xs()}xs(){let t=new y;return t.addRange(this.start,this.stop),t}matches(t,e,s){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}}class ct extends C{constructor(t,e,s,i){super(t),this.te=C.ACTION,this.Ot=e,this.Ss=void 0===s?-1:s,this.Ts=void 0!==i&&i,this.Mt=!0}matches(t,e,s){return!1}toString(){return"action_"+this.Ot+":"+this.Ss}}class ft extends C{constructor(t,e){super(t),this.te=C.EPSILON,this.Mt=!0,this.ys=e}matches(t,e,s){return!1}toString(){return"epsilon"}}class dt extends g{constructor(t,e,s){super(),this.Ot=void 0===t?-1:t,this.As=void 0===e?-1:e,this.Ts=void 0!==s&&s}evaluate(t,e){let s=this.Ts?e:null;return t.vs(s,this.Ot,this.As)}_(t){t.update(this.Ot,this.As,this.Ts)}equals(t){return this===t||t instanceof dt&&this.Ot===t.Ot&&this.As===t.As&&this.Ts===t.Ts}toString(){return"{"+this.Ot+":"+this.As+"}?"}}g.NONE=new dt;class gt extends R{constructor(t,e,s,i){super(t),this.te=C.PREDICATE,this.Ot=e,this.As=s,this.Ts=i,this.Mt=!0}matches(t,e,s){return!1}Cs(){return new dt(this.Ot,this.As,this.Ts)}toString(){return"pred_"+this.Ot+":"+this.As}}class wt extends g{constructor(t){super(),this.rt=void 0===t?0:t}evaluate(t,e){return t.Es(e,this.rt)}et(t,e){return t.Es(e,this.rt)?g.NONE:null}ht(t){return this.rt-t.rt}_(t){t.update(this.rt)}equals(t){return this===t||t instanceof wt&&this.rt===t.rt}toString(){return"{"+this.rt+">=prec}?"}}g.PrecedencePredicate=wt;class pt extends R{constructor(t,e){super(t),this.te=C.PRECEDENCE,this.rt=e,this.Mt=!0}matches(t,e,s){return!1}Cs(){return new wt(this.rt)}toString(){return this.rt+" >= _p"}}class xt{constructor(t){void 0===t&&(t=null),this.readOnly=!1,this.ks=null===t||t.ks,this.bs=null!==t&&t.bs}}xt.Ns=new xt,xt.Ns.readOnly=!0;class St{constructor(t){this.Rs=t,this.Ls=!1}q(){let t=new u;return this._(t),t.finish()}_(t){t.update(this.Rs)}equals(t){return this===t}}class mt extends St{constructor(){super(6)}Os(t){t.Ps()}toString(){return"skip"}}mt.INSTANCE=new mt;class Tt extends St{constructor(t){super(0),this.channel=t}Os(t){t.Is=this.channel}_(t){t.update(this.Rs,this.channel)}equals(t){return this===t||t instanceof Tt&&this.channel===t.channel}toString(){return"channel("+this.channel+")"}}class yt extends St{constructor(t,e){super(1),this.Ot=t,this.Ss=e,this.Ls=!0}Os(t){t.action(null,this.Ot,this.Ss)}_(t){t.update(this.Rs,this.Ot,this.Ss)}equals(t){return this===t||t instanceof yt&&this.Ot===t.Ot&&this.Ss===t.Ss}}class At extends St{constructor(){super(3)}Os(t){t.Fs()}toString(){return"more"}}At.INSTANCE=new At;class vt extends St{constructor(t){super(7),this.type=t}Os(t){t.type=this.type}_(t){t.update(this.Rs,this.type)}equals(t){return this===t||t instanceof vt&&this.type===t.type}toString(){return"type("+this.type+")"}}class Ct extends St{constructor(t){super(5),this.mode=t}Os(t){t.Ds(this.mode)}_(t){t.update(this.Rs,this.mode)}equals(t){return this===t||t instanceof Ct&&this.mode===t.mode}toString(){return"pushMode("+this.mode+")"}}class Et extends St{constructor(){super(4)}Os(t){t._s()}toString(){return"popMode"}}Et.INSTANCE=new Et;class kt extends St{constructor(t){super(2),this.mode=t}Os(t){t.Ms(this.mode)}_(t){t.update(this.Rs,this.mode)}equals(t){return this===t||t instanceof kt&&this.mode===t.mode}toString(){return"mode("+this.mode+")"}}function bt(t,e){let s=[];return s[t-1]=e,s.map(function(t){return e})}class Nt{constructor(t){null==t&&(t=xt.Ns),this.qs=t,this.Hs=null,this.Bs=null}Vs(t){let e=this.reset(t);this.zs(e),e&&this.Us();let s=this.js();this.Ks(s,e),this.Ws(s,e),this.Gs(s);let i=[];return this.Js(s,i,this.$s.bind(this)),e&&this.Js(s,i,this.Qs.bind(this)),this.Xs(s,i),this.Ys(s),this.Zs(s,e),this.ti(s),this.ks(s),this.qs.bs&&1===s.ze&&(this.bs(s),this.ks(s)),s}reset(t){if(3===(t.charCodeAt?t.charCodeAt(0):t[0])){let e=function(t){let e=t.charCodeAt(0);return e>1?e-2:e+65534},s=t.split("").map(e);return s[0]=t.charCodeAt(0),this.data=s,this.ei=0,!0}return this.data=t,this.ei=0,!1}Us(){let t=0;for(;t++<8;)this.$s()}zs(t){let e=this.$s();if(!t&&4!==e)throw"Could not deserialize ATN with version "+e+" (expected 4)."}js(){let t=this.$s(),e=this.$s();return new $(t,e)}Ks(t,e){let s,i,n,r=[],h=[],l=this.$s();for(let s=0;s<l;s++){let s=this.$s();if(s===A.p){t.Ze(null);continue}let i=this.$s();e&&65535===i&&(i=-1);let n=this.si(s,i);if(s===A.Jt){let t=this.$s();r.push([n,t])}else if(n instanceof Y){let t=this.$s();h.push([n,t])}t.Ze(n)}for(s=0;s<r.length;s++)i=r[s],i[0].fs=t.states[i[1]];for(s=0;s<h.length;s++)i=h[s],i[0].us=t.states[i[1]];let u=this.$s();for(s=0;s<u;s++)n=this.$s(),t.states[n].ls=!0;let o=this.$s();for(s=0;s<o;s++)n=this.$s(),t.states[n].gs=!0}Ws(t,e){let i,n=this.$s();for(0===t.ze&&(t.Ge=bt(n,0)),t.je=bt(n,0),i=0;i<n;i++){let n=this.$s();if(t.je[i]=t.states[n],0===t.ze){let n=this.$s();e&&65535===n&&(n=s.EOF),t.Ge[i]=n}}for(t.Ke=bt(n,0),i=0;i<t.states.length;i++){let e=t.states[i];e instanceof v&&(t.Ke[e.Ot]=e,t.je[e.Ot].ds=e)}}Gs(t){let e=this.$s();for(let s=0;s<e;s++){let e=this.$s();t.$e.push(t.states[e])}}Js(t,e,s){let i=this.$s();for(let t=0;t<i;t++){let t=new y;e.push(t);let i=this.$s();0!==this.$s()&&t.St(-1);for(let e=0;e<i;e++){let e=s(),i=s();t.addRange(e,i)}}}Xs(t,e){let s,i,n,r,h,l=this.$s();for(s=0;s<l;s++){let s=this.$s(),i=this.$s(),n=this.$s(),h=this.$s(),l=this.$s(),u=this.$s();r=this.ii(t,n,s,i,h,l,u,e),t.states[s]._t(r)}for(s=0;s<t.states.length;s++)for(n=t.states[s],i=0;i<n.It.length;i++){let e=n.It[i];if(!(e instanceof E))continue;let s=-1;t.je[e.target.Ot].gs&&0===e.rt&&(s=e.target.Ot),r=new ft(e.Zt,s),t.Ke[e.target.Ot]._t(r)}for(s=0;s<t.states.length;s++){if(n=t.states[s],n instanceof Y){if(null===n.us)throw"IllegalState";if(null!==n.us.cs)throw"IllegalState";n.us.cs=n}if(n instanceof it)for(i=0;i<n.It.length;i++)h=n.It[i].target,h instanceof ht&&(h.fs=n);else if(n instanceof nt)for(i=0;i<n.It.length;i++)h=n.It[i].target,h instanceof rt&&(h.fs=n)}}Ys(t){let e=this.$s();for(let s=0;s<e;s++){let e=this.$s(),i=t.states[e];t.Ue.push(i),i.ss=s}}Zs(t,e){if(0===t.ze){let s=this.$s();t.Je=bt(s,null);for(let i=0;i<s;i++){let s=this.$s(),n=this.$s();e&&65535===n&&(n=-1);let r=this.$s();e&&65535===r&&(r=-1),t.Je[i]=this.ni(s,n,r)}}}bs(t){let e,s=t.je.length;for(e=0;e<s;e++)t.Ge[e]=t.Ve+e+1;for(e=0;e<s;e++)this.ri(t,e)}ri(t,e){let s,i,n=new ut;n.Ot=e,t.Ze(n);let r=new Z;r.Ot=e,t.Ze(r),n.us=r,t.es(n),r.cs=n;let h=null,l=null;if(t.je[e].gs){for(l=null,s=0;s<t.states.length;s++)if(i=t.states[s],this.hi(i,e)){l=i,h=i.fs.It[0];break}if(null===h)throw"Couldn't identify final state of the precedence rule prefix section."}else l=t.Ke[e];for(s=0;s<t.states.length;s++){i=t.states[s];for(let t=0;t<i.It.length;t++){let e=i.It[t];e!==h&&e.target===l&&(e.target=r)}}let u=t.je[e],o=u.It.length;for(;o>0;)n._t(u.It[o-1]),u.It=u.It.slice(-1);t.je[e]._t(new ft(n)),r._t(new ft(l));let a=new Q;t.Ze(a),a._t(new ot(r,t.Ge[e])),n._t(new ft(a))}hi(t,e){if(t.Ot!==e)return null;if(!(t instanceof rt))return null;let s=t.It[t.It.length-1].target;return s instanceof tt&&s.Pt&&s.It[0].target instanceof v?t:null}ti(t){for(let e=0;e<t.states.length;e++){let s=t.states[e];if(s instanceof rt&&t.je[s.Ot].gs){let t=s.It[s.It.length-1].target;t instanceof tt&&t.Pt&&t.It[0].target instanceof v&&(s.ws=!0)}}}ks(t){if(this.qs.ks)for(let e=0;e<t.states.length;e++){let s=t.states[e];if(null!==s)if(this.li(s.Pt||s.It.length<=1),s instanceof ht)this.li(null!==s.fs);else if(s instanceof rt)if(this.li(null!==s.fs),this.li(2===s.It.length),s.It[0].target instanceof lt)this.li(s.It[1].target instanceof tt),this.li(!s.ls);else{if(!(s.It[0].target instanceof tt))throw"IllegalState";this.li(s.It[1].target instanceof lt),this.li(s.ls)}else s instanceof nt?(this.li(1===s.It.length),this.li(s.It[0].target instanceof rt)):s instanceof tt?this.li(null!==s.fs):s instanceof et?this.li(null!==s.ds):s instanceof Y?this.li(null!==s.us):s instanceof Z?this.li(null!==s.cs):s instanceof X?this.li(s.It.length<=1||s.ss>=0):this.li(s.It.length<=1||s instanceof v)}}li(t,e){if(!t)throw null==e&&(e="IllegalState"),e}$s(){return this.data[this.ei++]}Qs(){return this.$s()|this.$s()<<16}ii(t,e,i,n,r,h,l,u){let o=t.states[n];switch(e){case C.EPSILON:return new ft(o);case C.RANGE:return new at(o,0!==l?s.EOF:r,h);case C.RULE:return new E(t.states[r],h,l,o);case C.PREDICATE:return new gt(o,r,h,0!==l);case C.PRECEDENCE:return new pt(o,r);case C.ATOM:return new ot(o,0!==l?s.EOF:r);case C.ACTION:return new ct(o,r,h,0!==l);case C.SET:return new k(o,u[r]);case C.Qt:return new b(o,u[r]);case C.WILDCARD:return new N(o);default:throw"The specified transition type: "+e+" is not valid."}}si(t,e){if(null===this.Hs){let t=[];t[A.p]=null,t[A.BASIC]=()=>new Q,t[A.qt]=()=>new et,t[A.Ht]=()=>new ut,t[A.Bt]=()=>new ht,t[A.Vt]=()=>new lt,t[A.zt]=()=>new st,t[A.Ut]=()=>new v,t[A.jt]=()=>new Z,t[A.Kt]=()=>new nt,t[A.Wt]=()=>new rt,t[A.Gt]=()=>new it,t[A.Jt]=()=>new tt,this.Hs=t}if(t>this.Hs.length||null===this.Hs[t])throw"The specified state type "+t+" is not valid.";{let s=this.Hs[t]();if(null!==s)return s.Ot=e,s}}ni(t,e,s){if(null===this.Bs){let t=[];t[0]=(t,e)=>new Tt(t),t[1]=(t,e)=>new yt(t,e),t[2]=(t,e)=>new kt(t),t[3]=(t,e)=>At.INSTANCE,t[4]=(t,e)=>Et.INSTANCE,t[5]=(t,e)=>new Ct(t),t[6]=(t,e)=>mt.INSTANCE,t[7]=(t,e)=>new vt(t),this.Bs=t}if(t>this.Bs.length||null===this.Bs[t])throw"The specified lexer action type "+t+" is not valid.";return this.Bs[t](e,s)}}class Rt{ui(t,e,s,i,n,r){}oi(t,e,s,i,n,r,h){}ai(t,e,s,i,n,r){}ci(t,e,s,i,n,r){}}class Lt extends Rt{constructor(){super()}ui(t,e,s,i,n,r){}}Lt.INSTANCE=new Lt;class Ot extends Rt{constructor(t){if(super(),null===t)throw"delegates";return this.fi=t,this}ui(t,e,s,i,n,r){this.fi.map(h=>h.ui(t,e,s,i,n,r))}oi(t,e,s,i,n,r,h){this.fi.map(l=>l.oi(t,e,s,i,n,r,h))}ai(t,e,s,i,n,r){this.fi.map(h=>h.ai(t,e,s,i,n,r))}ci(t,e,s,i,n,r){this.fi.map(h=>h.ci(t,e,s,i,n,r))}}class Pt{constructor(){this.di=[Lt.INSTANCE],this.gi=null,this.wi=-1}zs(t){}pi(t){this.di.push(t)}xi(){this.di=[]}Si(){return Object.getPrototypeOf(this).constructor.mi||[]}Ti(){return Object.getPrototypeOf(this).constructor.yi||[]}Ai(){if(!this.Ci){let t=this.Si(),e=this.Ti(),s=t.length>e.length?t.length:e.length;this.Ci=[];for(let i=0;i<s;i++)this.Ci[i]=t[i]||e[i]||"<INVALID"}return this.Ci}Ei(){let t=this.Ai();if(null===t)throw"The current recognizer does not provide a list of token names.";let e=this.ki[t];return void 0===e&&(e=t.reduce(function(t,e,s){t[e]=s}),e.EOF=s.EOF,this.ki[t]=e),e}bi(){let t=this.ie;if(null===t)throw"The current recognizer does not provide a list of rule names.";let e=this.Ni[t];return void 0===e&&(e=t.reduce(function(t,e,s){t[e]=s}),this.Ni[t]=e),e}Ri(t){let e=this.Ei()[t];return void 0!==e?e:s.p}Li(t){return"line "+t.Oi().line+":"+t.Oi().h}Pi(t){if(null===t)return"<no token>";let e=t.text;return null===e&&(e=t.type===s.EOF?"<EOF>":"<"+t.type+">"),e=e.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"),"'"+e+"'"}Ii(){return this.Fi()}Fi(){return new Ot(this.di)}vs(t,e,s){return!0}Es(t,e){return!0}get Nt(){return this.gi.Nt}get state(){return this.wi}set state(t){this.wi=t}}Pt.ki={},Pt.Ni={};class It extends s{constructor(t,e,i,n,r){super(),this.source=void 0!==t?t:It.Di,this.type=void 0!==e?e:null,this.channel=void 0!==i?i:s.m,this.start=void 0!==n?n:-1,this.stop=void 0!==r?r:-1,this.i=-1,null!==this.source[0]?(this.line=t[0].line,this.h=t[0].h):this.h=-1}clone(){let t=new It(this.source,this.type,this.channel,this.start,this.stop);return t.i=this.i,t.line=this.line,t.h=this.h,t.text=this.text,t}_i(t){let e=new It(this.source,t,this.channel,this.start,this.stop);return e.i=this.i,e.line=this.line,e.h=this.h,t===s.EOF&&(e.text=""),e}toString(){let t=this.text;return t=null!==t?t.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):"<no text>","[@"+this.i+","+this.start+":"+this.stop+"='"+t+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.h+"]"}get text(){if(null!==this.l)return this.l;let t=this.o();if(null===t)return null;let e=t.size;return this.start<e&&this.stop<e?t.P(this.start,this.stop):"<EOF>"}set text(t){this.l=t}}It.Di=[null,null];class Ft{}class Dt extends Ft{constructor(t){super(),this.Mi=void 0!==t&&t}create(t,e,s,i,n,r,h,l){let u=new It(t,e,i,n,r);return u.line=h,u.h=l,null!==s?u.text=s:this.Mi&&null!==t[1]&&(u.text=t[1].P(n,r)),u}qi(t,e){let s=new It(null,t);return s.text=e,s}}Dt.DEFAULT=new Dt;class _t extends Error{constructor(t){super(t.message),Error.captureStackTrace&&Error.captureStackTrace(this,_t),this.message=t.message,this.Hi=t.Hi,this.input=t.input,this.Bi=t.Bi,this.Vi=null,this.zi=-1,null!==this.Hi&&(this.zi=this.Hi.state)}rs(){return null!==this.Hi?this.Hi.Nt.rs(this.zi,this.Bi):null}toString(){return this.message}}class Mt extends _t{constructor(t,e,s,i){super({message:"",Hi:t,input:e,Bi:null}),this.Ui=s,this.ji=i}toString(){let t="";return this.Ui>=0&&this.Ui<this.input.size&&(t=this.input.P(new T(this.Ui,this.Ui))),"LexerNoViableAltException"+t}}class qt extends Pt{constructor(t){super(),this.Ki=t,this.Wi=Dt.DEFAULT,this.Gi=[this,t],this.gi=null,this.Ji=null,this.$i=-1,this.Qi=-1,this.Xi=-1,this.Yi=!1,this.Is=s.m,this.Zi=s.p,this.tn=[],this.en=qt.sn,this.l=null}reset(){null!==this.Ki&&this.Ki.seek(0),this.Ji=null,this.Zi=s.p,this.Is=s.m,this.$i=-1,this.Xi=-1,this.Qi=-1,this.l=null,this.Yi=!1,this.en=qt.sn,this.tn=[],this.gi.reset()}nn(){if(null===this.Ki)throw"nextToken requires a non-null input stream.";let t=this.Ki.mark();try{for(;;){if(this.Yi)return this.rn(),this.Ji;this.Ji=null,this.Is=s.m,this.$i=this.Ki.index,this.Xi=this.gi.h,this.Qi=this.gi.line,this.l=null;let t=!1;for(;;){this.Zi=s.p;let e=qt.SKIP;try{e=this.gi.match(this.Ki,this.en)}catch(t){if(!(t instanceof _t))throw t;this.hn(t),this.ln(t)}if(this.Ki.LA(1)===s.EOF&&(this.Yi=!0),this.Zi===s.p&&(this.Zi=e),this.Zi===qt.SKIP){t=!0;break}if(this.Zi!==qt.MORE)break}if(!t)return null===this.Ji&&this.emit(),this.Ji}}finally{this.Ki.release(t)}}Ps(){this.Zi=qt.SKIP}Fs(){this.Zi=qt.MORE}mode(t){this.Ms(t)}Ms(t){this.en=t}un(){return this.en}an(){return this.tn}Ds(t){this.gi.debug,this.tn.push(this.en),this.Ms(t)}_s(){if(0===this.tn.length)throw"Empty Stack";return this.gi.debug,this.Ms(this.tn.pop()),this.en}cn(t){this.Ji=t}emit(){let t=this.Wi.create(this.Gi,this.Zi,this.l,this.Is,this.$i,this.fn()-1,this.Qi,this.Xi);return this.cn(t),t}rn(){let t=this.h,e=this.line,i=this.Wi.create(this.Gi,s.EOF,null,s.m,this.Ki.index,this.Ki.index-1,e,t);return this.cn(i),i}fn(){return this.Ki.index}dn(){let t=[],e=this.nn();for(;e.type!==s.EOF;)t.push(e),e=this.nn();return t}hn(t){let e=this.$i,s=this.Ki.index,i=this.Ki.P(e,s),n="token recognition error at: '"+this.gn(i)+"'";this.Fi().ui(this,null,this.Qi,this.Xi,n,t)}gn(t){let e=[];for(let s=0;s<t.length;s++)e.push(t[s]);return e.join("")}wn(t){return t.charCodeAt(0)===s.EOF?"<EOF>":"\n"===t?"\\n":"\t"===t?"\\t":"\r"===t?"\\r":t}pn(t){return"'"+this.wn(t)+"'"}ln(t){this.Ki.LA(1)!==s.EOF&&(t instanceof Mt?this.gi.O(this.Ki):this.Ki.O())}get xn(){return this.Ki}set xn(t){this.Ki=null,this.Gi=[this,this.Ki],this.reset(),this.Ki=t,this.Gi=[this,this.Ki]}get Sn(){return this.Ki.Sn}get type(){return this.Zi}set type(t){this.Zi=t}get line(){return this.gi.line}set line(t){this.gi.line=t}get h(){return this.gi.h}set h(t){this.gi.h=t}get text(){return null!==this.l?this.l:this.gi.P(this.Ki)}set text(t){this.l=t}}function Ht(t){return t.dt()}function Bt(t,e){return t===e||null!==t&&null!==e&&t.gt(e)}qt.sn=0,qt.MORE=-2,qt.SKIP=-3,qt.mn=s.m,qt.HIDDEN=s.T,qt.Tn=0,qt.yn=1114111;class Vt{constructor(t){this.An=new d(Ht,Bt),this.vn=void 0===t||t,this.readOnly=!1,this.Cn=[],this.En=0,this.kn=null,this.bn=!1,this.Nn=!1,this.Ce=-1}add(t,e){if(void 0===e&&(e=null),this.readOnly)throw"This set is readonly";t.lt!==g.NONE&&(this.bn=!0),t.ut>0&&(this.Nn=!0);let s=this.An.G(t);if(s===t)return this.Ce=-1,this.Cn.push(t),!0;let i=!this.vn,n=W(s.context,t.context,i,e);return s.ut=Math.max(s.ut,t.ut),t.ot&&(s.ot=!0),s.context=n,!0}Rn(){let t=new d;for(let e=0;e<this.Cn.length;e++)t.add(this.Cn[e].state);return t}Ln(){let t=[];for(let e=0;e<this.Cn.length;e++){let s=this.Cn[e].lt;s!==g.NONE&&t.push(s.lt)}return t}On(t){if(this.readOnly)throw"This set is readonly";if(0!==this.An.length)for(let e=0;e<this.Cn.length;e++){let s=this.Cn[e];s.context=t.Pn(s.context)}}addAll(t){for(let e=0;e<t.length;e++)this.add(t[e]);return!1}equals(t){return this===t||t instanceof Vt&&r(this.Cn,t.Cn)&&this.vn===t.vn&&this.En===t.En&&this.kn===t.kn&&this.bn===t.bn&&this.Nn===t.Nn}q(){let t=new u;return t.update(this.Cn),t.finish()}_(t){this.readOnly?(-1===this.Ce&&(this.Ce=this.q()),t.update(this.Ce)):t.update(this.q())}Te(){return 0===this.Cn.length}contains(t){if(null===this.An)throw"This method is not implemented for readonly sets.";return this.An.contains(t)}In(t){if(null===this.An)throw"This method is not implemented for readonly sets.";return this.An.In(t)}clear(){if(this.readOnly)throw"This set is readonly";this.Cn=[],this.Ce=-1,this.An=new d}Fn(t){this.readOnly=t,t&&(this.An=null)}toString(){return f(this.Cn)+(this.bn?",hasSemanticContext="+this.bn:"")+(this.En!==$.hs?",uniqueAlt="+this.En:"")+(null!==this.kn?",conflictingAlts="+this.kn:"")+(this.Nn?",dipsIntoOuterContext":"")}get items(){return this.Cn}get length(){return this.Cn.length}}class zt{constructor(t,e){return null===t&&(t=-1),null===e&&(e=new Vt),this.ft=t,this.Cn=e,this.Dn=null,this._n=!1,this.Mn=0,this.qn=null,this.Hn=!1,this.Bn=null,this}Vn(){let t=new d;if(null!==this.Cn)for(let e=0;e<this.Cn.length;e++){let s=this.Cn[e];t.add(s.alt)}return 0===t.length?null:t}equals(t){return this===t||t instanceof zt&&this.Cn.equals(t.Cn)}toString(){let t=this.ft+":"+this.Cn;return this._n&&(t+="=>",null!==this.Bn?t+=this.Bn:t+=this.Mn),t}q(){let t=new u;return t.update(this.Cn),t.finish()}}class Ut{constructor(t,e){return this.Nt=t,this.zn=e,this}Pn(t){if(null===this.zn)return t;let e=new U;return K(t,this.zn,e)}}Ut.ERROR=new zt(2147483647,new Vt);class jt extends Vt{constructor(){super(),this.An=new d}}class Kt extends m{constructor(t,e){super(t,e);let s=t.qn||null;return this.qn=s||(null!==e?e.qn:null),this.Un=null!==e&&this.jn(e,this.state),this.dt=Kt.prototype.q,this.gt=Kt.prototype.equals,this}_(t){t.update(this.state.ft,this.alt,this.context,this.lt,this.Un,this.qn)}equals(t){return this===t||t instanceof Kt&&this.Un===t.Un&&(this.qn?this.qn.equals(t.qn):!t.qn)&&super.equals(t)}jn(t,e){return t.Un||e instanceof X&&e.ls}}class Wt extends St{constructor(t,e){super(e.Rs),this.offset=t,this.action=e,this.Ls=!0}Os(t){this.action.Os(t)}_(t){t.update(this.Rs,this.offset,this.action)}equals(t){return this===t||t instanceof Wt&&this.offset===t.offset&&this.action===t.action}}class Gt{constructor(t){return this.Je=null===t?[]:t,this.Ce=u.M(t),this}Kn(t){let e=null;for(let s=0;s<this.Je.length;s++)!this.Je[s].Ls||this.Je[s]instanceof Wt||(null===e&&(e=this.Je.concat([])),e[s]=new Wt(t,this.Je[s]));return null===e?this:new Gt(e)}Os(t,e,s){let i=!1,n=e.index;try{for(let r=0;r<this.Je.length;r++){let h=this.Je[r];if(h instanceof Wt){let t=h.offset;e.seek(s+t),h=h.action,i=s+t!==n}else h.Ls&&(e.seek(n),i=!1);h.Os(t)}}finally{i&&e.seek(n)}}q(){return this.Ce}_(t){t.update(this.Ce)}equals(t){if(this===t)return!0;if(t instanceof Gt){if(this.Ce!=t.Ce)return!1;if(this.Je.length!=t.Je.length)return!1;{let e=this.Je.length;for(let s=0;s<e;++s)if(!this.Je[s].equals(t.Je[s]))return!1;return!0}}return!1}static append(t,e){if(null===t)return new Gt([e]);let s=t.Je.concat([e]);return new Gt(s)}}function Jt(t){t.index=-1,t.line=0,t.h=-1,t.Wn=null}class $t{constructor(){Jt(this)}reset(){Jt(this)}}class Qt extends Ut{constructor(t,e,s,i){super(e,i),this.Gn=s,this.Jn=t,this.Ui=-1,this.line=1,this.h=0,this.mode=qt.sn,this.$n=new $t}Qn(t){this.h=t.h,this.line=t.line,this.mode=t.mode,this.Ui=t.Ui}match(t,e){this.mode=e;let s=t.mark();try{this.Ui=t.index,this.$n.reset();let s=this.Gn[e];return null===s.Xn?this.Yn(t):this.Zn(t,s.Xn)}finally{t.release(s)}}reset(){this.$n.reset(),this.Ui=-1,this.line=1,this.h=0,this.mode=qt.sn}Yn(t){let e=this.Nt.$e[this.mode];Qt.debug,this.mode;let s=this.tr(t,e),i=s.bn;s.bn=!1;let n=this.er(s);i||(this.Gn[this.mode].Xn=n);let r=this.Zn(t,n);return Qt.debug,r}Zn(t,e){Qt.debug,e._n&&this.sr(this.$n,t,e);let i=t.LA(1),n=e;for(;;){Qt.debug;let e=this.ir(n,i);if(null===e&&(e=this.nr(t,n,i)),e===Ut.ERROR)break;if(i!==s.EOF&&this.O(t),e._n&&(this.sr(this.$n,t,e),i===s.EOF))break;i=t.LA(1),n=e}return this.rr(this.$n,t,n.Cn,i)}ir(t,e){if(null===t.Dn||e<Qt.hr||e>Qt.lr)return null;let s=t.Dn[e-Qt.hr];return void 0===s&&(s=null),Qt.debug,s}nr(t,e,s){let i=new jt;return this.ur(t,e.Cn,i,s),0===i.items.length?(i.bn||this.ar(e,s,Ut.ERROR),Ut.ERROR):this.ar(e,s,null,i)}rr(t,e,i,n){if(null!==this.$n.Wn){let s=t.Wn.qn;return this.accept(e,s,this.Ui,t.index,t.line,t.h),t.Wn.Mn}if(n===s.EOF&&e.index===this.Ui)return s.EOF;throw new Mt(this.Jn,e,this.Ui,i)}ur(t,e,i,n){let r=$.hs;for(let h=0;h<e.items.length;h++){let l=e.items[h],u=l.alt===r;if(!u||!l.Un){Qt.debug;for(let e=0;e<l.state.It.length;e++){let h=l.state.It[e],o=this.cr(h,n);if(null!==o){let e=l.qn;null!==e&&(e=e.Kn(t.index-this.Ui));let h=n===s.EOF,a=new Kt({state:o,qn:e},l);this.dr(t,a,i,u,!0,h)&&(r=l.alt)}}}}}accept(t,e,s,i,n,r){Qt.debug,t.seek(i),this.line=n,this.h=r,null!==e&&null!==this.Jn&&e.Os(this.Jn,t,s)}cr(t,e){return t.matches(e,0,qt.yn)?t.target:null}tr(t,e){let s=H.EMPTY,i=new jt;for(let n=0;n<e.It.length;n++){let r=e.It[n].target,h=new Kt({state:r,alt:n+1,context:s},null);this.dr(t,h,i,!1,!1,!1)}return i}dr(t,e,s,i,n,r){let h=null;if(Qt.debug,e.state instanceof v){if(Qt.debug&&this.Jn,null===e.context||e.context.Ee()){if(null===e.context||e.context.Te())return s.add(e),!0;s.add(new Kt({state:e.state,context:H.EMPTY},e)),i=!0}if(null!==e.context&&!e.context.Te())for(let l=0;l<e.context.length;l++)if(e.context.ke(l)!==H.be){let u=e.context.getParent(l),o=this.Nt.states[e.context.ke(l)];h=new Kt({state:o,context:u},e),i=this.dr(t,h,s,i,n,r)}return i}e.state.Pt||i&&e.Un||s.add(e);for(let l=0;l<e.state.It.length;l++){let u=e.state.It[l];h=this.gr(t,e,u,s,n,r),null!==h&&(i=this.dr(t,h,s,i,n,r))}return i}gr(t,e,i,n,r,h){let l=null;if(i.te===C.RULE){let t=V.create(e.context,i.Zt.ft);l=new Kt({state:i.target,context:t},e)}else{if(i.te===C.PRECEDENCE)throw"Precedence predicates are not supported in lexers.";if(i.te===C.PREDICATE)Qt.debug,n.bn=!0,this.wr(t,i.Ot,i.As,r)&&(l=new Kt({state:i.target},e));else if(i.te===C.ACTION)if(null===e.context||e.context.Ee()){let t=Gt.append(e.qn,this.Nt.Je[i.Ss]);l=new Kt({state:i.target,qn:t},e)}else l=new Kt({state:i.target},e);else i.te===C.EPSILON?l=new Kt({state:i.target},e):i.te!==C.ATOM&&i.te!==C.RANGE&&i.te!==C.SET||h&&i.matches(s.EOF,0,qt.yn)&&(l=new Kt({state:i.target},e))}return l}wr(t,e,s,i){if(null===this.Jn)return!0;if(!i)return this.Jn.vs(null,e,s);let n=this.h,r=this.line,h=t.index,l=t.mark();try{return this.O(t),this.Jn.vs(null,e,s)}finally{this.h=n,this.line=r,t.seek(h),t.release(l)}}sr(t,e,s){t.index=e.index,t.line=this.line,t.h=this.h,t.Wn=s}ar(t,e,s,i){if(void 0===s&&(s=null),void 0===i&&(i=null),null===s&&null!==i){let t=i.bn;if(i.bn=!1,s=this.er(i),t)return s}return e<Qt.hr||e>Qt.lr||(Qt.debug,null===t.Dn&&(t.Dn=[]),t.Dn[e-Qt.hr]=s),s}er(t){let e=new zt(null,t),s=null;for(let e=0;e<t.items.length;e++){let i=t.items[e];if(i.state instanceof v){s=i;break}}null!==s&&(e._n=!0,e.qn=s.qn,e.Mn=this.Nt.Ge[s.state.Ot]);let i=this.Gn[this.mode],n=i.states.get(e);if(null!==n)return n;let r=e;return r.ft=i.states.length,t.Fn(!0),r.Cn=t,i.states.add(r),r}pr(t){return this.Gn[t]}P(t){return t.P(this.Ui,t.index-1)}O(t){t.LA(1)==="\n".charCodeAt(0)?(this.line+=1,this.h=0):this.h+=1,t.O()}Sr(t){return-1===t?"EOF":"'"+String.fromCharCode(t)+"'"}}Qt.debug=!1,Qt.mr=!1,Qt.hr=0,Qt.lr=127;class Xt{constructor(t,e){this.alt=e,this.Tr=t}toString(){return"("+this.Tr+", "+this.alt+")"}}class Yt{constructor(){this.data={}}get(t){return this.data["k-"+t]||null}set(t,e){this.data["k-"+t]=e}values(){return Object.keys(this.data).filter(t=>t.startsWith("k-")).map(t=>this.data[t],this)}}let Zt={SLL:0,LL:1,yr:2,Ar:function(t,e){if(Zt.vr(e))return!0;if(t===Zt.SLL&&e.bn){let t=new Vt;for(let s=0;s<e.items.length;s++){let i=e.items[s];i=new m({lt:g.NONE},i),t.add(i)}e=t}let s=Zt.Cr(e);return Zt.Er(s)&&!Zt.kr(e)},br:function(t){for(let e=0;e<t.items.length;e++)if(t.items[e].state instanceof v)return!0;return!1},vr:function(t){for(let e=0;e<t.items.length;e++)if(!(t.items[e].state instanceof v))return!1;return!0},Nr:function(t){return Zt.Rr(t)},Lr:function(t){return!Zt.Or(t)},Or:function(t){for(let e=0;e<t.length;e++)if(1===t[e].length)return!0;return!1},Er:function(t){for(let e=0;e<t.length;e++)if(t[e].length>1)return!0;return!1},Pr:function(t){let e=null;for(let s=0;s<t.length;s++){let i=t[s];if(null===e)e=i;else if(i!==e)return!1}return!0},Ir:function(t){let e=Zt.Fr(t);return 1===e.length?e.minValue():$.hs},Fr:function(t){let e=new G;return t.map(function(t){e.or(t)}),e},Cr:function(t){let e=new U;return e.U=function(t){u.M(t.state.ft,t.context)},e.j=function(t,e){return t.state.ft===e.state.ft&&t.context.equals(e.context)},t.items.map(function(t){let s=e.get(t);null===s&&(s=new G,e.set(t,s)),s.set(t.alt)}),e.getValues()},Dr:function(t){let e=new Yt;return t.items.map(function(t){let s=e.get(t.state);null===s&&(s=new G,e.set(t.state,s)),s.set(t.alt)}),e},kr:function(t){let e=Zt.Dr(t).values();for(let t=0;t<e.length;t++)if(1===e[t].length)return!0;return!1},Rr:function(t){let e=null;for(let s=0;s<t.length;s++){let i=t[s].minValue();if(null===e)e=i;else if(e!==i)return $.hs}return e}};const te=Zt;class ee extends _t{constructor(t,e,s,i,n,r){r=r||t._r,i=i||t.Mr(),s=s||t.Mr(),e=e||t.o(),super({message:"",Hi:t,input:e,Bi:r}),this.ji=n,this.qr=s,this.Vi=i}}class se{constructor(t){this.Hr=t||U,this.Br=new this.Hr}get(t,e){let s=this.Br.get(t)||null;return null===s?null:s.get(e)||null}set(t,e,s){let i=this.Br.get(t)||null;null===i&&(i=new this.Hr,this.Br.set(t,i)),i.set(e,s)}}const ie={ATN:$,ATNDeserializer:Nt,LexerATNSimulator:Qt,ParserATNSimulator:class extends Ut{constructor(t,e,s,i){super(e,i),this.Vr=t,this.Gn=s,this.zr=te.LL,this.Ki=null,this.Ur=0,this.jr=null,this.Kr=null,this.Wr=null,this.debug=!1,this.Gr=!1,this.Jr=!1,this.Re=!1,this.mr=!1,this.$r=!1}reset(){}Qr(t,e,s){this.debug||this.Re,this.Ki=t,this.Ur=t.index,this.jr=s;let i=this.Gn[e];this.Kr=i;let n=t.mark(),r=t.index;try{let e;if(e=i.Xr?i.Yr(this.Vr.Zr()):i.Xn,null===e){null===s&&(s=q.EMPTY),this.debug;let t=!1,n=this.tr(i.th,q.EMPTY,t);i.Xr?(i.Xn.Cn=n,n=this.eh(n),e=this.er(i,new zt(null,n)),i.sh(this.Vr.Zr(),e)):(e=this.er(i,new zt(null,n)),i.Xn=e)}let n=this.Zn(i,e,t,r,s);return this.debug,n}finally{this.Kr=null,this.Wr=null,t.seek(r),t.release(n)}}Zn(t,e,i,n,r){let h;this.debug||this.Re;let l=e;this.debug;let u=i.LA(1);for(;;){let e=this.ir(l,u);if(null===e&&(e=this.nr(t,l,u)),e===Ut.ERROR){let t=this.ih(i,r,l.Cn,n);if(i.seek(n),h=this.nh(l.Cn,r),h!==$.hs)return h;throw t}if(e.Hn&&this.zr!==te.SLL){let s=null;if(null!==e.Bn){this.debug;let t=i.index;if(t!==n&&i.seek(n),s=this.rh(e.Bn,r,!0),1===s.length)return this.debug,s.minValue();t!==n&&i.seek(t)}this.mr;let l=!0,u=this.tr(t.th,r,l);return this.ai(t,s,e.Cn,n,i.index),h=this.hh(t,e,u,i,n,r),h}if(e._n){if(null===e.Bn)return e.Mn;let s=i.index;i.seek(n);let h=this.rh(e.Bn,r,!0);if(0===h.length)throw this.ih(i,r,e.Cn,n);return 1===h.length||this.oi(t,e,n,s,!1,h,e.Cn),h.minValue()}l=e,u!==s.EOF&&(i.O(),u=i.LA(1))}}ir(t,e){let s=t.Dn;return null===s?null:s[e+1]||null}nr(t,e,s){let i=this.uh(e.Cn,s,!1);if(null===i)return this.ar(t,e,s,Ut.ERROR),Ut.ERROR;let n=new zt(null,i),r=this.Ir(i);return this.debug&&te.Cr(i),r!==$.hs?(n._n=!0,n.Cn.En=r,n.Mn=r):te.Ar(this.zr,i)&&(n.Cn.kn=this.oh(i),n.Hn=!0,n._n=!0,n.Mn=n.Cn.kn.minValue()),n._n&&n.Cn.bn&&(this.ah(n,this.Nt.ns(t.ss)),null!==n.Bn&&(n.Mn=$.hs)),n=this.ar(t,e,s,n),n}ah(t,e){let s=e.It.length,i=this.fh(t.Cn),n=this.dh(i,t.Cn,s);null!==n?(t.Bn=this.gh(i,n),t.Mn=$.hs):t.Mn=i.minValue()}hh(t,e,i,n,r,h){this.debug||this.Re;let l,u=!1,o=i;n.seek(r);let a=n.LA(1),c=-1;for(;;){if(l=this.uh(o,a,!0),null===l){let t=this.ih(n,h,o,r);n.seek(r);let e=this.nh(o,h);if(e!==$.hs)return e;throw t}let t=te.Cr(l);if(this.debug,l.En=this.Ir(l),l.En!==$.hs){c=l.En;break}if(this.zr!==te.yr){if(c=te.Nr(t),c!==$.hs)break}else if(te.Lr(t)&&te.Pr(t)){u=!0,c=te.Rr(t);break}o=l,a!==s.EOF&&(n.O(),a=n.LA(1))}return l.En!==$.hs?(this.ci(t,c,l,r,n.index),c):(this.oi(t,e,r,n.index,u,null,l),c)}uh(t,e,i){this.debug,null===this.Wr&&(this.Wr=new se);let n=new Vt(i),r=null;for(let h=0;h<t.items.length;h++){let l=t.items[h];if(this.debug,l.state instanceof v)(i||e===s.EOF)&&(null===r&&(r=[]),r.push(l),this.Jr);else for(let t=0;t<l.state.It.length;t++){let s=l.state.It[t],i=this.cr(s,e);if(null!==i){let t=new m({state:i},l);n.add(t,this.Wr),this.Jr}}}let h=null;if(null===r&&e!==s.EOF&&(1===n.items.length||this.Ir(n)!==$.hs)&&(h=n),null===h){h=new Vt(i);let t=new d,r=e===s.EOF;for(let e=0;e<n.items.length;e++)this.dr(n.items[e],h,t,!1,i,r)}if(e===s.EOF&&(h=this.wh(h,h===n)),!(null===r||i&&te.br(h)))for(let t=0;t<r.length;t++)h.add(r[t],this.Wr);return this.Re,0===h.items.length?null:h}wh(t,e){if(te.vr(t))return t;let i=new Vt(t.vn);for(let n=0;n<t.items.length;n++){let r=t.items[n];if(r.state instanceof v)i.add(r,this.Wr);else if(e&&r.state.Pt&&this.Nt.Ye(r.state).contains(s.EPSILON)){let t=this.Nt.Ke[r.state.Ot];i.add(new m({state:t},r),this.Wr)}}return i}tr(t,e,s){let i=j(this.Nt,e),n=new Vt(s);this.Re;for(let e=0;e<t.It.length;e++){let r=t.It[e].target,h=new m({state:r,alt:e+1,context:i},null),l=new d;this.dr(h,n,l,!0,s,!1)}return n}eh(t){let e,s=[],i=new Vt(t.vn);for(let n=0;n<t.items.length;n++){if(e=t.items[n],1!==e.alt)continue;let r=e.lt.et(this.Vr,this.jr);null!==r&&(s[e.state.ft]=e.context,r!==e.lt?i.add(new m({lt:r},e),this.Wr):i.add(e,this.Wr))}for(let n=0;n<t.items.length;n++)if(e=t.items[n],1!==e.alt){if(!e.ot){let t=s[e.state.ft]||null;if(null!==t&&t.equals(e.context))continue}i.add(e,this.Wr)}return i}cr(t,e){return t.matches(e,0,this.Nt.Ve)?t.target:null}dh(t,e,s){let i=[];for(let s=0;s<e.items.length;s++){let n=e.items[s];t.get(n.alt)&&(i[n.alt]=g.nt(i[n.alt]||null,n.lt))}let n=0;for(let t=1;t<s+1;t++){let e=i[t]||null;null===e?i[t]=g.NONE:e!==g.NONE&&(n+=1)}return 0===n&&(i=null),this.debug,i}gh(t,e){let s=[],i=!1;for(let n=1;n<e.length;n++){let r=e[n];null!==t&&t.get(n)&&s.push(new Xt(r,n)),r!==g.NONE&&(i=!0)}return i?s:null}nh(t,e){let s=this.ph(t,e),i=s[0],n=s[1],r=this.xh(i);return r!==$.hs||n.items.length>0&&(r=this.xh(n),r!==$.hs)?r:$.hs}xh(t){let e=[];for(let s=0;s<t.items.length;s++){let i=t.items[s];(i.ut>0||i.state instanceof v&&i.context.Ee())&&e.indexOf(i.alt)<0&&e.push(i.alt)}return 0===e.length?$.hs:Math.min.apply(null,e)}ph(t,e){let s=new Vt(t.vn),i=new Vt(t.vn);for(let n=0;n<t.items.length;n++){let r=t.items[n];r.lt!==g.NONE?r.lt.evaluate(this.Vr,e)?s.add(r):i.add(r):s.add(r)}return[s,i]}rh(t,e,s){let i=new G;for(let n=0;n<t.length;n++){let r=t[n];if(r.Tr===g.NONE){if(i.set(r.alt),!s)break;continue}let h=r.Tr.evaluate(this.Vr,e);if(this.debug||this.mr,h&&(this.debug||this.mr,i.set(r.alt),!s))break}return i}dr(t,e,s,i,n,r){this.Sh(t,e,s,i,n,0,r)}Sh(t,e,s,i,n,r,h){if(this.Re||this.Gr,t.state instanceof v){if(!t.context.Te()){for(let l=0;l<t.context.length;l++){if(t.context.ke(l)===H.be){if(n){e.add(new m({state:t.state,context:H.EMPTY},t),this.Wr);continue}this.debug,this.mh(t,e,s,i,n,r,h);continue}let u=this.Nt.states[t.context.ke(l)],o=t.context.getParent(l),a={state:u,alt:t.alt,context:o,lt:t.lt},c=new m(a,null);c.ut=t.ut,this.Sh(c,e,s,i,n,r-1,h)}return}if(n)return void e.add(t,this.Wr);this.debug}this.mh(t,e,s,i,n,r,h)}mh(t,e,s,i,n,r,h){let l=t.state;l.Pt||e.add(t,this.Wr);for(let u=0;u<l.It.length;u++){if(0===u&&this.Th(t))continue;let o=l.It[u],a=i&&!(o instanceof ct),c=this.gr(t,o,a,0===r,n,h);if(null!==c){let i=r;if(t.state instanceof v){if(null!==this.Kr&&this.Kr.Xr&&o.ys===this.Kr.th.Ot&&(c.ot=!0),c.ut+=1,s.G(c)!==c)continue;e.Nn=!0,i-=1,this.debug}else{if(!o.Mt&&s.G(c)!==c)continue;o instanceof E&&i>=0&&(i+=1)}this.Sh(c,e,s,a,n,i,h)}}}Th(t){let e=t.state;if(e.Lt!==A.Wt)return!1;if(e.Lt!==A.Wt||!e.ws||t.context.Te()||t.context.Ee())return!1;let s=t.context.length;for(let i=0;i<s;i++)if(this.Nt.states[t.context.ke(i)].Ot!==e.Ot)return!1;let i=e.It[0].target.us.ft,n=this.Nt.states[i];for(let i=0;i<s;i++){let s=t.context.ke(i),r=this.Nt.states[s];if(1!==r.It.length||!r.It[0].Mt)return!1;let h=r.It[0].target;if(!(r.Lt===A.jt&&h===e||r===n||h===n||h.Lt===A.jt&&1===h.It.length&&h.It[0].Mt&&h.It[0].target===e))return!1}return!0}yh(t){return null!==this.Vr&&t>=0?this.Vr.ie[t]:"<rule "+t+">"}gr(t,e,i,n,r,h){switch(e.te){case C.RULE:return this.Ah(t,e);case C.PRECEDENCE:return this.Ch(t,e,i,n,r);case C.PREDICATE:return this.Eh(t,e,i,n,r);case C.ACTION:return this.kh(t,e);case C.EPSILON:return new m({state:e.target},t);case C.ATOM:case C.RANGE:case C.SET:return h&&e.matches(s.EOF,0,1)?new m({state:e.target},t):null;default:return null}}kh(t,e){return this.debug&&(-1===e.Ss||e.Ss),new m({state:e.target},t)}Ch(t,e,s,i,n){this.debug&&this.Vr;let r=null;if(s&&i)if(n){let s=this.Ki.index;this.Ki.seek(this.Ur);let i=e.Cs().evaluate(this.Vr,this.jr);this.Ki.seek(s),i&&(r=new m({state:e.target},t))}else{let s=g.st(t.lt,e.Cs());r=new m({state:e.target,lt:s},t)}else r=new m({state:e.target},t);return this.debug,r}Eh(t,e,s,i,n){this.debug&&this.Vr;let r=null;if(s&&(e.Ts&&i||!e.Ts))if(n){let s=this.Ki.index;this.Ki.seek(this.Ur);let i=e.Cs().evaluate(this.Vr,this.jr);this.Ki.seek(s),i&&(r=new m({state:e.target},t))}else{let s=g.st(t.lt,e.Cs());r=new m({state:e.target,lt:s},t)}else r=new m({state:e.target},t);return this.debug,r}Ah(t,e){this.debug;let s=e.Zt,i=V.create(t.context,s.ft);return new m({state:e.target,context:i},t)}oh(t){let e=te.Cr(t);return te.Fr(e)}fh(t){let e=null;return t.En!==$.hs?(e=new G,e.set(t.En)):e=t.kn,e}Sr(t){return t===s.EOF?"EOF":null===this.Vr||null===this.Vr.mi||t>=this.Vr.mi.length&&t>=this.Vr.yi.length?""+t:(this.Vr.mi[t]||this.Vr.yi[t])+"<"+t+">"}bh(t){return this.Sr(t.LA(1))}Nh(t){let e=t.Rh();for(let t=0;t<e.length;t++){let s=e[t],i="no edges";if(s.state.It.length>0){let t=s.state.It[0];t instanceof ot?i="Atom "+this.Sr(t.label):t instanceof k&&(i=(t instanceof b?"~":"")+"Set "+t.set)}}}ih(t,e,s,i){return new ee(this.Vr,t,t.get(i),t.LT(1),s,e)}Ir(t){let e=$.hs;for(let s=0;s<t.items.length;s++){let i=t.items[s];if(e===$.hs)e=i.alt;else if(i.alt!==e)return $.hs}return e}ar(t,e,s,i){return this.debug,null===i?null:(i=this.er(t,i),null===e||s<-1||s>this.Nt.Ve||(null===e.Dn&&(e.Dn=[]),e.Dn[s+1]=i,this.debug&&(null===this.Vr||this.Vr.mi,null===this.Vr||this.Vr.yi)),i)}er(t,e){if(e===Ut.ERROR)return e;let s=t.states.get(e);return null!==s?(this.Re,s):(e.ft=t.states.length,e.Cn.readOnly||(e.Cn.On(this),e.Cn.Fn(!0)),this.Re,t.states.add(e),this.debug,e)}ai(t,e,s,i,n){(this.debug||this.$r)&&new T(i,n+1),null!==this.Vr&&this.Vr.Fi().ai(this.Vr,t,i,n,e,s)}ci(t,e,s,i,n){(this.debug||this.$r)&&new T(i,n+1),null!==this.Vr&&this.Vr.Fi().ci(this.Vr,t,i,n,e,s)}oi(t,e,s,i,n,r,h){(this.debug||this.$r)&&new T(s,i+1),null!==this.Vr&&this.Vr.Fi().oi(this.Vr,t,s,i,n,r,h)}},PredictionContextCache:class{constructor(){this.cache=new U}add(t){if(t===H.EMPTY)return H.EMPTY;let e=this.cache.get(t)||null;return null!==e?e:(this.cache.set(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}}};class ne{constructor(t,e,s){this.Lh=t,this.mi=e||[],this.yi=s||[]}toString(){if(null===this.Lh.Xn)return null;let t="",e=this.Lh.Oh();for(let s=0;s<e.length;s++){let i=e[s];if(null!==i.Dn){let e=i.Dn.length;for(let s=0;s<e;s++){let e=i.Dn[s]||null;null!==e&&2147483647!==e.ft&&(t=t.concat(this.Ph(i)),t=t.concat("-"),t=t.concat(this.Ih(s)),t=t.concat("->"),t=t.concat(this.Ph(e)),t=t.concat("\n"))}}}return 0===t.length?null:t}Ih(t){return 0===t?"EOF":null!==this.mi||null!==this.yi?this.mi[t-1]||this.yi[t-1]:String.fromCharCode(t-1)}Ph(t){let e=(t._n?":":"")+"s"+t.ft+(t.Hn?"^":"");return t._n?null!==t.Bn?e+"=>"+f(t.Bn):e+"=>"+t.Mn.toString():e}}class re extends ne{constructor(t){super(t,null)}Ih(t){return"'"+String.fromCharCode(t)+"'"}}const he={DFA:class{constructor(t,e){if(void 0===e&&(e=0),this.th=t,this.ss=e,this.Fh=new d,this.Xn=null,this.Xr=!1,t instanceof rt&&t.ws){this.Xr=!0;let t=new zt(null,new Vt);t.Dn=[],t._n=!1,t.Hn=!1,this.Xn=t}}Yr(t){if(!this.Xr)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.Xn.Dn.length?null:this.Xn.Dn[t]||null}sh(t,e){if(!this.Xr)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.Xn.Dn[t]=e)}Dh(t){if(this.Xr!==t){if(this.Fh=new d,t){let t=new zt(null,new Vt);t.Dn=[],t._n=!1,t.Hn=!1,this.Xn=t}else this.Xn=null;this.Xr=t}}Oh(){return this.Fh.values().sort(function(t,e){return t.ft-e.ft})}toString(t,e){return t=t||null,e=e||null,null===this.Xn?"":new ne(this,t,e).toString()}_h(){return null===this.Xn?"":new re(this).toString()}get states(){return this.Fh}}},le={ParseTreeVisitor:class{Mh(t){return Array.isArray(t)?t.map(function(t){return t.accept(this)},this):t.accept(this)}ve(t){return t.children?this.Mh(t.children):null}qh(t){}Hh(t){}}},ue={RecognitionException:_t,NoViableAltException:ee};class oe extends _t{constructor(t,e,s){super({message:ae(e,s||null),Hi:t,input:t.o(),Bi:t._r});let i=t.gi.Nt.states[t.state].It[0];i instanceof gt?(this.Ot=i.Ot,this.Bh=i.As):(this.Ot=0,this.Bh=0),this.Vh=e,this.Vi=t.Mr()}}function ae(t,e){return null!==e?e:"failed predicate: {"+t+"}?"}class ce extends _t{constructor(t){super({message:"",Hi:t,input:t.o(),Bi:t._r}),this.Vi=t.Mr()}}class fe{reset(t){}zh(t){}ln(t,e){}sync(t){}Uh(t){}reportError(t){}}class de extends fe{constructor(){super(),this.jh=!1,this.Kh=-1,this.Wh=null,this.Gh=null,this.Jh=0}reset(t){this.$h(t)}Qh(t){this.jh=!0}Uh(t){return this.jh}$h(t){this.jh=!1,this.Wh=null,this.Kh=-1}Xh(t){this.$h(t)}reportError(t,e){this.Uh(t)||(this.Qh(t),e instanceof ee?this.Yh(t,e):e instanceof ce?this.Zh(t,e):e instanceof oe?this.tl(t,e):t.el(e.Oi(),e.getMessage(),e))}ln(t,e){this.Kh===t.o().index&&null!==this.Wh&&this.Wh.indexOf(t.state)>=0&&t.O(),this.Kh=t.Ki.index,null===this.Wh&&(this.Wh=[]),this.Wh.push(t.state);let s=this.sl(t);this.il(t,s)}sync(t){if(this.Uh(t))return;let e=t.gi.Nt.states[t.state],i=t.nl().LA(1),n=t.Nt.Ye(e);if(n.contains(i))return this.Gh=null,void(this.Jh=A.Rt);if(n.contains(s.EPSILON))null===this.Gh&&(this.Gh=t._r,this.rl=t.wi);else switch(e.Lt){case A.Ht:case A.Vt:case A.Bt:case A.Wt:if(null!==this.hl(t))return;throw new ce(t);case A.Gt:case A.Kt:{this.ll(t);let e=new y;e.yt(t.rs());let s=e.yt(this.sl(t));this.il(t,s)}}}Yh(t,e){let i,n=t.nl();i=null!==n?e.qr.type===s.EOF?"<EOF>":n.P(new T(e.qr.i,e.Vi.i)):"<unknown input>";let r="no viable alternative at input "+this.ul(i);t.el(r,e.Vi,e)}Zh(t,e){let s="mismatched input "+this.Pi(e.Vi)+" expecting "+e.rs().toString(t.mi,t.yi);t.el(s,e.Vi,e)}tl(t,e){let s="rule "+t.ie[t._r.Ot]+" "+e.message;t.el(s,e.Vi,e)}ll(t){if(this.Uh(t))return;this.Qh(t);let e=t.Mr(),s="extraneous input "+this.Pi(e)+" expecting "+this.rs(t).toString(t.mi,t.yi);t.el(s,e,null)}ol(t){if(this.Uh(t))return;this.Qh(t);let e=t.Mr(),s="missing "+this.rs(t).toString(t.mi,t.yi)+" at "+this.Pi(e);t.el(s,e,null)}zh(t){let e=this.hl(t);if(null!==e)return t.O(),e;if(this.al(t))return this.cl(t);throw new ce(t)}al(t){let e=t.nl().LA(1),s=t.gi.Nt,i=s.states[t.state].It[0].target;return!!s.Ye(i,t._r).contains(e)&&(this.ol(t),!0)}hl(t){let e=t.nl().LA(2);if(this.rs(t).contains(e)){this.ll(t),t.O();let e=t.Mr();return this.Xh(t),e}return null}cl(t){let e,i=t.Mr(),n=this.rs(t).first();e=n===s.EOF?"<missing EOF>":"<missing "+t.mi[n]+">";let r=i,h=t.nl().LT(-1);return r.type===s.EOF&&null!==h&&(r=h),t.fl().create(r.source,n,e,s.m,-1,-1,r.line,r.h)}rs(t){return t.rs()}Pi(t){if(null===t)return"<no token>";let e=t.text;return null===e&&(e=t.type===s.EOF?"<EOF>":"<"+t.type+">"),this.ul(e)}ul(t){return"'"+(t=(t=(t=t.replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t"))+"'"}sl(t){let e=t.gi.Nt,i=t._r,n=new y;for(;null!==i&&i.Se>=0;){let t=e.states[i.Se].It[0],s=e.Ye(t.Zt);n.yt(s),i=i.xe}return n.vt(s.EPSILON),n}il(t,e){let i=t.nl().LA(1);for(;i!==s.EOF&&!e.contains(i);)t.O(),i=t.nl().LA(1)}}class ge{qh(t){}Hh(t){}dl(t){}gl(t){}}class we extends ge{constructor(t){super(),this.Vr=t}dl(t){}qh(t){}gl(t){}}class pe extends Pt{constructor(t){super(),this.Ki=null,this.wl=new de,this.pl=[],this.pl.push(0),this._r=null,this.xl=!0,this.Sl=null,this.ml=null,this.Tl=0,this.yl(t)}reset(){null!==this.Ki&&this.Ki.seek(0),this.wl.reset(this),this._r=null,this.Tl=0,this.Al(!1),this.pl=[],this.pl.push(0),null!==this.gi&&this.gi.reset()}match(t){let e=this.Mr();return e.type===t?(this.wl.Xh(this),this.O()):(e=this.wl.zh(this),this.xl&&-1===e.i&&this._r.vl(e)),e}Cl(){let t=this.Mr();return t.type>0?(this.wl.Xh(this),this.O()):(t=this.wl.zh(this),this.xl&&-1===t.i&&this._r.vl(t)),t}El(){return this.ml||[]}kl(t){if(null===t)throw"listener";null===this.ml&&(this.ml=[]),this.ml.push(t)}bl(t){if(null!==this.ml){let e=this.ml.indexOf(t);e>=0&&this.ml.splice(e,1),0===this.ml.length&&(this.ml=null)}}Nl(){this.ml=null}Rl(){if(null!==this.ml){let t=this._r;this.ml.forEach(function(e){e.dl(t),t.Ll(e)})}}Ol(){if(null!==this.ml){let t=this._r;this.ml.slice(0).reverse().forEach(function(e){t.Pl(e),e.gl(t)})}}fl(){return this.Ki.Il.Wi}Fl(t){this.Ki.Il.Wi=t}Dl(){let t=this._l();if(null===t)throw"The current parser does not support an ATN with bypass alternatives.";let e=this.Ml[t];if(null===e){let s=new xt;s.bs=!0,e=new Nt(s).Vs(t),this.Ml[t]=e}return e}o(){return this.nl()}yl(t){this.ql(t)}nl(){return this.Ki}ql(t){this.Ki=null,this.reset(),this.Ki=t}get Hl(){return this.Tl}Mr(){return this.Ki.LT(1)}el(t,e,s){s=s||null,null===(e=e||null)&&(e=this.Mr()),this.Tl+=1;let i=e.line,n=e.h;this.Fi().ui(this,e,i,n,t,s)}O(){let t=this.Mr();t.type!==s.EOF&&this.o().O();let e=null!==this.ml&&this.ml.length>0;if(this.xl||e){let s;s=this.wl.Uh(this)?this._r.vl(t):this._r.Bl(t),s.Se=this.state,e&&this.ml.forEach(function(t){s instanceof D||void 0!==s.Vl&&s.Vl()?t.Hh(s):s instanceof F&&t.qh(s)})}return t}zl(){null!==this._r.xe&&this._r.xe.Ul(this._r)}Ll(t,e,s){this.state=e,this._r=t,this._r.start=this.Ki.LT(1),this.xl&&this.zl(),this.Rl()}Pl(){this._r.stop=this.Ki.LT(-1),this.Ol(),this.state=this._r.Se,this._r=this._r.xe}jl(t,e){t.Ae(e),this.xl&&this._r!==t&&null!==this._r.xe&&(this._r.xe.Kl(),this._r.xe.Ul(t)),this._r=t}Zr(){return 0===this.pl.length?-1:this.pl[this.pl.length-1]}Wl(t,e,s,i){this.state=e,this.pl.push(i),this._r=t,this._r.start=this.Ki.LT(1),this.Rl()}Gl(t,e,s){let i=this._r;i.xe=t,i.Se=e,i.stop=this.Ki.LT(-1),this._r=t,this._r.start=i.start,this.xl&&this._r.Ul(i),this.Rl()}Jl(t){this.pl.pop(),this._r.stop=this.Ki.LT(-1);let e=this._r,s=this.El();if(null!==s&&s.length>0)for(;this._r!==t;)this.Ol(),this._r=this._r.xe;else this._r=t;e.xe=t,this.xl&&null!==t&&t.Ul(e)}$l(t){let e=this._r;for(;null!==e;){if(e.Ot===t)return e;e=e.xe}return null}Es(t,e){return e>=this.pl[this.pl.length-1]}Ql(t){return!1}Xl(t){let e=this.gi.Nt,i=this._r,n=e.states[this.state],r=e.Ye(n);if(r.contains(t))return!0;if(!r.contains(s.EPSILON))return!1;for(;null!==i&&i.Se>=0&&r.contains(s.EPSILON);){let s=e.states[i.Se].It[0];if(r=e.Ye(s.Zt),r.contains(t))return!0;i=i.xe}return!(!r.contains(s.EPSILON)||t!==s.EOF)}rs(){return this.gi.Nt.rs(this.state,this._r)}Yl(){let t=this.gi.Nt,e=t.states[this.state];return t.Ye(e)}Zl(t){let e=this.bi()[t];return null!==e?e:-1}tu(t){null===(t=t||null)&&(t=this._r);let e=[];for(;null!==t;){let s=t.Ot;s<0?e.push("n/a"):e.push(this.ie[s]),t=t.xe}return e}eu(){return this.gi.Gn.toString()}su(){let t=!1;for(let e=0;e<this.gi.Gn.length;e++){let s=this.gi.Gn[e];s.states.length>0&&(this.nu.iu("Decision "+s.ss+":"),this.nu.print(s.toString(this.mi,this.yi)),t=!0)}}ru(){return this.Ki.ru()}Al(t){t?(null!==this.Sl&&this.bl(this.Sl),this.Sl=new we(this),this.kl(this.Sl)):(this.bl(this.Sl),this.Sl=null)}}pe.Ml={};class xe extends F{constructor(t){super(),this.xe=null,this.ue=t}he(t){return null}hu(){return this.ue}getParent(){return this.xe}oe(){return this.ue}ye(){if(null===this.ue)return T.wt;let t=this.ue.i;return new T(t,t)}re(){return 0}accept(t){return t.qh(this)}P(){return this.ue.text}toString(){return this.ue.type===s.EOF?"<EOF>":this.ue.text}}class Se extends xe{constructor(t){super(t)}Vl(){return!0}accept(t){return t.Hh(this)}}class me extends q{constructor(t,e){super(t,e),this.children=null,this.start=null,this.stop=null,this.exception=null}lu(t){this.xe=t.xe,this.Se=t.Se,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(t){t instanceof Se&&(this.children.push(t),t.xe=this)},this))}Ll(t){}Pl(t){}Ul(t){return null===this.children&&(this.children=[]),this.children.push(t),t}Kl(){null!==this.children&&this.children.pop()}Bl(t){let e=new xe(t);return this.Ul(e),e.xe=this,e}vl(t){let e=new Se(t);return this.Ul(e),e.xe=this,e}he(t,e){if(e=e||null,null===this.children||t<0||t>=this.children.length)return null;if(null===e)return this.children[t];for(let s=0;s<this.children.length;s++){let i=this.children[s];if(i instanceof e){if(0===t)return i;t-=1}}return null}uu(t,e){if(null===this.children||e<0||e>=this.children.length)return null;for(let s=0;s<this.children.length;s++){let i=this.children[s];if(i instanceof F&&i.ue.type===t){if(0===e)return i;e-=1}}return null}ou(t){if(null===this.children)return[];{let e=[];for(let s=0;s<this.children.length;s++){let i=this.children[s];i instanceof F&&i.ue.type===t&&e.push(i)}return e}}au(t,e){return this.he(e,t)}cu(t){if(null===this.children)return[];{let e=[];for(let s=0;s<this.children.length;s++){let i=this.children[s];i instanceof t&&e.push(i)}return e}}re(){return null===this.children?0:this.children.length}ye(){return null===this.start||null===this.stop?T.wt:new T(this.start.i,this.stop.i)}}q.EMPTY=new me;const Te={Nt:ie,Lh:he,error:ue,fu:le,Lexer:qt,Parser:pe,ParserRuleContext:me},ye=(new Te.Nt.ATNDeserializer).Vs([4,0,20,202,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13,3,13,73,8,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,3,13,82,8,13,1,14,4,14,85,8,14,11,14,12,14,86,1,14,1,14,4,14,91,8,14,11,14,12,14,92,3,14,95,8,14,1,14,1,14,3,14,99,8,14,1,14,4,14,102,8,14,11,14,12,14,103,3,14,106,8,14,1,14,3,14,109,8,14,1,14,1,14,3,14,113,8,14,1,14,3,14,116,8,14,1,14,1,14,3,14,120,8,14,1,14,1,14,3,14,124,8,14,1,15,1,15,1,15,1,15,5,15,130,8,15,10,15,12,15,133,9,15,1,15,1,15,1,15,1,15,1,15,5,15,140,8,15,10,15,12,15,143,9,15,1,15,1,15,1,15,1,15,1,15,5,15,150,8,15,10,15,12,15,153,9,15,1,15,3,15,156,8,15,1,16,1,16,3,16,160,8,16,1,16,1,16,5,16,164,8,16,10,16,12,16,167,9,16,1,17,1,17,1,18,4,18,172,8,18,11,18,12,18,173,1,18,1,18,1,19,1,19,1,19,1,19,5,19,182,8,19,10,19,12,19,185,9,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,5,20,196,8,20,10,20,12,20,199,9,20,1,20,1,20,1,183,0,21,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,0,37,18,39,19,41,20,1,0,14,2,0,33,33,60,62,4,0,38,38,42,43,47,47,60,62,1,0,48,57,2,0,43,43,45,45,3,0,67,68,75,75,77,77,1,0,50,51,2,0,39,39,92,92,2,0,34,34,92,92,2,0,92,92,96,96,2,0,65,90,95,95,3,0,48,57,65,90,95,95,10,0,192,214,216,246,248,8191,11264,12287,12352,12687,13056,13183,13312,16383,19968,55295,63744,64255,65280,65520,3,0,9,10,12,13,32,32,2,0,10,10,13,13,233,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,1,43,1,0,0,0,3,45,1,0,0,0,5,47,1,0,0,0,7,49,1,0,0,0,9,51,1,0,0,0,11,53,1,0,0,0,13,55,1,0,0,0,15,57,1,0,0,0,17,59,1,0,0,0,19,61,1,0,0,0,21,63,1,0,0,0,23,65,1,0,0,0,25,67,1,0,0,0,27,81,1,0,0,0,29,84,1,0,0,0,31,155,1,0,0,0,33,159,1,0,0,0,35,168,1,0,0,0,37,171,1,0,0,0,39,177,1,0,0,0,41,191,1,0,0,0,43,44,5,40,0,0,44,2,1,0,0,0,45,46,5,41,0,0,46,4,1,0,0,0,47,48,5,46,0,0,48,6,1,0,0,0,49,50,5,44,0,0,50,8,1,0,0,0,51,52,5,91,0,0,52,10,1,0,0,0,53,54,5,93,0,0,54,12,1,0,0,0,55,56,5,33,0,0,56,14,1,0,0,0,57,58,5,63,0,0,58,16,1,0,0,0,59,60,5,58,0,0,60,18,1,0,0,0,61,62,5,123,0,0,62,20,1,0,0,0,63,64,5,125,0,0,64,22,1,0,0,0,65,66,5,37,0,0,66,24,1,0,0,0,67,68,5,45,0,0,68,26,1,0,0,0,69,70,7,0,0,0,70,72,5,61,0,0,71,73,5,61,0,0,72,71,1,0,0,0,72,73,1,0,0,0,73,82,1,0,0,0,74,82,7,1,0,0,75,76,5,60,0,0,76,82,5,62,0,0,77,78,5,38,0,0,78,82,5,38,0,0,79,80,5,124,0,0,80,82,5,124,0,0,81,69,1,0,0,0,81,74,1,0,0,0,81,75,1,0,0,0,81,77,1,0,0,0,81,79,1,0,0,0,82,28,1,0,0,0,83,85,7,2,0,0,84,83,1,0,0,0,85,86,1,0,0,0,86,84,1,0,0,0,86,87,1,0,0,0,87,94,1,0,0,0,88,90,5,46,0,0,89,91,7,2,0,0,90,89,1,0,0,0,91,92,1,0,0,0,92,90,1,0,0,0,92,93,1,0,0,0,93,95,1,0,0,0,94,88,1,0,0,0,94,95,1,0,0,0,95,123,1,0,0,0,96,98,5,69,0,0,97,99,7,3,0,0,98,97,1,0,0,0,98,99,1,0,0,0,99,101,1,0,0,0,100,102,7,2,0,0,101,100,1,0,0,0,102,103,1,0,0,0,103,101,1,0,0,0,103,104,1,0,0,0,104,106,1,0,0,0,105,96,1,0,0,0,105,106,1,0,0,0,106,124,1,0,0,0,107,109,7,4,0,0,108,107,1,0,0,0,108,109,1,0,0,0,109,110,1,0,0,0,110,112,5,77,0,0,111,113,7,5,0,0,112,111,1,0,0,0,112,113,1,0,0,0,113,124,1,0,0,0,114,116,5,77,0,0,115,114,1,0,0,0,115,116,1,0,0,0,116,117,1,0,0,0,117,124,5,76,0,0,118,120,5,75,0,0,119,118,1,0,0,0,119,120,1,0,0,0,120,121,1,0,0,0,121,124,5,71,0,0,122,124,5,84,0,0,123,105,1,0,0,0,123,108,1,0,0,0,123,115,1,0,0,0,123,119,1,0,0,0,123,122,1,0,0,0,124,30,1,0,0,0,125,131,5,39,0,0,126,130,8,6,0,0,127,128,5,92,0,0,128,130,9,0,0,0,129,126,1,0,0,0,129,127,1,0,0,0,130,133,1,0,0,0,131,129,1,0,0,0,131,132,1,0,0,0,132,134,1,0,0,0,133,131,1,0,0,0,134,156,5,39,0,0,135,141,5,34,0,0,136,140,8,7,0,0,137,138,5,92,0,0,138,140,9,0,0,0,139,136,1,0,0,0,139,137,1,0,0,0,140,143,1,0,0,0,141,139,1,0,0,0,141,142,1,0,0,0,142,144,1,0,0,0,143,141,1,0,0,0,144,156,5,34,0,0,145,151,5,96,0,0,146,150,8,8,0,0,147,148,5,92,0,0,148,150,9,0,0,0,149,146,1,0,0,0,149,147,1,0,0,0,150,153,1,0,0,0,151,149,1,0,0,0,151,152,1,0,0,0,152,154,1,0,0,0,153,151,1,0,0,0,154,156,5,96,0,0,155,125,1,0,0,0,155,135,1,0,0,0,155,145,1,0,0,0,156,32,1,0,0,0,157,160,7,9,0,0,158,160,3,35,17,0,159,157,1,0,0,0,159,158,1,0,0,0,160,165,1,0,0,0,161,164,7,10,0,0,162,164,3,35,17,0,163,161,1,0,0,0,163,162,1,0,0,0,164,167,1,0,0,0,165,163,1,0,0,0,165,166,1,0,0,0,166,34,1,0,0,0,167,165,1,0,0,0,168,169,7,11,0,0,169,36,1,0,0,0,170,172,7,12,0,0,171,170,1,0,0,0,172,173,1,0,0,0,173,171,1,0,0,0,173,174,1,0,0,0,174,175,1,0,0,0,175,176,6,18,0,0,176,38,1,0,0,0,177,178,5,47,0,0,178,179,5,42,0,0,179,183,1,0,0,0,180,182,9,0,0,0,181,180,1,0,0,0,182,185,1,0,0,0,183,184,1,0,0,0,183,181,1,0,0,0,184,186,1,0,0,0,185,183,1,0,0,0,186,187,5,42,0,0,187,188,5,47,0,0,188,189,1,0,0,0,189,190,6,19,0,0,190,40,1,0,0,0,191,192,5,47,0,0,192,193,5,47,0,0,193,197,1,0,0,0,194,196,8,13,0,0,195,194,1,0,0,0,196,199,1,0,0,0,197,195,1,0,0,0,197,198,1,0,0,0,198,200,1,0,0,0,199,197,1,0,0,0,200,201,6,20,0,0,201,42,1,0,0,0,27,0,72,81,86,92,94,98,103,105,108,112,115,119,123,129,131,139,141,149,151,155,159,163,165,173,183,197,1,6,0,0]),Ae=ye.Ue.map((t,e)=>new Te.Lh.DFA(t,e));class ve extends Te.Lexer{static du="";static gu=[];static wu=[];static mi=[];static yi=[];static ie=[];constructor(t){super(t),this.gi=new Te.Nt.LexerATNSimulator(this,ye,Ae,new Te.Nt.PredictionContextCache)}}class Ce{}class Ee extends Ce{constructor(t){super(),this.Il=t,this.pu=[],this.index=-1,this.xu=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.Su(),this.index=this.mu(t)}get size(){return this.pu.length}get(t){return this.Su(),this.pu[t]}O(){let t=!1;if(t=this.index>=0&&(this.xu?this.index<this.pu.length-1:this.index<this.pu.length),!t&&this.LA(1)===s.EOF)throw"cannot consume EOF";this.sync(this.index+1)&&(this.index=this.mu(this.index+1))}sync(t){let e=t-this.pu.length+1;return!(e>0)||this.fetch(e)>=e}fetch(t){if(this.xu)return 0;for(let e=0;e<t;e++){let t=this.Il.nn();if(t.i=this.pu.length,this.pu.push(t),t.type===s.EOF)return this.xu=!0,e+1}return t}ou(t,e,i){if(void 0===i&&(i=null),t<0||e<0)return null;this.Su();let n=[];e>=this.pu.length&&(e=this.pu.length-1);for(let r=t;r<e;r++){let t=this.pu[r];if(t.type===s.EOF)break;(null===i||i.contains(t.type))&&n.push(t)}return n}LA(t){return this.LT(t).type}LB(t){return this.index-t<0?null:this.pu[this.index-t]}LT(t){if(this.Su(),0===t)return null;if(t<0)return this.LB(-t);let e=this.index+t-1;return this.sync(e),e>=this.pu.length?this.pu[this.pu.length-1]:this.pu[e]}mu(t){return t}Su(){-1===this.index&&this.Tu()}Tu(){this.sync(0),this.index=this.mu(0)}yu(t){this.Il=t,this.pu=[],this.index=-1,this.xu=!1}Au(t,e){if(this.sync(t),t>=this.pu.length)return-1;let i=this.pu[t];for(;i.channel!==e;){if(i.type===s.EOF)return-1;t+=1,this.sync(t),i=this.pu[t]}return t}vu(t,e){for(;t>=0&&this.pu[t].channel!==e;)t-=1;return t}Cu(t,e){if(void 0===e&&(e=-1),this.Su(),t<0||t>=this.pu.length)throw t+" not in 0.."+this.pu.length-1;let s=this.Au(t+1,qt.mn),i=t+1,n=-1===s?this.pu.length-1:s;return this.Eu(i,n,e)}ku(t,e){if(void 0===e&&(e=-1),this.Su(),t<0||t>=this.pu.length)throw t+" not in 0.."+this.pu.length-1;let s=this.vu(t-1,qt.mn);if(s===t-1)return null;let i=s+1,n=t-1;return this.Eu(i,n,e)}Eu(t,e,s){let i=[];for(let n=t;n<e+1;n++){let t=this.pu[n];-1===s?t.channel!==qt.mn&&i.push(t):t.channel===s&&i.push(t)}return 0===i.length?null:i}ru(){return this.Il.ru()}P(t){this.Su(),this.fill(),t||(t=new T(0,this.pu.length-1));let e=t.start;e instanceof s&&(e=e.i);let i=t.stop;if(i instanceof s&&(i=i.i),null===e||null===i||e<0||i<0)return"";i>=this.pu.length&&(i=this.pu.length-1);let n="";for(let t=e;t<i+1;t++){let e=this.pu[t];if(e.type===s.EOF)break;n+=e.text}return n}fill(){for(this.Su();1e3===this.fetch(1e3););}}Object.defineProperty(Ee,"size",{get:function(){return this.pu.length}});class ke extends Ee{constructor(t,e){super(t),this.channel=void 0===e?s.m:e}mu(t){return this.Au(t,this.channel)}LB(t){if(0===t||this.index-t<0)return null;let e=this.index,s=1;for(;s<=t;)e=this.vu(e-1,this.channel),s+=1;return e<0?null:this.pu[e]}LT(t){if(this.Su(),0===t)return null;if(t<0)return this.LB(-t);let e=this.index,s=1;for(;s<t;)this.sync(e+1)&&(e=this.Au(e+1,this.channel)),s+=1;return this.pu[e]}bu(){let t=0;this.fill();for(let e=0;e<this.pu.length;e++){let i=this.pu[e];if(i.channel===this.channel&&(t+=1),i.type===s.EOF)break}return t}}const be=(new Te.Nt.ATNDeserializer).Vs([4,1,20,110,2,0,7,0,2,1,7,1,2,2,7,2,1,0,1,0,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,5,1,22,8,1,10,1,12,1,25,9,1,3,1,27,8,1,1,1,1,1,1,1,1,1,1,1,5,1,34,8,1,10,1,12,1,37,9,1,1,1,3,1,40,8,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,48,8,1,10,1,12,1,51,9,1,1,1,3,1,54,8,1,1,1,1,1,1,1,3,1,59,8,1,1,1,1,1,1,1,3,1,64,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,82,8,1,10,1,12,1,85,9,1,3,1,87,8,1,1,1,3,1,90,8,1,1,1,1,1,1,1,1,1,3,1,96,8,1,1,1,1,1,1,1,5,1,101,8,1,10,1,12,1,104,9,1,1,2,1,2,1,2,1,2,1,2,0,1,2,3,0,2,4,0,2,1,0,12,14,1,0,15,17,129,0,6,1,0,0,0,2,63,1,0,0,0,4,105,1,0,0,0,6,7,3,2,1,0,7,8,5,0,0,1,8,1,1,0,0,0,9,10,6,1,-1,0,10,11,5,1,0,0,11,12,3,2,1,0,12,13,5,2,0,0,13,64,1,0,0,0,14,15,5,7,0,0,15,64,3,2,1,10,16,17,5,17,0,0,17,26,5,1,0,0,18,23,3,2,1,0,19,20,5,4,0,0,20,22,3,2,1,0,21,19,1,0,0,0,22,25,1,0,0,0,23,21,1,0,0,0,23,24,1,0,0,0,24,27,1,0,0,0,25,23,1,0,0,0,26,18,1,0,0,0,26,27,1,0,0,0,27,28,1,0,0,0,28,64,5,2,0,0,29,30,5,10,0,0,30,35,3,4,2,0,31,32,5,4,0,0,32,34,3,4,2,0,33,31,1,0,0,0,34,37,1,0,0,0,35,33,1,0,0,0,35,36,1,0,0,0,36,39,1,0,0,0,37,35,1,0,0,0,38,40,5,4,0,0,39,38,1,0,0,0,39,40,1,0,0,0,40,41,1,0,0,0,41,42,5,11,0,0,42,64,1,0,0,0,43,44,5,5,0,0,44,49,3,2,1,0,45,46,5,4,0,0,46,48,3,2,1,0,47,45,1,0,0,0,48,51,1,0,0,0,49,47,1,0,0,0,49,50,1,0,0,0,50,53,1,0,0,0,51,49,1,0,0,0,52,54,5,4,0,0,53,52,1,0,0,0,53,54,1,0,0,0,54,55,1,0,0,0,55,56,5,6,0,0,56,64,1,0,0,0,57,59,5,13,0,0,58,57,1,0,0,0,58,59,1,0,0,0,59,60,1,0,0,0,60,64,5,15,0,0,61,64,5,16,0,0,62,64,5,17,0,0,63,9,1,0,0,0,63,14,1,0,0,0,63,16,1,0,0,0,63,29,1,0,0,0,63,43,1,0,0,0,63,58,1,0,0,0,63,61,1,0,0,0,63,62,1,0,0,0,64,102,1,0,0,0,65,66,10,8,0,0,66,67,7,0,0,0,67,101,3,2,1,9,68,69,10,7,0,0,69,70,5,8,0,0,70,71,3,2,1,0,71,72,5,9,0,0,72,73,3,2,1,8,73,101,1,0,0,0,74,75,10,12,0,0,75,76,5,3,0,0,76,89,5,17,0,0,77,86,5,1,0,0,78,83,3,2,1,0,79,80,5,4,0,0,80,82,3,2,1,0,81,79,1,0,0,0,82,85,1,0,0,0,83,81,1,0,0,0,83,84,1,0,0,0,84,87,1,0,0,0,85,83,1,0,0,0,86,78,1,0,0,0,86,87,1,0,0,0,87,88,1,0,0,0,88,90,5,2,0,0,89,77,1,0,0,0,89,90,1,0,0,0,90,101,1,0,0,0,91,92,10,11,0,0,92,95,5,5,0,0,93,96,5,17,0,0,94,96,3,2,1,0,95,93,1,0,0,0,95,94,1,0,0,0,96,97,1,0,0,0,97,101,5,6,0,0,98,99,10,9,0,0,99,101,5,12,0,0,100,65,1,0,0,0,100,68,1,0,0,0,100,74,1,0,0,0,100,91,1,0,0,0,100,98,1,0,0,0,101,104,1,0,0,0,102,100,1,0,0,0,102,103,1,0,0,0,103,3,1,0,0,0,104,102,1,0,0,0,105,106,7,1,0,0,106,107,5,9,0,0,107,108,3,2,1,0,108,5,1,0,0,0,14,23,26,35,39,49,53,58,63,83,86,89,95,100,102]),Ne=be.Ue.map((t,e)=>new Te.Lh.DFA(t,e)),Re=new Te.Nt.PredictionContextCache;class Le extends Te.Parser{static du="mathjs.g4";static mi=[];static yi=[];static ie=[];constructor(t){super(t),this.gi=new Te.Nt.ParserATNSimulator(this,be,Ne,Re),this.ie=Le.ie,this.mi=Le.mi,this.yi=Le.yi}vs(t,e,s){return!0}A(t){this.match(t)}B(t,e){this.match(t),this.match(e)}C(t,e,s){this.match(t),this.match(e),this.match(s)}D(t,e,s,i){this.match(t),this.match(e),this.match(s),this.match(i)}E(t,e){this.state=t,this.Nu(e)}I(t,e,s,i){this.match(t),this.match(e),this.state=s,this.Nu(i)}J(t,e,s){this.match(t),this.state=e,this.Nu(s)}R(){return this.Ki.LT(1)}Q(){this.wl.Xh(this),this.O()}W(t,e,s){this.Gl(t,e,s)}X(){this.wl.sync(this)}Y(){return this.Ki.LA(1)}Z(){return this.wl.sync(this),this.Ki.LA(1)}Ru(){let t=new Oe(this,this._r,this.state);this.Ll(t,0,0);try{this.jl(t,1),this.E(6,0),this.match(-1)}catch(e){if(!(e instanceof Te.error.RecognitionException))throw e;t.exception=e,this.wl.reportError(this,e),this.wl.ln(this,e)}finally{this.Pl()}return t}Nu(t){void 0===t&&(t=0);const e=this._r,s=this.state;let i=new Pe(this,this._r,s);this.Wl(i,2,1,t);var n=0;try{switch(this.jl(i,1),this.X(),this.gi.Qr(this.Ki,7,this._r)){case 1:this.J(1,11,0),this.A(2);break;case 2:this.J(7,15,10);break;case 3:if(this.B(17,1),!(-32&(n=this.Z()))&&1<<n&238754)for(this.E(18,0),n=this.Z();4===n;)this.J(4,20,0),n=this.Z();this.A(2);break;case 4:this.A(10),this.state=30,this.Lu(),this.X();for(var r=this.gi.Qr(this.Ki,2,this._r);2!=r&&r!=Te.Nt.ATN.hs;)1===r&&(this.A(4),this.state=32,this.Lu()),this.X(),r=this.gi.Qr(this.Ki,2,this._r);4===(n=this.Z())&&this.A(4),this.A(11);break;case 5:for(this.J(5,44,0),this.X(),r=this.gi.Qr(this.Ki,4,this._r);2!=r&&r!=Te.Nt.ATN.hs;)1===r&&this.J(4,46,0),this.X(),r=this.gi.Qr(this.Ki,4,this._r);4===(n=this.Z())&&this.A(4),this.A(6);break;case 6:13===(n=this.Z())&&this.A(13),this.A(15);break;case 7:this.A(16);break;case 8:this.A(17)}for(this._r.stop=this.Ki.LT(-1),this.X(),r=this.gi.Qr(this.Ki,13,this._r);2!=r&&r!=Te.Nt.ATN.hs;){if(1===r)switch(null!==this.ml&&this.Ol(),this.X(),this.gi.Qr(this.Ki,12,this._r)){case 1:i=new Pe(this,e,s),this.W(i,2,1),this.state=65,-32&(n=this.Y())||!(1<<n&28672)?this.wl.zh(this):this.Q(),this.E(67,9);break;case 2:i=new Pe(this,e,s),this.W(i,2,1),this.J(8,70,0),this.J(9,72,8);break;case 3:if(i=new Pe(this,e,s),this.W(i,2,1),this.B(3,17),this.X(),1===this.gi.Qr(this.Ki,10,this._r)){if(this.A(1),!(-32&(n=this.Z()))&&1<<n&238754)for(this.E(78,0),n=this.Z();4===n;)this.J(4,80,0),n=this.Z();this.A(2)}break;case 4:switch(i=new Pe(this,e,s),this.W(i,2,1),this.A(5),this.X(),this.gi.Qr(this.Ki,11,this._r)){case 1:this.A(17);break;case 2:this.E(94,0)}this.A(6);break;case 5:i=new Pe(this,e,s),this.W(i,2,1),this.A(12)}this.X(),r=this.gi.Qr(this.Ki,13,this._r)}}catch(t){if(!(t instanceof Te.error.RecognitionException))throw t;i.exception=t,this.wl.reportError(this,t),this.wl.ln(this,t)}finally{this.Jl(e)}return i}Lu(){let t=new Ie(this,this._r,this.state);this.Ll(t,4,2);var e=0;try{this.jl(t,1),-32&(e=this.Y())||!(1<<e&229376)?this.wl.zh(this):this.Q(),this.J(9,107,0)}catch(e){if(!(e instanceof Te.error.RecognitionException))throw e;t.exception=e,this.wl.reportError(this,e),this.wl.ln(this,e)}finally{this.Pl()}return t}}class Oe extends Te.ParserRuleContext{constructor(t,e,s){super(e,s),this.Vr=t,this.Ot=0}accept(t){return t.Ou(this)}}class Pe extends Te.ParserRuleContext{constructor(t,e,s){super(e,s),this.Vr=t,this.Ot=1}accept(t){return t.Pu(this)}}class Ie extends Te.ParserRuleContext{constructor(t,e,s){super(e,s),this.Vr=t,this.Ot=2}accept(t){return t.Iu(this)}}class Fe extends Te.fu.ParseTreeVisitor{Ou(t){return this.ve(t)}Pu(t){return this.ve(t)}Iu(t){return this.ve(t)}}class De{static ParseFormula(t,e){if(!t||""===t.trim())return null;if(!e)return null;let s=new n(t),i=new ve(s);i.xi(),i.pi(e);let r=new ke(i),h=new Le(r);h.xi(),h.pi(e);let l=h.Ru();return(new Fe).Mh(l)}}class _e extends Rt{constructor(){super()}ui(t,e,s,i,n,r){this.SyntaxError(t,e,s,i,n,r)}SyntaxError(t,e,s,i,n,r){}}const Me={AlgorithmEngineHelper:De,AntlrErrorListener:_e};return"undefined"!=typeof window&&(window.ToolGood=window.ToolGood||{},window.ToolGood.Algorithm={AlgorithmEngineHelper:De,AntlrErrorListener:_e}),e.default})());