!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@cratedb/cratedb-sqlparse"]={})}(this,(function(t){"use strict";var e=Object.defineProperty,s=(t,s,i)=>((t,s,i)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[s]=i)(t,"symbol"!=typeof s?s+"":s,i),i={763:()=>{}},r={};function n(t){var e=r[t];if(void 0!==e)return e.exports;var s=r[t]={exports:{}};return i[t](s,s.exports,n),s.exports}n.d=(t,e)=>{for(var s in e)n.o(e,s)&&!n.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};n.d(a,{MG:()=>J,fr:()=>Dt,sR:()=>Ie,Zo:()=>me,iH:()=>Pe,rt:()=>bt,jB:()=>we,M8:()=>ue,$t:()=>fe,aq:()=>ge,pG:()=>kt,eP:()=>Oe,KU:()=>xe,zW:()=>ye,IX:()=>S,mY:()=>L,a7:()=>j,JG:()=>Kt,ay:()=>$t,X2:()=>re,WU:()=>pe,Uw:()=>Re,gw:()=>Ce,iX:()=>Be,re:()=>ae,Pg:()=>Ge,tD:()=>he,R$:()=>ie,Dj:()=>Bt,m7:()=>K,NZ:()=>b,xo:()=>w,ou:()=>h,qC:()=>Ve,mD:()=>p,Ay:()=>ze});class h{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(t){this._text=t}}function c(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>>16)*c&65535)<<16)&4294967295,r=r<<15|r>>>17,r=(65535&r)*l+(((r>>>16)*l&65535)<<16)&4294967295,h^=r,h=h<<13|h>>>19,i=5*(65535&h)+((5*(h>>>16)&65535)<<16)&4294967295,h=27492+(65535&i)+((58964+(i>>>16)&65535)<<16);switch(r=0,n){case 3:r^=(255&s.charCodeAt(u+2))<<16;case 2:r^=(255&s.charCodeAt(u+1))<<8;case 1:r^=255&s.charCodeAt(u),r=(65535&r)*c+(((r>>>16)*c&65535)<<16)&4294967295,r=r<<15|r>>>17,r=(65535&r)*l+(((r>>>16)*l&65535)<<16)&4294967295,h^=r}return h^=s.length,h^=h>>>16,h=2246822507*(65535&h)+((2246822507*(h>>>16)&65535)<<16)&4294967295,h^=h>>>13,h=3266489909*(65535&h)+((3266489909*(h>>>16)&65535)<<16)&4294967295,h^=h>>>16,h>>>0}class u{constructor(){this.count=0,this.hash=0}update(){for(let t=0;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 hashStuff(){const t=new u;return t.update.apply(t,arguments),t.finish()}}function T(t){return t?"string"==typeof t?l(t):t.hashCode():-1}function d(t,e){return t&&t.equals?t.equals(e):t===e}function E(t){return null===t?"null":t}function p(t){return Array.isArray(t)?"["+t.map(E).join(", ")+"]":"null"}class R{constructor(t,e){this.buckets=new Array(16),this.threshold=Math.floor(12),this.itemCount=0,this.hashFunction=t||T,this.equalsFunction=e||d}get(t){if(null==t)return t;const e=this._getBucket(t);if(!e)return null;for(const s of e)if(this.equalsFunction(s,t))return s;return null}add(t){return this.getOrAdd(t)===t}getOrAdd(t){this._expand();const e=this._getSlot(t);let s=this.buckets[e];if(!s)return s=[t],this.buckets[e]=s,this.itemCount++,t;for(const i of s)if(this.equalsFunction(i,t))return i;return s.push(t),this.itemCount++,t}has(t){return null!=this.get(t)}values(){return this.buckets.filter((t=>null!=t)).flat(1)}toString(){return p(this.values())}get length(){return this.itemCount}_getSlot(t){return this.hashFunction(t)&this.buckets.length-1}_getBucket(t){return this.buckets[this._getSlot(t)]}_expand(){if(this.itemCount<=this.threshold)return;const t=this.buckets,e=2*this.buckets.length;this.buckets=new Array(e),this.threshold=Math.floor(.75*e);for(const s of t)if(s)for(const t of s){const e=this._getSlot(t);let s=this.buckets[e];s||(s=[],this.buckets[e]=s),s.push(t)}}}class C{hashCode(){const t=new u;return this.updateHashCode(t),t.finish()}evaluate(t,e){}evalPrecedence(t,e){return this}static andContext(t,e){if(null===t||t===C.NONE)return e;if(null===e||e===C.NONE)return t;const s=new A(t,e);return 1===s.opnds.length?s.opnds[0]:s}static orContext(t,e){if(null===t)return e;if(null===e)return t;if(t===C.NONE||e===C.NONE)return C.NONE;const s=new x(t,e);return 1===s.opnds.length?s.opnds[0]:s}}class A extends C{constructor(t,e){super();const s=new R;t instanceof A?t.opnds.map((function(t){s.add(t)})):s.add(t),e instanceof A?e.opnds.map((function(t){s.add(t)})):s.add(e);const i=O(s);if(i.length>0){let t=null;i.map((function(e){(null===t||e.precedencet.toString()));return(t.length>3?t.slice(3):t).join("&&")}}class x extends C{constructor(t,e){super();const s=new R;t instanceof x?t.opnds.map((function(t){s.add(t)})):s.add(t),e instanceof x?e.opnds.map((function(t){s.add(t)})):s.add(e);const i=O(s);if(i.length>0){const t=i.sort((function(t,e){return t.compareTo(e)})),e=t[t.length-1];s.add(e)}this.opnds=Array.from(s.values())}equals(t){return this===t||t instanceof x&&c(this.opnds,t.opnds)}updateHashCode(t){t.update(this.opnds,"OR")}evaluate(t,e){for(let s=0;st.toString()));return(t.length>3?t.slice(3):t).join("||")}}function O(t){const e=[];return t.values().map((function(t){t instanceof C.PrecedencePredicate&&e.push(t)})),e}function _(t,e){if(null===t){const t={state:null,alt:null,context:null,semanticContext:null};return e&&(t.reachesIntoOuterContext=0),t}{const s={};return s.state=t.state||null,s.alt=void 0===t.alt?null:t.alt,s.context=t.context||null,s.semanticContext=t.semanticContext||null,e&&(s.reachesIntoOuterContext=t.reachesIntoOuterContext||0,s.precedenceFilterSuppressed=t.precedenceFilterSuppressed||!1),s}}class g{constructor(t,e){this.checkContext(t,e),t=_(t),e=_(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.semanticContext=null!==t.semanticContext?t.semanticContext:null!==e.semanticContext?e.semanticContext:C.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,this.precedenceFilterSuppressed=e.precedenceFilterSuppressed}checkContext(t,e){null!==t.context&&void 0!==t.context||null!==e&&null!==e.context&&void 0!==e.context||(this.context=null)}hashCode(){const t=new u;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t||t instanceof g&&this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(null===this.context?null===t.context:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed}hashCodeForConfigSet(){const t=new u;return t.update(this.state.stateNumber,this.alt,this.semanticContext),t.finish()}equalsForConfigSet(t){return this===t||t instanceof g&&this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext)}toString(){return"("+this.state+","+this.alt+(null!==this.context?",["+this.context.toString()+"]":"")+(this.semanticContext!==C.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext>0?",up="+this.reachesIntoOuterContext:"")+")"}}class S{constructor(t,e){this.start=t,this.stop=e}clone(){return new S(this.start,this.stop)}contains(t){return t>=this.start&&tthis.addInterval(t)),this),this}reduce(t){if(t=s.stop?(this.intervals.splice(t+1,1),this.reduce(t)):e.stop>=s.start&&(this.intervals[t]=new S(e.start,s.stop),this.intervals.splice(t+1,1))}}complement(t,e){const s=new L;return s.addInterval(new S(t,e+1)),null!==this.intervals&&this.intervals.forEach((t=>s.removeRange(t))),s}contains(t){if(null===this.intervals)return!1;for(let e=0;es.start&&t.stop=s.stop?(this.intervals.splice(e,1),e-=1):t.start"):t.push("'"+String.fromCharCode(s.start)+"'"):t.push("'"+String.fromCharCode(s.start)+"'..'"+String.fromCharCode(s.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}toIndexString(){const t=[];for(let e=0;e"):t.push(s.start.toString()):t.push(s.start.toString()+".."+(s.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}toTokenString(t,e){const s=[];for(let i=0;i1?"{"+s.join(", ")+"}":s[0]}elementName(t,e,s){return s===h.EOF?"":s===h.EPSILON?"":t[s]||e[s]}get length(){return this.intervals.map((t=>t.length)).reduce(((t,e)=>t+e))}}class f{constructor(){this.atn=null,this.stateNumber=f.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(t){return t instanceof f&&this.stateNumber===t.stateNumber}isNonGreedyExitState(){return!1}addTransition(t,e){void 0===e&&(e=-1),0===this.transitions.length?this.epsilonOnlyTransitions=t.isEpsilon:this.epsilonOnlyTransitions!==t.isEpsilon&&(this.epsilonOnlyTransitions=!1),-1===e?this.transitions.push(t):this.transitions.splice(e,1,t)}}f.INVALID_TYPE=0,f.BASIC=1,f.RULE_START=2,f.BLOCK_START=3,f.PLUS_BLOCK_START=4,f.STAR_BLOCK_START=5,f.TOKEN_START=6,f.RULE_STOP=7,f.BLOCK_END=8,f.STAR_LOOP_BACK=9,f.STAR_LOOP_ENTRY=10,f.PLUS_LOOP_BACK=11,f.LOOP_END=12,f.serializationNames=["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"],f.INVALID_STATE_NUMBER=-1;class I extends f{constructor(){return super(),this.stateType=f.RULE_STOP,this}}class N{constructor(t){if(null==t)throw"target cannot be null.";this.target=t,this.isEpsilon=!1,this.label=null}}N.EPSILON=1,N.RANGE=2,N.RULE=3,N.PREDICATE=4,N.ATOM=5,N.ACTION=6,N.SET=7,N.NOT_SET=8,N.WILDCARD=9,N.PRECEDENCE=10,N.serializationNames=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"],N.serializationTypes={EpsilonTransition:N.EPSILON,RangeTransition:N.RANGE,RuleTransition:N.RULE,PredicateTransition:N.PREDICATE,AtomTransition:N.ATOM,ActionTransition:N.ACTION,SetTransition:N.SET,NotSetTransition:N.NOT_SET,WildcardTransition:N.WILDCARD,PrecedencePredicateTransition:N.PRECEDENCE};class m extends N{constructor(t,e,s,i){super(t),this.ruleIndex=e,this.precedence=s,this.followState=i,this.serializationType=N.RULE,this.isEpsilon=!0}matches(t,e,s){return!1}}class y extends N{constructor(t,e){super(t),this.serializationType=N.SET,null!=e?this.label=e:(this.label=new L,this.label.addOne(h.INVALID_TYPE))}matches(t,e,s){return this.label.contains(t)}toString(){return this.label.toString()}}class v extends y{constructor(t,e){super(t,e),this.serializationType=N.NOT_SET}matches(t,e,s){return t>=e&&t<=s&&!super.matches(t,e,s)}toString(){return"~"+super.toString()}}class D extends N{constructor(t){super(t),this.serializationType=N.WILDCARD}matches(t,e,s){return t>=e&&t<=s}toString(){return"."}}class k extends N{constructor(t){super(t)}}class P{}class U extends P{}class M extends U{}class b extends M{get ruleContext(){throw new Error("missing interface implementation")}}class w extends M{}class H extends w{}const B={toStringTree:function(t,e,s){e=e||null,null!==(s=s||null)&&(e=s.ruleNames);let i=B.getNodeText(t,e);i=i.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r");const r=t.getChildCount();if(0===r)return i;let n="("+i+" ";r>0&&(i=B.toStringTree(t.getChild(0),e),n=n.concat(i));for(let a=1;a=0&&e0&&(t+=", "),this.returnStates[e]!==G.EMPTY_RETURN_STATE?(t+=this.returnStates[e],null!==this.parents[e]?t=t+" "+this.parents[e]:t+="null"):t+="$";return t+"]"}}get length(){return this.returnStates.length}}class V extends G{constructor(t,e){let s=0;const i=new u;null!==t?i.update(t,e):i.update(1),s=i.finish(),super(s),this.parentCtx=t,this.returnState=e}getParent(t){return this.parentCtx}getReturnState(t){return this.returnState}equals(t){return this===t||t instanceof V&&this.hashCode()===t.hashCode()&&this.returnState===t.returnState&&(null==this.parentCtx?null==t.parentCtx:this.parentCtx.equals(t.parentCtx))}toString(){const t=null===this.parentCtx?"":this.parentCtx.toString();return 0===t.length?this.returnState===G.EMPTY_RETURN_STATE?"$":""+this.returnState:this.returnState+" "+t}get length(){return 1}static create(t,e){return e===G.EMPTY_RETURN_STATE&&null===t?G.EMPTY:new V(t,e)}}class Y extends V{constructor(){super(null,G.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(t){return null}getReturnState(t){return this.returnState}equals(t){return this===t}toString(){return"$"}}G.EMPTY=new Y;class q{constructor(t,e){this.buckets=new Array(16),this.threshold=Math.floor(12),this.itemCount=0,this.hashFunction=t||T,this.equalsFunction=e||d}set(t,e){this._expand();const s=this._getSlot(t);let i=this.buckets[s];if(!i)return i=[[t,e]],this.buckets[s]=i,this.itemCount++,e;const r=i.find((e=>this.equalsFunction(e[0],t)),this);if(r){const t=r[1];return r[1]=e,t}return i.push([t,e]),this.itemCount++,e}containsKey(t){const e=this._getBucket(t);return!!e&&!!e.find((e=>this.equalsFunction(e[0],t)),this)}get(t){const e=this._getBucket(t);if(!e)return null;const s=e.find((e=>this.equalsFunction(e[0],t)),this);return s?s[1]:null}entries(){return this.buckets.filter((t=>null!=t)).flat(1)}getKeys(){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.itemCount}_getSlot(t){return this.hashFunction(t)&this.buckets.length-1}_getBucket(t){return this.buckets[this._getSlot(t)]}_expand(){if(this.itemCount<=this.threshold)return;const t=this.buckets,e=2*this.buckets.length;this.buckets=new Array(e),this.threshold=Math.floor(.75*e);for(const s of t)if(s)for(const t of s){const e=this._getSlot(t[0]);let s=this.buckets[e];s||(s=[],this.buckets[e]=s),s.push(t)}}}function Q(t,e){if(null==e&&(e=K.EMPTY),null===e.parentCtx||e===K.EMPTY)return G.EMPTY;const s=Q(t,e.parentCtx),i=t.states[e.invokingState].transitions[0];return V.create(s,i.followState.stateNumber)}function X(t,e,s){if(t.isEmpty())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 r=!1,n=[];for(let h=0;he.returnState&&(r[0]=e.returnState,r[1]=t.returnState);const n=new W([s,s],r);return null!==i&&i.set(t,e,n),n}const r=[t.returnState,e.returnState];let n=[t.parentCtx,e.parentCtx];t.returnState>e.returnState&&(r[0]=e.returnState,r[1]=t.returnState,n=[e.parentCtx,t.parentCtx]);const a=new W(n,r);return null!==i&&i.set(t,e,a),a}}(t,e,s,i);if(s){if(t instanceof Y)return t;if(e instanceof Y)return e}return t instanceof V&&(t=new W([t.getParent()],[t.returnState])),e instanceof V&&(e=new W([e.getParent()],[e.returnState])),function(t,e,s,i){if(null!==i){let s=i.get(t,e);if(null!==s)return G.trace_atn_sim&&console.log("mergeArrays a="+t+",b="+e+" -> previous"),s;if(s=i.get(e,t),null!==s)return G.trace_atn_sim&&console.log("mergeArrays a="+t+",b="+e+" -> previous"),s}let r=0,n=0,a=0,h=new Array(t.returnStates.length+e.returnStates.length).fill(0),c=new Array(t.returnStates.length+e.returnStates.length).fill(null);for(;r a"),t):o.equals(e)?(null!==i&&i.set(t,e,e),G.trace_atn_sim&&console.log("mergeArrays a="+t+",b="+e+" -> b"),e):(function(t){const e=new q;for(let s=0;s "+o),o)}(t,e,s,i)}class Z{constructor(){this.data=new Uint32Array(1)}set(t){Z._checkIndex(t),this._resize(t),this.data[t>>>5]|=1<>>5;return!(e>=this.data.length||!(this.data[e]&1<>>5;e>=1;return s+32*t}}return 0}hashCode(){return u.hashStuff(this.values())}equals(t){return t instanceof Z&&c(this.data,t.data)}toString(){return"{"+this.values().join(", ")+"}"}get length(){return this.data.map((t=>Z._bitCount(t))).reduce(((t,e)=>t+e),0)}_resize(t){const e=t+32>>>5;if(e<=this.data.length)return;const s=new Uint32Array(e);s.set(this.data),s.fill(0,this.data.length),this.data=s}static _checkIndex(t){if(t<0)throw new RangeError("index cannot be negative")}static _bitCount(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.atn=t}getDecisionLookahead(t){if(null===t)return null;const e=t.transitions.length,s=[];for(let i=0;i=this.states.length)throw"Invalid state number.";const s=this.states[t];let i=this.nextTokens(s);if(!i.contains(h.EPSILON))return i;const r=new L;for(r.addSet(i),r.removeOne(h.EPSILON);null!==e&&e.invokingState>=0&&i.contains(h.EPSILON);){const t=this.states[e.invokingState].transitions[0];i=this.nextTokens(t.followState),r.addSet(i),r.removeOne(h.EPSILON),e=e.parentCtx}return i.contains(h.EPSILON)&&r.addOne(h.EOF),r}}J.INVALID_ALT_NUMBER=0;class $ extends f{constructor(){super(),this.stateType=f.BASIC}}class tt extends f{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}}class et extends tt{constructor(){return super(),this.endState=null,this}}class st extends f{constructor(){return super(),this.stateType=f.BLOCK_END,this.startState=null,this}}class it extends f{constructor(){return super(),this.stateType=f.LOOP_END,this.loopBackState=null,this}}class rt extends f{constructor(){return super(),this.stateType=f.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}}class nt extends tt{constructor(){return super(),this.stateType=f.TOKEN_START,this}}class at extends tt{constructor(){return super(),this.stateType=f.PLUS_LOOP_BACK,this}}class ht extends f{constructor(){return super(),this.stateType=f.STAR_LOOP_BACK,this}}class ct extends tt{constructor(){return super(),this.stateType=f.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}}class ot extends et{constructor(){return super(),this.stateType=f.PLUS_BLOCK_START,this.loopBackState=null,this}}class lt extends et{constructor(){return super(),this.stateType=f.STAR_BLOCK_START,this}}class ut extends et{constructor(){return super(),this.stateType=f.BLOCK_START,this}}class Tt extends N{constructor(t,e){super(t),this.label_=e,this.label=this.makeLabel(),this.serializationType=N.ATOM}makeLabel(){const t=new L;return t.addOne(this.label_),t}matches(t,e,s){return this.label_===t}toString(){return this.label_}}class dt extends N{constructor(t,e,s){super(t),this.serializationType=N.RANGE,this.start=e,this.stop=s,this.label=this.makeLabel()}makeLabel(){const t=new L;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 Et extends N{constructor(t,e,s,i){super(t),this.serializationType=N.ACTION,this.ruleIndex=e,this.actionIndex=void 0===s?-1:s,this.isCtxDependent=void 0!==i&&i,this.isEpsilon=!0}matches(t,e,s){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}}class pt extends N{constructor(t,e){super(t),this.serializationType=N.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=e}matches(t,e,s){return!1}toString(){return"epsilon"}}class Rt extends C{constructor(t,e,s){super(),this.ruleIndex=void 0===t?-1:t,this.predIndex=void 0===e?-1:e,this.isCtxDependent=void 0!==s&&s}evaluate(t,e){const s=this.isCtxDependent?e:null;return t.sempred(s,this.ruleIndex,this.predIndex)}updateHashCode(t){t.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t||t instanceof Rt&&this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}}C.NONE=new Rt;class Ct extends k{constructor(t,e,s,i){super(t),this.serializationType=N.PREDICATE,this.ruleIndex=e,this.predIndex=s,this.isCtxDependent=i,this.isEpsilon=!0}matches(t,e,s){return!1}getPredicate(){return new Rt(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}}class At extends C{constructor(t){super(),this.precedence=void 0===t?0:t}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(t,e){return t.precpred(e,this.precedence)?C.NONE:null}compareTo(t){return this.precedence-t.precedence}updateHashCode(t){t.update(this.precedence)}equals(t){return this===t||t instanceof At&&this.precedence===t.precedence}toString(){return"{"+this.precedence+">=prec}?"}}C.PrecedencePredicate=At;class xt extends k{constructor(t,e){super(t),this.serializationType=N.PRECEDENCE,this.precedence=e,this.isEpsilon=!0}matches(t,e,s){return!1}getPredicate(){return new At(this.precedence)}toString(){return this.precedence+" >= _p"}}class Ot{constructor(t){void 0===t&&(t=null),this.readOnly=!1,this.verifyATN=null===t||t.verifyATN,this.generateRuleBypassTransitions=null!==t&&t.generateRuleBypassTransitions}}Ot.defaultOptions=new Ot,Ot.defaultOptions.readOnly=!0;class _t{constructor(t){this.actionType=t,this.isPositionDependent=!1}hashCode(){const t=new u;return this.updateHashCode(t),t.finish()}updateHashCode(t){t.update(this.actionType)}equals(t){return this===t}}class gt extends _t{constructor(){super(6)}execute(t){t.skip()}toString(){return"skip"}}gt.INSTANCE=new gt;class St extends _t{constructor(t){super(0),this.channel=t}execute(t){t._channel=this.channel}updateHashCode(t){t.update(this.actionType,this.channel)}equals(t){return this===t||t instanceof St&&this.channel===t.channel}toString(){return"channel("+this.channel+")"}}class Lt extends _t{constructor(t,e){super(1),this.ruleIndex=t,this.actionIndex=e,this.isPositionDependent=!0}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(t){t.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t||t instanceof Lt&&this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex}}class ft extends _t{constructor(){super(3)}execute(t){t.more()}toString(){return"more"}}ft.INSTANCE=new ft;class It extends _t{constructor(t){super(7),this.type=t}execute(t){t.type=this.type}updateHashCode(t){t.update(this.actionType,this.type)}equals(t){return this===t||t instanceof It&&this.type===t.type}toString(){return"type("+this.type+")"}}class Nt extends _t{constructor(t){super(5),this.mode=t}execute(t){t.pushMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t||t instanceof Nt&&this.mode===t.mode}toString(){return"pushMode("+this.mode+")"}}class mt extends _t{constructor(){super(4)}execute(t){t.popMode()}toString(){return"popMode"}}mt.INSTANCE=new mt;class yt extends _t{constructor(t){super(2),this.mode=t}execute(t){t.setMode(this.mode)}updateHashCode(t){t.update(this.actionType,this.mode)}equals(t){return this===t||t instanceof yt&&this.mode===t.mode}toString(){return"mode("+this.mode+")"}}function vt(t,e){const s=[];return s[t-1]=e,s.map((function(t){return e}))}class Dt{constructor(t){null==t&&(t=Ot.defaultOptions),this.deserializationOptions=t,this.stateFactories=null,this.actionFactories=null}deserialize(t){const e=this.reset(t);this.checkVersion(e),e&&this.skipUUID();const s=this.readATN();this.readStates(s,e),this.readRules(s,e),this.readModes(s);const i=[];return this.readSets(s,i,this.readInt.bind(this)),e&&this.readSets(s,i,this.readInt32.bind(this)),this.readEdges(s,i),this.readDecisions(s),this.readLexerActions(s,e),this.markPrecedenceDecisions(s),this.verifyATN(s),this.deserializationOptions.generateRuleBypassTransitions&&1===s.grammarType&&(this.generateRuleBypassTransitions(s),this.verifyATN(s)),s}reset(t){if(3===(t.charCodeAt?t.charCodeAt(0):t[0])){const e=function(t){const 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.pos=0,!0}return this.data=t,this.pos=0,!1}skipUUID(){let t=0;for(;t++<8;)this.readInt()}checkVersion(t){const e=this.readInt();if(!t&&4!==e)throw"Could not deserialize ATN with version "+e+" (expected 4)."}readATN(){const t=this.readInt(),e=this.readInt();return new J(t,e)}readStates(t,e){let s,i,r;const n=[],a=[],h=this.readInt();for(let l=0;l0;)r.addTransition(c.transitions[o-1]),c.transitions=c.transitions.slice(-1);t.ruleToStartState[e].addTransition(new pt(r)),n.addTransition(new pt(h));const l=new $;t.addState(l),l.addTransition(new Tt(n,t.ruleToTokenType[e])),r.addTransition(new pt(l))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e)return null;if(!(t instanceof ct))return null;const s=t.transitions[t.transitions.length-1].target;return s instanceof it&&s.epsilonOnlyTransitions&&s.transitions[0].target instanceof I?t:null}markPrecedenceDecisions(t){for(let e=0;e=0):this.checkCondition(s.transitions.length<=1||s instanceof I)}}checkCondition(t,e){if(!t)throw null==e&&(e="IllegalState"),e}readInt(){return this.data[this.pos++]}readInt32(){return this.readInt()|this.readInt()<<16}edgeFactory(t,e,s,i,r,n,a,c){const o=t.states[i];switch(e){case N.EPSILON:return new pt(o);case N.RANGE:return new dt(o,0!==a?h.EOF:r,n);case N.RULE:return new m(t.states[r],n,a,o);case N.PREDICATE:return new Ct(o,r,n,0!==a);case N.PRECEDENCE:return new xt(o,r);case N.ATOM:return new Tt(o,0!==a?h.EOF:r);case N.ACTION:return new Et(o,r,n,0!==a);case N.SET:return new y(o,c[r]);case N.NOT_SET:return new v(o,c[r]);case N.WILDCARD:return new D(o);default:throw"The specified transition type: "+e+" is not valid."}}stateFactory(t,e){if(null===this.stateFactories){const t=[];t[f.INVALID_TYPE]=null,t[f.BASIC]=()=>new $,t[f.RULE_START]=()=>new rt,t[f.BLOCK_START]=()=>new ut,t[f.PLUS_BLOCK_START]=()=>new ot,t[f.STAR_BLOCK_START]=()=>new lt,t[f.TOKEN_START]=()=>new nt,t[f.RULE_STOP]=()=>new I,t[f.BLOCK_END]=()=>new st,t[f.STAR_LOOP_BACK]=()=>new ht,t[f.STAR_LOOP_ENTRY]=()=>new ct,t[f.PLUS_LOOP_BACK]=()=>new at,t[f.LOOP_END]=()=>new it,this.stateFactories=t}if(t>this.stateFactories.length||null===this.stateFactories[t])throw"The specified state type "+t+" is not valid.";{const s=this.stateFactories[t]();if(null!==s)return s.ruleIndex=e,s}}lexerActionFactory(t,e,s){if(null===this.actionFactories){const t=[];t[0]=(t,e)=>new St(t),t[1]=(t,e)=>new Lt(t,e),t[2]=(t,e)=>new yt(t),t[3]=(t,e)=>ft.INSTANCE,t[4]=(t,e)=>mt.INSTANCE,t[5]=(t,e)=>new Nt(t),t[6]=(t,e)=>gt.INSTANCE,t[7]=(t,e)=>new It(t),this.actionFactories=t}if(t>this.actionFactories.length||null===this.actionFactories[t])throw"The specified lexer action type "+t+" is not valid.";return this.actionFactories[t](e,s)}}class kt{syntaxError(t,e,s,i,r,n){}reportAmbiguity(t,e,s,i,r,n,a){}reportAttemptingFullContext(t,e,s,i,r,n){}reportContextSensitivity(t,e,s,i,r,n){}}class Pt extends kt{constructor(){super()}syntaxError(t,e,s,i,r,n){console.error("line "+s+":"+i+" "+r)}}Pt.INSTANCE=new Pt;class Ut extends kt{constructor(t){if(super(),null===t)throw"delegates";return this.delegates=t,this}syntaxError(t,e,s,i,r,n){this.delegates.map((a=>a.syntaxError(t,e,s,i,r,n)))}reportAmbiguity(t,e,s,i,r,n,a){this.delegates.map((h=>h.reportAmbiguity(t,e,s,i,r,n,a)))}reportAttemptingFullContext(t,e,s,i,r,n){this.delegates.map((a=>a.reportAttemptingFullContext(t,e,s,i,r,n)))}reportContextSensitivity(t,e,s,i,r,n){this.delegates.map((a=>a.reportContextSensitivity(t,e,s,i,r,n)))}}class Mt{constructor(){this._listeners=[Pt.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(t){const e="4.13.2";e!==t&&console.log("ANTLR runtime and generated code versions disagree: "+e+"!="+t)}addErrorListener(t){this._listeners.push(t)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){const t=this.getLiteralNames(),e=this.getSymbolicNames(),s=t.length>e.length?t.length:e.length;this.tokenNames=[];for(let i=0;i";let e=t.text;return null===e&&(e=t.type===h.EOF?"":"<"+t.type+">"),e=e.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"),"'"+e+"'"}getErrorListenerDispatch(){return console.warn("Calling deprecated method in Recognizer class: getErrorListenerDispatch()"),this.getErrorListener()}getErrorListener(){return new Ut(this._listeners)}sempred(t,e,s){return!0}precpred(t,e){return!0}get atn(){return this._interp.atn}get state(){return this._stateNumber}set state(t){this._stateNumber=t}}Mt.tokenTypeMapCache={},Mt.ruleIndexMapCache={};class bt extends h{constructor(t,e,s,i,r){super(),this.source=void 0!==t?t:bt.EMPTY_SOURCE,this.type=void 0!==e?e:null,this.channel=void 0!==s?s:h.DEFAULT_CHANNEL,this.start=void 0!==i?i:-1,this.stop=void 0!==r?r:-1,this.tokenIndex=-1,null!==this.source[0]?(this.line=t[0].line,this.column=t[0].column):this.column=-1}clone(){const t=new bt(this.source,this.type,this.channel,this.start,this.stop);return t.tokenIndex=this.tokenIndex,t.line=this.line,t.column=this.column,t.text=this.text,t}cloneWithType(t){const e=new bt(this.source,t,this.channel,this.start,this.stop);return e.tokenIndex=this.tokenIndex,e.line=this.line,e.column=this.column,t===h.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"):"","[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+t+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.column+"]"}get text(){if(null!==this._text)return this._text;const t=this.getInputStream();if(null===t)return null;const e=t.size;return this.start"}set text(t){this._text=t}}bt.EMPTY_SOURCE=[null,null];class wt{}class Ht extends wt{constructor(t){super(),this.copyText=void 0!==t&&t}create(t,e,s,i,r,n,a,h){const c=new bt(t,e,i,r,n);return c.line=a,c.column=h,null!==s?c.text=s:this.copyText&&null!==t[1]&&(c.text=t[1].getText(r,n)),c}createThin(t,e){const s=new bt(null,t);return s.text=e,s}}Ht.DEFAULT=new Ht;class Bt extends Error{constructor(t){super(t.message),Error.captureStackTrace&&Error.captureStackTrace(this,Bt),this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,null!==this.recognizer&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return null!==this.recognizer?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}}class Ft extends Bt{constructor(t,e,s,i){super({message:"",recognizer:t,input:e,ctx:null}),this.startIndex=s,this.deadEndConfigs=i}toString(){let t="";return this.startIndex>=0&&this.startIndex":"\n"===t?"\\n":"\t"===t?"\\t":"\r"===t?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){this._input.LA(1)!==h.EOF&&(t instanceof Ft?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(t){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=t,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(t){this._type=t}get line(){return this._interp.line}set line(t){this._interp.line=t}get column(){return this._interp.column}set column(t){this._interp.column=t}get text(){return null!==this._text?this._text:this._interp.getText(this._input)}set text(t){this._text=t}}function Gt(t){return t.hashCodeForConfigSet()}function Wt(t,e){return t===e||null!==t&&null!==e&&t.equalsForConfigSet(e)}Kt.DEFAULT_MODE=0,Kt.MORE=-2,Kt.SKIP=-3,Kt.DEFAULT_TOKEN_CHANNEL=h.DEFAULT_CHANNEL,Kt.HIDDEN=h.HIDDEN_CHANNEL,Kt.MIN_CHAR_VALUE=0,Kt.MAX_CHAR_VALUE=1114111;class Vt{constructor(t){this.configLookup=new R(Gt,Wt),this.fullCtx=void 0===t||t,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(t,e){if(void 0===e&&(e=null),this.readOnly)throw"This set is readonly";t.semanticContext!==C.NONE&&(this.hasSemanticContext=!0),t.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);const s=this.configLookup.getOrAdd(t);if(s===t)return this.cachedHashCode=-1,this.configs.push(t),!0;const i=!this.fullCtx,r=z(s.context,t.context,i,e);return s.reachesIntoOuterContext=Math.max(s.reachesIntoOuterContext,t.reachesIntoOuterContext),t.precedenceFilterSuppressed&&(s.precedenceFilterSuppressed=!0),s.context=r,!0}getStates(){const t=new R;for(let e=0;e$t.MAX_DFA_EDGE)return null;let s=t.edges[e-$t.MIN_DFA_EDGE];return void 0===s&&(s=null),$t.debug&&null!==s&&console.log("reuse state "+t.stateNumber+" edge to "+s.stateNumber),s}computeTargetState(t,e,s){const i=new Qt;return this.getReachableConfigSet(t,e.configs,i,s),0===i.items.length?(i.hasSemanticContext||this.addDFAEdge(e,s,qt.ERROR),qt.ERROR):this.addDFAEdge(e,s,null,i)}failOrAccept(t,e,s,i){if(null!==this.prevAccept.dfaState){const s=t.dfaState.lexerActionExecutor;return this.accept(e,s,this.startIndex,t.index,t.line,t.column),t.dfaState.prediction}if(i===h.EOF&&e.index===this.startIndex)return h.EOF;throw new Ft(this.recog,e,this.startIndex,s)}getReachableConfigSet(t,e,s,i){let r=J.INVALID_ALT_NUMBER;for(let n=0;n$t.MAX_DFA_EDGE||($t.debug&&console.log("EDGE "+t+" -> "+s+" upon "+e),null===t.edges&&(t.edges=[]),t.edges[e-$t.MIN_DFA_EDGE]=s),s}addDFAState(t){const e=new Yt(null,t);let s=null;for(let a=0;at.startsWith("k-"))).map((t=>this.data[t]),this)}}const se={SLL:0,LL:1,LL_EXACT_AMBIG_DETECTION:2,hasSLLConflictTerminatingPrediction:function(t,e){if(se.allConfigsInRuleStopStates(e))return!0;if(t===se.SLL&&e.hasSemanticContext){const t=new Vt;for(let s=0;s1)return!0;return!1},allSubsetsEqual:function(t){let e=null;for(let s=0;s "+n),0===n.items.length?null:n}removeAllConfigsNotInRuleStopState(t,e){if(ie.allConfigsInRuleStopStates(t))return t;const s=new Vt(t.fullCtx);for(let i=0;i0&&(n=this.getAltThatFinishedDecisionEntryRule(r),n!==J.INVALID_ALT_NUMBER)?n:J.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){const e=[];for(let s=0;s0||i.state instanceof I&&i.context.hasEmptyPath())&&e.indexOf(i.alt)<0&&e.push(i.alt)}return 0===e.length?J.INVALID_ALT_NUMBER:Math.min.apply(null,e)}splitAccordingToSemanticValidity(t,e){const s=new Vt(t.fullCtx),i=new Vt(t.fullCtx);for(let r=0;r=0&&(i+=1)}this.closureCheckingStopState(u,e,s,l,r,i,a)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){const e=t.state;if(e.stateType!==f.STAR_LOOP_ENTRY)return!1;if(e.stateType!==f.STAR_LOOP_ENTRY||!e.isPrecedenceDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;const s=t.context.length;for(let n=0;n=0?this.parser.ruleNames[t]:""}getEpsilonTarget(t,e,s,i,r,n){switch(e.serializationType){case N.RULE:return this.ruleTransition(t,e);case N.PRECEDENCE:return this.precedenceTransition(t,e,s,i,r);case N.PREDICATE:return this.predTransition(t,e,s,i,r);case N.ACTION:return this.actionTransition(t,e);case N.EPSILON:return new g({state:e.target},t);case N.ATOM:case N.RANGE:case N.SET:return n&&e.matches(h.EOF,0,1)?new g({state:e.target},t):null;default:return null}}actionTransition(t,e){if(this.debug){const t=-1===e.actionIndex?65535:e.actionIndex;console.log("ACTION edge "+e.ruleIndex+":"+t)}return new g({state:e.target},t)}precedenceTransition(t,e,s,i,r){this.debug&&(console.log("PRED (collectPredicates="+s+") "+e.precedence+">=_p, ctx dependent=true"),null!==this.parser&&console.log("context surrounding pred is "+p(this.parser.getRuleInvocationStack())));let n=null;if(s&&i)if(r){const s=this._input.index;this._input.seek(this._startIndex);const i=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(s),i&&(n=new g({state:e.target},t))}else{const s=C.andContext(t.semanticContext,e.getPredicate());n=new g({state:e.target,semanticContext:s},t)}else n=new g({state:e.target},t);return this.debug&&console.log("config from pred transition="+n),n}predTransition(t,e,s,i,r){this.debug&&(console.log("PRED (collectPredicates="+s+") "+e.ruleIndex+":"+e.predIndex+", ctx dependent="+e.isCtxDependent),null!==this.parser&&console.log("context surrounding pred is "+p(this.parser.getRuleInvocationStack())));let n=null;if(s&&(e.isCtxDependent&&i||!e.isCtxDependent))if(r){const s=this._input.index;this._input.seek(this._startIndex);const i=e.getPredicate().evaluate(this.parser,this._outerContext);this._input.seek(s),i&&(n=new g({state:e.target},t))}else{const s=C.andContext(t.semanticContext,e.getPredicate());n=new g({state:e.target,semanticContext:s},t)}else n=new g({state:e.target},t);return this.debug&&console.log("config from pred transition="+n),n}ruleTransition(t,e){this.debug&&console.log("CALL rule "+this.getRuleName(e.target.ruleIndex)+", ctx="+t.context);const s=e.followState,i=V.create(t.context,s.stateNumber);return new g({state:e.target,context:i},t)}getConflictingAlts(t){const e=ie.getConflictingAltSubsets(t);return ie.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e=null;return t.uniqueAlt!==J.INVALID_ALT_NUMBER?(e=new Z,e.set(t.uniqueAlt)):e=t.conflictingAlts,e}getTokenName(t){if(t===h.EOF)return"EOF";if(null!==this.parser&&null!==this.parser.literalNames){if(!(t>=this.parser.literalNames.length&&t>=this.parser.symbolicNames.length))return(this.parser.literalNames[t]||this.parser.symbolicNames[t])+"<"+t+">";console.log(t+" ttype out of range: "+this.parser.literalNames),console.log(""+this.parser.getInputStream().getTokens())}return""+t}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");const e=t.getDeadEndConfigs();for(let s=0;s0){const e=t.state.transitions[0];e instanceof Tt?i="Atom "+this.getTokenName(e.label):e instanceof y&&(i=(e instanceof v?"~":"")+"Set "+e.set)}console.error(t.toString(this.parser,!0)+":"+i)}}noViableAlt(t,e,s,i){return new re(this.parser,t,t.get(i),t.LT(1),s,e)}getUniqueAlt(t){let e=J.INVALID_ALT_NUMBER;for(let s=0;s "+i+" upon "+this.getTokenName(s)),null===i)return null;if(i=this.addDFAState(t,i),null===e||s<-1||s>this.atn.maxTokenType)return i;if(null===e.edges&&(e.edges=[]),e.edges[s+1]=i,this.debug){const e=null===this.parser?null:this.parser.literalNames,s=null===this.parser?null:this.parser.symbolicNames;console.log("DFA=\n"+t.toString(e,s))}return i}addDFAState(t,e){if(e===qt.ERROR)return e;const s=t.states.get(e);return null!==s?(this.trace_atn_sim&&console.log("addDFAState "+e+" exists"),s):(e.stateNumber=t.states.length,e.configs.readOnly||(e.configs.optimizeConfigs(this),e.configs.setReadonly(!0)),this.trace_atn_sim&&console.log("addDFAState new "+e),t.states.add(e),this.debug&&console.log("adding new DFA state: "+e),e)}reportAttemptingFullContext(t,e,s,i,r){if(this.debug||this.retry_debug){const e=new S(i,r+1);console.log("reportAttemptingFullContext decision="+t.decision+":"+s+", input="+this.parser.getTokenStream().getText(e))}null!==this.parser&&this.parser.getErrorListener().reportAttemptingFullContext(this.parser,t,i,r,e,s)}reportContextSensitivity(t,e,s,i,r){if(this.debug||this.retry_debug){const e=new S(i,r+1);console.log("reportContextSensitivity decision="+t.decision+":"+s+", input="+this.parser.getTokenStream().getText(e))}null!==this.parser&&this.parser.getErrorListener().reportContextSensitivity(this.parser,t,i,r,e,s)}reportAmbiguity(t,e,s,i,r,n,a){if(this.debug||this.retry_debug){const t=new S(s,i+1);console.log("reportAmbiguity "+n+":"+a+", input="+this.parser.getTokenStream().getText(t))}null!==this.parser&&this.parser.getErrorListener().reportAmbiguity(this.parser,t,s,i,r,n,a)}}class he{constructor(){this.cache=new q}add(t){if(t===G.EMPTY)return G.EMPTY;const 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}}const ce={ATN:J,ATNDeserializer:Dt,LexerATNSimulator:$t,ParserATNSimulator:ae,PredictionMode:ie,PredictionContextCache:he};class oe{constructor(t,e,s){this.dfa=t,this.literalNames=e||[],this.symbolicNames=s||[]}toString(){if(null===this.dfa.s0)return null;let t="";const e=this.dfa.sortedStates();for(let s=0;s"),t=t.concat(this.getStateString(e)),t=t.concat("\n"))}}}return 0===t.length?null:t}getEdgeLabel(t){return 0===t?"EOF":null!==this.literalNames||null!==this.symbolicNames?this.literalNames[t-1]||this.symbolicNames[t-1]:String.fromCharCode(t-1)}getStateString(t){const e=(t.isAcceptState?":":"")+"s"+t.stateNumber+(t.requiresFullContext?"^":"");return t.isAcceptState?null!==t.predicates?e+"=>"+p(t.predicates):e+"=>"+t.prediction.toString():e}}class le extends oe{constructor(t){super(t,null)}getEdgeLabel(t){return"'"+String.fromCharCode(t)+"'"}}class ue{constructor(t,e){if(void 0===e&&(e=0),this.atnStartState=t,this.decision=e,this._states=new R,this.s0=null,this.precedenceDfa=!1,t instanceof ct&&t.isPrecedenceDecision){this.precedenceDfa=!0;const t=new Yt(null,new Vt);t.edges=[],t.isAcceptState=!1,t.requiresFullContext=!1,this.s0=t}}getPrecedenceStartState(t){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.s0.edges.length?null:this.s0.edges[t]||null}setPrecedenceStartState(t,e){if(!this.precedenceDfa)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.s0.edges[t]=e)}setPrecedenceDfa(t){if(this.precedenceDfa!==t){if(this._states=new R,t){const t=new Yt(null,new Vt);t.edges=[],t.isAcceptState=!1,t.requiresFullContext=!1,this.s0=t}else this.s0=null;this.precedenceDfa=t}}sortedStates(){return this._states.values().sort((function(t,e){return t.stateNumber-e.stateNumber}))}toString(t,e){return t=t||null,e=e||null,null===this.s0?"":new oe(this,t,e).toString()}toLexerString(){return null===this.s0?"":new le(this).toString()}get states(){return this._states}}const Te={DFA:ue,DFASerializer:oe,LexerDFASerializer:le,PredPrediction:te},de={PredictionContext:G},Ee={Interval:S,IntervalSet:L};class pe{visitTerminal(t){}visitErrorNode(t){}enterEveryRule(t){}exitEveryRule(t){}}class Re{visit(t){return Array.isArray(t)?t.map((function(t){return t.accept(this)}),this):t.accept(this)}visitChildren(t){return t.children?this.visit(t.children):null}visitTerminal(t){}visitErrorNode(t){}}class Ce{walk(t,e){if(e instanceof H||void 0!==e.isErrorNode&&e.isErrorNode())t.visitErrorNode(e);else if(e instanceof w)t.visitTerminal(e);else{this.enterRule(t,e);for(let s=0;s=r.length)return""+s;const n=r[i]||null;return null===n||0===n.length?""+s:`${s} (${n})`}getConflictingAlts(t,e){if(null!==t)return t;const s=new Z;for(let i=0;i=0&&t.consume(),this.lastErrorIndex=t._input.index,null===this.lastErrorStates&&(this.lastErrorStates=[]),this.lastErrorStates.push(t.state);const s=this.getErrorRecoverySet(t);this.consumeUntil(t,s)}sync(t){if(this.inErrorRecoveryMode(t))return;const e=t._interp.atn.states[t.state],s=t.getTokenStream().LA(1),i=t.atn.nextTokens(e);if(i.contains(s))return this.nextTokensContext=null,void(this.nextTokenState=f.INVALID_STATE_NUMBER);if(i.contains(h.EPSILON))null===this.nextTokensContext&&(this.nextTokensContext=t._ctx,this.nextTokensState=t._stateNumber);else switch(e.stateType){case f.BLOCK_START:case f.STAR_BLOCK_START:case f.PLUS_BLOCK_START:case f.STAR_LOOP_ENTRY:if(null!==this.singleTokenDeletion(t))return;throw new xe(t);case f.PLUS_LOOP_BACK:case f.STAR_LOOP_BACK:{this.reportUnwantedToken(t);const e=new L;e.addSet(t.getExpectedTokens());const s=e.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,s)}}}reportNoViableAlternative(t,e){const s=t.getTokenStream();let i;i=null!==s?e.startToken.type===h.EOF?"":s.getText(new S(e.startToken.tokenIndex,e.offendingToken.tokenIndex)):"";const r="no viable alternative at input "+this.escapeWSAndQuote(i);t.notifyErrorListeners(r,e.offendingToken,e)}reportInputMismatch(t,e){const s="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e.offendingToken,e)}reportFailedPredicate(t,e){const s="rule "+t.ruleNames[t._ctx.ruleIndex]+" "+e.message;t.notifyErrorListeners(s,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);const e=t.getCurrentToken(),s="extraneous input "+this.getTokenErrorDisplay(e)+" expecting "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);const e=t.getCurrentToken(),s="missing "+this.getExpectedTokens(t).toString(t.literalNames,t.symbolicNames)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(s,e,null)}recoverInline(t){const e=this.singleTokenDeletion(t);if(null!==e)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new xe(t)}singleTokenInsertion(t){const e=t.getTokenStream().LA(1),s=t._interp.atn,i=s.states[t.state].transitions[0].target;return!!s.nextTokens(i,t._ctx).contains(e)&&(this.reportMissingToken(t),!0)}singleTokenDeletion(t){const e=t.getTokenStream().LA(2);if(this.getExpectedTokens(t).contains(e)){this.reportUnwantedToken(t),t.consume();const e=t.getCurrentToken();return this.reportMatch(t),e}return null}getMissingSymbol(t){const e=t.getCurrentToken(),s=this.getExpectedTokens(t).first();let i;i=s===h.EOF?"":"";let r=e;const n=t.getTokenStream().LT(-1);return r.type===h.EOF&&null!==n&&(r=n),t.getTokenFactory().create(r.source,s,i,h.DEFAULT_CHANNEL,-1,-1,r.line,r.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(null===t)return"";let e=t.text;return null===e&&(e=t.type===h.EOF?"":"<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return"'"+(t=(t=(t=t.replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t"))+"'"}getErrorRecoverySet(t){const e=t._interp.atn;let s=t._ctx;const i=new L;for(;null!==s&&s.invokingState>=0;){const t=e.states[s.invokingState].transitions[0],r=e.nextTokens(t.followState);i.addSet(r),s=s.parentCtx}return i.removeOne(h.EPSILON),i}consumeUntil(t,e){let s=t.getTokenStream().LA(1);for(;s!==h.EOF&&!e.contains(s);)t.consume(),s=t.getTokenStream().LA(1)}}class Ie extends fe{constructor(){super()}recover(t,e){let s=t._ctx;for(;null!==s;)s.exception=e,s=s.parentCtx;throw new Se(e)}recoverInline(t){this.recover(t,new xe(t))}sync(t){}}const Ne={RecognitionException:Bt,NoViableAltException:re,LexerNoViableAltException:Ft,InputMismatchException:xe,FailedPredicateException:Oe,DiagnosticErrorListener:ge,BailErrorStrategy:Ie,DefaultErrorStrategy:fe,ErrorListener:kt};class me{constructor(t,e){if(this.name="",this.strdata=t,this.decodeToUnicodeCodePoints=e||!1,this._index=0,this.data=[],this.decodeToUnicodeCodePoints)for(let s=0;s=this._size)throw"cannot consume EOF";this._index+=1}LA(t){if(0===t)return 0;t<0&&(t+=1);const e=this._index+t-1;return e<0||e>=this._size?h.EOF:this.data[e]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){t<=this._index?this._index=t:this._index=Math.min(t,this._size)}getText(t,e){if(e>=this._size&&(e=this._size-1),t>=this._size)return"";if(this.decodeToUnicodeCodePoints){let s="";for(let i=t;i<=e;i++)s+=String.fromCodePoint(this.data[i]);return s}return this.strdata.slice(t,e+1)}toString(){return this.strdata}get index(){return this._index}get size(){return this._size}}class ye extends me{constructor(t,e){super(t,e)}}var ve=n(763);const De="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;class ke extends ye{static fromPath(t,e,s){if(!De)throw new Error("FileStream is only available when running in Node!");ve.readFile(t,e,(function(t,e){let i=null;null!==e&&(i=new me(e,!0)),s(t,i)}))}constructor(t,e,s){if(!De)throw new Error("FileStream is only available when running in Node!");super(ve.readFileSync(t,e||"utf-8"),s),this.fileName=t}}const Pe={fromString:function(t){return new me(t,!0)},fromBlob:function(t,e,s,i){const r=new window.FileReader;r.onload=function(t){const e=new me(t.target.result,!0);s(e)},r.onerror=i,r.readAsText(t,e)},fromBuffer:function(t,e){return new me(t.toString(e),!0)},fromPath:function(t,e,s){ke.fromPath(t,e,s)},fromPathSync:function(t,e){return new ke(t,e)}},Ue={arrayToString:p,stringToCharArray:function(t){let e=new Uint16Array(t.length);for(let s=0;s=0&&(this.fetchedEOF?this.index0)||this.fetch(e)>=e}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e=this.tokens.length&&(e=this.tokens.length-1);for(let r=t;r=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){-1===this.index&&this.setup()}setup(){this.sync(0),this.index=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.index=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let s=this.tokens[t];for(;s.channel!==e;){if(s.type===h.EOF)return-1;t+=1,this.sync(t),s=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(void 0===e&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw t+" not in 0.."+this.tokens.length-1;const s=this.nextTokenOnChannel(t+1,Kt.DEFAULT_TOKEN_CHANNEL),i=t+1,r=-1===s?this.tokens.length-1:s;return this.filterForChannel(i,r,e)}getHiddenTokensToLeft(t,e){if(void 0===e&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw t+" not in 0.."+this.tokens.length-1;const s=this.previousTokenOnChannel(t-1,Kt.DEFAULT_TOKEN_CHANNEL);if(s===t-1)return null;const i=s+1,r=t-1;return this.filterForChannel(i,r,e)}filterForChannel(t,e,s){const i=[];for(let r=t;r=this.tokens.length&&(s=this.tokens.length-1);let i="";for(let r=e;r=0&&this._parseListeners.splice(e,1),0===this._parseListeners.length&&(this._parseListeners=null)}}removeParseListeners(){this._parseListeners=null}triggerEnterRuleEvent(){if(null!==this._parseListeners){const t=this._ctx;this._parseListeners.forEach((function(e){e.enterEveryRule(t),t.enterRule(e)}))}}triggerExitRuleEvent(){if(null!==this._parseListeners){const t=this._ctx;this._parseListeners.slice(0).reverse().forEach((function(e){t.exitRule(e),e.exitEveryRule(t)}))}}getTokenFactory(){return this._input.tokenSource._factory}setTokenFactory(t){this._input.tokenSource._factory=t}getATNWithBypassAlts(){const t=this.getSerializedATN();if(null===t)throw"The current parser does not support an ATN with bypass alternatives.";let e=this.bypassAltsAtnCache[t];if(null===e){const s=new Ot;s.generateRuleBypassTransitions=!0,e=new Dt(s).deserialize(t),this.bypassAltsAtnCache[t]=e}return e}getInputStream(){return this.getTokenStream()}setInputStream(t){this.setTokenStream(t)}getTokenStream(){return this._input}setTokenStream(t){this._input=null,this.reset(),this._input=t}get syntaxErrorsCount(){return this._syntaxErrors}getCurrentToken(){return this._input.LT(1)}notifyErrorListeners(t,e,s){s=s||null,null===(e=e||null)&&(e=this.getCurrentToken()),this._syntaxErrors+=1;const i=e.line,r=e.column;this.getErrorListener().syntaxError(this,e,i,r,t,s)}consume(){const t=this.getCurrentToken();t.type!==h.EOF&&this.getInputStream().consume();const e=null!==this._parseListeners&&this._parseListeners.length>0;if(this.buildParseTrees||e){let s;s=this._errHandler.inErrorRecoveryMode(this)?this._ctx.addErrorNode(t):this._ctx.addTokenNode(t),s.invokingState=this.state,e&&this._parseListeners.forEach((function(t){s instanceof H||void 0!==s.isErrorNode&&s.isErrorNode()?t.visitErrorNode(s):s instanceof w&&t.visitTerminal(s)}))}return t}addContextToParseTree(){null!==this._ctx.parentCtx&&this._ctx.parentCtx.addChild(this._ctx)}enterRule(t,e,s){this.state=e,this._ctx=t,this._ctx.start=this._input.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this._ctx.stop=this._input.LT(-1),this.triggerExitRuleEvent(),this.state=this._ctx.invokingState,this._ctx=this._ctx.parentCtx}enterOuterAlt(t,e){t.setAltNumber(e),this.buildParseTrees&&this._ctx!==t&&null!==this._ctx.parentCtx&&(this._ctx.parentCtx.removeLastChild(),this._ctx.parentCtx.addChild(t)),this._ctx=t}getPrecedence(){return 0===this._precedenceStack.length?-1:this._precedenceStack[this._precedenceStack.length-1]}enterRecursionRule(t,e,s,i){this.state=e,this._precedenceStack.push(i),this._ctx=t,this._ctx.start=this._input.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(t,e,s){const i=this._ctx;i.parentCtx=t,i.invokingState=e,i.stop=this._input.LT(-1),this._ctx=t,this._ctx.start=i.start,this.buildParseTrees&&this._ctx.addChild(i),this.triggerEnterRuleEvent()}unrollRecursionContexts(t){this._precedenceStack.pop(),this._ctx.stop=this._input.LT(-1);const e=this._ctx,s=this.getParseListeners();if(null!==s&&s.length>0)for(;this._ctx!==t;)this.triggerExitRuleEvent(),this._ctx=this._ctx.parentCtx;else this._ctx=t;e.parentCtx=t,this.buildParseTrees&&null!==t&&t.addChild(e)}getInvokingContext(t){let e=this._ctx;for(;null!==e;){if(e.ruleIndex===t)return e;e=e.parentCtx}return null}precpred(t,e){return e>=this._precedenceStack[this._precedenceStack.length-1]}inContext(t){return!1}isExpectedToken(t){const e=this._interp.atn;let s=this._ctx;const i=e.states[this.state];let r=e.nextTokens(i);if(r.contains(t))return!0;if(!r.contains(h.EPSILON))return!1;for(;null!==s&&s.invokingState>=0&&r.contains(h.EPSILON);){const i=e.states[s.invokingState].transitions[0];if(r=e.nextTokens(i.followState),r.contains(t))return!0;s=s.parentCtx}return!(!r.contains(h.EPSILON)||t!==h.EOF)}getExpectedTokens(){return this._interp.atn.getExpectedTokens(this.state,this._ctx)}getExpectedTokensWithinCurrentRule(){const t=this._interp.atn,e=t.states[this.state];return t.nextTokens(e)}getRuleIndex(t){const e=this.getRuleIndexMap()[t];return null!==e?e:-1}getRuleInvocationStack(t){null===(t=t||null)&&(t=this._ctx);const e=[];for(;null!==t;){const s=t.ruleIndex;s<0?e.push("n/a"):e.push(this.ruleNames[s]),t=t.parentCtx}return e}getDFAStrings(){return this._interp.decisionToDFA.toString()}dumpDFA(){let t=!1;for(let e=0;e0&&(t&&console.log(),this.printer.println("Decision "+s.decision+":"),this.printer.print(s.toString(this.literalNames,this.symbolicNames)),t=!0)}}getSourceName(){return this._input.getSourceName()}setTrace(t){t?(null!==this._tracer&&this.removeParseListener(this._tracer),this._tracer=new He(this),this.addParseListener(this._tracer)):(this.removeParseListener(this._tracer),this._tracer=null)}}Be.bypassAltsAtnCache={};class Fe extends w{constructor(t){super(),this.parentCtx=null,this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getParent(){return this.parentCtx}getPayload(){return this.symbol}getSourceInterval(){if(null===this.symbol)return S.INVALID_INTERVAL;const t=this.symbol.tokenIndex;return new S(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){return this.symbol.text}toString(){return this.symbol.type===h.EOF?"":this.symbol.text}}class Ke extends Fe{constructor(t){super(t)}isErrorNode(){return!0}accept(t){return t.visitErrorNode(this)}}class Ge extends K{constructor(t,e){super(t,e),this.children=null,this.start=null,this.stop=null,this.exception=null}copyFrom(t){this.parentCtx=t.parentCtx,this.invokingState=t.invokingState,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map((function(t){t instanceof Ke&&(this.children.push(t),t.parentCtx=this)}),this))}enterRule(t){}exitRule(t){}addChild(t){return null===this.children&&(this.children=[]),this.children.push(t),t}removeLastChild(){null!==this.children&&this.children.pop()}addTokenNode(t){const e=new Fe(t);return this.addChild(e),e.parentCtx=this,e}addErrorNode(t){const e=new Ke(t);return this.addChild(e),e.parentCtx=this,e}getChild(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)return null;for(let s=0;s2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;i="number"==typeof e?e:e.tokenIndex;let n=this.getProgram(r),a=new Qe(this.tokens,i,n.length,s);n.push(a)}insertBefore(e,s){let i,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;i="number"==typeof e?e:e.tokenIndex;const n=this.getProgram(r),a=new qe(this.tokens,i,n.length,s);n.push(a)}replaceSingle(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;this.replace(e,e,s,i)}replace(e,s,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.DEFAULT_PROGRAM_NAME;if("number"!=typeof e&&(e=e.tokenIndex),"number"!=typeof s&&(s=s.tokenIndex),e>s||e<0||s<0||s>=this.tokens.size)throw new RangeError(`replace: range invalid: ${e}..${s}(size=${this.tokens.size})`);let n=this.getProgram(r),a=new Xe(this.tokens,e,s,n.length,i);n.push(a)}delete(e,s){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;void 0===s&&(s=e),this.replace(e,s,null,i)}getProgram(t){let e=this.programs.get(t);return null==e&&(e=this.initializeProgram(t)),e}initializeProgram(t){const e=[];return this.programs.set(t,e),e}getText(e){let s,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.DEFAULT_PROGRAM_NAME;s=e instanceof S?e:new S(0,this.tokens.size-1),"string"==typeof e&&(i=e);const r=this.programs.get(i);let n=s.start,a=s.stop;if(a>this.tokens.size-1&&(a=this.tokens.size-1),n<0&&(n=0),null==r||0===r.length)return this.tokens.getText(new S(n,a));let c=[],o=this.reduceToSingleOperationPerIndex(r),l=n;for(;l<=a&&l=this.tokens.size-1&&c.push(t.text.toString());return c.join("")}reduceToSingleOperationPerIndex(t){for(let s=0;si.index&&s.index<=i.lastIndex&&(t[s.instructionIndex]=void 0);let n=this.getKindOfOps(t,Xe,s);for(let s of n){if(s.index>=i.index&&s.lastIndex<=i.lastIndex){t[s.instructionIndex]=void 0;continue}let e=s.lastIndexi.lastIndex;if(null!=s.text||null!=i.text||e){if(!e)throw new Error(`replace op boundaries of ${i} overlap with previous ${s}`)}else t[s.instructionIndex]=void 0,i.index=Math.min(s.index,i.index),i.lastIndex=Math.max(s.lastIndex,i.lastIndex)}}for(let s=0;s=a.index&&i.index<=a.lastIndex)throw new Error(`insert op ${i} within boundaries of previous ${a}`)}else a.text=this.catOpText(i.text,a.text),t[s]=void 0}let e=new Map;for(let s of t)if(null!=s){if(null!=e.get(s.index))throw new Error("should only be one op per index");e.set(s.index,s)}return e}catOpText(t,e){let s="",i="";return null!=t&&(s=t.toString()),null!=e&&(i=e.toString()),s+i}getKindOfOps(t,e,s){return t.slice(0,s).filter((t=>t&&t instanceof e))}};s(We,"DEFAULT_PROGRAM_NAME","default");let Ve=We;class Ye{constructor(t,e,s,i){this.tokens=t,this.instructionIndex=s,this.index=e,this.text=void 0===i?"":i}toString(){let t=this.constructor.name;const e=t.indexOf("$");return t=t.substring(e+1,t.length),"<"+t+"@"+this.tokens.get(this.index)+':"'+this.text+'">'}}class qe extends Ye{constructor(t,e,s,i){super(t,e,s,i)}execute(t){return this.text&&t.push(this.text.toString()),this.tokens.get(this.index).type!==h.EOF&&t.push(String(this.tokens.get(this.index).text)),this.index+1}}class Qe extends qe{constructor(t,e,s,i){super(t,e+1,s,i)}}class Xe extends Ye{constructor(t,e,s,i,r){super(t,e,i,r),this.lastIndex=s}execute(t){return this.text&&t.push(this.text.toString()),this.lastIndex+1}toString(){return null==this.text?"":"'}}const ze={atn:ce,dfa:Te,context:de,misc:Ee,tree:Ae,error:Ne,Token:h,CommonToken:bt,CharStreams:Pe,CharStream:me,InputStream:ye,CommonTokenStream:we,Lexer:Kt,Parser:Be,ParserRuleContext:Ge,Interval:S,IntervalSet:L,LL1Analyzer:j,Utils:Ue,TokenStreamRewriter:Ve};var Ze=a.jB,je=a.pG,Je=a.zW,$e=a.IX,ts=a.JG,es=a.ou,ss=a.Ay;class is extends ts{}const rs=(new ss.atn.ATNDeserializer).deserialize([4,0,331,3071,6,-1,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,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,4,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,265,1,265,1,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,281,1,281,1,282,1,282,1,282,1,282,3,282,2776,8,282,1,283,1,283,1,284,1,284,1,284,1,285,1,285,1,286,1,286,1,286,1,287,1,287,1,287,1,288,1,288,1,289,1,289,1,289,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,292,1,292,1,293,1,293,1,294,1,294,1,295,1,295,1,296,1,296,1,297,1,297,1,298,1,298,1,298,1,299,1,299,1,299,1,300,1,300,1,301,1,301,1,302,1,302,1,303,1,303,1,304,1,304,1,305,1,305,1,306,1,306,1,307,1,307,1,308,1,308,1,309,1,309,1,310,1,310,1,310,1,311,1,311,1,312,1,312,1,313,1,313,1,314,1,314,1,315,1,315,1,316,1,316,1,316,1,316,5,316,2858,8,316,10,316,12,316,2861,9,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,317,4,317,2871,8,317,11,317,12,317,2872,1,317,5,317,2876,8,317,10,317,12,317,2879,9,317,1,317,1,317,1,318,1,318,1,318,5,318,2886,8,318,10,318,12,318,2889,9,318,1,318,1,318,1,319,4,319,2894,8,319,11,319,12,319,2895,1,319,1,319,1,319,4,319,2901,8,319,11,319,12,319,2902,1,319,1,319,3,319,2907,8,319,1,320,1,320,1,320,3,320,2912,8,320,1,320,1,320,4,320,2916,8,320,11,320,12,320,2917,1,320,1,320,1,320,5,320,2923,8,320,10,320,12,320,2926,9,320,3,320,2928,8,320,1,320,1,320,1,320,1,320,4,320,2934,8,320,11,320,12,320,2935,1,320,1,320,3,320,2940,8,320,1,321,1,321,3,321,2944,8,321,1,321,1,321,1,321,5,321,2949,8,321,10,321,12,321,2952,9,321,1,322,1,322,1,322,1,322,4,322,2958,8,322,11,322,12,322,2959,1,323,1,323,1,323,1,323,5,323,2966,8,323,10,323,12,323,2969,9,323,1,323,1,323,1,324,1,324,1,324,1,324,5,324,2977,8,324,10,324,12,324,2980,9,324,1,324,1,324,1,325,1,325,3,325,2986,8,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,327,1,327,3,327,2997,8,327,1,327,4,327,3e3,8,327,11,327,12,327,3001,1,328,1,328,1,329,1,329,1,330,1,330,1,330,1,330,5,330,3012,8,330,10,330,12,330,3015,9,330,1,330,3,330,3018,8,330,1,330,3,330,3021,8,330,1,330,1,330,1,330,1,330,5,330,3027,8,330,10,330,12,330,3030,9,330,1,330,1,330,3,330,3034,8,330,1,330,1,330,1,331,4,331,3039,8,331,11,331,12,331,3040,1,331,1,331,1,332,1,332,1,333,4,333,3048,8,333,11,333,12,333,3049,1,333,1,333,5,333,3054,8,333,10,333,12,333,3057,9,333,3,333,3059,8,333,1,334,1,334,3,334,3063,8,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,3028,0,335,2,1,4,2,6,3,8,4,10,5,12,6,14,7,16,8,18,9,20,10,22,11,24,12,26,13,28,14,30,15,32,16,34,17,36,18,38,19,40,20,42,21,44,22,46,23,48,24,50,25,52,26,54,27,56,28,58,29,60,30,62,31,64,32,66,33,68,34,70,35,72,36,74,37,76,38,78,39,80,40,82,41,84,42,86,43,88,44,90,45,92,46,94,47,96,48,98,49,100,50,102,51,104,52,106,53,108,54,110,55,112,56,114,57,116,58,118,59,120,60,122,61,124,62,126,63,128,64,130,65,132,66,134,67,136,68,138,69,140,70,142,71,144,72,146,73,148,74,150,75,152,76,154,77,156,78,158,79,160,80,162,81,164,82,166,83,168,84,170,85,172,86,174,87,176,88,178,89,180,90,182,91,184,92,186,93,188,94,190,95,192,96,194,97,196,98,198,99,200,100,202,101,204,102,206,103,208,104,210,105,212,106,214,107,216,108,218,109,220,110,222,111,224,112,226,113,228,114,230,115,232,116,234,117,236,118,238,119,240,120,242,121,244,122,246,123,248,124,250,125,252,126,254,127,256,128,258,129,260,130,262,131,264,132,266,133,268,134,270,135,272,136,274,137,276,138,278,139,280,140,282,141,284,142,286,143,288,144,290,145,292,146,294,147,296,148,298,149,300,150,302,151,304,152,306,153,308,154,310,155,312,156,314,157,316,158,318,159,320,160,322,161,324,162,326,163,328,164,330,165,332,166,334,167,336,168,338,169,340,170,342,171,344,172,346,173,348,174,350,175,352,176,354,177,356,178,358,179,360,180,362,181,364,182,366,183,368,184,370,185,372,186,374,187,376,188,378,189,380,190,382,191,384,192,386,193,388,194,390,195,392,196,394,197,396,198,398,199,400,200,402,201,404,202,406,203,408,204,410,205,412,206,414,207,416,208,418,209,420,210,422,211,424,212,426,213,428,214,430,215,432,216,434,217,436,218,438,219,440,220,442,221,444,222,446,223,448,224,450,225,452,226,454,227,456,228,458,229,460,230,462,231,464,232,466,233,468,234,470,235,472,236,474,237,476,238,478,239,480,240,482,241,484,242,486,243,488,244,490,245,492,246,494,247,496,248,498,249,500,250,502,251,504,252,506,253,508,254,510,255,512,256,514,257,516,258,518,259,520,260,522,261,524,262,526,263,528,264,530,265,532,266,534,267,536,268,538,269,540,270,542,271,544,272,546,273,548,274,550,275,552,276,554,277,556,278,558,279,560,280,562,281,564,282,566,283,568,284,570,285,572,286,574,287,576,288,578,289,580,290,582,291,584,292,586,293,588,294,590,295,592,296,594,297,596,298,598,299,600,300,602,301,604,302,606,303,608,304,610,305,612,306,614,307,616,308,618,309,620,310,622,311,624,312,626,313,628,314,630,315,632,316,634,317,636,318,638,319,640,320,642,321,644,322,646,323,648,324,650,325,652,326,654,0,656,0,658,0,660,0,662,327,664,328,666,329,668,330,670,331,2,0,1,13,1,0,39,39,2,0,39,39,92,92,1,0,92,92,1,0,48,49,2,0,64,64,95,95,1,0,34,34,1,0,96,96,2,0,43,43,45,45,1,0,48,57,2,0,65,90,97,122,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1,0,36,36,3109,0,2,1,0,0,0,0,4,1,0,0,0,0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,0,46,1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0,0,56,1,0,0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0,66,1,0,0,0,0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1,0,0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0,0,100,1,0,0,0,0,102,1,0,0,0,0,104,1,0,0,0,0,106,1,0,0,0,0,108,1,0,0,0,0,110,1,0,0,0,0,112,1,0,0,0,0,114,1,0,0,0,0,116,1,0,0,0,0,118,1,0,0,0,0,120,1,0,0,0,0,122,1,0,0,0,0,124,1,0,0,0,0,126,1,0,0,0,0,128,1,0,0,0,0,130,1,0,0,0,0,132,1,0,0,0,0,134,1,0,0,0,0,136,1,0,0,0,0,138,1,0,0,0,0,140,1,0,0,0,0,142,1,0,0,0,0,144,1,0,0,0,0,146,1,0,0,0,0,148,1,0,0,0,0,150,1,0,0,0,0,152,1,0,0,0,0,154,1,0,0,0,0,156,1,0,0,0,0,158,1,0,0,0,0,160,1,0,0,0,0,162,1,0,0,0,0,164,1,0,0,0,0,166,1,0,0,0,0,168,1,0,0,0,0,170,1,0,0,0,0,172,1,0,0,0,0,174,1,0,0,0,0,176,1,0,0,0,0,178,1,0,0,0,0,180,1,0,0,0,0,182,1,0,0,0,0,184,1,0,0,0,0,186,1,0,0,0,0,188,1,0,0,0,0,190,1,0,0,0,0,192,1,0,0,0,0,194,1,0,0,0,0,196,1,0,0,0,0,198,1,0,0,0,0,200,1,0,0,0,0,202,1,0,0,0,0,204,1,0,0,0,0,206,1,0,0,0,0,208,1,0,0,0,0,210,1,0,0,0,0,212,1,0,0,0,0,214,1,0,0,0,0,216,1,0,0,0,0,218,1,0,0,0,0,220,1,0,0,0,0,222,1,0,0,0,0,224,1,0,0,0,0,226,1,0,0,0,0,228,1,0,0,0,0,230,1,0,0,0,0,232,1,0,0,0,0,234,1,0,0,0,0,236,1,0,0,0,0,238,1,0,0,0,0,240,1,0,0,0,0,242,1,0,0,0,0,244,1,0,0,0,0,246,1,0,0,0,0,248,1,0,0,0,0,250,1,0,0,0,0,252,1,0,0,0,0,254,1,0,0,0,0,256,1,0,0,0,0,258,1,0,0,0,0,260,1,0,0,0,0,262,1,0,0,0,0,264,1,0,0,0,0,266,1,0,0,0,0,268,1,0,0,0,0,270,1,0,0,0,0,272,1,0,0,0,0,274,1,0,0,0,0,276,1,0,0,0,0,278,1,0,0,0,0,280,1,0,0,0,0,282,1,0,0,0,0,284,1,0,0,0,0,286,1,0,0,0,0,288,1,0,0,0,0,290,1,0,0,0,0,292,1,0,0,0,0,294,1,0,0,0,0,296,1,0,0,0,0,298,1,0,0,0,0,300,1,0,0,0,0,302,1,0,0,0,0,304,1,0,0,0,0,306,1,0,0,0,0,308,1,0,0,0,0,310,1,0,0,0,0,312,1,0,0,0,0,314,1,0,0,0,0,316,1,0,0,0,0,318,1,0,0,0,0,320,1,0,0,0,0,322,1,0,0,0,0,324,1,0,0,0,0,326,1,0,0,0,0,328,1,0,0,0,0,330,1,0,0,0,0,332,1,0,0,0,0,334,1,0,0,0,0,336,1,0,0,0,0,338,1,0,0,0,0,340,1,0,0,0,0,342,1,0,0,0,0,344,1,0,0,0,0,346,1,0,0,0,0,348,1,0,0,0,0,350,1,0,0,0,0,352,1,0,0,0,0,354,1,0,0,0,0,356,1,0,0,0,0,358,1,0,0,0,0,360,1,0,0,0,0,362,1,0,0,0,0,364,1,0,0,0,0,366,1,0,0,0,0,368,1,0,0,0,0,370,1,0,0,0,0,372,1,0,0,0,0,374,1,0,0,0,0,376,1,0,0,0,0,378,1,0,0,0,0,380,1,0,0,0,0,382,1,0,0,0,0,384,1,0,0,0,0,386,1,0,0,0,0,388,1,0,0,0,0,390,1,0,0,0,0,392,1,0,0,0,0,394,1,0,0,0,0,396,1,0,0,0,0,398,1,0,0,0,0,400,1,0,0,0,0,402,1,0,0,0,0,404,1,0,0,0,0,406,1,0,0,0,0,408,1,0,0,0,0,410,1,0,0,0,0,412,1,0,0,0,0,414,1,0,0,0,0,416,1,0,0,0,0,418,1,0,0,0,0,420,1,0,0,0,0,422,1,0,0,0,0,424,1,0,0,0,0,426,1,0,0,0,0,428,1,0,0,0,0,430,1,0,0,0,0,432,1,0,0,0,0,434,1,0,0,0,0,436,1,0,0,0,0,438,1,0,0,0,0,440,1,0,0,0,0,442,1,0,0,0,0,444,1,0,0,0,0,446,1,0,0,0,0,448,1,0,0,0,0,450,1,0,0,0,0,452,1,0,0,0,0,454,1,0,0,0,0,456,1,0,0,0,0,458,1,0,0,0,0,460,1,0,0,0,0,462,1,0,0,0,0,464,1,0,0,0,0,466,1,0,0,0,0,468,1,0,0,0,0,470,1,0,0,0,0,472,1,0,0,0,0,474,1,0,0,0,0,476,1,0,0,0,0,478,1,0,0,0,0,480,1,0,0,0,0,482,1,0,0,0,0,484,1,0,0,0,0,486,1,0,0,0,0,488,1,0,0,0,0,490,1,0,0,0,0,492,1,0,0,0,0,494,1,0,0,0,0,496,1,0,0,0,0,498,1,0,0,0,0,500,1,0,0,0,0,502,1,0,0,0,0,504,1,0,0,0,0,506,1,0,0,0,0,508,1,0,0,0,0,510,1,0,0,0,0,512,1,0,0,0,0,514,1,0,0,0,0,516,1,0,0,0,0,518,1,0,0,0,0,520,1,0,0,0,0,522,1,0,0,0,0,524,1,0,0,0,0,526,1,0,0,0,0,528,1,0,0,0,0,530,1,0,0,0,0,532,1,0,0,0,0,534,1,0,0,0,0,536,1,0,0,0,0,538,1,0,0,0,0,540,1,0,0,0,0,542,1,0,0,0,0,544,1,0,0,0,0,546,1,0,0,0,0,548,1,0,0,0,0,550,1,0,0,0,0,552,1,0,0,0,0,554,1,0,0,0,0,556,1,0,0,0,0,558,1,0,0,0,0,560,1,0,0,0,0,562,1,0,0,0,0,564,1,0,0,0,0,566,1,0,0,0,0,568,1,0,0,0,0,570,1,0,0,0,0,572,1,0,0,0,0,574,1,0,0,0,0,576,1,0,0,0,0,578,1,0,0,0,0,580,1,0,0,0,0,582,1,0,0,0,0,584,1,0,0,0,0,586,1,0,0,0,0,588,1,0,0,0,0,590,1,0,0,0,0,592,1,0,0,0,0,594,1,0,0,0,0,596,1,0,0,0,0,598,1,0,0,0,0,600,1,0,0,0,0,602,1,0,0,0,0,604,1,0,0,0,0,606,1,0,0,0,0,608,1,0,0,0,0,610,1,0,0,0,0,612,1,0,0,0,0,614,1,0,0,0,0,616,1,0,0,0,0,618,1,0,0,0,0,620,1,0,0,0,0,622,1,0,0,0,0,624,1,0,0,0,0,626,1,0,0,0,0,628,1,0,0,0,0,630,1,0,0,0,0,632,1,0,0,0,0,634,1,0,0,0,0,636,1,0,0,0,0,638,1,0,0,0,0,640,1,0,0,0,0,642,1,0,0,0,0,644,1,0,0,0,0,646,1,0,0,0,0,648,1,0,0,0,0,650,1,0,0,0,0,652,1,0,0,0,0,662,1,0,0,0,0,664,1,0,0,0,0,666,1,0,0,0,1,668,1,0,0,0,1,670,1,0,0,0,2,672,1,0,0,0,4,686,1,0,0,0,6,693,1,0,0,0,8,698,1,0,0,0,10,701,1,0,0,0,12,704,1,0,0,0,14,707,1,0,0,0,16,711,1,0,0,0,18,715,1,0,0,0,20,720,1,0,0,0,22,731,1,0,0,0,24,741,1,0,0,0,26,750,1,0,0,0,28,756,1,0,0,0,30,762,1,0,0,0,32,765,1,0,0,0,34,771,1,0,0,0,36,778,1,0,0,0,38,784,1,0,0,0,40,791,1,0,0,0,42,794,1,0,0,0,44,798,1,0,0,0,46,801,1,0,0,0,48,805,1,0,0,0,50,812,1,0,0,0,52,820,1,0,0,0,54,825,1,0,0,0,56,831,1,0,0,0,58,834,1,0,0,0,60,839,1,0,0,0,62,844,1,0,0,0,64,850,1,0,0,0,66,857,1,0,0,0,68,865,1,0,0,0,70,871,1,0,0,0,72,877,1,0,0,0,74,883,1,0,0,0,76,888,1,0,0,0,78,893,1,0,0,0,80,900,1,0,0,0,82,904,1,0,0,0,84,909,1,0,0,0,86,919,1,0,0,0,88,924,1,0,0,0,90,932,1,0,0,0,92,941,1,0,0,0,94,946,1,0,0,0,96,950,1,0,0,0,98,955,1,0,0,0,100,960,1,0,0,0,102,965,1,0,0,0,104,971,1,0,0,0,106,975,1,0,0,0,108,980,1,0,0,0,110,987,1,0,0,0,112,994,1,0,0,0,114,1007,1,0,0,0,116,1020,1,0,0,0,118,1038,1,0,0,0,120,1053,1,0,0,0,122,1066,1,0,0,0,124,1079,1,0,0,0,126,1092,1,0,0,0,128,1100,1,0,0,0,130,1105,1,0,0,0,132,1110,1,0,0,0,134,1115,1,0,0,0,136,1120,1,0,0,0,138,1124,1,0,0,0,140,1127,1,0,0,0,142,1136,1,0,0,0,144,1141,1,0,0,0,146,1147,1,0,0,0,148,1153,1,0,0,0,150,1159,1,0,0,0,152,1164,1,0,0,0,154,1170,1,0,0,0,156,1175,1,0,0,0,158,1183,1,0,0,0,160,1189,1,0,0,0,162,1192,1,0,0,0,164,1197,1,0,0,0,166,1204,1,0,0,0,168,1214,1,0,0,0,170,1222,1,0,0,0,172,1228,1,0,0,0,174,1233,1,0,0,0,176,1243,1,0,0,0,178,1253,1,0,0,0,180,1263,1,0,0,0,182,1271,1,0,0,0,184,1275,1,0,0,0,186,1280,1,0,0,0,188,1288,1,0,0,0,190,1298,1,0,0,0,192,1305,1,0,0,0,194,1310,1,0,0,0,196,1316,1,0,0,0,198,1321,1,0,0,0,200,1324,1,0,0,0,202,1333,1,0,0,0,204,1343,1,0,0,0,206,1356,1,0,0,0,208,1364,1,0,0,0,210,1375,1,0,0,0,212,1384,1,0,0,0,214,1390,1,0,0,0,216,1395,1,0,0,0,218,1400,1,0,0,0,220,1404,1,0,0,0,222,1411,1,0,0,0,224,1416,1,0,0,0,226,1422,1,0,0,0,228,1429,1,0,0,0,230,1437,1,0,0,0,232,1442,1,0,0,0,234,1448,1,0,0,0,236,1457,1,0,0,0,238,1465,1,0,0,0,240,1472,1,0,0,0,242,1478,1,0,0,0,244,1485,1,0,0,0,246,1493,1,0,0,0,248,1498,1,0,0,0,250,1504,1,0,0,0,252,1512,1,0,0,0,254,1516,1,0,0,0,256,1521,1,0,0,0,258,1527,1,0,0,0,260,1534,1,0,0,0,262,1544,1,0,0,0,264,1554,1,0,0,0,266,1557,1,0,0,0,268,1567,1,0,0,0,270,1574,1,0,0,0,272,1582,1,0,0,0,274,1589,1,0,0,0,276,1596,1,0,0,0,278,1606,1,0,0,0,280,1616,1,0,0,0,282,1623,1,0,0,0,284,1631,1,0,0,0,286,1637,1,0,0,0,288,1643,1,0,0,0,290,1649,1,0,0,0,292,1656,1,0,0,0,294,1661,1,0,0,0,296,1673,1,0,0,0,298,1695,1,0,0,0,300,1711,1,0,0,0,302,1721,1,0,0,0,304,1727,1,0,0,0,306,1740,1,0,0,0,308,1751,1,0,0,0,310,1761,1,0,0,0,312,1773,1,0,0,0,314,1778,1,0,0,0,316,1784,1,0,0,0,318,1795,1,0,0,0,320,1803,1,0,0,0,322,1810,1,0,0,0,324,1818,1,0,0,0,326,1827,1,0,0,0,328,1836,1,0,0,0,330,1842,1,0,0,0,332,1850,1,0,0,0,334,1856,1,0,0,0,336,1864,1,0,0,0,338,1872,1,0,0,0,340,1878,1,0,0,0,342,1888,1,0,0,0,344,1898,1,0,0,0,346,1903,1,0,0,0,348,1914,1,0,0,0,350,1920,1,0,0,0,352,1929,1,0,0,0,354,1937,1,0,0,0,356,1944,1,0,0,0,358,1949,1,0,0,0,360,1954,1,0,0,0,362,1963,1,0,0,0,364,1971,1,0,0,0,366,1983,1,0,0,0,368,1988,1,0,0,0,370,1997,1,0,0,0,372,2002,1,0,0,0,374,2009,1,0,0,0,376,2017,1,0,0,0,378,2026,1,0,0,0,380,2034,1,0,0,0,382,2045,1,0,0,0,384,2055,1,0,0,0,386,2068,1,0,0,0,388,2073,1,0,0,0,390,2082,1,0,0,0,392,2090,1,0,0,0,394,2098,1,0,0,0,396,2103,1,0,0,0,398,2109,1,0,0,0,400,2115,1,0,0,0,402,2122,1,0,0,0,404,2132,1,0,0,0,406,2139,1,0,0,0,408,2149,1,0,0,0,410,2161,1,0,0,0,412,2170,1,0,0,0,414,2177,1,0,0,0,416,2182,1,0,0,0,418,2189,1,0,0,0,420,2196,1,0,0,0,422,2203,1,0,0,0,424,2207,1,0,0,0,426,2217,1,0,0,0,428,2226,1,0,0,0,430,2229,1,0,0,0,432,2237,1,0,0,0,434,2241,1,0,0,0,436,2247,1,0,0,0,438,2255,1,0,0,0,440,2260,1,0,0,0,442,2270,1,0,0,0,444,2277,1,0,0,0,446,2289,1,0,0,0,448,2293,1,0,0,0,450,2302,1,0,0,0,452,2309,1,0,0,0,454,2315,1,0,0,0,456,2321,1,0,0,0,458,2329,1,0,0,0,460,2339,1,0,0,0,462,2347,1,0,0,0,464,2354,1,0,0,0,466,2362,1,0,0,0,468,2368,1,0,0,0,470,2377,1,0,0,0,472,2385,1,0,0,0,474,2395,1,0,0,0,476,2409,1,0,0,0,478,2422,1,0,0,0,480,2434,1,0,0,0,482,2442,1,0,0,0,484,2452,1,0,0,0,486,2463,1,0,0,0,488,2469,1,0,0,0,490,2479,1,0,0,0,492,2486,1,0,0,0,494,2491,1,0,0,0,496,2496,1,0,0,0,498,2502,1,0,0,0,500,2507,1,0,0,0,502,2514,1,0,0,0,504,2525,1,0,0,0,506,2532,1,0,0,0,508,2539,1,0,0,0,510,2547,1,0,0,0,512,2556,1,0,0,0,514,2568,1,0,0,0,516,2581,1,0,0,0,518,2592,1,0,0,0,520,2599,1,0,0,0,522,2607,1,0,0,0,524,2615,1,0,0,0,526,2622,1,0,0,0,528,2633,1,0,0,0,530,2645,1,0,0,0,532,2652,1,0,0,0,534,2655,1,0,0,0,536,2662,1,0,0,0,538,2667,1,0,0,0,540,2676,1,0,0,0,542,2684,1,0,0,0,544,2693,1,0,0,0,546,2702,1,0,0,0,548,2708,1,0,0,0,550,2715,1,0,0,0,552,2723,1,0,0,0,554,2728,1,0,0,0,556,2736,1,0,0,0,558,2744,1,0,0,0,560,2752,1,0,0,0,562,2760,1,0,0,0,564,2769,1,0,0,0,566,2775,1,0,0,0,568,2777,1,0,0,0,570,2779,1,0,0,0,572,2782,1,0,0,0,574,2784,1,0,0,0,576,2787,1,0,0,0,578,2790,1,0,0,0,580,2792,1,0,0,0,582,2795,1,0,0,0,584,2798,1,0,0,0,586,2802,1,0,0,0,588,2804,1,0,0,0,590,2806,1,0,0,0,592,2808,1,0,0,0,594,2810,1,0,0,0,596,2812,1,0,0,0,598,2814,1,0,0,0,600,2817,1,0,0,0,602,2820,1,0,0,0,604,2822,1,0,0,0,606,2824,1,0,0,0,608,2826,1,0,0,0,610,2828,1,0,0,0,612,2830,1,0,0,0,614,2832,1,0,0,0,616,2834,1,0,0,0,618,2836,1,0,0,0,620,2838,1,0,0,0,622,2840,1,0,0,0,624,2843,1,0,0,0,626,2845,1,0,0,0,628,2847,1,0,0,0,630,2849,1,0,0,0,632,2851,1,0,0,0,634,2853,1,0,0,0,636,2864,1,0,0,0,638,2882,1,0,0,0,640,2906,1,0,0,0,642,2939,1,0,0,0,644,2943,1,0,0,0,646,2953,1,0,0,0,648,2961,1,0,0,0,650,2972,1,0,0,0,652,2983,1,0,0,0,654,2992,1,0,0,0,656,2994,1,0,0,0,658,3003,1,0,0,0,660,3005,1,0,0,0,662,3033,1,0,0,0,664,3038,1,0,0,0,666,3044,1,0,0,0,668,3058,1,0,0,0,670,3060,1,0,0,0,672,673,5,65,0,0,673,674,5,85,0,0,674,675,5,84,0,0,675,676,5,72,0,0,676,677,5,79,0,0,677,678,5,82,0,0,678,679,5,73,0,0,679,680,5,90,0,0,680,681,5,65,0,0,681,682,5,84,0,0,682,683,5,73,0,0,683,684,5,79,0,0,684,685,5,78,0,0,685,3,1,0,0,0,686,687,5,83,0,0,687,688,5,69,0,0,688,689,5,76,0,0,689,690,5,69,0,0,690,691,5,67,0,0,691,692,5,84,0,0,692,5,1,0,0,0,693,694,5,70,0,0,694,695,5,82,0,0,695,696,5,79,0,0,696,697,5,77,0,0,697,7,1,0,0,0,698,699,5,84,0,0,699,700,5,79,0,0,700,9,1,0,0,0,701,702,5,65,0,0,702,703,5,83,0,0,703,11,1,0,0,0,704,705,5,65,0,0,705,706,5,84,0,0,706,13,1,0,0,0,707,708,5,65,0,0,708,709,5,76,0,0,709,710,5,76,0,0,710,15,1,0,0,0,711,712,5,65,0,0,712,713,5,78,0,0,713,714,5,89,0,0,714,17,1,0,0,0,715,716,5,83,0,0,716,717,5,79,0,0,717,718,5,77,0,0,718,719,5,69,0,0,719,19,1,0,0,0,720,721,5,68,0,0,721,722,5,69,0,0,722,723,5,65,0,0,723,724,5,76,0,0,724,725,5,76,0,0,725,726,5,79,0,0,726,727,5,67,0,0,727,728,5,65,0,0,728,729,5,84,0,0,729,730,5,69,0,0,730,21,1,0,0,0,731,732,5,68,0,0,732,733,5,73,0,0,733,734,5,82,0,0,734,735,5,69,0,0,735,736,5,67,0,0,736,737,5,84,0,0,737,738,5,79,0,0,738,739,5,82,0,0,739,740,5,89,0,0,740,23,1,0,0,0,741,742,5,68,0,0,742,743,5,73,0,0,743,744,5,83,0,0,744,745,5,84,0,0,745,746,5,73,0,0,746,747,5,78,0,0,747,748,5,67,0,0,748,749,5,84,0,0,749,25,1,0,0,0,750,751,5,87,0,0,751,752,5,72,0,0,752,753,5,69,0,0,753,754,5,82,0,0,754,755,5,69,0,0,755,27,1,0,0,0,756,757,5,71,0,0,757,758,5,82,0,0,758,759,5,79,0,0,759,760,5,85,0,0,760,761,5,80,0,0,761,29,1,0,0,0,762,763,5,66,0,0,763,764,5,89,0,0,764,31,1,0,0,0,765,766,5,79,0,0,766,767,5,82,0,0,767,768,5,68,0,0,768,769,5,69,0,0,769,770,5,82,0,0,770,33,1,0,0,0,771,772,5,72,0,0,772,773,5,65,0,0,773,774,5,86,0,0,774,775,5,73,0,0,775,776,5,78,0,0,776,777,5,71,0,0,777,35,1,0,0,0,778,779,5,76,0,0,779,780,5,73,0,0,780,781,5,77,0,0,781,782,5,73,0,0,782,783,5,84,0,0,783,37,1,0,0,0,784,785,5,79,0,0,785,786,5,70,0,0,786,787,5,70,0,0,787,788,5,83,0,0,788,789,5,69,0,0,789,790,5,84,0,0,790,39,1,0,0,0,791,792,5,79,0,0,792,793,5,82,0,0,793,41,1,0,0,0,794,795,5,65,0,0,795,796,5,78,0,0,796,797,5,68,0,0,797,43,1,0,0,0,798,799,5,73,0,0,799,800,5,78,0,0,800,45,1,0,0,0,801,802,5,78,0,0,802,803,5,79,0,0,803,804,5,84,0,0,804,47,1,0,0,0,805,806,5,69,0,0,806,807,5,88,0,0,807,808,5,73,0,0,808,809,5,83,0,0,809,810,5,84,0,0,810,811,5,83,0,0,811,49,1,0,0,0,812,813,5,66,0,0,813,814,5,69,0,0,814,815,5,84,0,0,815,816,5,87,0,0,816,817,5,69,0,0,817,818,5,69,0,0,818,819,5,78,0,0,819,51,1,0,0,0,820,821,5,76,0,0,821,822,5,73,0,0,822,823,5,75,0,0,823,824,5,69,0,0,824,53,1,0,0,0,825,826,5,73,0,0,826,827,5,76,0,0,827,828,5,73,0,0,828,829,5,75,0,0,829,830,5,69,0,0,830,55,1,0,0,0,831,832,5,73,0,0,832,833,5,83,0,0,833,57,1,0,0,0,834,835,5,78,0,0,835,836,5,85,0,0,836,837,5,76,0,0,837,838,5,76,0,0,838,59,1,0,0,0,839,840,5,84,0,0,840,841,5,82,0,0,841,842,5,85,0,0,842,843,5,69,0,0,843,61,1,0,0,0,844,845,5,70,0,0,845,846,5,65,0,0,846,847,5,76,0,0,847,848,5,83,0,0,848,849,5,69,0,0,849,63,1,0,0,0,850,851,5,73,0,0,851,852,5,71,0,0,852,853,5,78,0,0,853,854,5,79,0,0,854,855,5,82,0,0,855,856,5,69,0,0,856,65,1,0,0,0,857,858,5,82,0,0,858,859,5,69,0,0,859,860,5,83,0,0,860,861,5,80,0,0,861,862,5,69,0,0,862,863,5,67,0,0,863,864,5,84,0,0,864,67,1,0,0,0,865,866,5,78,0,0,866,867,5,85,0,0,867,868,5,76,0,0,868,869,5,76,0,0,869,870,5,83,0,0,870,69,1,0,0,0,871,872,5,70,0,0,872,873,5,69,0,0,873,874,5,84,0,0,874,875,5,67,0,0,875,876,5,72,0,0,876,71,1,0,0,0,877,878,5,70,0,0,878,879,5,73,0,0,879,880,5,82,0,0,880,881,5,83,0,0,881,882,5,84,0,0,882,73,1,0,0,0,883,884,5,76,0,0,884,885,5,65,0,0,885,886,5,83,0,0,886,887,5,84,0,0,887,75,1,0,0,0,888,889,5,78,0,0,889,890,5,69,0,0,890,891,5,88,0,0,891,892,5,84,0,0,892,77,1,0,0,0,893,894,5,69,0,0,894,895,5,83,0,0,895,896,5,67,0,0,896,897,5,65,0,0,897,898,5,80,0,0,898,899,5,69,0,0,899,79,1,0,0,0,900,901,5,65,0,0,901,902,5,83,0,0,902,903,5,67,0,0,903,81,1,0,0,0,904,905,5,68,0,0,905,906,5,69,0,0,906,907,5,83,0,0,907,908,5,67,0,0,908,83,1,0,0,0,909,910,5,83,0,0,910,911,5,85,0,0,911,912,5,66,0,0,912,913,5,83,0,0,913,914,5,84,0,0,914,915,5,82,0,0,915,916,5,73,0,0,916,917,5,78,0,0,917,918,5,71,0,0,918,85,1,0,0,0,919,920,5,84,0,0,920,921,5,82,0,0,921,922,5,73,0,0,922,923,5,77,0,0,923,87,1,0,0,0,924,925,5,76,0,0,925,926,5,69,0,0,926,927,5,65,0,0,927,928,5,68,0,0,928,929,5,73,0,0,929,930,5,78,0,0,930,931,5,71,0,0,931,89,1,0,0,0,932,933,5,84,0,0,933,934,5,82,0,0,934,935,5,65,0,0,935,936,5,73,0,0,936,937,5,76,0,0,937,938,5,73,0,0,938,939,5,78,0,0,939,940,5,71,0,0,940,91,1,0,0,0,941,942,5,66,0,0,942,943,5,79,0,0,943,944,5,84,0,0,944,945,5,72,0,0,945,93,1,0,0,0,946,947,5,70,0,0,947,948,5,79,0,0,948,949,5,82,0,0,949,95,1,0,0,0,950,951,5,84,0,0,951,952,5,73,0,0,952,953,5,77,0,0,953,954,5,69,0,0,954,97,1,0,0,0,955,956,5,90,0,0,956,957,5,79,0,0,957,958,5,78,0,0,958,959,5,69,0,0,959,99,1,0,0,0,960,961,5,89,0,0,961,962,5,69,0,0,962,963,5,65,0,0,963,964,5,82,0,0,964,101,1,0,0,0,965,966,5,77,0,0,966,967,5,79,0,0,967,968,5,78,0,0,968,969,5,84,0,0,969,970,5,72,0,0,970,103,1,0,0,0,971,972,5,68,0,0,972,973,5,65,0,0,973,974,5,89,0,0,974,105,1,0,0,0,975,976,5,72,0,0,976,977,5,79,0,0,977,978,5,85,0,0,978,979,5,82,0,0,979,107,1,0,0,0,980,981,5,77,0,0,981,982,5,73,0,0,982,983,5,78,0,0,983,984,5,85,0,0,984,985,5,84,0,0,985,986,5,69,0,0,986,109,1,0,0,0,987,988,5,83,0,0,988,989,5,69,0,0,989,990,5,67,0,0,990,991,5,79,0,0,991,992,5,78,0,0,992,993,5,68,0,0,993,111,1,0,0,0,994,995,5,67,0,0,995,996,5,85,0,0,996,997,5,82,0,0,997,998,5,82,0,0,998,999,5,69,0,0,999,1e3,5,78,0,0,1e3,1001,5,84,0,0,1001,1002,5,95,0,0,1002,1003,5,68,0,0,1003,1004,5,65,0,0,1004,1005,5,84,0,0,1005,1006,5,69,0,0,1006,113,1,0,0,0,1007,1008,5,67,0,0,1008,1009,5,85,0,0,1009,1010,5,82,0,0,1010,1011,5,82,0,0,1011,1012,5,69,0,0,1012,1013,5,78,0,0,1013,1014,5,84,0,0,1014,1015,5,95,0,0,1015,1016,5,84,0,0,1016,1017,5,73,0,0,1017,1018,5,77,0,0,1018,1019,5,69,0,0,1019,115,1,0,0,0,1020,1021,5,67,0,0,1021,1022,5,85,0,0,1022,1023,5,82,0,0,1023,1024,5,82,0,0,1024,1025,5,69,0,0,1025,1026,5,78,0,0,1026,1027,5,84,0,0,1027,1028,5,95,0,0,1028,1029,5,84,0,0,1029,1030,5,73,0,0,1030,1031,5,77,0,0,1031,1032,5,69,0,0,1032,1033,5,83,0,0,1033,1034,5,84,0,0,1034,1035,5,65,0,0,1035,1036,5,77,0,0,1036,1037,5,80,0,0,1037,117,1,0,0,0,1038,1039,5,67,0,0,1039,1040,5,85,0,0,1040,1041,5,82,0,0,1041,1042,5,82,0,0,1042,1043,5,69,0,0,1043,1044,5,78,0,0,1044,1045,5,84,0,0,1045,1046,5,95,0,0,1046,1047,5,83,0,0,1047,1048,5,67,0,0,1048,1049,5,72,0,0,1049,1050,5,69,0,0,1050,1051,5,77,0,0,1051,1052,5,65,0,0,1052,119,1,0,0,0,1053,1054,5,67,0,0,1054,1055,5,85,0,0,1055,1056,5,82,0,0,1056,1057,5,82,0,0,1057,1058,5,69,0,0,1058,1059,5,78,0,0,1059,1060,5,84,0,0,1060,1061,5,95,0,0,1061,1062,5,85,0,0,1062,1063,5,83,0,0,1063,1064,5,69,0,0,1064,1065,5,82,0,0,1065,121,1,0,0,0,1066,1067,5,67,0,0,1067,1068,5,85,0,0,1068,1069,5,82,0,0,1069,1070,5,82,0,0,1070,1071,5,69,0,0,1071,1072,5,78,0,0,1072,1073,5,84,0,0,1073,1074,5,95,0,0,1074,1075,5,82,0,0,1075,1076,5,79,0,0,1076,1077,5,76,0,0,1077,1078,5,69,0,0,1078,123,1,0,0,0,1079,1080,5,83,0,0,1080,1081,5,69,0,0,1081,1082,5,83,0,0,1082,1083,5,83,0,0,1083,1084,5,73,0,0,1084,1085,5,79,0,0,1085,1086,5,78,0,0,1086,1087,5,95,0,0,1087,1088,5,85,0,0,1088,1089,5,83,0,0,1089,1090,5,69,0,0,1090,1091,5,82,0,0,1091,125,1,0,0,0,1092,1093,5,69,0,0,1093,1094,5,88,0,0,1094,1095,5,84,0,0,1095,1096,5,82,0,0,1096,1097,5,65,0,0,1097,1098,5,67,0,0,1098,1099,5,84,0,0,1099,127,1,0,0,0,1100,1101,5,67,0,0,1101,1102,5,65,0,0,1102,1103,5,83,0,0,1103,1104,5,69,0,0,1104,129,1,0,0,0,1105,1106,5,87,0,0,1106,1107,5,72,0,0,1107,1108,5,69,0,0,1108,1109,5,78,0,0,1109,131,1,0,0,0,1110,1111,5,84,0,0,1111,1112,5,72,0,0,1112,1113,5,69,0,0,1113,1114,5,78,0,0,1114,133,1,0,0,0,1115,1116,5,69,0,0,1116,1117,5,76,0,0,1117,1118,5,83,0,0,1118,1119,5,69,0,0,1119,135,1,0,0,0,1120,1121,5,69,0,0,1121,1122,5,78,0,0,1122,1123,5,68,0,0,1123,137,1,0,0,0,1124,1125,5,73,0,0,1125,1126,5,70,0,0,1126,139,1,0,0,0,1127,1128,5,73,0,0,1128,1129,5,78,0,0,1129,1130,5,84,0,0,1130,1131,5,69,0,0,1131,1132,5,82,0,0,1132,1133,5,86,0,0,1133,1134,5,65,0,0,1134,1135,5,76,0,0,1135,141,1,0,0,0,1136,1137,5,74,0,0,1137,1138,5,79,0,0,1138,1139,5,73,0,0,1139,1140,5,78,0,0,1140,143,1,0,0,0,1141,1142,5,67,0,0,1142,1143,5,82,0,0,1143,1144,5,79,0,0,1144,1145,5,83,0,0,1145,1146,5,83,0,0,1146,145,1,0,0,0,1147,1148,5,79,0,0,1148,1149,5,85,0,0,1149,1150,5,84,0,0,1150,1151,5,69,0,0,1151,1152,5,82,0,0,1152,147,1,0,0,0,1153,1154,5,73,0,0,1154,1155,5,78,0,0,1155,1156,5,78,0,0,1156,1157,5,69,0,0,1157,1158,5,82,0,0,1158,149,1,0,0,0,1159,1160,5,76,0,0,1160,1161,5,69,0,0,1161,1162,5,70,0,0,1162,1163,5,84,0,0,1163,151,1,0,0,0,1164,1165,5,82,0,0,1165,1166,5,73,0,0,1166,1167,5,71,0,0,1167,1168,5,72,0,0,1168,1169,5,84,0,0,1169,153,1,0,0,0,1170,1171,5,70,0,0,1171,1172,5,85,0,0,1172,1173,5,76,0,0,1173,1174,5,76,0,0,1174,155,1,0,0,0,1175,1176,5,78,0,0,1176,1177,5,65,0,0,1177,1178,5,84,0,0,1178,1179,5,85,0,0,1179,1180,5,82,0,0,1180,1181,5,65,0,0,1181,1182,5,76,0,0,1182,157,1,0,0,0,1183,1184,5,85,0,0,1184,1185,5,83,0,0,1185,1186,5,73,0,0,1186,1187,5,78,0,0,1187,1188,5,71,0,0,1188,159,1,0,0,0,1189,1190,5,79,0,0,1190,1191,5,78,0,0,1191,161,1,0,0,0,1192,1193,5,79,0,0,1193,1194,5,86,0,0,1194,1195,5,69,0,0,1195,1196,5,82,0,0,1196,163,1,0,0,0,1197,1198,5,87,0,0,1198,1199,5,73,0,0,1199,1200,5,78,0,0,1200,1201,5,68,0,0,1201,1202,5,79,0,0,1202,1203,5,87,0,0,1203,165,1,0,0,0,1204,1205,5,80,0,0,1205,1206,5,65,0,0,1206,1207,5,82,0,0,1207,1208,5,84,0,0,1208,1209,5,73,0,0,1209,1210,5,84,0,0,1210,1211,5,73,0,0,1211,1212,5,79,0,0,1212,1213,5,78,0,0,1213,167,1,0,0,0,1214,1215,5,80,0,0,1215,1216,5,82,0,0,1216,1217,5,79,0,0,1217,1218,5,77,0,0,1218,1219,5,79,0,0,1219,1220,5,84,0,0,1220,1221,5,69,0,0,1221,169,1,0,0,0,1222,1223,5,82,0,0,1223,1224,5,65,0,0,1224,1225,5,78,0,0,1225,1226,5,71,0,0,1226,1227,5,69,0,0,1227,171,1,0,0,0,1228,1229,5,82,0,0,1229,1230,5,79,0,0,1230,1231,5,87,0,0,1231,1232,5,83,0,0,1232,173,1,0,0,0,1233,1234,5,85,0,0,1234,1235,5,78,0,0,1235,1236,5,66,0,0,1236,1237,5,79,0,0,1237,1238,5,85,0,0,1238,1239,5,78,0,0,1239,1240,5,68,0,0,1240,1241,5,69,0,0,1241,1242,5,68,0,0,1242,175,1,0,0,0,1243,1244,5,80,0,0,1244,1245,5,82,0,0,1245,1246,5,69,0,0,1246,1247,5,67,0,0,1247,1248,5,69,0,0,1248,1249,5,68,0,0,1249,1250,5,73,0,0,1250,1251,5,78,0,0,1251,1252,5,71,0,0,1252,177,1,0,0,0,1253,1254,5,70,0,0,1254,1255,5,79,0,0,1255,1256,5,76,0,0,1256,1257,5,76,0,0,1257,1258,5,79,0,0,1258,1259,5,87,0,0,1259,1260,5,73,0,0,1260,1261,5,78,0,0,1261,1262,5,71,0,0,1262,179,1,0,0,0,1263,1264,5,67,0,0,1264,1265,5,85,0,0,1265,1266,5,82,0,0,1266,1267,5,82,0,0,1267,1268,5,69,0,0,1268,1269,5,78,0,0,1269,1270,5,84,0,0,1270,181,1,0,0,0,1271,1272,5,82,0,0,1272,1273,5,79,0,0,1273,1274,5,87,0,0,1274,183,1,0,0,0,1275,1276,5,87,0,0,1276,1277,5,73,0,0,1277,1278,5,84,0,0,1278,1279,5,72,0,0,1279,185,1,0,0,0,1280,1281,5,87,0,0,1281,1282,5,73,0,0,1282,1283,5,84,0,0,1283,1284,5,72,0,0,1284,1285,5,79,0,0,1285,1286,5,85,0,0,1286,1287,5,84,0,0,1287,187,1,0,0,0,1288,1289,5,82,0,0,1289,1290,5,69,0,0,1290,1291,5,67,0,0,1291,1292,5,85,0,0,1292,1293,5,82,0,0,1293,1294,5,83,0,0,1294,1295,5,73,0,0,1295,1296,5,86,0,0,1296,1297,5,69,0,0,1297,189,1,0,0,0,1298,1299,5,67,0,0,1299,1300,5,82,0,0,1300,1301,5,69,0,0,1301,1302,5,65,0,0,1302,1303,5,84,0,0,1303,1304,5,69,0,0,1304,191,1,0,0,0,1305,1306,5,66,0,0,1306,1307,5,76,0,0,1307,1308,5,79,0,0,1308,1309,5,66,0,0,1309,193,1,0,0,0,1310,1311,5,84,0,0,1311,1312,5,65,0,0,1312,1313,5,66,0,0,1313,1314,5,76,0,0,1314,1315,5,69,0,0,1315,195,1,0,0,0,1316,1317,5,83,0,0,1317,1318,5,87,0,0,1318,1319,5,65,0,0,1319,1320,5,80,0,0,1320,197,1,0,0,0,1321,1322,5,71,0,0,1322,1323,5,67,0,0,1323,199,1,0,0,0,1324,1325,5,68,0,0,1325,1326,5,65,0,0,1326,1327,5,78,0,0,1327,1328,5,71,0,0,1328,1329,5,76,0,0,1329,1330,5,73,0,0,1330,1331,5,78,0,0,1331,1332,5,71,0,0,1332,201,1,0,0,0,1333,1334,5,65,0,0,1334,1335,5,82,0,0,1335,1336,5,84,0,0,1336,1337,5,73,0,0,1337,1338,5,70,0,0,1338,1339,5,65,0,0,1339,1340,5,67,0,0,1340,1341,5,84,0,0,1341,1342,5,83,0,0,1342,203,1,0,0,0,1343,1344,5,68,0,0,1344,1345,5,69,0,0,1345,1346,5,67,0,0,1346,1347,5,79,0,0,1347,1348,5,77,0,0,1348,1349,5,77,0,0,1349,1350,5,73,0,0,1350,1351,5,83,0,0,1351,1352,5,83,0,0,1352,1353,5,73,0,0,1353,1354,5,79,0,0,1354,1355,5,78,0,0,1355,205,1,0,0,0,1356,1357,5,67,0,0,1357,1358,5,76,0,0,1358,1359,5,85,0,0,1359,1360,5,83,0,0,1360,1361,5,84,0,0,1361,1362,5,69,0,0,1362,1363,5,82,0,0,1363,207,1,0,0,0,1364,1365,5,82,0,0,1365,1366,5,69,0,0,1366,1367,5,80,0,0,1367,1368,5,79,0,0,1368,1369,5,83,0,0,1369,1370,5,73,0,0,1370,1371,5,84,0,0,1371,1372,5,79,0,0,1372,1373,5,82,0,0,1373,1374,5,89,0,0,1374,209,1,0,0,0,1375,1376,5,83,0,0,1376,1377,5,78,0,0,1377,1378,5,65,0,0,1378,1379,5,80,0,0,1379,1380,5,83,0,0,1380,1381,5,72,0,0,1381,1382,5,79,0,0,1382,1383,5,84,0,0,1383,211,1,0,0,0,1384,1385,5,65,0,0,1385,1386,5,76,0,0,1386,1387,5,84,0,0,1387,1388,5,69,0,0,1388,1389,5,82,0,0,1389,213,1,0,0,0,1390,1391,5,75,0,0,1391,1392,5,73,0,0,1392,1393,5,76,0,0,1393,1394,5,76,0,0,1394,215,1,0,0,0,1395,1396,5,79,0,0,1396,1397,5,78,0,0,1397,1398,5,76,0,0,1398,1399,5,89,0,0,1399,217,1,0,0,0,1400,1401,5,65,0,0,1401,1402,5,68,0,0,1402,1403,5,68,0,0,1403,219,1,0,0,0,1404,1405,5,67,0,0,1405,1406,5,79,0,0,1406,1407,5,76,0,0,1407,1408,5,85,0,0,1408,1409,5,77,0,0,1409,1410,5,78,0,0,1410,221,1,0,0,0,1411,1412,5,79,0,0,1412,1413,5,80,0,0,1413,1414,5,69,0,0,1414,1415,5,78,0,0,1415,223,1,0,0,0,1416,1417,5,67,0,0,1417,1418,5,76,0,0,1418,1419,5,79,0,0,1419,1420,5,83,0,0,1420,1421,5,69,0,0,1421,225,1,0,0,0,1422,1423,5,82,0,0,1423,1424,5,69,0,0,1424,1425,5,78,0,0,1425,1426,5,65,0,0,1426,1427,5,77,0,0,1427,1428,5,69,0,0,1428,227,1,0,0,0,1429,1430,5,82,0,0,1430,1431,5,69,0,0,1431,1432,5,82,0,0,1432,1433,5,79,0,0,1433,1434,5,85,0,0,1434,1435,5,84,0,0,1435,1436,5,69,0,0,1436,229,1,0,0,0,1437,1438,5,77,0,0,1438,1439,5,79,0,0,1439,1440,5,86,0,0,1440,1441,5,69,0,0,1441,231,1,0,0,0,1442,1443,5,83,0,0,1443,1444,5,72,0,0,1444,1445,5,65,0,0,1445,1446,5,82,0,0,1446,1447,5,68,0,0,1447,233,1,0,0,0,1448,1449,5,65,0,0,1449,1450,5,76,0,0,1450,1451,5,76,0,0,1451,1452,5,79,0,0,1452,1453,5,67,0,0,1453,1454,5,65,0,0,1454,1455,5,84,0,0,1455,1456,5,69,0,0,1456,235,1,0,0,0,1457,1458,5,82,0,0,1458,1459,5,69,0,0,1459,1460,5,80,0,0,1460,1461,5,76,0,0,1461,1462,5,73,0,0,1462,1463,5,67,0,0,1463,1464,5,65,0,0,1464,237,1,0,0,0,1465,1466,5,67,0,0,1466,1467,5,65,0,0,1467,1468,5,78,0,0,1468,1469,5,67,0,0,1469,1470,5,69,0,0,1470,1471,5,76,0,0,1471,239,1,0,0,0,1472,1473,5,82,0,0,1473,1474,5,69,0,0,1474,1475,5,84,0,0,1475,1476,5,82,0,0,1476,1477,5,89,0,0,1477,241,1,0,0,0,1478,1479,5,70,0,0,1479,1480,5,65,0,0,1480,1481,5,73,0,0,1481,1482,5,76,0,0,1482,1483,5,69,0,0,1483,1484,5,68,0,0,1484,243,1,0,0,0,1485,1486,5,66,0,0,1486,1487,5,79,0,0,1487,1488,5,79,0,0,1488,1489,5,76,0,0,1489,1490,5,69,0,0,1490,1491,5,65,0,0,1491,1492,5,78,0,0,1492,245,1,0,0,0,1493,1494,5,66,0,0,1494,1495,5,89,0,0,1495,1496,5,84,0,0,1496,1497,5,69,0,0,1497,247,1,0,0,0,1498,1499,5,83,0,0,1499,1500,5,72,0,0,1500,1501,5,79,0,0,1501,1502,5,82,0,0,1502,1503,5,84,0,0,1503,249,1,0,0,0,1504,1505,5,73,0,0,1505,1506,5,78,0,0,1506,1507,5,84,0,0,1507,1508,5,69,0,0,1508,1509,5,71,0,0,1509,1510,5,69,0,0,1510,1511,5,82,0,0,1511,251,1,0,0,0,1512,1513,5,73,0,0,1513,1514,5,78,0,0,1514,1515,5,84,0,0,1515,253,1,0,0,0,1516,1517,5,76,0,0,1517,1518,5,79,0,0,1518,1519,5,78,0,0,1519,1520,5,71,0,0,1520,255,1,0,0,0,1521,1522,5,70,0,0,1522,1523,5,76,0,0,1523,1524,5,79,0,0,1524,1525,5,65,0,0,1525,1526,5,84,0,0,1526,257,1,0,0,0,1527,1528,5,68,0,0,1528,1529,5,79,0,0,1529,1530,5,85,0,0,1530,1531,5,66,0,0,1531,1532,5,76,0,0,1532,1533,5,69,0,0,1533,259,1,0,0,0,1534,1535,5,80,0,0,1535,1536,5,82,0,0,1536,1537,5,69,0,0,1537,1538,5,67,0,0,1538,1539,5,73,0,0,1539,1540,5,83,0,0,1540,1541,5,73,0,0,1541,1542,5,79,0,0,1542,1543,5,78,0,0,1543,261,1,0,0,0,1544,1545,5,84,0,0,1545,1546,5,73,0,0,1546,1547,5,77,0,0,1547,1548,5,69,0,0,1548,1549,5,83,0,0,1549,1550,5,84,0,0,1550,1551,5,65,0,0,1551,1552,5,77,0,0,1552,1553,5,80,0,0,1553,263,1,0,0,0,1554,1555,5,73,0,0,1555,1556,5,80,0,0,1556,265,1,0,0,0,1557,1558,5,67,0,0,1558,1559,5,72,0,0,1559,1560,5,65,0,0,1560,1561,5,82,0,0,1561,1562,5,65,0,0,1562,1563,5,67,0,0,1563,1564,5,84,0,0,1564,1565,5,69,0,0,1565,1566,5,82,0,0,1566,267,1,0,0,0,1567,1568,5,34,0,0,1568,1569,5,67,0,0,1569,1570,5,72,0,0,1570,1571,5,65,0,0,1571,1572,5,82,0,0,1572,1573,5,34,0,0,1573,269,1,0,0,0,1574,1575,5,86,0,0,1575,1576,5,65,0,0,1576,1577,5,82,0,0,1577,1578,5,89,0,0,1578,1579,5,73,0,0,1579,1580,5,78,0,0,1580,1581,5,71,0,0,1581,271,1,0,0,0,1582,1583,5,79,0,0,1583,1584,5,66,0,0,1584,1585,5,74,0,0,1585,1586,5,69,0,0,1586,1587,5,67,0,0,1587,1588,5,84,0,0,1588,273,1,0,0,0,1589,1590,5,83,0,0,1590,1591,5,84,0,0,1591,1592,5,82,0,0,1592,1593,5,73,0,0,1593,1594,5,78,0,0,1594,1595,5,71,0,0,1595,275,1,0,0,0,1596,1597,5,71,0,0,1597,1598,5,69,0,0,1598,1599,5,79,0,0,1599,1600,5,95,0,0,1600,1601,5,80,0,0,1601,1602,5,79,0,0,1602,1603,5,73,0,0,1603,1604,5,78,0,0,1604,1605,5,84,0,0,1605,277,1,0,0,0,1606,1607,5,71,0,0,1607,1608,5,69,0,0,1608,1609,5,79,0,0,1609,1610,5,95,0,0,1610,1611,5,83,0,0,1611,1612,5,72,0,0,1612,1613,5,65,0,0,1613,1614,5,80,0,0,1614,1615,5,69,0,0,1615,279,1,0,0,0,1616,1617,5,71,0,0,1617,1618,5,76,0,0,1618,1619,5,79,0,0,1619,1620,5,66,0,0,1620,1621,5,65,0,0,1621,1622,5,76,0,0,1622,281,1,0,0,0,1623,1624,5,83,0,0,1624,1625,5,69,0,0,1625,1626,5,83,0,0,1626,1627,5,83,0,0,1627,1628,5,73,0,0,1628,1629,5,79,0,0,1629,1630,5,78,0,0,1630,283,1,0,0,0,1631,1632,5,76,0,0,1632,1633,5,79,0,0,1633,1634,5,67,0,0,1634,1635,5,65,0,0,1635,1636,5,76,0,0,1636,285,1,0,0,0,1637,1638,5,66,0,0,1638,1639,5,69,0,0,1639,1640,5,71,0,0,1640,1641,5,73,0,0,1641,1642,5,78,0,0,1642,287,1,0,0,0,1643,1644,5,83,0,0,1644,1645,5,84,0,0,1645,1646,5,65,0,0,1646,1647,5,82,0,0,1647,1648,5,84,0,0,1648,289,1,0,0,0,1649,1650,5,67,0,0,1650,1651,5,79,0,0,1651,1652,5,77,0,0,1652,1653,5,77,0,0,1653,1654,5,73,0,0,1654,1655,5,84,0,0,1655,291,1,0,0,0,1656,1657,5,87,0,0,1657,1658,5,79,0,0,1658,1659,5,82,0,0,1659,1660,5,75,0,0,1660,293,1,0,0,0,1661,1662,5,84,0,0,1662,1663,5,82,0,0,1663,1664,5,65,0,0,1664,1665,5,78,0,0,1665,1666,5,83,0,0,1666,1667,5,65,0,0,1667,1668,5,67,0,0,1668,1669,5,84,0,0,1669,1670,5,73,0,0,1670,1671,5,79,0,0,1671,1672,5,78,0,0,1672,295,1,0,0,0,1673,1674,5,84,0,0,1674,1675,5,82,0,0,1675,1676,5,65,0,0,1676,1677,5,78,0,0,1677,1678,5,83,0,0,1678,1679,5,65,0,0,1679,1680,5,67,0,0,1680,1681,5,84,0,0,1681,1682,5,73,0,0,1682,1683,5,79,0,0,1683,1684,5,78,0,0,1684,1685,5,95,0,0,1685,1686,5,73,0,0,1686,1687,5,83,0,0,1687,1688,5,79,0,0,1688,1689,5,76,0,0,1689,1690,5,65,0,0,1690,1691,5,84,0,0,1691,1692,5,73,0,0,1692,1693,5,79,0,0,1693,1694,5,78,0,0,1694,297,1,0,0,0,1695,1696,5,67,0,0,1696,1697,5,72,0,0,1697,1698,5,65,0,0,1698,1699,5,82,0,0,1699,1700,5,65,0,0,1700,1701,5,67,0,0,1701,1702,5,84,0,0,1702,1703,5,69,0,0,1703,1704,5,82,0,0,1704,1705,5,73,0,0,1705,1706,5,83,0,0,1706,1707,5,84,0,0,1707,1708,5,73,0,0,1708,1709,5,67,0,0,1709,1710,5,83,0,0,1710,299,1,0,0,0,1711,1712,5,73,0,0,1712,1713,5,83,0,0,1713,1714,5,79,0,0,1714,1715,5,76,0,0,1715,1716,5,65,0,0,1716,1717,5,84,0,0,1717,1718,5,73,0,0,1718,1719,5,79,0,0,1719,1720,5,78,0,0,1720,301,1,0,0,0,1721,1722,5,76,0,0,1722,1723,5,69,0,0,1723,1724,5,86,0,0,1724,1725,5,69,0,0,1725,1726,5,76,0,0,1726,303,1,0,0,0,1727,1728,5,83,0,0,1728,1729,5,69,0,0,1729,1730,5,82,0,0,1730,1731,5,73,0,0,1731,1732,5,65,0,0,1732,1733,5,76,0,0,1733,1734,5,73,0,0,1734,1735,5,90,0,0,1735,1736,5,65,0,0,1736,1737,5,66,0,0,1737,1738,5,76,0,0,1738,1739,5,69,0,0,1739,305,1,0,0,0,1740,1741,5,82,0,0,1741,1742,5,69,0,0,1742,1743,5,80,0,0,1743,1744,5,69,0,0,1744,1745,5,65,0,0,1745,1746,5,84,0,0,1746,1747,5,65,0,0,1747,1748,5,66,0,0,1748,1749,5,76,0,0,1749,1750,5,69,0,0,1750,307,1,0,0,0,1751,1752,5,67,0,0,1752,1753,5,79,0,0,1753,1754,5,77,0,0,1754,1755,5,77,0,0,1755,1756,5,73,0,0,1756,1757,5,84,0,0,1757,1758,5,84,0,0,1758,1759,5,69,0,0,1759,1760,5,68,0,0,1760,309,1,0,0,0,1761,1762,5,85,0,0,1762,1763,5,78,0,0,1763,1764,5,67,0,0,1764,1765,5,79,0,0,1765,1766,5,77,0,0,1766,1767,5,77,0,0,1767,1768,5,73,0,0,1768,1769,5,84,0,0,1769,1770,5,84,0,0,1770,1771,5,69,0,0,1771,1772,5,68,0,0,1772,311,1,0,0,0,1773,1774,5,82,0,0,1774,1775,5,69,0,0,1775,1776,5,65,0,0,1776,1777,5,68,0,0,1777,313,1,0,0,0,1778,1779,5,87,0,0,1779,1780,5,82,0,0,1780,1781,5,73,0,0,1781,1782,5,84,0,0,1782,1783,5,69,0,0,1783,315,1,0,0,0,1784,1785,5,68,0,0,1785,1786,5,69,0,0,1786,1787,5,70,0,0,1787,1788,5,69,0,0,1788,1789,5,82,0,0,1789,1790,5,82,0,0,1790,1791,5,65,0,0,1791,1792,5,66,0,0,1792,1793,5,76,0,0,1793,1794,5,69,0,0,1794,317,1,0,0,0,1795,1796,5,82,0,0,1796,1797,5,69,0,0,1797,1798,5,84,0,0,1798,1799,5,85,0,0,1799,1800,5,82,0,0,1800,1801,5,78,0,0,1801,1802,5,83,0,0,1802,319,1,0,0,0,1803,1804,5,67,0,0,1804,1805,5,65,0,0,1805,1806,5,76,0,0,1806,1807,5,76,0,0,1807,1808,5,69,0,0,1808,1809,5,68,0,0,1809,321,1,0,0,0,1810,1811,5,82,0,0,1811,1812,5,69,0,0,1812,1813,5,80,0,0,1813,1814,5,76,0,0,1814,1815,5,65,0,0,1815,1816,5,67,0,0,1816,1817,5,69,0,0,1817,323,1,0,0,0,1818,1819,5,70,0,0,1819,1820,5,85,0,0,1820,1821,5,78,0,0,1821,1822,5,67,0,0,1822,1823,5,84,0,0,1823,1824,5,73,0,0,1824,1825,5,79,0,0,1825,1826,5,78,0,0,1826,325,1,0,0,0,1827,1828,5,76,0,0,1828,1829,5,65,0,0,1829,1830,5,78,0,0,1830,1831,5,71,0,0,1831,1832,5,85,0,0,1832,1833,5,65,0,0,1833,1834,5,71,0,0,1834,1835,5,69,0,0,1835,327,1,0,0,0,1836,1837,5,73,0,0,1837,1838,5,78,0,0,1838,1839,5,80,0,0,1839,1840,5,85,0,0,1840,1841,5,84,0,0,1841,329,1,0,0,0,1842,1843,5,65,0,0,1843,1844,5,78,0,0,1844,1845,5,65,0,0,1845,1846,5,76,0,0,1846,1847,5,89,0,0,1847,1848,5,90,0,0,1848,1849,5,69,0,0,1849,331,1,0,0,0,1850,1851,5,67,0,0,1851,1852,5,79,0,0,1852,1853,5,83,0,0,1853,1854,5,84,0,0,1854,1855,5,83,0,0,1855,333,1,0,0,0,1856,1857,5,86,0,0,1857,1858,5,69,0,0,1858,1859,5,82,0,0,1859,1860,5,66,0,0,1860,1861,5,79,0,0,1861,1862,5,83,0,0,1862,1863,5,69,0,0,1863,335,1,0,0,0,1864,1865,5,68,0,0,1865,1866,5,73,0,0,1866,1867,5,83,0,0,1867,1868,5,67,0,0,1868,1869,5,65,0,0,1869,1870,5,82,0,0,1870,1871,5,68,0,0,1871,337,1,0,0,0,1872,1873,5,80,0,0,1873,1874,5,76,0,0,1874,1875,5,65,0,0,1875,1876,5,78,0,0,1876,1877,5,83,0,0,1877,339,1,0,0,0,1878,1879,5,83,0,0,1879,1880,5,69,0,0,1880,1881,5,81,0,0,1881,1882,5,85,0,0,1882,1883,5,69,0,0,1883,1884,5,78,0,0,1884,1885,5,67,0,0,1885,1886,5,69,0,0,1886,1887,5,83,0,0,1887,341,1,0,0,0,1888,1889,5,84,0,0,1889,1890,5,69,0,0,1890,1891,5,77,0,0,1891,1892,5,80,0,0,1892,1893,5,79,0,0,1893,1894,5,82,0,0,1894,1895,5,65,0,0,1895,1896,5,82,0,0,1896,1897,5,89,0,0,1897,343,1,0,0,0,1898,1899,5,84,0,0,1899,1900,5,69,0,0,1900,1901,5,77,0,0,1901,1902,5,80,0,0,1902,345,1,0,0,0,1903,1904,5,67,0,0,1904,1905,5,79,0,0,1905,1906,5,78,0,0,1906,1907,5,83,0,0,1907,1908,5,84,0,0,1908,1909,5,82,0,0,1909,1910,5,65,0,0,1910,1911,5,73,0,0,1911,1912,5,78,0,0,1912,1913,5,84,0,0,1913,347,1,0,0,0,1914,1915,5,67,0,0,1915,1916,5,72,0,0,1916,1917,5,69,0,0,1917,1918,5,67,0,0,1918,1919,5,75,0,0,1919,349,1,0,0,0,1920,1921,5,68,0,0,1921,1922,5,69,0,0,1922,1923,5,83,0,0,1923,1924,5,67,0,0,1924,1925,5,82,0,0,1925,1926,5,73,0,0,1926,1927,5,66,0,0,1927,1928,5,69,0,0,1928,351,1,0,0,0,1929,1930,5,69,0,0,1930,1931,5,88,0,0,1931,1932,5,80,0,0,1932,1933,5,76,0,0,1933,1934,5,65,0,0,1934,1935,5,73,0,0,1935,1936,5,78,0,0,1936,353,1,0,0,0,1937,1938,5,70,0,0,1938,1939,5,79,0,0,1939,1940,5,82,0,0,1940,1941,5,77,0,0,1941,1942,5,65,0,0,1942,1943,5,84,0,0,1943,355,1,0,0,0,1944,1945,5,84,0,0,1945,1946,5,89,0,0,1946,1947,5,80,0,0,1947,1948,5,69,0,0,1948,357,1,0,0,0,1949,1950,5,84,0,0,1950,1951,5,69,0,0,1951,1952,5,88,0,0,1952,1953,5,84,0,0,1953,359,1,0,0,0,1954,1955,5,71,0,0,1955,1956,5,82,0,0,1956,1957,5,65,0,0,1957,1958,5,80,0,0,1958,1959,5,72,0,0,1959,1960,5,86,0,0,1960,1961,5,73,0,0,1961,1962,5,90,0,0,1962,361,1,0,0,0,1963,1964,5,76,0,0,1964,1965,5,79,0,0,1965,1966,5,71,0,0,1966,1967,5,73,0,0,1967,1968,5,67,0,0,1968,1969,5,65,0,0,1969,1970,5,76,0,0,1970,363,1,0,0,0,1971,1972,5,68,0,0,1972,1973,5,73,0,0,1973,1974,5,83,0,0,1974,1975,5,84,0,0,1975,1976,5,82,0,0,1976,1977,5,73,0,0,1977,1978,5,66,0,0,1978,1979,5,85,0,0,1979,1980,5,84,0,0,1980,1981,5,69,0,0,1981,1982,5,68,0,0,1982,365,1,0,0,0,1983,1984,5,67,0,0,1984,1985,5,65,0,0,1985,1986,5,83,0,0,1986,1987,5,84,0,0,1987,367,1,0,0,0,1988,1989,5,84,0,0,1989,1990,5,82,0,0,1990,1991,5,89,0,0,1991,1992,5,95,0,0,1992,1993,5,67,0,0,1993,1994,5,65,0,0,1994,1995,5,83,0,0,1995,1996,5,84,0,0,1996,369,1,0,0,0,1997,1998,5,83,0,0,1998,1999,5,72,0,0,1999,2e3,5,79,0,0,2e3,2001,5,87,0,0,2001,371,1,0,0,0,2002,2003,5,84,0,0,2003,2004,5,65,0,0,2004,2005,5,66,0,0,2005,2006,5,76,0,0,2006,2007,5,69,0,0,2007,2008,5,83,0,0,2008,373,1,0,0,0,2009,2010,5,83,0,0,2010,2011,5,67,0,0,2011,2012,5,72,0,0,2012,2013,5,69,0,0,2013,2014,5,77,0,0,2014,2015,5,65,0,0,2015,2016,5,83,0,0,2016,375,1,0,0,0,2017,2018,5,67,0,0,2018,2019,5,65,0,0,2019,2020,5,84,0,0,2020,2021,5,65,0,0,2021,2022,5,76,0,0,2022,2023,5,79,0,0,2023,2024,5,71,0,0,2024,2025,5,83,0,0,2025,377,1,0,0,0,2026,2027,5,67,0,0,2027,2028,5,79,0,0,2028,2029,5,76,0,0,2029,2030,5,85,0,0,2030,2031,5,77,0,0,2031,2032,5,78,0,0,2032,2033,5,83,0,0,2033,379,1,0,0,0,2034,2035,5,80,0,0,2035,2036,5,65,0,0,2036,2037,5,82,0,0,2037,2038,5,84,0,0,2038,2039,5,73,0,0,2039,2040,5,84,0,0,2040,2041,5,73,0,0,2041,2042,5,79,0,0,2042,2043,5,78,0,0,2043,2044,5,83,0,0,2044,381,1,0,0,0,2045,2046,5,70,0,0,2046,2047,5,85,0,0,2047,2048,5,78,0,0,2048,2049,5,67,0,0,2049,2050,5,84,0,0,2050,2051,5,73,0,0,2051,2052,5,79,0,0,2052,2053,5,78,0,0,2053,2054,5,83,0,0,2054,383,1,0,0,0,2055,2056,5,77,0,0,2056,2057,5,65,0,0,2057,2058,5,84,0,0,2058,2059,5,69,0,0,2059,2060,5,82,0,0,2060,2061,5,73,0,0,2061,2062,5,65,0,0,2062,2063,5,76,0,0,2063,2064,5,73,0,0,2064,2065,5,90,0,0,2065,2066,5,69,0,0,2066,2067,5,68,0,0,2067,385,1,0,0,0,2068,2069,5,86,0,0,2069,2070,5,73,0,0,2070,2071,5,69,0,0,2071,2072,5,87,0,0,2072,387,1,0,0,0,2073,2074,5,79,0,0,2074,2075,5,80,0,0,2075,2076,5,84,0,0,2076,2077,5,73,0,0,2077,2078,5,77,0,0,2078,2079,5,73,0,0,2079,2080,5,90,0,0,2080,2081,5,69,0,0,2081,389,1,0,0,0,2082,2083,5,82,0,0,2083,2084,5,69,0,0,2084,2085,5,70,0,0,2085,2086,5,82,0,0,2086,2087,5,69,0,0,2087,2088,5,83,0,0,2088,2089,5,72,0,0,2089,391,1,0,0,0,2090,2091,5,82,0,0,2091,2092,5,69,0,0,2092,2093,5,83,0,0,2093,2094,5,84,0,0,2094,2095,5,79,0,0,2095,2096,5,82,0,0,2096,2097,5,69,0,0,2097,393,1,0,0,0,2098,2099,5,68,0,0,2099,2100,5,82,0,0,2100,2101,5,79,0,0,2101,2102,5,80,0,0,2102,395,1,0,0,0,2103,2104,5,65,0,0,2104,2105,5,76,0,0,2105,2106,5,73,0,0,2106,2107,5,65,0,0,2107,2108,5,83,0,0,2108,397,1,0,0,0,2109,2110,5,85,0,0,2110,2111,5,78,0,0,2111,2112,5,73,0,0,2112,2113,5,79,0,0,2113,2114,5,78,0,0,2114,399,1,0,0,0,2115,2116,5,69,0,0,2116,2117,5,88,0,0,2117,2118,5,67,0,0,2118,2119,5,69,0,0,2119,2120,5,80,0,0,2120,2121,5,84,0,0,2121,401,1,0,0,0,2122,2123,5,73,0,0,2123,2124,5,78,0,0,2124,2125,5,84,0,0,2125,2126,5,69,0,0,2126,2127,5,82,0,0,2127,2128,5,83,0,0,2128,2129,5,69,0,0,2129,2130,5,67,0,0,2130,2131,5,84,0,0,2131,403,1,0,0,0,2132,2133,5,83,0,0,2133,2134,5,89,0,0,2134,2135,5,83,0,0,2135,2136,5,84,0,0,2136,2137,5,69,0,0,2137,2138,5,77,0,0,2138,405,1,0,0,0,2139,2140,5,66,0,0,2140,2141,5,69,0,0,2141,2142,5,82,0,0,2142,2143,5,78,0,0,2143,2144,5,79,0,0,2144,2145,5,85,0,0,2145,2146,5,76,0,0,2146,2147,5,76,0,0,2147,2148,5,73,0,0,2148,407,1,0,0,0,2149,2150,5,84,0,0,2150,2151,5,65,0,0,2151,2152,5,66,0,0,2152,2153,5,76,0,0,2153,2154,5,69,0,0,2154,2155,5,83,0,0,2155,2156,5,65,0,0,2156,2157,5,77,0,0,2157,2158,5,80,0,0,2158,2159,5,76,0,0,2159,2160,5,69,0,0,2160,409,1,0,0,0,2161,2162,5,83,0,0,2162,2163,5,84,0,0,2163,2164,5,82,0,0,2164,2165,5,65,0,0,2165,2166,5,84,0,0,2166,2167,5,73,0,0,2167,2168,5,70,0,0,2168,2169,5,89,0,0,2169,411,1,0,0,0,2170,2171,5,73,0,0,2171,2172,5,78,0,0,2172,2173,5,83,0,0,2173,2174,5,69,0,0,2174,2175,5,82,0,0,2175,2176,5,84,0,0,2176,413,1,0,0,0,2177,2178,5,73,0,0,2178,2179,5,78,0,0,2179,2180,5,84,0,0,2180,2181,5,79,0,0,2181,415,1,0,0,0,2182,2183,5,86,0,0,2183,2184,5,65,0,0,2184,2185,5,76,0,0,2185,2186,5,85,0,0,2186,2187,5,69,0,0,2187,2188,5,83,0,0,2188,417,1,0,0,0,2189,2190,5,68,0,0,2190,2191,5,69,0,0,2191,2192,5,76,0,0,2192,2193,5,69,0,0,2193,2194,5,84,0,0,2194,2195,5,69,0,0,2195,419,1,0,0,0,2196,2197,5,85,0,0,2197,2198,5,80,0,0,2198,2199,5,68,0,0,2199,2200,5,65,0,0,2200,2201,5,84,0,0,2201,2202,5,69,0,0,2202,421,1,0,0,0,2203,2204,5,75,0,0,2204,2205,5,69,0,0,2205,2206,5,89,0,0,2206,423,1,0,0,0,2207,2208,5,68,0,0,2208,2209,5,85,0,0,2209,2210,5,80,0,0,2210,2211,5,76,0,0,2211,2212,5,73,0,0,2212,2213,5,67,0,0,2213,2214,5,65,0,0,2214,2215,5,84,0,0,2215,2216,5,69,0,0,2216,425,1,0,0,0,2217,2218,5,67,0,0,2218,2219,5,79,0,0,2219,2220,5,78,0,0,2220,2221,5,70,0,0,2221,2222,5,76,0,0,2222,2223,5,73,0,0,2223,2224,5,67,0,0,2224,2225,5,84,0,0,2225,427,1,0,0,0,2226,2227,5,68,0,0,2227,2228,5,79,0,0,2228,429,1,0,0,0,2229,2230,5,78,0,0,2230,2231,5,79,0,0,2231,2232,5,84,0,0,2232,2233,5,72,0,0,2233,2234,5,73,0,0,2234,2235,5,78,0,0,2235,2236,5,71,0,0,2236,431,1,0,0,0,2237,2238,5,83,0,0,2238,2239,5,69,0,0,2239,2240,5,84,0,0,2240,433,1,0,0,0,2241,2242,5,82,0,0,2242,2243,5,69,0,0,2243,2244,5,83,0,0,2244,2245,5,69,0,0,2245,2246,5,84,0,0,2246,435,1,0,0,0,2247,2248,5,68,0,0,2248,2249,5,69,0,0,2249,2250,5,70,0,0,2250,2251,5,65,0,0,2251,2252,5,85,0,0,2252,2253,5,76,0,0,2253,2254,5,84,0,0,2254,437,1,0,0,0,2255,2256,5,67,0,0,2256,2257,5,79,0,0,2257,2258,5,80,0,0,2258,2259,5,89,0,0,2259,439,1,0,0,0,2260,2261,5,67,0,0,2261,2262,5,76,0,0,2262,2263,5,85,0,0,2263,2264,5,83,0,0,2264,2265,5,84,0,0,2265,2266,5,69,0,0,2266,2267,5,82,0,0,2267,2268,5,69,0,0,2268,2269,5,68,0,0,2269,441,1,0,0,0,2270,2271,5,83,0,0,2271,2272,5,72,0,0,2272,2273,5,65,0,0,2273,2274,5,82,0,0,2274,2275,5,68,0,0,2275,2276,5,83,0,0,2276,443,1,0,0,0,2277,2278,5,80,0,0,2278,2279,5,82,0,0,2279,2280,5,73,0,0,2280,2281,5,77,0,0,2281,2282,5,65,0,0,2282,2283,5,82,0,0,2283,2284,5,89,0,0,2284,2285,5,32,0,0,2285,2286,5,75,0,0,2286,2287,5,69,0,0,2287,2288,5,89,0,0,2288,445,1,0,0,0,2289,2290,5,79,0,0,2290,2291,5,70,0,0,2291,2292,5,70,0,0,2292,447,1,0,0,0,2293,2294,5,70,0,0,2294,2295,5,85,0,0,2295,2296,5,76,0,0,2296,2297,5,76,0,0,2297,2298,5,84,0,0,2298,2299,5,69,0,0,2299,2300,5,88,0,0,2300,2301,5,84,0,0,2301,449,1,0,0,0,2302,2303,5,70,0,0,2303,2304,5,73,0,0,2304,2305,5,76,0,0,2305,2306,5,84,0,0,2306,2307,5,69,0,0,2307,2308,5,82,0,0,2308,451,1,0,0,0,2309,2310,5,80,0,0,2310,2311,5,76,0,0,2311,2312,5,65,0,0,2312,2313,5,73,0,0,2313,2314,5,78,0,0,2314,453,1,0,0,0,2315,2316,5,73,0,0,2316,2317,5,78,0,0,2317,2318,5,68,0,0,2318,2319,5,69,0,0,2319,2320,5,88,0,0,2320,455,1,0,0,0,2321,2322,5,83,0,0,2322,2323,5,84,0,0,2323,2324,5,79,0,0,2324,2325,5,82,0,0,2325,2326,5,65,0,0,2326,2327,5,71,0,0,2327,2328,5,69,0,0,2328,457,1,0,0,0,2329,2330,5,82,0,0,2330,2331,5,69,0,0,2331,2332,5,84,0,0,2332,2333,5,85,0,0,2333,2334,5,82,0,0,2334,2335,5,78,0,0,2335,2336,5,73,0,0,2336,2337,5,78,0,0,2337,2338,5,71,0,0,2338,459,1,0,0,0,2339,2340,5,68,0,0,2340,2341,5,89,0,0,2341,2342,5,78,0,0,2342,2343,5,65,0,0,2343,2344,5,77,0,0,2344,2345,5,73,0,0,2345,2346,5,67,0,0,2346,461,1,0,0,0,2347,2348,5,83,0,0,2348,2349,5,84,0,0,2349,2350,5,82,0,0,2350,2351,5,73,0,0,2351,2352,5,67,0,0,2352,2353,5,84,0,0,2353,463,1,0,0,0,2354,2355,5,73,0,0,2355,2356,5,71,0,0,2356,2357,5,78,0,0,2357,2358,5,79,0,0,2358,2359,5,82,0,0,2359,2360,5,69,0,0,2360,2361,5,68,0,0,2361,465,1,0,0,0,2362,2363,5,65,0,0,2363,2364,5,82,0,0,2364,2365,5,82,0,0,2365,2366,5,65,0,0,2366,2367,5,89,0,0,2367,467,1,0,0,0,2368,2369,5,65,0,0,2369,2370,5,78,0,0,2370,2371,5,65,0,0,2371,2372,5,76,0,0,2372,2373,5,89,0,0,2373,2374,5,90,0,0,2374,2375,5,69,0,0,2375,2376,5,82,0,0,2376,469,1,0,0,0,2377,2378,5,69,0,0,2378,2379,5,88,0,0,2379,2380,5,84,0,0,2380,2381,5,69,0,0,2381,2382,5,78,0,0,2382,2383,5,68,0,0,2383,2384,5,83,0,0,2384,471,1,0,0,0,2385,2386,5,84,0,0,2386,2387,5,79,0,0,2387,2388,5,75,0,0,2388,2389,5,69,0,0,2389,2390,5,78,0,0,2390,2391,5,73,0,0,2391,2392,5,90,0,0,2392,2393,5,69,0,0,2393,2394,5,82,0,0,2394,473,1,0,0,0,2395,2396,5,84,0,0,2396,2397,5,79,0,0,2397,2398,5,75,0,0,2398,2399,5,69,0,0,2399,2400,5,78,0,0,2400,2401,5,95,0,0,2401,2402,5,70,0,0,2402,2403,5,73,0,0,2403,2404,5,76,0,0,2404,2405,5,84,0,0,2405,2406,5,69,0,0,2406,2407,5,82,0,0,2407,2408,5,83,0,0,2408,475,1,0,0,0,2409,2410,5,67,0,0,2410,2411,5,72,0,0,2411,2412,5,65,0,0,2412,2413,5,82,0,0,2413,2414,5,95,0,0,2414,2415,5,70,0,0,2415,2416,5,73,0,0,2416,2417,5,76,0,0,2417,2418,5,84,0,0,2418,2419,5,69,0,0,2419,2420,5,82,0,0,2420,2421,5,83,0,0,2421,477,1,0,0,0,2422,2423,5,80,0,0,2423,2424,5,65,0,0,2424,2425,5,82,0,0,2425,2426,5,84,0,0,2426,2427,5,73,0,0,2427,2428,5,84,0,0,2428,2429,5,73,0,0,2429,2430,5,79,0,0,2430,2431,5,78,0,0,2431,2432,5,69,0,0,2432,2433,5,68,0,0,2433,479,1,0,0,0,2434,2435,5,80,0,0,2435,2436,5,82,0,0,2436,2437,5,69,0,0,2437,2438,5,80,0,0,2438,2439,5,65,0,0,2439,2440,5,82,0,0,2440,2441,5,69,0,0,2441,481,1,0,0,0,2442,2443,5,84,0,0,2443,2444,5,82,0,0,2444,2445,5,65,0,0,2445,2446,5,78,0,0,2446,2447,5,83,0,0,2447,2448,5,73,0,0,2448,2449,5,69,0,0,2449,2450,5,78,0,0,2450,2451,5,84,0,0,2451,483,1,0,0,0,2452,2453,5,80,0,0,2453,2454,5,69,0,0,2454,2455,5,82,0,0,2455,2456,5,83,0,0,2456,2457,5,73,0,0,2457,2458,5,83,0,0,2458,2459,5,84,0,0,2459,2460,5,69,0,0,2460,2461,5,78,0,0,2461,2462,5,84,0,0,2462,485,1,0,0,0,2463,2464,5,77,0,0,2464,2465,5,65,0,0,2465,2466,5,84,0,0,2466,2467,5,67,0,0,2467,2468,5,72,0,0,2468,487,1,0,0,0,2469,2470,5,71,0,0,2470,2471,5,69,0,0,2471,2472,5,78,0,0,2472,2473,5,69,0,0,2473,2474,5,82,0,0,2474,2475,5,65,0,0,2475,2476,5,84,0,0,2476,2477,5,69,0,0,2477,2478,5,68,0,0,2478,489,1,0,0,0,2479,2480,5,65,0,0,2480,2481,5,76,0,0,2481,2482,5,87,0,0,2482,2483,5,65,0,0,2483,2484,5,89,0,0,2484,2485,5,83,0,0,2485,491,1,0,0,0,2486,2487,5,85,0,0,2487,2488,5,83,0,0,2488,2489,5,69,0,0,2489,2490,5,82,0,0,2490,493,1,0,0,0,2491,2492,5,82,0,0,2492,2493,5,79,0,0,2493,2494,5,76,0,0,2494,2495,5,69,0,0,2495,495,1,0,0,0,2496,2497,5,71,0,0,2497,2498,5,82,0,0,2498,2499,5,65,0,0,2499,2500,5,78,0,0,2500,2501,5,84,0,0,2501,497,1,0,0,0,2502,2503,5,68,0,0,2503,2504,5,69,0,0,2504,2505,5,78,0,0,2505,2506,5,89,0,0,2506,499,1,0,0,0,2507,2508,5,82,0,0,2508,2509,5,69,0,0,2509,2510,5,86,0,0,2510,2511,5,79,0,0,2511,2512,5,75,0,0,2512,2513,5,69,0,0,2513,501,1,0,0,0,2514,2515,5,80,0,0,2515,2516,5,82,0,0,2516,2517,5,73,0,0,2517,2518,5,86,0,0,2518,2519,5,73,0,0,2519,2520,5,76,0,0,2520,2521,5,69,0,0,2521,2522,5,71,0,0,2522,2523,5,69,0,0,2523,2524,5,83,0,0,2524,503,1,0,0,0,2525,2526,5,83,0,0,2526,2527,5,67,0,0,2527,2528,5,72,0,0,2528,2529,5,69,0,0,2529,2530,5,77,0,0,2530,2531,5,65,0,0,2531,505,1,0,0,0,2532,2533,5,82,0,0,2533,2534,5,69,0,0,2534,2535,5,84,0,0,2535,2536,5,85,0,0,2536,2537,5,82,0,0,2537,2538,5,78,0,0,2538,507,1,0,0,0,2539,2540,5,83,0,0,2540,2541,5,85,0,0,2541,2542,5,77,0,0,2542,2543,5,77,0,0,2543,2544,5,65,0,0,2544,2545,5,82,0,0,2545,2546,5,89,0,0,2546,509,1,0,0,0,2547,2548,5,77,0,0,2548,2549,5,69,0,0,2549,2550,5,84,0,0,2550,2551,5,65,0,0,2551,2552,5,68,0,0,2552,2553,5,65,0,0,2553,2554,5,84,0,0,2554,2555,5,65,0,0,2555,511,1,0,0,0,2556,2557,5,80,0,0,2557,2558,5,85,0,0,2558,2559,5,66,0,0,2559,2560,5,76,0,0,2560,2561,5,73,0,0,2561,2562,5,67,0,0,2562,2563,5,65,0,0,2563,2564,5,84,0,0,2564,2565,5,73,0,0,2565,2566,5,79,0,0,2566,2567,5,78,0,0,2567,513,1,0,0,0,2568,2569,5,83,0,0,2569,2570,5,85,0,0,2570,2571,5,66,0,0,2571,2572,5,83,0,0,2572,2573,5,67,0,0,2573,2574,5,82,0,0,2574,2575,5,73,0,0,2575,2576,5,80,0,0,2576,2577,5,84,0,0,2577,2578,5,73,0,0,2578,2579,5,79,0,0,2579,2580,5,78,0,0,2580,515,1,0,0,0,2581,2582,5,67,0,0,2582,2583,5,79,0,0,2583,2584,5,78,0,0,2584,2585,5,78,0,0,2585,2586,5,69,0,0,2586,2587,5,67,0,0,2587,2588,5,84,0,0,2588,2589,5,73,0,0,2589,2590,5,79,0,0,2590,2591,5,78,0,0,2591,517,1,0,0,0,2592,2593,5,69,0,0,2593,2594,5,78,0,0,2594,2595,5,65,0,0,2595,2596,5,66,0,0,2596,2597,5,76,0,0,2597,2598,5,69,0,0,2598,519,1,0,0,0,2599,2600,5,68,0,0,2600,2601,5,73,0,0,2601,2602,5,83,0,0,2602,2603,5,65,0,0,2603,2604,5,66,0,0,2604,2605,5,76,0,0,2605,2606,5,69,0,0,2606,521,1,0,0,0,2607,2608,5,68,0,0,2608,2609,5,69,0,0,2609,2610,5,67,0,0,2610,2611,5,76,0,0,2611,2612,5,65,0,0,2612,2613,5,82,0,0,2613,2614,5,69,0,0,2614,523,1,0,0,0,2615,2616,5,67,0,0,2616,2617,5,85,0,0,2617,2618,5,82,0,0,2618,2619,5,83,0,0,2619,2620,5,79,0,0,2620,2621,5,82,0,0,2621,525,1,0,0,0,2622,2623,5,65,0,0,2623,2624,5,83,0,0,2624,2625,5,69,0,0,2625,2626,5,78,0,0,2626,2627,5,83,0,0,2627,2628,5,73,0,0,2628,2629,5,84,0,0,2629,2630,5,73,0,0,2630,2631,5,86,0,0,2631,2632,5,69,0,0,2632,527,1,0,0,0,2633,2634,5,73,0,0,2634,2635,5,78,0,0,2635,2636,5,83,0,0,2636,2637,5,69,0,0,2637,2638,5,78,0,0,2638,2639,5,83,0,0,2639,2640,5,73,0,0,2640,2641,5,84,0,0,2641,2642,5,73,0,0,2642,2643,5,86,0,0,2643,2644,5,69,0,0,2644,529,1,0,0,0,2645,2646,5,66,0,0,2646,2647,5,73,0,0,2647,2648,5,78,0,0,2648,2649,5,65,0,0,2649,2650,5,82,0,0,2650,2651,5,89,0,0,2651,531,1,0,0,0,2652,2653,5,78,0,0,2653,2654,5,79,0,0,2654,533,1,0,0,0,2655,2656,5,83,0,0,2656,2657,5,67,0,0,2657,2658,5,82,0,0,2658,2659,5,79,0,0,2659,2660,5,76,0,0,2660,2661,5,76,0,0,2661,535,1,0,0,0,2662,2663,5,72,0,0,2663,2664,5,79,0,0,2664,2665,5,76,0,0,2665,2666,5,68,0,0,2666,537,1,0,0,0,2667,2668,5,65,0,0,2668,2669,5,66,0,0,2669,2670,5,83,0,0,2670,2671,5,79,0,0,2671,2672,5,76,0,0,2672,2673,5,85,0,0,2673,2674,5,84,0,0,2674,2675,5,69,0,0,2675,539,1,0,0,0,2676,2677,5,70,0,0,2677,2678,5,79,0,0,2678,2679,5,82,0,0,2679,2680,5,87,0,0,2680,2681,5,65,0,0,2681,2682,5,82,0,0,2682,2683,5,68,0,0,2683,541,1,0,0,0,2684,2685,5,66,0,0,2685,2686,5,65,0,0,2686,2687,5,67,0,0,2687,2688,5,75,0,0,2688,2689,5,87,0,0,2689,2690,5,65,0,0,2690,2691,5,82,0,0,2691,2692,5,68,0,0,2692,543,1,0,0,0,2693,2694,5,82,0,0,2694,2695,5,69,0,0,2695,2696,5,76,0,0,2696,2697,5,65,0,0,2697,2698,5,84,0,0,2698,2699,5,73,0,0,2699,2700,5,86,0,0,2700,2701,5,69,0,0,2701,545,1,0,0,0,2702,2703,5,80,0,0,2703,2704,5,82,0,0,2704,2705,5,73,0,0,2705,2706,5,79,0,0,2706,2707,5,82,0,0,2707,547,1,0,0,0,2708,2709,5,83,0,0,2709,2710,5,69,0,0,2710,2711,5,82,0,0,2711,2712,5,86,0,0,2712,2713,5,69,0,0,2713,2714,5,82,0,0,2714,549,1,0,0,0,2715,2716,5,70,0,0,2716,2717,5,79,0,0,2717,2718,5,82,0,0,2718,2719,5,69,0,0,2719,2720,5,73,0,0,2720,2721,5,71,0,0,2721,2722,5,78,0,0,2722,551,1,0,0,0,2723,2724,5,68,0,0,2724,2725,5,65,0,0,2725,2726,5,84,0,0,2726,2727,5,65,0,0,2727,553,1,0,0,0,2728,2729,5,87,0,0,2729,2730,5,82,0,0,2730,2731,5,65,0,0,2731,2732,5,80,0,0,2732,2733,5,80,0,0,2733,2734,5,69,0,0,2734,2735,5,82,0,0,2735,555,1,0,0,0,2736,2737,5,79,0,0,2737,2738,5,80,0,0,2738,2739,5,84,0,0,2739,2740,5,73,0,0,2740,2741,5,79,0,0,2741,2742,5,78,0,0,2742,2743,5,83,0,0,2743,557,1,0,0,0,2744,2745,5,77,0,0,2745,2746,5,65,0,0,2746,2747,5,80,0,0,2747,2748,5,80,0,0,2748,2749,5,73,0,0,2749,2750,5,78,0,0,2750,2751,5,71,0,0,2751,559,1,0,0,0,2752,2753,5,67,0,0,2753,2754,5,65,0,0,2754,2755,5,83,0,0,2755,2756,5,67,0,0,2756,2757,5,65,0,0,2757,2758,5,68,0,0,2758,2759,5,69,0,0,2759,561,1,0,0,0,2760,2761,5,82,0,0,2761,2762,5,69,0,0,2762,2763,5,83,0,0,2763,2764,5,84,0,0,2764,2765,5,82,0,0,2765,2766,5,73,0,0,2766,2767,5,67,0,0,2767,2768,5,84,0,0,2768,563,1,0,0,0,2769,2770,5,61,0,0,2770,565,1,0,0,0,2771,2772,5,60,0,0,2772,2776,5,62,0,0,2773,2774,5,33,0,0,2774,2776,5,61,0,0,2775,2771,1,0,0,0,2775,2773,1,0,0,0,2776,567,1,0,0,0,2777,2778,5,60,0,0,2778,569,1,0,0,0,2779,2780,5,60,0,0,2780,2781,5,61,0,0,2781,571,1,0,0,0,2782,2783,5,62,0,0,2783,573,1,0,0,0,2784,2785,5,62,0,0,2785,2786,5,61,0,0,2786,575,1,0,0,0,2787,2788,5,60,0,0,2788,2789,5,60,0,0,2789,577,1,0,0,0,2790,2791,5,126,0,0,2791,579,1,0,0,0,2792,2793,5,33,0,0,2793,2794,5,126,0,0,2794,581,1,0,0,0,2795,2796,5,126,0,0,2796,2797,5,42,0,0,2797,583,1,0,0,0,2798,2799,5,33,0,0,2799,2800,5,126,0,0,2800,2801,5,42,0,0,2801,585,1,0,0,0,2802,2803,5,43,0,0,2803,587,1,0,0,0,2804,2805,5,45,0,0,2805,589,1,0,0,0,2806,2807,5,42,0,0,2807,591,1,0,0,0,2808,2809,5,94,0,0,2809,593,1,0,0,0,2810,2811,5,47,0,0,2811,595,1,0,0,0,2812,2813,5,37,0,0,2813,597,1,0,0,0,2814,2815,5,124,0,0,2815,2816,5,124,0,0,2816,599,1,0,0,0,2817,2818,5,58,0,0,2818,2819,5,58,0,0,2819,601,1,0,0,0,2820,2821,5,59,0,0,2821,603,1,0,0,0,2822,2823,5,58,0,0,2823,605,1,0,0,0,2824,2825,5,44,0,0,2825,607,1,0,0,0,2826,2827,5,46,0,0,2827,609,1,0,0,0,2828,2829,5,40,0,0,2829,611,1,0,0,0,2830,2831,5,41,0,0,2831,613,1,0,0,0,2832,2833,5,123,0,0,2833,615,1,0,0,0,2834,2835,5,125,0,0,2835,617,1,0,0,0,2836,2837,5,91,0,0,2837,619,1,0,0,0,2838,2839,5,93,0,0,2839,621,1,0,0,0,2840,2841,5,91,0,0,2841,2842,5,93,0,0,2842,623,1,0,0,0,2843,2844,5,63,0,0,2844,625,1,0,0,0,2845,2846,5,36,0,0,2846,627,1,0,0,0,2847,2848,5,38,0,0,2848,629,1,0,0,0,2849,2850,5,124,0,0,2850,631,1,0,0,0,2851,2852,5,35,0,0,2852,633,1,0,0,0,2853,2859,5,39,0,0,2854,2858,8,0,0,0,2855,2856,5,39,0,0,2856,2858,5,39,0,0,2857,2854,1,0,0,0,2857,2855,1,0,0,0,2858,2861,1,0,0,0,2859,2857,1,0,0,0,2859,2860,1,0,0,0,2860,2862,1,0,0,0,2861,2859,1,0,0,0,2862,2863,5,39,0,0,2863,635,1,0,0,0,2864,2865,5,69,0,0,2865,2877,5,39,0,0,2866,2876,8,1,0,0,2867,2868,5,39,0,0,2868,2876,5,39,0,0,2869,2871,5,92,0,0,2870,2869,1,0,0,0,2871,2872,1,0,0,0,2872,2870,1,0,0,0,2872,2873,1,0,0,0,2873,2874,1,0,0,0,2874,2876,8,2,0,0,2875,2866,1,0,0,0,2875,2867,1,0,0,0,2875,2870,1,0,0,0,2876,2879,1,0,0,0,2877,2875,1,0,0,0,2877,2878,1,0,0,0,2878,2880,1,0,0,0,2879,2877,1,0,0,0,2880,2881,5,39,0,0,2881,637,1,0,0,0,2882,2883,5,66,0,0,2883,2887,5,39,0,0,2884,2886,7,3,0,0,2885,2884,1,0,0,0,2886,2889,1,0,0,0,2887,2885,1,0,0,0,2887,2888,1,0,0,0,2888,2890,1,0,0,0,2889,2887,1,0,0,0,2890,2891,5,39,0,0,2891,639,1,0,0,0,2892,2894,3,658,328,0,2893,2892,1,0,0,0,2894,2895,1,0,0,0,2895,2893,1,0,0,0,2895,2896,1,0,0,0,2896,2907,1,0,0,0,2897,2900,3,658,328,0,2898,2901,3,658,328,0,2899,2901,5,95,0,0,2900,2898,1,0,0,0,2900,2899,1,0,0,0,2901,2902,1,0,0,0,2902,2900,1,0,0,0,2902,2903,1,0,0,0,2903,2904,1,0,0,0,2904,2905,3,658,328,0,2905,2907,1,0,0,0,2906,2893,1,0,0,0,2906,2897,1,0,0,0,2907,641,1,0,0,0,2908,2909,3,640,319,0,2909,2911,5,46,0,0,2910,2912,3,640,319,0,2911,2910,1,0,0,0,2911,2912,1,0,0,0,2912,2940,1,0,0,0,2913,2915,5,46,0,0,2914,2916,3,658,328,0,2915,2914,1,0,0,0,2916,2917,1,0,0,0,2917,2915,1,0,0,0,2917,2918,1,0,0,0,2918,2940,1,0,0,0,2919,2927,3,640,319,0,2920,2924,5,46,0,0,2921,2923,3,658,328,0,2922,2921,1,0,0,0,2923,2926,1,0,0,0,2924,2922,1,0,0,0,2924,2925,1,0,0,0,2925,2928,1,0,0,0,2926,2924,1,0,0,0,2927,2920,1,0,0,0,2927,2928,1,0,0,0,2928,2929,1,0,0,0,2929,2930,3,656,327,0,2930,2940,1,0,0,0,2931,2933,5,46,0,0,2932,2934,3,658,328,0,2933,2932,1,0,0,0,2934,2935,1,0,0,0,2935,2933,1,0,0,0,2935,2936,1,0,0,0,2936,2937,1,0,0,0,2937,2938,3,656,327,0,2938,2940,1,0,0,0,2939,2908,1,0,0,0,2939,2913,1,0,0,0,2939,2919,1,0,0,0,2939,2931,1,0,0,0,2940,643,1,0,0,0,2941,2944,3,660,329,0,2942,2944,5,95,0,0,2943,2941,1,0,0,0,2943,2942,1,0,0,0,2944,2950,1,0,0,0,2945,2949,3,660,329,0,2946,2949,3,658,328,0,2947,2949,7,4,0,0,2948,2945,1,0,0,0,2948,2946,1,0,0,0,2948,2947,1,0,0,0,2949,2952,1,0,0,0,2950,2948,1,0,0,0,2950,2951,1,0,0,0,2951,645,1,0,0,0,2952,2950,1,0,0,0,2953,2957,3,658,328,0,2954,2958,3,660,329,0,2955,2958,3,658,328,0,2956,2958,7,4,0,0,2957,2954,1,0,0,0,2957,2955,1,0,0,0,2957,2956,1,0,0,0,2958,2959,1,0,0,0,2959,2957,1,0,0,0,2959,2960,1,0,0,0,2960,647,1,0,0,0,2961,2967,5,34,0,0,2962,2966,8,5,0,0,2963,2964,5,34,0,0,2964,2966,5,34,0,0,2965,2962,1,0,0,0,2965,2963,1,0,0,0,2966,2969,1,0,0,0,2967,2965,1,0,0,0,2967,2968,1,0,0,0,2968,2970,1,0,0,0,2969,2967,1,0,0,0,2970,2971,5,34,0,0,2971,649,1,0,0,0,2972,2978,5,96,0,0,2973,2977,8,6,0,0,2974,2975,5,96,0,0,2975,2977,5,96,0,0,2976,2973,1,0,0,0,2976,2974,1,0,0,0,2977,2980,1,0,0,0,2978,2976,1,0,0,0,2978,2979,1,0,0,0,2979,2981,1,0,0,0,2980,2978,1,0,0,0,2981,2982,5,96,0,0,2982,651,1,0,0,0,2983,2985,5,36,0,0,2984,2986,3,654,326,0,2985,2984,1,0,0,0,2985,2986,1,0,0,0,2986,2987,1,0,0,0,2987,2988,5,36,0,0,2988,2989,6,325,0,0,2989,2990,1,0,0,0,2990,2991,6,325,1,0,2991,653,1,0,0,0,2992,2993,3,644,321,0,2993,655,1,0,0,0,2994,2996,5,69,0,0,2995,2997,7,7,0,0,2996,2995,1,0,0,0,2996,2997,1,0,0,0,2997,2999,1,0,0,0,2998,3e3,3,658,328,0,2999,2998,1,0,0,0,3e3,3001,1,0,0,0,3001,2999,1,0,0,0,3001,3002,1,0,0,0,3002,657,1,0,0,0,3003,3004,7,8,0,0,3004,659,1,0,0,0,3005,3006,7,9,0,0,3006,661,1,0,0,0,3007,3008,5,45,0,0,3008,3009,5,45,0,0,3009,3013,1,0,0,0,3010,3012,8,10,0,0,3011,3010,1,0,0,0,3012,3015,1,0,0,0,3013,3011,1,0,0,0,3013,3014,1,0,0,0,3014,3017,1,0,0,0,3015,3013,1,0,0,0,3016,3018,5,13,0,0,3017,3016,1,0,0,0,3017,3018,1,0,0,0,3018,3020,1,0,0,0,3019,3021,5,10,0,0,3020,3019,1,0,0,0,3020,3021,1,0,0,0,3021,3034,1,0,0,0,3022,3023,5,47,0,0,3023,3024,5,42,0,0,3024,3028,1,0,0,0,3025,3027,9,0,0,0,3026,3025,1,0,0,0,3027,3030,1,0,0,0,3028,3029,1,0,0,0,3028,3026,1,0,0,0,3029,3031,1,0,0,0,3030,3028,1,0,0,0,3031,3032,5,42,0,0,3032,3034,5,47,0,0,3033,3007,1,0,0,0,3033,3022,1,0,0,0,3034,3035,1,0,0,0,3035,3036,6,330,2,0,3036,663,1,0,0,0,3037,3039,7,11,0,0,3038,3037,1,0,0,0,3039,3040,1,0,0,0,3040,3038,1,0,0,0,3040,3041,1,0,0,0,3041,3042,1,0,0,0,3042,3043,6,331,2,0,3043,665,1,0,0,0,3044,3045,9,0,0,0,3045,667,1,0,0,0,3046,3048,8,12,0,0,3047,3046,1,0,0,0,3048,3049,1,0,0,0,3049,3047,1,0,0,0,3049,3050,1,0,0,0,3050,3059,1,0,0,0,3051,3055,5,36,0,0,3052,3054,8,12,0,0,3053,3052,1,0,0,0,3054,3057,1,0,0,0,3055,3053,1,0,0,0,3055,3056,1,0,0,0,3056,3059,1,0,0,0,3057,3055,1,0,0,0,3058,3047,1,0,0,0,3058,3051,1,0,0,0,3059,669,1,0,0,0,3060,3062,5,36,0,0,3061,3063,3,654,326,0,3062,3061,1,0,0,0,3062,3063,1,0,0,0,3063,3064,1,0,0,0,3064,3065,5,36,0,0,3065,3066,1,0,0,0,3066,3067,4,334,0,0,3067,3068,6,334,3,0,3068,3069,1,0,0,0,3069,3070,6,334,4,0,3070,671,1,0,0,0,41,0,1,2775,2857,2859,2872,2875,2877,2887,2895,2900,2902,2906,2911,2917,2924,2927,2935,2939,2943,2948,2950,2957,2959,2965,2967,2976,2978,2985,2996,3001,3013,3017,3020,3028,3033,3040,3049,3055,3058,3062,5,1,325,0,5,1,0,0,1,0,1,334,1,4,0,0]),ns=rs.decisionToState.map(((t,e)=>new ss.dfa.DFA(t,e)));class as extends is{constructor(t){super(t),this._interp=new ss.atn.LexerATNSimulator(this,rs,ns,new ss.atn.PredictionContextCache)}}s(as,"grammarFileName","SqlBaseLexer.g4"),s(as,"channelNames",["DEFAULT_TOKEN_CHANNEL","HIDDEN"]),s(as,"modeNames",["DEFAULT_MODE","DollarQuotedStringMode"]),s(as,"literalNames",[null,"'AUTHORIZATION'","'SELECT'","'FROM'","'TO'","'AS'","'AT'","'ALL'","'ANY'","'SOME'","'DEALLOCATE'","'DIRECTORY'","'DISTINCT'","'WHERE'","'GROUP'","'BY'","'ORDER'","'HAVING'","'LIMIT'","'OFFSET'","'OR'","'AND'","'IN'","'NOT'","'EXISTS'","'BETWEEN'","'LIKE'","'ILIKE'","'IS'","'NULL'","'TRUE'","'FALSE'","'IGNORE'","'RESPECT'","'NULLS'","'FETCH'","'FIRST'","'LAST'","'NEXT'","'ESCAPE'","'ASC'","'DESC'","'SUBSTRING'","'TRIM'","'LEADING'","'TRAILING'","'BOTH'","'FOR'","'TIME'","'ZONE'","'YEAR'","'MONTH'","'DAY'","'HOUR'","'MINUTE'","'SECOND'","'CURRENT_DATE'","'CURRENT_TIME'","'CURRENT_TIMESTAMP'","'CURRENT_SCHEMA'","'CURRENT_USER'","'CURRENT_ROLE'","'SESSION_USER'","'EXTRACT'","'CASE'","'WHEN'","'THEN'","'ELSE'","'END'","'IF'","'INTERVAL'","'JOIN'","'CROSS'","'OUTER'","'INNER'","'LEFT'","'RIGHT'","'FULL'","'NATURAL'","'USING'","'ON'","'OVER'","'WINDOW'","'PARTITION'","'PROMOTE'","'RANGE'","'ROWS'","'UNBOUNDED'","'PRECEDING'","'FOLLOWING'","'CURRENT'","'ROW'","'WITH'","'WITHOUT'","'RECURSIVE'","'CREATE'","'BLOB'","'TABLE'","'SWAP'","'GC'","'DANGLING'","'ARTIFACTS'","'DECOMMISSION'","'CLUSTER'","'REPOSITORY'","'SNAPSHOT'","'ALTER'","'KILL'","'ONLY'","'ADD'","'COLUMN'","'OPEN'","'CLOSE'","'RENAME'","'REROUTE'","'MOVE'","'SHARD'","'ALLOCATE'","'REPLICA'","'CANCEL'","'RETRY'","'FAILED'","'BOOLEAN'","'BYTE'","'SHORT'","'INTEGER'","'INT'","'LONG'","'FLOAT'","'DOUBLE'","'PRECISION'","'TIMESTAMP'","'IP'","'CHARACTER'","'\"CHAR\"'","'VARYING'","'OBJECT'","'STRING'","'GEO_POINT'","'GEO_SHAPE'","'GLOBAL'","'SESSION'","'LOCAL'","'BEGIN'","'START'","'COMMIT'","'WORK'","'TRANSACTION'","'TRANSACTION_ISOLATION'","'CHARACTERISTICS'","'ISOLATION'","'LEVEL'","'SERIALIZABLE'","'REPEATABLE'","'COMMITTED'","'UNCOMMITTED'","'READ'","'WRITE'","'DEFERRABLE'","'RETURNS'","'CALLED'","'REPLACE'","'FUNCTION'","'LANGUAGE'","'INPUT'","'ANALYZE'","'COSTS'","'VERBOSE'","'DISCARD'","'PLANS'","'SEQUENCES'","'TEMPORARY'","'TEMP'","'CONSTRAINT'","'CHECK'","'DESCRIBE'","'EXPLAIN'","'FORMAT'","'TYPE'","'TEXT'","'GRAPHVIZ'","'LOGICAL'","'DISTRIBUTED'","'CAST'","'TRY_CAST'","'SHOW'","'TABLES'","'SCHEMAS'","'CATALOGS'","'COLUMNS'","'PARTITIONS'","'FUNCTIONS'","'MATERIALIZED'","'VIEW'","'OPTIMIZE'","'REFRESH'","'RESTORE'","'DROP'","'ALIAS'","'UNION'","'EXCEPT'","'INTERSECT'","'SYSTEM'","'BERNOULLI'","'TABLESAMPLE'","'STRATIFY'","'INSERT'","'INTO'","'VALUES'","'DELETE'","'UPDATE'","'KEY'","'DUPLICATE'","'CONFLICT'","'DO'","'NOTHING'","'SET'","'RESET'","'DEFAULT'","'COPY'","'CLUSTERED'","'SHARDS'","'PRIMARY KEY'","'OFF'","'FULLTEXT'","'FILTER'","'PLAIN'","'INDEX'","'STORAGE'","'RETURNING'","'DYNAMIC'","'STRICT'","'IGNORED'","'ARRAY'","'ANALYZER'","'EXTENDS'","'TOKENIZER'","'TOKEN_FILTERS'","'CHAR_FILTERS'","'PARTITIONED'","'PREPARE'","'TRANSIENT'","'PERSISTENT'","'MATCH'","'GENERATED'","'ALWAYS'","'USER'","'ROLE'","'GRANT'","'DENY'","'REVOKE'","'PRIVILEGES'","'SCHEMA'","'RETURN'","'SUMMARY'","'METADATA'","'PUBLICATION'","'SUBSCRIPTION'","'CONNECTION'","'ENABLE'","'DISABLE'","'DECLARE'","'CURSOR'","'ASENSITIVE'","'INSENSITIVE'","'BINARY'","'NO'","'SCROLL'","'HOLD'","'ABSOLUTE'","'FORWARD'","'BACKWARD'","'RELATIVE'","'PRIOR'","'SERVER'","'FOREIGN'","'DATA'","'WRAPPER'","'OPTIONS'","'MAPPING'","'CASCADE'","'RESTRICT'","'='",null,"'<'","'<='","'>'","'>='","'<<'","'~'","'!~'","'~*'","'!~*'","'+'","'-'","'*'","'^'","'/'","'%'","'||'","'::'","';'","':'","','","'.'","'('","')'","'{'","'}'","'['","']'","'[]'","'?'","'$'","'&'","'|'","'#'"]),s(as,"symbolicNames",[null,"AUTHORIZATION","SELECT","FROM","TO","AS","AT","ALL","ANY","SOME","DEALLOCATE","DIRECTORY","DISTINCT","WHERE","GROUP","BY","ORDER","HAVING","LIMIT","OFFSET","OR","AND","IN","NOT","EXISTS","BETWEEN","LIKE","ILIKE","IS","NULL","TRUE","FALSE","IGNORE","RESPECT","NULLS","FETCH","FIRST","LAST","NEXT","ESCAPE","ASC","DESC","SUBSTRING","TRIM","LEADING","TRAILING","BOTH","FOR","TIME","ZONE","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_SCHEMA","CURRENT_USER","CURRENT_ROLE","SESSION_USER","EXTRACT","CASE","WHEN","THEN","ELSE","END","IF","INTERVAL","JOIN","CROSS","OUTER","INNER","LEFT","RIGHT","FULL","NATURAL","USING","ON","OVER","WINDOW","PARTITION","PROMOTE","RANGE","ROWS","UNBOUNDED","PRECEDING","FOLLOWING","CURRENT","ROW","WITH","WITHOUT","RECURSIVE","CREATE","BLOB","TABLE","SWAP","GC","DANGLING","ARTIFACTS","DECOMMISSION","CLUSTER","REPOSITORY","SNAPSHOT","ALTER","KILL","ONLY","ADD","COLUMN","OPEN","CLOSE","RENAME","REROUTE","MOVE","SHARD","ALLOCATE","REPLICA","CANCEL","RETRY","FAILED","BOOLEAN","BYTE","SHORT","INTEGER","INT","LONG","FLOAT","DOUBLE","PRECISION","TIMESTAMP","IP","CHARACTER","CHAR_SPECIAL","VARYING","OBJECT","STRING_TYPE","GEO_POINT","GEO_SHAPE","GLOBAL","SESSION","LOCAL","BEGIN","START","COMMIT","WORK","TRANSACTION","TRANSACTION_ISOLATION","CHARACTERISTICS","ISOLATION","LEVEL","SERIALIZABLE","REPEATABLE","COMMITTED","UNCOMMITTED","READ","WRITE","DEFERRABLE","RETURNS","CALLED","REPLACE","FUNCTION","LANGUAGE","INPUT","ANALYZE","COSTS","VERBOSE","DISCARD","PLANS","SEQUENCES","TEMPORARY","TEMP","CONSTRAINT","CHECK","DESCRIBE","EXPLAIN","FORMAT","TYPE","TEXT","GRAPHVIZ","LOGICAL","DISTRIBUTED","CAST","TRY_CAST","SHOW","TABLES","SCHEMAS","CATALOGS","COLUMNS","PARTITIONS","FUNCTIONS","MATERIALIZED","VIEW","OPTIMIZE","REFRESH","RESTORE","DROP","ALIAS","UNION","EXCEPT","INTERSECT","SYSTEM","BERNOULLI","TABLESAMPLE","STRATIFY","INSERT","INTO","VALUES","DELETE","UPDATE","KEY","DUPLICATE","CONFLICT","DO","NOTHING","SET","RESET","DEFAULT","COPY","CLUSTERED","SHARDS","PRIMARY_KEY","OFF","FULLTEXT","FILTER","PLAIN","INDEX","STORAGE","RETURNING","DYNAMIC","STRICT","IGNORED","ARRAY","ANALYZER","EXTENDS","TOKENIZER","TOKEN_FILTERS","CHAR_FILTERS","PARTITIONED","PREPARE","TRANSIENT","PERSISTENT","MATCH","GENERATED","ALWAYS","USER","ROLE","GRANT","DENY","REVOKE","PRIVILEGES","SCHEMA","RETURN","SUMMARY","METADATA","PUBLICATION","SUBSCRIPTION","CONNECTION","ENABLE","DISABLE","DECLARE","CURSOR","ASENSITIVE","INSENSITIVE","BINARY","NO","SCROLL","HOLD","ABSOLUTE","FORWARD","BACKWARD","RELATIVE","PRIOR","SERVER","FOREIGN","DATA","WRAPPER","OPTIONS","MAPPING","CASCADE","RESTRICT","EQ","NEQ","LT","LTE","GT","GTE","LLT","REGEX_MATCH","REGEX_NO_MATCH","REGEX_MATCH_CI","REGEX_NO_MATCH_CI","PLUS","MINUS","ASTERISK","CARET","SLASH","PERCENT","CONCAT","CAST_OPERATOR","SEMICOLON","COLON","COMMA","DOT","OPEN_ROUND_BRACKET","CLOSE_ROUND_BRACKET","OPEN_CURLY_BRACKET","CLOSE_CURLY_BRACKET","OPEN_SQUARE_BRACKET","CLOSE_SQUARE_BRACKET","EMPTY_SQUARE_BRACKET","QUESTION","DOLLAR","BITWISE_AND","BITWISE_OR","BITWISE_XOR","STRING","ESCAPED_STRING","BIT_STRING","INTEGER_VALUE","DECIMAL_VALUE","IDENTIFIER","DIGIT_IDENTIFIER","QUOTED_IDENTIFIER","BACKQUOTED_IDENTIFIER","BEGIN_DOLLAR_QUOTED_STRING","COMMENT","WS","UNRECOGNIZED","DOLLAR_QUOTED_STRING_BODY","END_DOLLAR_QUOTED_STRING"]),s(as,"ruleNames",["AUTHORIZATION","SELECT","FROM","TO","AS","AT","ALL","ANY","SOME","DEALLOCATE","DIRECTORY","DISTINCT","WHERE","GROUP","BY","ORDER","HAVING","LIMIT","OFFSET","OR","AND","IN","NOT","EXISTS","BETWEEN","LIKE","ILIKE","IS","NULL","TRUE","FALSE","IGNORE","RESPECT","NULLS","FETCH","FIRST","LAST","NEXT","ESCAPE","ASC","DESC","SUBSTRING","TRIM","LEADING","TRAILING","BOTH","FOR","TIME","ZONE","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_SCHEMA","CURRENT_USER","CURRENT_ROLE","SESSION_USER","EXTRACT","CASE","WHEN","THEN","ELSE","END","IF","INTERVAL","JOIN","CROSS","OUTER","INNER","LEFT","RIGHT","FULL","NATURAL","USING","ON","OVER","WINDOW","PARTITION","PROMOTE","RANGE","ROWS","UNBOUNDED","PRECEDING","FOLLOWING","CURRENT","ROW","WITH","WITHOUT","RECURSIVE","CREATE","BLOB","TABLE","SWAP","GC","DANGLING","ARTIFACTS","DECOMMISSION","CLUSTER","REPOSITORY","SNAPSHOT","ALTER","KILL","ONLY","ADD","COLUMN","OPEN","CLOSE","RENAME","REROUTE","MOVE","SHARD","ALLOCATE","REPLICA","CANCEL","RETRY","FAILED","BOOLEAN","BYTE","SHORT","INTEGER","INT","LONG","FLOAT","DOUBLE","PRECISION","TIMESTAMP","IP","CHARACTER","CHAR_SPECIAL","VARYING","OBJECT","STRING_TYPE","GEO_POINT","GEO_SHAPE","GLOBAL","SESSION","LOCAL","BEGIN","START","COMMIT","WORK","TRANSACTION","TRANSACTION_ISOLATION","CHARACTERISTICS","ISOLATION","LEVEL","SERIALIZABLE","REPEATABLE","COMMITTED","UNCOMMITTED","READ","WRITE","DEFERRABLE","RETURNS","CALLED","REPLACE","FUNCTION","LANGUAGE","INPUT","ANALYZE","COSTS","VERBOSE","DISCARD","PLANS","SEQUENCES","TEMPORARY","TEMP","CONSTRAINT","CHECK","DESCRIBE","EXPLAIN","FORMAT","TYPE","TEXT","GRAPHVIZ","LOGICAL","DISTRIBUTED","CAST","TRY_CAST","SHOW","TABLES","SCHEMAS","CATALOGS","COLUMNS","PARTITIONS","FUNCTIONS","MATERIALIZED","VIEW","OPTIMIZE","REFRESH","RESTORE","DROP","ALIAS","UNION","EXCEPT","INTERSECT","SYSTEM","BERNOULLI","TABLESAMPLE","STRATIFY","INSERT","INTO","VALUES","DELETE","UPDATE","KEY","DUPLICATE","CONFLICT","DO","NOTHING","SET","RESET","DEFAULT","COPY","CLUSTERED","SHARDS","PRIMARY_KEY","OFF","FULLTEXT","FILTER","PLAIN","INDEX","STORAGE","RETURNING","DYNAMIC","STRICT","IGNORED","ARRAY","ANALYZER","EXTENDS","TOKENIZER","TOKEN_FILTERS","CHAR_FILTERS","PARTITIONED","PREPARE","TRANSIENT","PERSISTENT","MATCH","GENERATED","ALWAYS","USER","ROLE","GRANT","DENY","REVOKE","PRIVILEGES","SCHEMA","RETURN","SUMMARY","METADATA","PUBLICATION","SUBSCRIPTION","CONNECTION","ENABLE","DISABLE","DECLARE","CURSOR","ASENSITIVE","INSENSITIVE","BINARY","NO","SCROLL","HOLD","ABSOLUTE","FORWARD","BACKWARD","RELATIVE","PRIOR","SERVER","FOREIGN","DATA","WRAPPER","OPTIONS","MAPPING","CASCADE","RESTRICT","EQ","NEQ","LT","LTE","GT","GTE","LLT","REGEX_MATCH","REGEX_NO_MATCH","REGEX_MATCH_CI","REGEX_NO_MATCH_CI","PLUS","MINUS","ASTERISK","CARET","SLASH","PERCENT","CONCAT","CAST_OPERATOR","SEMICOLON","COLON","COMMA","DOT","OPEN_ROUND_BRACKET","CLOSE_ROUND_BRACKET","OPEN_CURLY_BRACKET","CLOSE_CURLY_BRACKET","OPEN_SQUARE_BRACKET","CLOSE_SQUARE_BRACKET","EMPTY_SQUARE_BRACKET","QUESTION","DOLLAR","BITWISE_AND","BITWISE_OR","BITWISE_XOR","STRING","ESCAPED_STRING","BIT_STRING","INTEGER_VALUE","DECIMAL_VALUE","IDENTIFIER","DIGIT_IDENTIFIER","QUOTED_IDENTIFIER","BACKQUOTED_IDENTIFIER","BEGIN_DOLLAR_QUOTED_STRING","TAG","EXPONENT","DIGIT","LETTER","COMMENT","WS","UNRECOGNIZED","DOLLAR_QUOTED_STRING_BODY","END_DOLLAR_QUOTED_STRING"]),as.EOF=ss.Token.EOF,as.AUTHORIZATION=1,as.SELECT=2,as.FROM=3,as.TO=4,as.AS=5,as.AT=6,as.ALL=7,as.ANY=8,as.SOME=9,as.DEALLOCATE=10,as.DIRECTORY=11,as.DISTINCT=12,as.WHERE=13,as.GROUP=14,as.BY=15,as.ORDER=16,as.HAVING=17,as.LIMIT=18,as.OFFSET=19,as.OR=20,as.AND=21,as.IN=22,as.NOT=23,as.EXISTS=24,as.BETWEEN=25,as.LIKE=26,as.ILIKE=27,as.IS=28,as.NULL=29,as.TRUE=30,as.FALSE=31,as.IGNORE=32,as.RESPECT=33,as.NULLS=34,as.FETCH=35,as.FIRST=36,as.LAST=37,as.NEXT=38,as.ESCAPE=39,as.ASC=40,as.DESC=41,as.SUBSTRING=42,as.TRIM=43,as.LEADING=44,as.TRAILING=45,as.BOTH=46,as.FOR=47,as.TIME=48,as.ZONE=49,as.YEAR=50,as.MONTH=51,as.DAY=52,as.HOUR=53,as.MINUTE=54,as.SECOND=55,as.CURRENT_DATE=56,as.CURRENT_TIME=57,as.CURRENT_TIMESTAMP=58,as.CURRENT_SCHEMA=59,as.CURRENT_USER=60,as.CURRENT_ROLE=61,as.SESSION_USER=62,as.EXTRACT=63,as.CASE=64,as.WHEN=65,as.THEN=66,as.ELSE=67,as.END=68,as.IF=69,as.INTERVAL=70,as.JOIN=71,as.CROSS=72,as.OUTER=73,as.INNER=74,as.LEFT=75,as.RIGHT=76,as.FULL=77,as.NATURAL=78,as.USING=79,as.ON=80,as.OVER=81,as.WINDOW=82,as.PARTITION=83,as.PROMOTE=84,as.RANGE=85,as.ROWS=86,as.UNBOUNDED=87,as.PRECEDING=88,as.FOLLOWING=89,as.CURRENT=90,as.ROW=91,as.WITH=92,as.WITHOUT=93,as.RECURSIVE=94,as.CREATE=95,as.BLOB=96,as.TABLE=97,as.SWAP=98,as.GC=99,as.DANGLING=100,as.ARTIFACTS=101,as.DECOMMISSION=102,as.CLUSTER=103,as.REPOSITORY=104,as.SNAPSHOT=105,as.ALTER=106,as.KILL=107,as.ONLY=108,as.ADD=109,as.COLUMN=110,as.OPEN=111,as.CLOSE=112,as.RENAME=113,as.REROUTE=114,as.MOVE=115,as.SHARD=116,as.ALLOCATE=117,as.REPLICA=118,as.CANCEL=119,as.RETRY=120,as.FAILED=121,as.BOOLEAN=122,as.BYTE=123,as.SHORT=124,as.INTEGER=125,as.INT=126,as.LONG=127,as.FLOAT=128,as.DOUBLE=129,as.PRECISION=130,as.TIMESTAMP=131,as.IP=132,as.CHARACTER=133,as.CHAR_SPECIAL=134,as.VARYING=135,as.OBJECT=136,as.STRING_TYPE=137,as.GEO_POINT=138,as.GEO_SHAPE=139,as.GLOBAL=140,as.SESSION=141,as.LOCAL=142,as.BEGIN=143,as.START=144,as.COMMIT=145,as.WORK=146,as.TRANSACTION=147,as.TRANSACTION_ISOLATION=148,as.CHARACTERISTICS=149,as.ISOLATION=150,as.LEVEL=151,as.SERIALIZABLE=152,as.REPEATABLE=153,as.COMMITTED=154,as.UNCOMMITTED=155,as.READ=156,as.WRITE=157,as.DEFERRABLE=158,as.RETURNS=159,as.CALLED=160,as.REPLACE=161,as.FUNCTION=162,as.LANGUAGE=163,as.INPUT=164,as.ANALYZE=165,as.COSTS=166,as.VERBOSE=167,as.DISCARD=168,as.PLANS=169,as.SEQUENCES=170,as.TEMPORARY=171,as.TEMP=172,as.CONSTRAINT=173,as.CHECK=174,as.DESCRIBE=175,as.EXPLAIN=176,as.FORMAT=177,as.TYPE=178,as.TEXT=179,as.GRAPHVIZ=180,as.LOGICAL=181,as.DISTRIBUTED=182,as.CAST=183,as.TRY_CAST=184,as.SHOW=185,as.TABLES=186,as.SCHEMAS=187,as.CATALOGS=188,as.COLUMNS=189,as.PARTITIONS=190,as.FUNCTIONS=191,as.MATERIALIZED=192,as.VIEW=193,as.OPTIMIZE=194,as.REFRESH=195,as.RESTORE=196,as.DROP=197,as.ALIAS=198,as.UNION=199,as.EXCEPT=200,as.INTERSECT=201,as.SYSTEM=202,as.BERNOULLI=203,as.TABLESAMPLE=204,as.STRATIFY=205,as.INSERT=206,as.INTO=207,as.VALUES=208,as.DELETE=209,as.UPDATE=210,as.KEY=211,as.DUPLICATE=212,as.CONFLICT=213,as.DO=214,as.NOTHING=215,as.SET=216,as.RESET=217,as.DEFAULT=218,as.COPY=219,as.CLUSTERED=220,as.SHARDS=221,as.PRIMARY_KEY=222,as.OFF=223,as.FULLTEXT=224,as.FILTER=225,as.PLAIN=226,as.INDEX=227,as.STORAGE=228,as.RETURNING=229,as.DYNAMIC=230,as.STRICT=231,as.IGNORED=232,as.ARRAY=233,as.ANALYZER=234,as.EXTENDS=235,as.TOKENIZER=236,as.TOKEN_FILTERS=237,as.CHAR_FILTERS=238,as.PARTITIONED=239,as.PREPARE=240,as.TRANSIENT=241,as.PERSISTENT=242,as.MATCH=243,as.GENERATED=244,as.ALWAYS=245,as.USER=246,as.ROLE=247,as.GRANT=248,as.DENY=249,as.REVOKE=250,as.PRIVILEGES=251,as.SCHEMA=252,as.RETURN=253,as.SUMMARY=254,as.METADATA=255,as.PUBLICATION=256,as.SUBSCRIPTION=257,as.CONNECTION=258,as.ENABLE=259,as.DISABLE=260,as.DECLARE=261,as.CURSOR=262,as.ASENSITIVE=263,as.INSENSITIVE=264,as.BINARY=265,as.NO=266,as.SCROLL=267,as.HOLD=268,as.ABSOLUTE=269,as.FORWARD=270,as.BACKWARD=271,as.RELATIVE=272,as.PRIOR=273,as.SERVER=274,as.FOREIGN=275,as.DATA=276,as.WRAPPER=277,as.OPTIONS=278,as.MAPPING=279,as.CASCADE=280,as.RESTRICT=281,as.EQ=282,as.NEQ=283,as.LT=284,as.LTE=285,as.GT=286,as.GTE=287,as.LLT=288,as.REGEX_MATCH=289,as.REGEX_NO_MATCH=290,as.REGEX_MATCH_CI=291,as.REGEX_NO_MATCH_CI=292,as.PLUS=293,as.MINUS=294,as.ASTERISK=295,as.CARET=296,as.SLASH=297,as.PERCENT=298,as.CONCAT=299,as.CAST_OPERATOR=300,as.SEMICOLON=301,as.COLON=302,as.COMMA=303,as.DOT=304,as.OPEN_ROUND_BRACKET=305,as.CLOSE_ROUND_BRACKET=306,as.OPEN_CURLY_BRACKET=307,as.CLOSE_CURLY_BRACKET=308,as.OPEN_SQUARE_BRACKET=309,as.CLOSE_SQUARE_BRACKET=310,as.EMPTY_SQUARE_BRACKET=311,as.QUESTION=312,as.DOLLAR=313,as.BITWISE_AND=314,as.BITWISE_OR=315,as.BITWISE_XOR=316,as.STRING=317,as.ESCAPED_STRING=318,as.BIT_STRING=319,as.INTEGER_VALUE=320,as.DECIMAL_VALUE=321,as.IDENTIFIER=322,as.DIGIT_IDENTIFIER=323,as.QUOTED_IDENTIFIER=324,as.BACKQUOTED_IDENTIFIER=325,as.BEGIN_DOLLAR_QUOTED_STRING=326,as.COMMENT=327,as.WS=328,as.UNRECOGNIZED=329,as.DOLLAR_QUOTED_STRING_BODY=330,as.END_DOLLAR_QUOTED_STRING=331,as.DollarQuotedStringMode=1,as.prototype.action=function(t,e,s){switch(e){case 325:this.BEGIN_DOLLAR_QUOTED_STRING_action(t,s);break;case 334:this.END_DOLLAR_QUOTED_STRING_action(t,s);break;default:throw"No registered action for:"+e}},as.prototype.BEGIN_DOLLAR_QUOTED_STRING_action=function(t,e){if(0!==e)throw"No registered action for:"+e;pushTag()},as.prototype.END_DOLLAR_QUOTED_STRING_action=function(t,e){if(1!==e)throw"No registered action for:"+e;popTag()},as.prototype.sempred=function(t,e,s){if(334===e)return this.END_DOLLAR_QUOTED_STRING_sempred(t,s);throw"No registered predicate for:"+e},as.prototype.END_DOLLAR_QUOTED_STRING_sempred=function(t,e){if(0===e)return isTag();throw"No predicate with index:"+e};class hs extends ss.tree.ParseTreeListener{enterStatements(t){}exitStatements(t){}enterSingleStatement(t){}exitSingleStatement(t){}enterSingleExpression(t){}exitSingleExpression(t){}enterDefault(t){}exitDefault(t){}enterBegin(t){}exitBegin(t){}enterStartTransaction(t){}exitStartTransaction(t){}enterCommit(t){}exitCommit(t){}enterExplain(t){}exitExplain(t){}enterOptimize(t){}exitOptimize(t){}enterRefreshTable(t){}exitRefreshTable(t){}enterUpdate(t){}exitUpdate(t){}enterDelete(t){}exitDelete(t){}enterShowTransaction(t){}exitShowTransaction(t){}enterShowCreateTable(t){}exitShowCreateTable(t){}enterShowTables(t){}exitShowTables(t){}enterShowSchemas(t){}exitShowSchemas(t){}enterShowColumns(t){}exitShowColumns(t){}enterShowSessionParameter(t){}exitShowSessionParameter(t){}enterAlter(t){}exitAlter(t){}enterResetGlobal(t){}exitResetGlobal(t){}enterSetTransaction(t){}exitSetTransaction(t){}enterSetSessionAuthorization(t){}exitSetSessionAuthorization(t){}enterResetSessionAuthorization(t){}exitResetSessionAuthorization(t){}enterSet(t){}exitSet(t){}enterSetGlobal(t){}exitSetGlobal(t){}enterSetTimeZone(t){}exitSetTimeZone(t){}enterKill(t){}exitKill(t){}enterInsert(t){}exitInsert(t){}enterRestore(t){}exitRestore(t){}enterCopyFrom(t){}exitCopyFrom(t){}enterCopyTo(t){}exitCopyTo(t){}enterDrop(t){}exitDrop(t){}enterGrantPrivilege(t){}exitGrantPrivilege(t){}enterDenyPrivilege(t){}exitDenyPrivilege(t){}enterRevokePrivilege(t){}exitRevokePrivilege(t){}enterCreate(t){}exitCreate(t){}enterDeallocate(t){}exitDeallocate(t){}enterAnalyze(t){}exitAnalyze(t){}enterDiscard(t){}exitDiscard(t){}enterDeclare(t){}exitDeclare(t){}enterFetch(t){}exitFetch(t){}enterClose(t){}exitClose(t){}enterDropBlobTable(t){}exitDropBlobTable(t){}enterDropTable(t){}exitDropTable(t){}enterDropAlias(t){}exitDropAlias(t){}enterDropRepository(t){}exitDropRepository(t){}enterDropSnapshot(t){}exitDropSnapshot(t){}enterDropFunction(t){}exitDropFunction(t){}enterDropRole(t){}exitDropRole(t){}enterDropView(t){}exitDropView(t){}enterDropAnalyzer(t){}exitDropAnalyzer(t){}enterDropPublication(t){}exitDropPublication(t){}enterDropSubscription(t){}exitDropSubscription(t){}enterDropServer(t){}exitDropServer(t){}enterDropForeignTable(t){}exitDropForeignTable(t){}enterDropUserMapping(t){}exitDropUserMapping(t){}enterAddColumn(t){}exitAddColumn(t){}enterDropColumn(t){}exitDropColumn(t){}enterDropCheckConstraint(t){}exitDropCheckConstraint(t){}enterAlterTableProperties(t){}exitAlterTableProperties(t){}enterAlterBlobTableProperties(t){}exitAlterBlobTableProperties(t){}enterAlterTableOpenClose(t){}exitAlterTableOpenClose(t){}enterAlterTableRenameTable(t){}exitAlterTableRenameTable(t){}enterAlterTableRenameColumn(t){}exitAlterTableRenameColumn(t){}enterAlterTableReroute(t){}exitAlterTableReroute(t){}enterAlterClusterRerouteRetryFailed(t){}exitAlterClusterRerouteRetryFailed(t){}enterAlterClusterSwapTable(t){}exitAlterClusterSwapTable(t){}enterAlterClusterDecommissionNode(t){}exitAlterClusterDecommissionNode(t){}enterAlterClusterGCDanglingArtifacts(t){}exitAlterClusterGCDanglingArtifacts(t){}enterAlterRole(t){}exitAlterRole(t){}enterAlterPublication(t){}exitAlterPublication(t){}enterAlterSubscription(t){}exitAlterSubscription(t){}enterQueryOptParens(t){}exitQueryOptParens(t){}enterQuery(t){}exitQuery(t){}enterQueryNoWith(t){}exitQueryNoWith(t){}enterLimitClause(t){}exitLimitClause(t){}enterOffsetClause(t){}exitOffsetClause(t){}enterQueryTermDefault(t){}exitQueryTermDefault(t){}enterSetOperation(t){}exitSetOperation(t){}enterSetQuant(t){}exitSetQuant(t){}enterSortItem(t){}exitSortItem(t){}enterDefaultQuerySpec(t){}exitDefaultQuerySpec(t){}enterValuesRelation(t){}exitValuesRelation(t){}enterSelectSingle(t){}exitSelectSingle(t){}enterSelectAll(t){}exitSelectAll(t){}enterWhere(t){}exitWhere(t){}enterReturning(t){}exitReturning(t){}enterFilter(t){}exitFilter(t){}enterRelationDefault(t){}exitRelationDefault(t){}enterJoinRelation(t){}exitJoinRelation(t){}enterJoinType(t){}exitJoinType(t){}enterJoinCriteria(t){}exitJoinCriteria(t){}enterAliasedRelation(t){}exitAliasedRelation(t){}enterTableRelation(t){}exitTableRelation(t){}enterSubqueryRelation(t){}exitSubqueryRelation(t){}enterParenthesizedRelation(t){}exitParenthesizedRelation(t){}enterTableWithPartition(t){}exitTableWithPartition(t){}enterTableName(t){}exitTableName(t){}enterTableFunction(t){}exitTableFunction(t){}enterAliasedColumns(t){}exitAliasedColumns(t){}enterWith(t){}exitWith(t){}enterNamedQuery(t){}exitNamedQuery(t){}enterExpr(t){}exitExpr(t){}enterLogicalNot(t){}exitLogicalNot(t){}enterBooleanDefault(t){}exitBooleanDefault(t){}enterMatch(t){}exitMatch(t){}enterLogicalBinary(t){}exitLogicalBinary(t){}enterPredicated(t){}exitPredicated(t){}enterComparison(t){}exitComparison(t){}enterQuantifiedComparison(t){}exitQuantifiedComparison(t){}enterBetween(t){}exitBetween(t){}enterInList(t){}exitInList(t){}enterInSubquery(t){}exitInSubquery(t){}enterLike(t){}exitLike(t){}enterArrayLike(t){}exitArrayLike(t){}enterNullPredicate(t){}exitNullPredicate(t){}enterDistinctFrom(t){}exitDistinctFrom(t){}enterBitwiseBinary(t){}exitBitwiseBinary(t){}enterValueExpressionDefault(t){}exitValueExpressionDefault(t){}enterConcatenation(t){}exitConcatenation(t){}enterFromStringLiteralCast(t){}exitFromStringLiteralCast(t){}enterArithmeticBinary(t){}exitArithmeticBinary(t){}enterArithmeticUnary(t){}exitArithmeticUnary(t){}enterSubqueryExpressionDefault(t){}exitSubqueryExpressionDefault(t){}enterDereference(t){}exitDereference(t){}enterColumnReference(t){}exitColumnReference(t){}enterAtTimezone(t){}exitAtTimezone(t){}enterSubscript(t){}exitSubscript(t){}enterRecordSubscript(t){}exitRecordSubscript(t){}enterExplicitFunctionDefault(t){}exitExplicitFunctionDefault(t){}enterDoubleColonCast(t){}exitDoubleColonCast(t){}enterDefaultParamOrLiteral(t){}exitDefaultParamOrLiteral(t){}enterFunctionCall(t){}exitFunctionCall(t){}enterNestedExpression(t){}exitNestedExpression(t){}enterArraySlice(t){}exitArraySlice(t){}enterExists(t){}exitExists(t){}enterEmptyArray(t){}exitEmptyArray(t){}enterSpecialDateTimeFunction(t){}exitSpecialDateTimeFunction(t){}enterCurrentSchema(t){}exitCurrentSchema(t){}enterCurrentUser(t){}exitCurrentUser(t){}enterSessionUser(t){}exitSessionUser(t){}enterLeft(t){}exitLeft(t){}enterRight(t){}exitRight(t){}enterSubstring(t){}exitSubstring(t){}enterTrim(t){}exitTrim(t){}enterExtract(t){}exitExtract(t){}enterCast(t){}exitCast(t){}enterSimpleCase(t){}exitSimpleCase(t){}enterSearchedCase(t){}exitSearchedCase(t){}enterIfCase(t){}exitIfCase(t){}enterArraySubquery(t){}exitArraySubquery(t){}enterSubqueryExpression(t){}exitSubqueryExpression(t){}enterSimpleLiteral(t){}exitSimpleLiteral(t){}enterArrayLiteral(t){}exitArrayLiteral(t){}enterObjectLiteral(t){}exitObjectLiteral(t){}enterParameterOrSimpleLiteral(t){}exitParameterOrSimpleLiteral(t){}enterParameterExpression(t){}exitParameterExpression(t){}enterIntAsLiteral(t){}exitIntAsLiteral(t){}enterNullAsLiteral(t){}exitNullAsLiteral(t){}enterIntegerParamOrLiteralDoubleColonCast(t){}exitIntegerParamOrLiteralDoubleColonCast(t){}enterIntegerParamOrLiteralCast(t){}exitIntegerParamOrLiteralCast(t){}enterParameterOrIdent(t){}exitParameterOrIdent(t){}enterParameterOrString(t){}exitParameterOrString(t){}enterPositionalParameter(t){}exitPositionalParameter(t){}enterParameterPlaceholder(t){}exitParameterPlaceholder(t){}enterNullLiteral(t){}exitNullLiteral(t){}enterEscapedCharsStringLiteral(t){}exitEscapedCharsStringLiteral(t){}enterDollarQuotedStringLiteral(t){}exitDollarQuotedStringLiteral(t){}enterStringLiteral(t){}exitStringLiteral(t){}enterBitString(t){}exitBitString(t){}enterSubscriptSafe(t){}exitSubscriptSafe(t){}enterCmpOp(t){}exitCmpOp(t){}enterSetCmpQuantifier(t){}exitSetCmpQuantifier(t){}enterWhenClause(t){}exitWhenClause(t){}enterNamedWindow(t){}exitNamedWindow(t){}enterOver(t){}exitOver(t){}enterWindowDefinition(t){}exitWindowDefinition(t){}enterWindowFrame(t){}exitWindowFrame(t){}enterUnboundedFrame(t){}exitUnboundedFrame(t){}enterCurrentRowBound(t){}exitCurrentRowBound(t){}enterBoundedFrame(t){}exitBoundedFrame(t){}enterQnames(t){}exitQnames(t){}enterQname(t){}exitQname(t){}enterSpaceSeparatedIdents(t){}exitSpaceSeparatedIdents(t){}enterIdentWithOrWithoutValue(t){}exitIdentWithOrWithoutValue(t){}enterIdents(t){}exitIdents(t){}enterIdent(t){}exitIdent(t){}enterUnquotedIdentifier(t){}exitUnquotedIdentifier(t){}enterDigitIdentifier(t){}exitDigitIdentifier(t){}enterQuotedIdentifier(t){}exitQuotedIdentifier(t){}enterBackQuotedIdentifier(t){}exitBackQuotedIdentifier(t){}enterStringLiteralOrIdentifier(t){}exitStringLiteralOrIdentifier(t){}enterStringLiteralOrIdentifierOrQname(t){}exitStringLiteralOrIdentifierOrQname(t){}enterNumericLiteral(t){}exitNumericLiteral(t){}enterIntervalLiteral(t){}exitIntervalLiteral(t){}enterIntervalField(t){}exitIntervalField(t){}enterBooleanLiteral(t){}exitBooleanLiteral(t){}enterDecimalLiteral(t){}exitDecimalLiteral(t){}enterIntegerLiteral(t){}exitIntegerLiteral(t){}enterObjectKeyValue(t){}exitObjectKeyValue(t){}enterInsertSource(t){}exitInsertSource(t){}enterOnConflict(t){}exitOnConflict(t){}enterConflictTarget(t){}exitConflictTarget(t){}enterValues(t){}exitValues(t){}enterColumns(t){}exitColumns(t){}enterAssignment(t){}exitAssignment(t){}enterCreateTable(t){}exitCreateTable(t){}enterCreateTableAs(t){}exitCreateTableAs(t){}enterCreateForeignTable(t){}exitCreateForeignTable(t){}enterCreateBlobTable(t){}exitCreateBlobTable(t){}enterCreateRepository(t){}exitCreateRepository(t){}enterCreateSnapshot(t){}exitCreateSnapshot(t){}enterCreateAnalyzer(t){}exitCreateAnalyzer(t){}enterCreateFunction(t){}exitCreateFunction(t){}enterCreateUserMapping(t){}exitCreateUserMapping(t){}enterCreateRole(t){}exitCreateRole(t){}enterCreateView(t){}exitCreateView(t){}enterCreatePublication(t){}exitCreatePublication(t){}enterCreateSubscription(t){}exitCreateSubscription(t){}enterCreateServer(t){}exitCreateServer(t){}enterMappedUser(t){}exitMappedUser(t){}enterKvOptions(t){}exitKvOptions(t){}enterKvOption(t){}exitKvOption(t){}enterFunctionArgument(t){}exitFunctionArgument(t){}enterTableOnly(t){}exitTableOnly(t){}enterTableWithPartitionDefault(t){}exitTableWithPartitionDefault(t){}enterAlterSubscriptionMode(t){}exitAlterSubscriptionMode(t){}enterPartitionedByOrClusteredInto(t){}exitPartitionedByOrClusteredInto(t){}enterPartitionedBy(t){}exitPartitionedBy(t){}enterClusteredBy(t){}exitClusteredBy(t){}enterBlobClusteredInto(t){}exitBlobClusteredInto(t){}enterColumnDefinitionDefault(t){}exitColumnDefinitionDefault(t){}enterPrimaryKeyConstraintTableLevel(t){}exitPrimaryKeyConstraintTableLevel(t){}enterIndexDefinition(t){}exitIndexDefinition(t){}enterTableCheckConstraint(t){}exitTableCheckConstraint(t){}enterColumnDefinition(t){}exitColumnDefinition(t){}enterAddColumnDefinition(t){}exitAddColumnDefinition(t){}enterDropColumnDefinition(t){}exitDropColumnDefinition(t){}enterRerouteMoveShard(t){}exitRerouteMoveShard(t){}enterRerouteAllocateReplicaShard(t){}exitRerouteAllocateReplicaShard(t){}enterReroutePromoteReplica(t){}exitReroutePromoteReplica(t){}enterRerouteCancelShard(t){}exitRerouteCancelShard(t){}enterObjectDataType(t){}exitObjectDataType(t){}enterMaybeParametrizedDataType(t){}exitMaybeParametrizedDataType(t){}enterArrayDataType(t){}exitArrayDataType(t){}enterDefinedDataTypeDefault(t){}exitDefinedDataTypeDefault(t){}enterIdentDataType(t){}exitIdentDataType(t){}enterDefinedDataType(t){}exitDefinedDataType(t){}enterObjectTypeDefinition(t){}exitObjectTypeDefinition(t){}enterColumnConstraintPrimaryKey(t){}exitColumnConstraintPrimaryKey(t){}enterColumnConstraintNotNull(t){}exitColumnConstraintNotNull(t){}enterColumnConstraintNull(t){}exitColumnConstraintNull(t){}enterColumnIndexConstraint(t){}exitColumnIndexConstraint(t){}enterColumnIndexOff(t){}exitColumnIndexOff(t){}enterColumnStorageDefinition(t){}exitColumnStorageDefinition(t){}enterColumnDefaultConstraint(t){}exitColumnDefaultConstraint(t){}enterColumnGeneratedConstraint(t){}exitColumnGeneratedConstraint(t){}enterColumnCheckConstraint(t){}exitColumnCheckConstraint(t){}enterPrimaryKeyContraint(t){}exitPrimaryKeyContraint(t){}enterCheckConstraint(t){}exitCheckConstraint(t){}enterWithGenericProperties(t){}exitWithGenericProperties(t){}enterGenericProperties(t){}exitGenericProperties(t){}enterGenericProperty(t){}exitGenericProperty(t){}enterExplainOptions(t){}exitExplainOptions(t){}enterExplainOption(t){}exitExplainOption(t){}enterMatchPredicateIdents(t){}exitMatchPredicateIdents(t){}enterMatchPredicateIdent(t){}exitMatchPredicateIdent(t){}enterAnalyzerElement(t){}exitAnalyzerElement(t){}enterTokenizer(t){}exitTokenizer(t){}enterTokenFilters(t){}exitTokenFilters(t){}enterCharFilters(t){}exitCharFilters(t){}enterNamedProperties(t){}exitNamedProperties(t){}enterTableWithPartitions(t){}exitTableWithPartitions(t){}enterSetGlobalAssignment(t){}exitSetGlobalAssignment(t){}enterSetExpr(t){}exitSetExpr(t){}enterOn(t){}exitOn(t){}enterSecurable(t){}exitSecurable(t){}enterTransactionMode(t){}exitTransactionMode(t){}enterIsolationLevel(t){}exitIsolationLevel(t){}enterDirection(t){}exitDirection(t){}enterDeclareCursorParams(t){}exitDeclareCursorParams(t){}enterNonReserved(t){}exitNonReserved(t){}}class cs extends ss.tree.ParseTreeVisitor{visitStatements(t){return this.visitChildren(t)}visitSingleStatement(t){return this.visitChildren(t)}visitSingleExpression(t){return this.visitChildren(t)}visitDefault(t){return this.visitChildren(t)}visitBegin(t){return this.visitChildren(t)}visitStartTransaction(t){return this.visitChildren(t)}visitCommit(t){return this.visitChildren(t)}visitExplain(t){return this.visitChildren(t)}visitOptimize(t){return this.visitChildren(t)}visitRefreshTable(t){return this.visitChildren(t)}visitUpdate(t){return this.visitChildren(t)}visitDelete(t){return this.visitChildren(t)}visitShowTransaction(t){return this.visitChildren(t)}visitShowCreateTable(t){return this.visitChildren(t)}visitShowTables(t){return this.visitChildren(t)}visitShowSchemas(t){return this.visitChildren(t)}visitShowColumns(t){return this.visitChildren(t)}visitShowSessionParameter(t){return this.visitChildren(t)}visitAlter(t){return this.visitChildren(t)}visitResetGlobal(t){return this.visitChildren(t)}visitSetTransaction(t){return this.visitChildren(t)}visitSetSessionAuthorization(t){return this.visitChildren(t)}visitResetSessionAuthorization(t){return this.visitChildren(t)}visitSet(t){return this.visitChildren(t)}visitSetGlobal(t){return this.visitChildren(t)}visitSetTimeZone(t){return this.visitChildren(t)}visitKill(t){return this.visitChildren(t)}visitInsert(t){return this.visitChildren(t)}visitRestore(t){return this.visitChildren(t)}visitCopyFrom(t){return this.visitChildren(t)}visitCopyTo(t){return this.visitChildren(t)}visitDrop(t){return this.visitChildren(t)}visitGrantPrivilege(t){return this.visitChildren(t)}visitDenyPrivilege(t){return this.visitChildren(t)}visitRevokePrivilege(t){return this.visitChildren(t)}visitCreate(t){return this.visitChildren(t)}visitDeallocate(t){return this.visitChildren(t)}visitAnalyze(t){return this.visitChildren(t)}visitDiscard(t){return this.visitChildren(t)}visitDeclare(t){return this.visitChildren(t)}visitFetch(t){return this.visitChildren(t)}visitClose(t){return this.visitChildren(t)}visitDropBlobTable(t){return this.visitChildren(t)}visitDropTable(t){return this.visitChildren(t)}visitDropAlias(t){return this.visitChildren(t)}visitDropRepository(t){return this.visitChildren(t)}visitDropSnapshot(t){return this.visitChildren(t)}visitDropFunction(t){return this.visitChildren(t)}visitDropRole(t){return this.visitChildren(t)}visitDropView(t){return this.visitChildren(t)}visitDropAnalyzer(t){return this.visitChildren(t)}visitDropPublication(t){return this.visitChildren(t)}visitDropSubscription(t){return this.visitChildren(t)}visitDropServer(t){return this.visitChildren(t)}visitDropForeignTable(t){return this.visitChildren(t)}visitDropUserMapping(t){return this.visitChildren(t)}visitAddColumn(t){return this.visitChildren(t)}visitDropColumn(t){return this.visitChildren(t)}visitDropCheckConstraint(t){return this.visitChildren(t)}visitAlterTableProperties(t){return this.visitChildren(t)}visitAlterBlobTableProperties(t){return this.visitChildren(t)}visitAlterTableOpenClose(t){return this.visitChildren(t)}visitAlterTableRenameTable(t){return this.visitChildren(t)}visitAlterTableRenameColumn(t){return this.visitChildren(t)}visitAlterTableReroute(t){return this.visitChildren(t)}visitAlterClusterRerouteRetryFailed(t){return this.visitChildren(t)}visitAlterClusterSwapTable(t){return this.visitChildren(t)}visitAlterClusterDecommissionNode(t){return this.visitChildren(t)}visitAlterClusterGCDanglingArtifacts(t){return this.visitChildren(t)}visitAlterRole(t){return this.visitChildren(t)}visitAlterPublication(t){return this.visitChildren(t)}visitAlterSubscription(t){return this.visitChildren(t)}visitQueryOptParens(t){return this.visitChildren(t)}visitQuery(t){return this.visitChildren(t)}visitQueryNoWith(t){return this.visitChildren(t)}visitLimitClause(t){return this.visitChildren(t)}visitOffsetClause(t){return this.visitChildren(t)}visitQueryTermDefault(t){return this.visitChildren(t)}visitSetOperation(t){return this.visitChildren(t)}visitSetQuant(t){return this.visitChildren(t)}visitSortItem(t){return this.visitChildren(t)}visitDefaultQuerySpec(t){return this.visitChildren(t)}visitValuesRelation(t){return this.visitChildren(t)}visitSelectSingle(t){return this.visitChildren(t)}visitSelectAll(t){return this.visitChildren(t)}visitWhere(t){return this.visitChildren(t)}visitReturning(t){return this.visitChildren(t)}visitFilter(t){return this.visitChildren(t)}visitRelationDefault(t){return this.visitChildren(t)}visitJoinRelation(t){return this.visitChildren(t)}visitJoinType(t){return this.visitChildren(t)}visitJoinCriteria(t){return this.visitChildren(t)}visitAliasedRelation(t){return this.visitChildren(t)}visitTableRelation(t){return this.visitChildren(t)}visitSubqueryRelation(t){return this.visitChildren(t)}visitParenthesizedRelation(t){return this.visitChildren(t)}visitTableWithPartition(t){return this.visitChildren(t)}visitTableName(t){return this.visitChildren(t)}visitTableFunction(t){return this.visitChildren(t)}visitAliasedColumns(t){return this.visitChildren(t)}visitWith(t){return this.visitChildren(t)}visitNamedQuery(t){return this.visitChildren(t)}visitExpr(t){return this.visitChildren(t)}visitLogicalNot(t){return this.visitChildren(t)}visitBooleanDefault(t){return this.visitChildren(t)}visitMatch(t){return this.visitChildren(t)}visitLogicalBinary(t){return this.visitChildren(t)}visitPredicated(t){return this.visitChildren(t)}visitComparison(t){return this.visitChildren(t)}visitQuantifiedComparison(t){return this.visitChildren(t)}visitBetween(t){return this.visitChildren(t)}visitInList(t){return this.visitChildren(t)}visitInSubquery(t){return this.visitChildren(t)}visitLike(t){return this.visitChildren(t)}visitArrayLike(t){return this.visitChildren(t)}visitNullPredicate(t){return this.visitChildren(t)}visitDistinctFrom(t){return this.visitChildren(t)}visitBitwiseBinary(t){return this.visitChildren(t)}visitValueExpressionDefault(t){return this.visitChildren(t)}visitConcatenation(t){return this.visitChildren(t)}visitFromStringLiteralCast(t){return this.visitChildren(t)}visitArithmeticBinary(t){return this.visitChildren(t)}visitArithmeticUnary(t){return this.visitChildren(t)}visitSubqueryExpressionDefault(t){return this.visitChildren(t)}visitDereference(t){return this.visitChildren(t)}visitColumnReference(t){return this.visitChildren(t)}visitAtTimezone(t){return this.visitChildren(t)}visitSubscript(t){return this.visitChildren(t)}visitRecordSubscript(t){return this.visitChildren(t)}visitExplicitFunctionDefault(t){return this.visitChildren(t)}visitDoubleColonCast(t){return this.visitChildren(t)}visitDefaultParamOrLiteral(t){return this.visitChildren(t)}visitFunctionCall(t){return this.visitChildren(t)}visitNestedExpression(t){return this.visitChildren(t)}visitArraySlice(t){return this.visitChildren(t)}visitExists(t){return this.visitChildren(t)}visitEmptyArray(t){return this.visitChildren(t)}visitSpecialDateTimeFunction(t){return this.visitChildren(t)}visitCurrentSchema(t){return this.visitChildren(t)}visitCurrentUser(t){return this.visitChildren(t)}visitSessionUser(t){return this.visitChildren(t)}visitLeft(t){return this.visitChildren(t)}visitRight(t){return this.visitChildren(t)}visitSubstring(t){return this.visitChildren(t)}visitTrim(t){return this.visitChildren(t)}visitExtract(t){return this.visitChildren(t)}visitCast(t){return this.visitChildren(t)}visitSimpleCase(t){return this.visitChildren(t)}visitSearchedCase(t){return this.visitChildren(t)}visitIfCase(t){return this.visitChildren(t)}visitArraySubquery(t){return this.visitChildren(t)}visitSubqueryExpression(t){return this.visitChildren(t)}visitSimpleLiteral(t){return this.visitChildren(t)}visitArrayLiteral(t){return this.visitChildren(t)}visitObjectLiteral(t){return this.visitChildren(t)}visitParameterOrSimpleLiteral(t){return this.visitChildren(t)}visitParameterExpression(t){return this.visitChildren(t)}visitIntAsLiteral(t){return this.visitChildren(t)}visitNullAsLiteral(t){return this.visitChildren(t)}visitIntegerParamOrLiteralDoubleColonCast(t){return this.visitChildren(t)}visitIntegerParamOrLiteralCast(t){return this.visitChildren(t)}visitParameterOrIdent(t){return this.visitChildren(t)}visitParameterOrString(t){return this.visitChildren(t)}visitPositionalParameter(t){return this.visitChildren(t)}visitParameterPlaceholder(t){return this.visitChildren(t)}visitNullLiteral(t){return this.visitChildren(t)}visitEscapedCharsStringLiteral(t){return this.visitChildren(t)}visitDollarQuotedStringLiteral(t){return this.visitChildren(t)}visitStringLiteral(t){return this.visitChildren(t)}visitBitString(t){return this.visitChildren(t)}visitSubscriptSafe(t){return this.visitChildren(t)}visitCmpOp(t){return this.visitChildren(t)}visitSetCmpQuantifier(t){return this.visitChildren(t)}visitWhenClause(t){return this.visitChildren(t)}visitNamedWindow(t){return this.visitChildren(t)}visitOver(t){return this.visitChildren(t)}visitWindowDefinition(t){return this.visitChildren(t)}visitWindowFrame(t){return this.visitChildren(t)}visitUnboundedFrame(t){return this.visitChildren(t)}visitCurrentRowBound(t){return this.visitChildren(t)}visitBoundedFrame(t){return this.visitChildren(t)}visitQnames(t){return this.visitChildren(t)}visitQname(t){return this.visitChildren(t)}visitSpaceSeparatedIdents(t){return this.visitChildren(t)}visitIdentWithOrWithoutValue(t){return this.visitChildren(t)}visitIdents(t){return this.visitChildren(t)}visitIdent(t){return this.visitChildren(t)}visitUnquotedIdentifier(t){return this.visitChildren(t)}visitDigitIdentifier(t){return this.visitChildren(t)}visitQuotedIdentifier(t){return this.visitChildren(t)}visitBackQuotedIdentifier(t){return this.visitChildren(t)}visitStringLiteralOrIdentifier(t){return this.visitChildren(t)}visitStringLiteralOrIdentifierOrQname(t){return this.visitChildren(t)}visitNumericLiteral(t){return this.visitChildren(t)}visitIntervalLiteral(t){return this.visitChildren(t)}visitIntervalField(t){return this.visitChildren(t)}visitBooleanLiteral(t){return this.visitChildren(t)}visitDecimalLiteral(t){return this.visitChildren(t)}visitIntegerLiteral(t){return this.visitChildren(t)}visitObjectKeyValue(t){return this.visitChildren(t)}visitInsertSource(t){return this.visitChildren(t)}visitOnConflict(t){return this.visitChildren(t)}visitConflictTarget(t){return this.visitChildren(t)}visitValues(t){return this.visitChildren(t)}visitColumns(t){return this.visitChildren(t)}visitAssignment(t){return this.visitChildren(t)}visitCreateTable(t){return this.visitChildren(t)}visitCreateTableAs(t){return this.visitChildren(t)}visitCreateForeignTable(t){return this.visitChildren(t)}visitCreateBlobTable(t){return this.visitChildren(t)}visitCreateRepository(t){return this.visitChildren(t)}visitCreateSnapshot(t){return this.visitChildren(t)}visitCreateAnalyzer(t){return this.visitChildren(t)}visitCreateFunction(t){return this.visitChildren(t)}visitCreateUserMapping(t){return this.visitChildren(t)}visitCreateRole(t){return this.visitChildren(t)}visitCreateView(t){return this.visitChildren(t)}visitCreatePublication(t){return this.visitChildren(t)}visitCreateSubscription(t){return this.visitChildren(t)}visitCreateServer(t){return this.visitChildren(t)}visitMappedUser(t){return this.visitChildren(t)}visitKvOptions(t){return this.visitChildren(t)}visitKvOption(t){return this.visitChildren(t)}visitFunctionArgument(t){return this.visitChildren(t)}visitTableOnly(t){return this.visitChildren(t)}visitTableWithPartitionDefault(t){return this.visitChildren(t)}visitAlterSubscriptionMode(t){return this.visitChildren(t)}visitPartitionedByOrClusteredInto(t){return this.visitChildren(t)}visitPartitionedBy(t){return this.visitChildren(t)}visitClusteredBy(t){return this.visitChildren(t)}visitBlobClusteredInto(t){return this.visitChildren(t)}visitColumnDefinitionDefault(t){return this.visitChildren(t)}visitPrimaryKeyConstraintTableLevel(t){return this.visitChildren(t)}visitIndexDefinition(t){return this.visitChildren(t)}visitTableCheckConstraint(t){return this.visitChildren(t)}visitColumnDefinition(t){return this.visitChildren(t)}visitAddColumnDefinition(t){return this.visitChildren(t)}visitDropColumnDefinition(t){return this.visitChildren(t)}visitRerouteMoveShard(t){return this.visitChildren(t)}visitRerouteAllocateReplicaShard(t){return this.visitChildren(t)}visitReroutePromoteReplica(t){return this.visitChildren(t)}visitRerouteCancelShard(t){return this.visitChildren(t)}visitObjectDataType(t){return this.visitChildren(t)}visitMaybeParametrizedDataType(t){return this.visitChildren(t)}visitArrayDataType(t){return this.visitChildren(t)}visitDefinedDataTypeDefault(t){return this.visitChildren(t)}visitIdentDataType(t){return this.visitChildren(t)}visitDefinedDataType(t){return this.visitChildren(t)}visitObjectTypeDefinition(t){return this.visitChildren(t)}visitColumnConstraintPrimaryKey(t){return this.visitChildren(t)}visitColumnConstraintNotNull(t){return this.visitChildren(t)}visitColumnConstraintNull(t){return this.visitChildren(t)}visitColumnIndexConstraint(t){return this.visitChildren(t)}visitColumnIndexOff(t){return this.visitChildren(t)}visitColumnStorageDefinition(t){return this.visitChildren(t)}visitColumnDefaultConstraint(t){return this.visitChildren(t)}visitColumnGeneratedConstraint(t){return this.visitChildren(t)}visitColumnCheckConstraint(t){return this.visitChildren(t)}visitPrimaryKeyContraint(t){return this.visitChildren(t)}visitCheckConstraint(t){return this.visitChildren(t)}visitWithGenericProperties(t){return this.visitChildren(t)}visitGenericProperties(t){return this.visitChildren(t)}visitGenericProperty(t){return this.visitChildren(t)}visitExplainOptions(t){return this.visitChildren(t)}visitExplainOption(t){return this.visitChildren(t)}visitMatchPredicateIdents(t){return this.visitChildren(t)}visitMatchPredicateIdent(t){return this.visitChildren(t)}visitAnalyzerElement(t){return this.visitChildren(t)}visitTokenizer(t){return this.visitChildren(t)}visitTokenFilters(t){return this.visitChildren(t)}visitCharFilters(t){return this.visitChildren(t)}visitNamedProperties(t){return this.visitChildren(t)}visitTableWithPartitions(t){return this.visitChildren(t)}visitSetGlobalAssignment(t){return this.visitChildren(t)}visitSetExpr(t){return this.visitChildren(t)}visitOn(t){return this.visitChildren(t)}visitSecurable(t){return this.visitChildren(t)}visitTransactionMode(t){return this.visitChildren(t)}visitIsolationLevel(t){return this.visitChildren(t)}visitDirection(t){return this.visitChildren(t)}visitDeclareCursorParams(t){return this.visitChildren(t)}visitNonReserved(t){return this.visitChildren(t)}}const os=(new ss.atn.ATNDeserializer).deserialize([4,1,331,2626,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,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,1,0,1,0,1,0,5,0,254,8,0,10,0,12,0,257,9,0,1,0,3,0,260,8,0,1,0,1,0,1,1,1,1,3,1,266,8,1,1,1,1,1,1,2,1,2,1,2,1,3,1,3,1,3,3,3,276,8,3,1,3,1,3,3,3,280,8,3,1,3,5,3,283,8,3,10,3,12,3,286,9,3,3,3,288,8,3,1,3,1,3,1,3,1,3,3,3,294,8,3,1,3,5,3,297,8,3,10,3,12,3,300,9,3,3,3,302,8,3,1,3,1,3,3,3,306,8,3,1,3,1,3,3,3,310,8,3,1,3,1,3,1,3,1,3,5,3,316,8,3,10,3,12,3,319,9,3,3,3,321,8,3,1,3,1,3,1,3,1,3,1,3,3,3,328,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,339,8,3,10,3,12,3,342,9,3,1,3,3,3,345,8,3,1,3,3,3,348,8,3,1,3,1,3,1,3,1,3,3,3,354,8,3,1,3,1,3,1,3,1,3,1,3,3,3,361,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,371,8,3,1,3,1,3,1,3,3,3,376,8,3,1,3,1,3,1,3,1,3,1,3,3,3,383,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,391,8,3,1,3,1,3,1,3,3,3,396,8,3,1,3,1,3,1,3,3,3,401,8,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,409,8,3,10,3,12,3,412,9,3,1,3,1,3,1,3,1,3,3,3,418,8,3,1,3,1,3,1,3,1,3,5,3,424,8,3,10,3,12,3,427,9,3,1,3,1,3,3,3,431,8,3,1,3,1,3,1,3,1,3,3,3,437,8,3,1,3,1,3,1,3,1,3,1,3,3,3,444,8,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,452,8,3,10,3,12,3,455,9,3,3,3,457,8,3,1,3,1,3,1,3,3,3,462,8,3,1,3,1,3,1,3,5,3,467,8,3,10,3,12,3,470,9,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,478,8,3,1,3,1,3,1,3,3,3,483,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,492,8,3,10,3,12,3,495,9,3,1,3,1,3,3,3,499,8,3,1,3,1,3,3,3,503,8,3,1,3,3,3,506,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,516,8,3,1,3,3,3,519,8,3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,527,8,3,10,3,12,3,530,9,3,1,3,1,3,3,3,534,8,3,1,3,1,3,1,3,3,3,539,8,3,1,3,1,3,3,3,543,8,3,1,3,1,3,1,3,3,3,548,8,3,1,3,3,3,551,8,3,1,3,1,3,3,3,555,8,3,1,3,1,3,3,3,559,8,3,1,3,1,3,1,3,1,3,1,3,3,3,566,8,3,3,3,568,8,3,1,3,1,3,1,3,1,3,3,3,574,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,582,8,3,3,3,584,8,3,1,3,1,3,1,3,1,3,3,3,590,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,598,8,3,3,3,600,8,3,1,3,1,3,1,3,1,3,3,3,606,8,3,1,3,1,3,1,3,1,3,1,3,3,3,613,8,3,1,3,1,3,3,3,617,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,628,8,3,1,3,1,3,1,3,1,3,1,3,3,3,635,8,3,1,3,3,3,638,8,3,1,3,1,3,1,3,1,3,3,3,644,8,3,3,3,646,8,3,1,4,1,4,1,4,1,4,1,4,3,4,653,8,4,1,4,1,4,1,4,1,4,1,4,3,4,660,8,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,676,8,4,1,4,1,4,1,4,1,4,1,4,5,4,683,8,4,10,4,12,4,686,9,4,3,4,688,8,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,696,8,4,1,4,1,4,1,4,1,4,1,4,3,4,703,8,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,713,8,4,1,4,1,4,1,4,1,4,1,4,3,4,720,8,4,1,4,1,4,1,4,1,4,1,4,3,4,727,8,4,1,4,1,4,3,4,731,8,4,1,4,1,4,1,4,1,4,1,4,3,4,738,8,4,1,4,1,4,3,4,742,8,4,1,4,1,4,1,4,1,4,1,4,3,4,749,8,4,1,4,1,4,1,4,1,4,1,4,3,4,756,8,4,1,5,1,5,1,5,1,5,1,5,1,5,5,5,764,8,5,10,5,12,5,767,9,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,775,8,5,10,5,12,5,778,9,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,800,8,5,10,5,12,5,803,9,5,1,5,1,5,3,5,807,8,5,3,5,809,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,825,8,5,10,5,12,5,828,9,5,1,5,1,5,3,5,832,8,5,3,5,834,8,5,1,5,1,5,3,5,838,8,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,846,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,856,8,5,1,5,1,5,1,5,1,5,3,5,862,8,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,870,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,890,8,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,916,8,5,1,5,1,5,1,5,3,5,921,8,5,5,5,923,8,5,10,5,12,5,926,9,5,1,5,1,5,1,5,1,5,1,5,3,5,933,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,944,8,6,1,7,3,7,947,8,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,5,8,957,8,8,10,8,12,8,960,9,8,3,8,962,8,8,1,8,3,8,965,8,8,1,8,3,8,968,8,8,1,8,3,8,971,8,8,1,8,3,8,974,8,8,3,8,976,8,8,1,9,1,9,1,9,3,9,981,8,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,989,8,9,1,10,1,10,1,10,3,10,994,8,10,1,11,1,11,1,11,1,11,1,11,1,11,3,11,1002,8,11,1,11,1,11,1,11,3,11,1007,8,11,1,11,5,11,1010,8,11,10,11,12,11,1013,9,11,1,12,1,12,1,13,1,13,3,13,1019,8,13,1,13,1,13,3,13,1023,8,13,1,14,1,14,3,14,1027,8,14,1,14,1,14,1,14,5,14,1032,8,14,10,14,12,14,1035,9,14,1,14,1,14,1,14,1,14,5,14,1041,8,14,10,14,12,14,1044,9,14,3,14,1046,8,14,1,14,3,14,1049,8,14,1,14,1,14,1,14,1,14,1,14,5,14,1056,8,14,10,14,12,14,1059,9,14,3,14,1061,8,14,1,14,1,14,3,14,1065,8,14,1,14,1,14,1,14,1,14,5,14,1071,8,14,10,14,12,14,1074,9,14,3,14,1076,8,14,1,14,1,14,1,14,1,14,5,14,1082,8,14,10,14,12,14,1085,9,14,3,14,1087,8,14,1,15,1,15,3,15,1091,8,15,1,15,3,15,1094,8,15,1,15,1,15,1,15,1,15,1,15,3,15,1101,8,15,1,16,1,16,1,16,1,17,1,17,1,17,1,17,5,17,1110,8,17,10,17,12,17,1113,9,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,1137,8,19,5,19,1139,8,19,10,19,12,19,1142,9,19,1,20,3,20,1145,8,20,1,20,1,20,3,20,1149,8,20,1,20,1,20,3,20,1153,8,20,1,20,1,20,3,20,1157,8,20,3,20,1159,8,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,5,21,1168,8,21,10,21,12,21,1171,9,21,1,21,1,21,3,21,1175,8,21,1,22,1,22,3,22,1179,8,22,1,22,1,22,3,22,1183,8,22,3,22,1185,8,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,1196,8,23,1,24,1,24,1,24,1,24,1,24,1,24,5,24,1204,8,24,10,24,12,24,1207,9,24,1,24,1,24,3,24,1211,8,24,1,25,1,25,1,25,1,25,3,25,1217,8,25,1,25,1,25,5,25,1221,8,25,10,25,12,25,1224,9,25,1,25,1,25,3,25,1228,8,25,1,26,1,26,1,26,1,26,5,26,1234,8,26,10,26,12,26,1237,9,26,1,26,1,26,1,27,1,27,1,27,1,27,5,27,1245,8,27,10,27,12,27,1248,9,27,1,28,1,28,3,28,1252,8,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1274,8,30,3,30,1276,8,30,3,30,1278,8,30,1,30,1,30,1,30,1,30,1,30,1,30,5,30,1286,8,30,10,30,12,30,1289,9,30,1,31,1,31,3,31,1293,8,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,3,32,1303,8,32,1,32,1,32,1,32,1,32,1,32,1,32,3,32,1311,8,32,1,32,1,32,1,32,1,32,1,32,5,32,1318,8,32,10,32,12,32,1321,9,32,1,32,1,32,1,32,3,32,1326,8,32,1,32,1,32,1,32,3,32,1331,8,32,1,32,1,32,1,32,1,32,3,32,1337,8,32,1,32,3,32,1340,8,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,3,32,1349,8,32,1,32,1,32,3,32,1353,8,32,1,32,1,32,1,32,3,32,1358,8,32,1,32,1,32,1,32,3,32,1363,8,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,3,33,1372,8,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,5,33,1389,8,33,10,33,12,33,1392,9,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,1402,8,34,1,34,3,34,1405,8,34,1,34,1,34,1,34,1,34,3,34,1411,8,34,1,34,1,34,1,34,5,34,1416,8,34,10,34,12,34,1419,9,34,3,34,1421,8,34,1,34,1,34,3,34,1425,8,34,1,34,1,34,3,34,1429,8,34,1,34,3,34,1432,8,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,5,34,1453,8,34,10,34,12,34,1456,9,34,1,34,3,34,1459,8,34,1,34,3,34,1462,8,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,1477,8,34,1,34,1,34,3,34,1481,8,34,1,34,1,34,1,34,1,34,5,34,1487,8,34,10,34,12,34,1490,9,34,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1498,8,35,1,35,1,35,1,35,1,35,1,35,3,35,1505,8,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1531,8,35,1,35,1,35,1,35,1,35,1,35,3,35,1538,8,35,1,35,3,35,1541,8,35,1,35,3,35,1544,8,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,4,35,1573,8,35,11,35,12,35,1574,1,35,1,35,3,35,1579,8,35,1,35,1,35,1,35,1,35,4,35,1585,8,35,11,35,12,35,1586,1,35,1,35,3,35,1591,8,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1602,8,35,1,35,1,35,1,35,1,35,3,35,1608,8,35,1,36,1,36,1,36,1,36,1,37,1,37,3,37,1616,8,37,1,37,1,37,1,37,1,37,5,37,1622,8,37,10,37,12,37,1625,9,37,3,37,1627,8,37,1,37,1,37,1,37,1,37,1,37,5,37,1634,8,37,10,37,12,37,1637,9,37,3,37,1639,8,37,1,37,3,37,1642,8,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1652,8,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,3,39,1675,8,39,1,40,1,40,3,40,1679,8,40,1,41,1,41,3,41,1683,8,41,1,42,1,42,1,42,3,42,1688,8,42,1,43,1,43,1,44,1,44,1,45,1,45,5,45,1696,8,45,10,45,12,45,1699,9,45,1,45,1,45,1,46,1,46,3,46,1705,8,46,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,5,48,1717,8,48,10,48,12,48,1720,9,48,1,49,1,49,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,54,1,54,1,54,3,54,1741,8,54,1,54,1,54,1,54,1,54,1,54,5,54,1748,8,54,10,54,12,54,1751,9,54,3,54,1753,8,54,1,54,1,54,1,54,1,54,1,54,5,54,1760,8,54,10,54,12,54,1763,9,54,3,54,1765,8,54,1,54,3,54,1768,8,54,1,54,3,54,1771,8,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,3,55,1789,8,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,3,56,1800,8,56,1,57,1,57,1,57,5,57,1805,8,57,10,57,12,57,1808,9,57,1,58,1,58,1,58,5,58,1813,8,58,10,58,12,58,1816,9,58,1,59,1,59,5,59,1820,8,59,10,59,12,59,1823,9,59,1,60,1,60,3,60,1827,8,60,1,61,1,61,1,61,5,61,1832,8,61,10,61,12,61,1835,9,61,1,62,1,62,3,62,1839,8,62,1,63,1,63,1,63,3,63,1844,8,63,1,64,1,64,3,64,1848,8,64,1,65,1,65,3,65,1852,8,65,1,66,1,66,1,66,3,66,1857,8,66,1,67,1,67,3,67,1861,8,67,1,68,1,68,3,68,1865,8,68,1,68,1,68,1,68,1,68,3,68,1871,8,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,3,74,1890,8,74,1,75,1,75,1,75,3,75,1895,8,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,5,75,1908,8,75,10,75,12,75,1911,9,75,3,75,1913,8,75,1,76,1,76,1,76,1,76,5,76,1919,8,76,10,76,12,76,1922,9,76,1,76,1,76,1,77,1,77,1,77,1,77,5,77,1930,8,77,10,77,12,77,1933,9,77,1,77,1,77,1,78,1,78,1,78,1,78,5,78,1941,8,78,10,78,12,78,1944,9,78,1,78,1,78,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,3,80,1957,8,80,1,80,1,80,1,80,1,80,1,80,5,80,1964,8,80,10,80,12,80,1967,9,80,1,80,1,80,1,80,3,80,1972,8,80,1,80,1,80,1,80,1,80,1,80,3,80,1979,8,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,1991,8,80,1,80,1,80,1,80,1,80,1,80,5,80,1998,8,80,10,80,12,80,2001,9,80,1,80,1,80,1,80,1,80,3,80,2007,8,80,1,80,1,80,1,80,1,80,1,80,3,80,2014,8,80,1,80,3,80,2017,8,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2025,8,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2033,8,80,1,80,3,80,2036,8,80,1,80,1,80,1,80,1,80,1,80,3,80,2043,8,80,1,80,3,80,2046,8,80,1,80,1,80,1,80,1,80,5,80,2052,8,80,10,80,12,80,2055,9,80,1,80,1,80,1,80,1,80,1,80,3,80,2062,8,80,1,80,1,80,1,80,1,80,1,80,1,80,5,80,2070,8,80,10,80,12,80,2073,9,80,3,80,2075,8,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2091,8,80,1,80,1,80,1,80,1,80,1,80,3,80,2098,8,80,1,80,1,80,1,80,1,80,1,80,3,80,2105,8,80,1,80,3,80,2108,8,80,1,80,1,80,3,80,2112,8,80,3,80,2114,8,80,3,80,2116,8,80,1,80,1,80,1,80,3,80,2121,8,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2138,8,80,1,80,1,80,1,80,3,80,2143,8,80,5,80,2145,8,80,10,80,12,80,2148,9,80,3,80,2150,8,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2160,8,80,1,80,1,80,1,80,1,80,1,80,3,80,2167,8,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,2175,8,80,3,80,2177,8,80,1,81,1,81,1,81,1,81,3,81,2183,8,81,1,82,1,82,1,82,1,82,1,82,5,82,2190,8,82,10,82,12,82,2193,9,82,1,82,1,82,1,83,1,83,1,83,1,84,3,84,2201,8,84,1,84,1,84,1,85,1,85,1,85,3,85,2208,8,85,1,86,1,86,1,87,3,87,2213,8,87,1,87,3,87,2216,8,87,1,87,3,87,2219,8,87,1,87,3,87,2222,8,87,3,87,2224,8,87,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,3,89,2236,8,89,1,89,1,89,1,89,1,89,3,89,2242,8,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,3,91,2259,8,91,1,91,3,91,2262,8,91,1,92,1,92,3,92,2266,8,92,1,92,5,92,2269,8,92,10,92,12,92,2272,9,92,1,93,1,93,3,93,2276,8,93,1,93,1,93,3,93,2280,8,93,1,93,5,93,2283,8,93,10,93,12,93,2286,9,93,1,94,1,94,3,94,2290,8,94,1,94,1,94,3,94,2294,8,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,2320,8,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,2328,8,95,3,95,2330,8,95,1,96,1,96,1,96,1,96,1,96,1,96,5,96,2338,8,96,10,96,12,96,2341,9,96,1,96,1,96,3,96,2345,8,96,1,96,1,96,1,96,1,96,1,96,1,96,3,96,2353,8,96,1,96,1,96,5,96,2357,8,96,10,96,12,96,2360,9,96,1,97,1,97,3,97,2364,8,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,3,98,2383,8,98,1,99,1,99,1,99,1,99,3,99,2389,8,99,1,99,1,99,1,99,1,99,1,99,5,99,2396,8,99,10,99,12,99,2399,9,99,1,99,1,99,3,99,2403,8,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,3,100,2413,8,100,1,100,1,100,1,100,1,100,1,100,1,100,3,100,2421,8,100,1,100,1,100,1,100,1,100,3,100,2427,8,100,1,100,1,100,3,100,2431,8,100,1,100,1,100,1,100,3,100,2436,8,100,1,101,1,101,3,101,2440,8,101,1,101,1,101,1,102,1,102,3,102,2446,8,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,5,104,2461,8,104,10,104,12,104,2464,9,104,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,5,106,2474,8,106,10,106,12,106,2477,9,106,1,106,1,106,1,107,1,107,3,107,2483,8,107,1,108,1,108,1,108,1,108,1,108,5,108,2490,8,108,10,108,12,108,2493,9,108,1,108,1,108,3,108,2497,8,108,1,109,1,109,3,109,2501,8,109,1,110,1,110,1,110,1,110,3,110,2507,8,110,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,5,112,2517,8,112,10,112,12,112,2520,9,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,5,113,2529,8,113,10,113,12,113,2532,9,113,1,113,1,113,1,114,1,114,3,114,2538,8,114,1,115,1,115,1,115,5,115,2543,8,115,10,115,12,115,2546,9,115,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,3,117,2557,8,117,1,118,1,118,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,3,120,2570,8,120,1,120,3,120,2573,8,120,1,120,3,120,2576,8,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,3,121,2585,8,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,3,122,2595,8,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,3,122,2610,8,122,1,123,1,123,1,123,1,123,3,123,2616,8,123,1,123,5,123,2619,8,123,10,123,12,123,2622,9,123,1,124,1,124,1,124,0,7,22,38,60,66,68,96,192,125,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,0,34,1,0,146,147,2,0,3,3,22,22,1,0,141,142,2,0,4,4,282,282,1,0,241,242,2,0,7,7,169,172,1,0,92,93,1,0,246,247,1,0,280,281,1,0,111,112,3,0,109,109,197,197,216,216,2,0,36,36,38,38,2,0,86,86,91,91,1,0,200,201,2,0,7,7,12,12,1,0,40,41,1,0,36,37,1,0,26,27,1,0,293,294,2,0,295,295,297,298,1,0,314,316,1,0,32,33,2,0,60,61,246,246,1,0,44,46,1,0,282,292,1,0,7,9,1,0,88,89,1,0,50,55,1,0,30,31,1,0,259,260,1,0,230,232,1,0,165,167,3,0,97,97,193,193,252,252,38,0,1,1,4,4,6,6,10,10,27,27,32,33,35,35,38,38,42,46,48,59,70,70,81,86,88,91,93,93,96,96,98,105,107,108,111,133,135,135,137,158,161,161,163,163,165,165,167,172,174,174,176,182,185,196,198,198,202,204,208,208,211,215,219,221,223,226,228,232,234,240,244,245,247,247,251,281,3024,0,250,1,0,0,0,2,263,1,0,0,0,4,269,1,0,0,0,6,645,1,0,0,0,8,755,1,0,0,0,10,932,1,0,0,0,12,943,1,0,0,0,14,946,1,0,0,0,16,950,1,0,0,0,18,988,1,0,0,0,20,990,1,0,0,0,22,1001,1,0,0,0,24,1014,1,0,0,0,26,1016,1,0,0,0,28,1086,1,0,0,0,30,1100,1,0,0,0,32,1102,1,0,0,0,34,1105,1,0,0,0,36,1114,1,0,0,0,38,1119,1,0,0,0,40,1158,1,0,0,0,42,1174,1,0,0,0,44,1176,1,0,0,0,46,1195,1,0,0,0,48,1197,1,0,0,0,50,1227,1,0,0,0,52,1229,1,0,0,0,54,1240,1,0,0,0,56,1249,1,0,0,0,58,1258,1,0,0,0,60,1277,1,0,0,0,62,1290,1,0,0,0,64,1362,1,0,0,0,66,1371,1,0,0,0,68,1461,1,0,0,0,70,1607,1,0,0,0,72,1609,1,0,0,0,74,1641,1,0,0,0,76,1651,1,0,0,0,78,1674,1,0,0,0,80,1678,1,0,0,0,82,1682,1,0,0,0,84,1687,1,0,0,0,86,1689,1,0,0,0,88,1691,1,0,0,0,90,1693,1,0,0,0,92,1704,1,0,0,0,94,1706,1,0,0,0,96,1708,1,0,0,0,98,1721,1,0,0,0,100,1723,1,0,0,0,102,1725,1,0,0,0,104,1730,1,0,0,0,106,1734,1,0,0,0,108,1770,1,0,0,0,110,1788,1,0,0,0,112,1799,1,0,0,0,114,1801,1,0,0,0,116,1809,1,0,0,0,118,1817,1,0,0,0,120,1824,1,0,0,0,122,1828,1,0,0,0,124,1838,1,0,0,0,126,1843,1,0,0,0,128,1847,1,0,0,0,130,1851,1,0,0,0,132,1856,1,0,0,0,134,1860,1,0,0,0,136,1862,1,0,0,0,138,1872,1,0,0,0,140,1874,1,0,0,0,142,1876,1,0,0,0,144,1878,1,0,0,0,146,1880,1,0,0,0,148,1889,1,0,0,0,150,1912,1,0,0,0,152,1914,1,0,0,0,154,1925,1,0,0,0,156,1936,1,0,0,0,158,1947,1,0,0,0,160,2176,1,0,0,0,162,2182,1,0,0,0,164,2184,1,0,0,0,166,2196,1,0,0,0,168,2200,1,0,0,0,170,2207,1,0,0,0,172,2209,1,0,0,0,174,2223,1,0,0,0,176,2225,1,0,0,0,178,2229,1,0,0,0,180,2243,1,0,0,0,182,2261,1,0,0,0,184,2263,1,0,0,0,186,2273,1,0,0,0,188,2287,1,0,0,0,190,2329,1,0,0,0,192,2352,1,0,0,0,194,2363,1,0,0,0,196,2382,1,0,0,0,198,2384,1,0,0,0,200,2435,1,0,0,0,202,2439,1,0,0,0,204,2445,1,0,0,0,206,2452,1,0,0,0,208,2457,1,0,0,0,210,2465,1,0,0,0,212,2469,1,0,0,0,214,2480,1,0,0,0,216,2496,1,0,0,0,218,2498,1,0,0,0,220,2506,1,0,0,0,222,2508,1,0,0,0,224,2511,1,0,0,0,226,2523,1,0,0,0,228,2535,1,0,0,0,230,2539,1,0,0,0,232,2547,1,0,0,0,234,2556,1,0,0,0,236,2558,1,0,0,0,238,2560,1,0,0,0,240,2575,1,0,0,0,242,2584,1,0,0,0,244,2609,1,0,0,0,246,2620,1,0,0,0,248,2623,1,0,0,0,250,255,3,6,3,0,251,252,5,301,0,0,252,254,3,6,3,0,253,251,1,0,0,0,254,257,1,0,0,0,255,253,1,0,0,0,255,256,1,0,0,0,256,259,1,0,0,0,257,255,1,0,0,0,258,260,5,301,0,0,259,258,1,0,0,0,259,260,1,0,0,0,260,261,1,0,0,0,261,262,5,0,0,1,262,1,1,0,0,0,263,265,3,6,3,0,264,266,5,301,0,0,265,264,1,0,0,0,265,266,1,0,0,0,266,267,1,0,0,0,267,268,5,0,0,1,268,3,1,0,0,0,269,270,3,58,29,0,270,271,5,0,0,1,271,5,1,0,0,0,272,646,3,14,7,0,273,275,5,143,0,0,274,276,7,0,0,0,275,274,1,0,0,0,275,276,1,0,0,0,276,287,1,0,0,0,277,284,3,240,120,0,278,280,5,303,0,0,279,278,1,0,0,0,279,280,1,0,0,0,280,281,1,0,0,0,281,283,3,240,120,0,282,279,1,0,0,0,283,286,1,0,0,0,284,282,1,0,0,0,284,285,1,0,0,0,285,288,1,0,0,0,286,284,1,0,0,0,287,277,1,0,0,0,287,288,1,0,0,0,288,646,1,0,0,0,289,290,5,144,0,0,290,301,5,147,0,0,291,298,3,240,120,0,292,294,5,303,0,0,293,292,1,0,0,0,293,294,1,0,0,0,294,295,1,0,0,0,295,297,3,240,120,0,296,293,1,0,0,0,297,300,1,0,0,0,298,296,1,0,0,0,298,299,1,0,0,0,299,302,1,0,0,0,300,298,1,0,0,0,301,291,1,0,0,0,301,302,1,0,0,0,302,646,1,0,0,0,303,305,5,145,0,0,304,306,7,0,0,0,305,304,1,0,0,0,305,306,1,0,0,0,306,646,1,0,0,0,307,309,5,68,0,0,308,310,7,0,0,0,309,308,1,0,0,0,309,310,1,0,0,0,310,646,1,0,0,0,311,320,5,176,0,0,312,321,5,165,0,0,313,321,5,167,0,0,314,316,3,212,106,0,315,314,1,0,0,0,316,319,1,0,0,0,317,315,1,0,0,0,317,318,1,0,0,0,318,321,1,0,0,0,319,317,1,0,0,0,320,312,1,0,0,0,320,313,1,0,0,0,320,317,1,0,0,0,321,322,1,0,0,0,322,646,3,6,3,0,323,324,5,194,0,0,324,325,5,97,0,0,325,327,3,230,115,0,326,328,3,206,103,0,327,326,1,0,0,0,327,328,1,0,0,0,328,646,1,0,0,0,329,330,5,195,0,0,330,331,5,97,0,0,331,646,3,230,115,0,332,333,5,210,0,0,333,334,3,44,22,0,334,335,5,216,0,0,335,340,3,158,79,0,336,337,5,303,0,0,337,339,3,158,79,0,338,336,1,0,0,0,339,342,1,0,0,0,340,338,1,0,0,0,340,341,1,0,0,0,341,344,1,0,0,0,342,340,1,0,0,0,343,345,3,32,16,0,344,343,1,0,0,0,344,345,1,0,0,0,345,347,1,0,0,0,346,348,3,34,17,0,347,346,1,0,0,0,347,348,1,0,0,0,348,646,1,0,0,0,349,350,5,209,0,0,350,351,5,3,0,0,351,353,3,44,22,0,352,354,3,32,16,0,353,352,1,0,0,0,353,354,1,0,0,0,354,646,1,0,0,0,355,360,5,185,0,0,356,357,5,147,0,0,357,358,5,150,0,0,358,361,5,151,0,0,359,361,5,148,0,0,360,356,1,0,0,0,360,359,1,0,0,0,361,646,1,0,0,0,362,363,5,185,0,0,363,364,5,95,0,0,364,365,5,97,0,0,365,646,3,50,25,0,366,367,5,185,0,0,367,370,5,186,0,0,368,369,7,1,0,0,369,371,3,116,58,0,370,368,1,0,0,0,370,371,1,0,0,0,371,375,1,0,0,0,372,373,5,26,0,0,373,376,3,92,46,0,374,376,3,32,16,0,375,372,1,0,0,0,375,374,1,0,0,0,375,376,1,0,0,0,376,646,1,0,0,0,377,378,5,185,0,0,378,382,5,187,0,0,379,380,5,26,0,0,380,383,3,92,46,0,381,383,3,32,16,0,382,379,1,0,0,0,382,381,1,0,0,0,382,383,1,0,0,0,383,646,1,0,0,0,384,385,5,185,0,0,385,386,5,189,0,0,386,387,7,1,0,0,387,390,3,116,58,0,388,389,7,1,0,0,389,391,3,116,58,0,390,388,1,0,0,0,390,391,1,0,0,0,391,395,1,0,0,0,392,393,5,26,0,0,393,396,3,92,46,0,394,396,3,32,16,0,395,392,1,0,0,0,395,394,1,0,0,0,395,396,1,0,0,0,396,646,1,0,0,0,397,400,5,185,0,0,398,401,3,116,58,0,399,401,5,7,0,0,400,398,1,0,0,0,400,399,1,0,0,0,401,646,1,0,0,0,402,646,3,10,5,0,403,404,5,217,0,0,404,405,5,140,0,0,405,410,3,68,34,0,406,407,5,303,0,0,407,409,3,68,34,0,408,406,1,0,0,0,409,412,1,0,0,0,410,408,1,0,0,0,410,411,1,0,0,0,411,646,1,0,0,0,412,410,1,0,0,0,413,417,5,216,0,0,414,415,5,141,0,0,415,416,5,149,0,0,416,418,5,5,0,0,417,414,1,0,0,0,417,418,1,0,0,0,418,419,1,0,0,0,419,420,5,147,0,0,420,425,3,240,120,0,421,422,5,303,0,0,422,424,3,240,120,0,423,421,1,0,0,0,424,427,1,0,0,0,425,423,1,0,0,0,425,426,1,0,0,0,426,646,1,0,0,0,427,425,1,0,0,0,428,430,5,216,0,0,429,431,7,2,0,0,430,429,1,0,0,0,430,431,1,0,0,0,431,432,1,0,0,0,432,433,5,141,0,0,433,436,5,1,0,0,434,437,5,218,0,0,435,437,3,130,65,0,436,434,1,0,0,0,436,435,1,0,0,0,437,646,1,0,0,0,438,439,5,217,0,0,439,440,5,141,0,0,440,646,5,1,0,0,441,443,5,216,0,0,442,444,7,2,0,0,443,442,1,0,0,0,443,444,1,0,0,0,444,445,1,0,0,0,445,446,3,116,58,0,446,456,7,3,0,0,447,457,5,218,0,0,448,453,3,234,117,0,449,450,5,303,0,0,450,452,3,234,117,0,451,449,1,0,0,0,452,455,1,0,0,0,453,451,1,0,0,0,453,454,1,0,0,0,454,457,1,0,0,0,455,453,1,0,0,0,456,447,1,0,0,0,456,448,1,0,0,0,457,646,1,0,0,0,458,459,5,216,0,0,459,461,5,140,0,0,460,462,7,4,0,0,461,460,1,0,0,0,461,462,1,0,0,0,462,463,1,0,0,0,463,468,3,232,116,0,464,465,5,303,0,0,465,467,3,232,116,0,466,464,1,0,0,0,467,470,1,0,0,0,468,466,1,0,0,0,468,469,1,0,0,0,469,646,1,0,0,0,470,468,1,0,0,0,471,472,5,216,0,0,472,473,5,48,0,0,473,477,5,49,0,0,474,478,5,142,0,0,475,478,5,218,0,0,476,478,3,92,46,0,477,474,1,0,0,0,477,475,1,0,0,0,477,476,1,0,0,0,478,646,1,0,0,0,479,482,5,107,0,0,480,483,5,7,0,0,481,483,3,82,41,0,482,480,1,0,0,0,482,481,1,0,0,0,483,646,1,0,0,0,484,485,5,206,0,0,485,486,5,207,0,0,486,498,3,50,25,0,487,488,5,305,0,0,488,493,3,124,62,0,489,490,5,303,0,0,490,492,3,124,62,0,491,489,1,0,0,0,492,495,1,0,0,0,493,491,1,0,0,0,493,494,1,0,0,0,494,496,1,0,0,0,495,493,1,0,0,0,496,497,5,306,0,0,497,499,1,0,0,0,498,487,1,0,0,0,498,499,1,0,0,0,499,500,1,0,0,0,500,502,3,148,74,0,501,503,3,150,75,0,502,501,1,0,0,0,502,503,1,0,0,0,503,505,1,0,0,0,504,506,3,34,17,0,505,504,1,0,0,0,505,506,1,0,0,0,506,646,1,0,0,0,507,508,5,196,0,0,508,509,5,105,0,0,509,515,3,116,58,0,510,516,5,7,0,0,511,516,5,255,0,0,512,513,5,97,0,0,513,516,3,230,115,0,514,516,3,122,61,0,515,510,1,0,0,0,515,511,1,0,0,0,515,512,1,0,0,0,515,514,1,0,0,0,516,518,1,0,0,0,517,519,3,206,103,0,518,517,1,0,0,0,518,519,1,0,0,0,519,646,1,0,0,0,520,521,5,219,0,0,521,533,3,48,24,0,522,523,5,305,0,0,523,528,3,124,62,0,524,525,5,303,0,0,525,527,3,124,62,0,526,524,1,0,0,0,527,530,1,0,0,0,528,526,1,0,0,0,528,529,1,0,0,0,529,531,1,0,0,0,530,528,1,0,0,0,531,532,5,306,0,0,532,534,1,0,0,0,533,522,1,0,0,0,533,534,1,0,0,0,534,535,1,0,0,0,535,536,5,3,0,0,536,538,3,58,29,0,537,539,3,206,103,0,538,537,1,0,0,0,538,539,1,0,0,0,539,542,1,0,0,0,540,541,5,253,0,0,541,543,5,254,0,0,542,540,1,0,0,0,542,543,1,0,0,0,543,646,1,0,0,0,544,545,5,219,0,0,545,547,3,48,24,0,546,548,3,156,78,0,547,546,1,0,0,0,547,548,1,0,0,0,548,550,1,0,0,0,549,551,3,32,16,0,550,549,1,0,0,0,550,551,1,0,0,0,551,552,1,0,0,0,552,554,5,4,0,0,553,555,5,11,0,0,554,553,1,0,0,0,554,555,1,0,0,0,555,556,1,0,0,0,556,558,3,58,29,0,557,559,3,206,103,0,558,557,1,0,0,0,558,559,1,0,0,0,559,646,1,0,0,0,560,646,3,8,4,0,561,567,5,248,0,0,562,568,3,122,61,0,563,565,5,7,0,0,564,566,5,251,0,0,565,564,1,0,0,0,565,566,1,0,0,0,566,568,1,0,0,0,567,562,1,0,0,0,567,563,1,0,0,0,568,573,1,0,0,0,569,570,5,80,0,0,570,571,3,238,119,0,571,572,3,114,57,0,572,574,1,0,0,0,573,569,1,0,0,0,573,574,1,0,0,0,574,575,1,0,0,0,575,576,5,4,0,0,576,646,3,122,61,0,577,583,5,249,0,0,578,584,3,122,61,0,579,581,5,7,0,0,580,582,5,251,0,0,581,580,1,0,0,0,581,582,1,0,0,0,582,584,1,0,0,0,583,578,1,0,0,0,583,579,1,0,0,0,584,589,1,0,0,0,585,586,5,80,0,0,586,587,3,238,119,0,587,588,3,114,57,0,588,590,1,0,0,0,589,585,1,0,0,0,589,590,1,0,0,0,590,591,1,0,0,0,591,592,5,4,0,0,592,646,3,122,61,0,593,599,5,250,0,0,594,600,3,122,61,0,595,597,5,7,0,0,596,598,5,251,0,0,597,596,1,0,0,0,597,598,1,0,0,0,598,600,1,0,0,0,599,594,1,0,0,0,599,595,1,0,0,0,600,605,1,0,0,0,601,602,5,80,0,0,602,603,3,238,119,0,603,604,3,114,57,0,604,606,1,0,0,0,605,601,1,0,0,0,605,606,1,0,0,0,606,607,1,0,0,0,607,608,5,3,0,0,608,646,3,122,61,0,609,646,3,160,80,0,610,612,5,10,0,0,611,613,5,240,0,0,612,611,1,0,0,0,612,613,1,0,0,0,613,616,1,0,0,0,614,617,5,7,0,0,615,617,3,132,66,0,616,614,1,0,0,0,616,615,1,0,0,0,617,646,1,0,0,0,618,646,5,165,0,0,619,620,5,168,0,0,620,646,7,5,0,0,621,622,5,261,0,0,622,623,3,124,62,0,623,624,3,246,123,0,624,627,5,262,0,0,625,626,7,6,0,0,626,628,5,268,0,0,627,625,1,0,0,0,627,628,1,0,0,0,628,629,1,0,0,0,629,630,5,47,0,0,630,631,3,16,8,0,631,646,1,0,0,0,632,634,5,35,0,0,633,635,3,244,122,0,634,633,1,0,0,0,634,635,1,0,0,0,635,637,1,0,0,0,636,638,7,1,0,0,637,636,1,0,0,0,637,638,1,0,0,0,638,639,1,0,0,0,639,646,3,124,62,0,640,643,5,112,0,0,641,644,3,124,62,0,642,644,5,7,0,0,643,641,1,0,0,0,643,642,1,0,0,0,644,646,1,0,0,0,645,272,1,0,0,0,645,273,1,0,0,0,645,289,1,0,0,0,645,303,1,0,0,0,645,307,1,0,0,0,645,311,1,0,0,0,645,323,1,0,0,0,645,329,1,0,0,0,645,332,1,0,0,0,645,349,1,0,0,0,645,355,1,0,0,0,645,362,1,0,0,0,645,366,1,0,0,0,645,377,1,0,0,0,645,384,1,0,0,0,645,397,1,0,0,0,645,402,1,0,0,0,645,403,1,0,0,0,645,413,1,0,0,0,645,428,1,0,0,0,645,438,1,0,0,0,645,441,1,0,0,0,645,458,1,0,0,0,645,471,1,0,0,0,645,479,1,0,0,0,645,484,1,0,0,0,645,507,1,0,0,0,645,520,1,0,0,0,645,544,1,0,0,0,645,560,1,0,0,0,645,561,1,0,0,0,645,577,1,0,0,0,645,593,1,0,0,0,645,609,1,0,0,0,645,610,1,0,0,0,645,618,1,0,0,0,645,619,1,0,0,0,645,621,1,0,0,0,645,632,1,0,0,0,645,640,1,0,0,0,646,7,1,0,0,0,647,648,5,197,0,0,648,649,5,96,0,0,649,652,5,97,0,0,650,651,5,69,0,0,651,653,5,24,0,0,652,650,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,756,3,50,25,0,655,656,5,197,0,0,656,659,5,97,0,0,657,658,5,69,0,0,658,660,5,24,0,0,659,657,1,0,0,0,659,660,1,0,0,0,660,661,1,0,0,0,661,756,3,50,25,0,662,663,5,197,0,0,663,664,5,198,0,0,664,756,3,116,58,0,665,666,5,197,0,0,666,667,5,104,0,0,667,756,3,124,62,0,668,669,5,197,0,0,669,670,5,105,0,0,670,756,3,116,58,0,671,672,5,197,0,0,672,675,5,162,0,0,673,674,5,69,0,0,674,676,5,24,0,0,675,673,1,0,0,0,675,676,1,0,0,0,676,677,1,0,0,0,677,678,3,116,58,0,678,687,5,305,0,0,679,684,3,168,84,0,680,681,5,303,0,0,681,683,3,168,84,0,682,680,1,0,0,0,683,686,1,0,0,0,684,682,1,0,0,0,684,685,1,0,0,0,685,688,1,0,0,0,686,684,1,0,0,0,687,679,1,0,0,0,687,688,1,0,0,0,688,689,1,0,0,0,689,690,5,306,0,0,690,756,1,0,0,0,691,692,5,197,0,0,692,695,7,7,0,0,693,694,5,69,0,0,694,696,5,24,0,0,695,693,1,0,0,0,695,696,1,0,0,0,696,697,1,0,0,0,697,756,3,124,62,0,698,699,5,197,0,0,699,702,5,193,0,0,700,701,5,69,0,0,701,703,5,24,0,0,702,700,1,0,0,0,702,703,1,0,0,0,703,704,1,0,0,0,704,756,3,114,57,0,705,706,5,197,0,0,706,707,5,234,0,0,707,756,3,124,62,0,708,709,5,197,0,0,709,712,5,256,0,0,710,711,5,69,0,0,711,713,5,24,0,0,712,710,1,0,0,0,712,713,1,0,0,0,713,714,1,0,0,0,714,756,3,124,62,0,715,716,5,197,0,0,716,719,5,257,0,0,717,718,5,69,0,0,718,720,5,24,0,0,719,717,1,0,0,0,719,720,1,0,0,0,720,721,1,0,0,0,721,756,3,124,62,0,722,723,5,197,0,0,723,726,5,274,0,0,724,725,5,69,0,0,725,727,5,24,0,0,726,724,1,0,0,0,726,727,1,0,0,0,727,728,1,0,0,0,728,730,3,122,61,0,729,731,7,8,0,0,730,729,1,0,0,0,730,731,1,0,0,0,731,756,1,0,0,0,732,733,5,197,0,0,733,734,5,275,0,0,734,737,5,97,0,0,735,736,5,69,0,0,736,738,5,24,0,0,737,735,1,0,0,0,737,738,1,0,0,0,738,739,1,0,0,0,739,741,3,114,57,0,740,742,7,8,0,0,741,740,1,0,0,0,741,742,1,0,0,0,742,756,1,0,0,0,743,744,5,197,0,0,744,745,5,246,0,0,745,748,5,279,0,0,746,747,5,69,0,0,747,749,5,24,0,0,748,746,1,0,0,0,748,749,1,0,0,0,749,750,1,0,0,0,750,751,5,47,0,0,751,752,3,162,81,0,752,753,5,274,0,0,753,754,3,124,62,0,754,756,1,0,0,0,755,647,1,0,0,0,755,655,1,0,0,0,755,662,1,0,0,0,755,665,1,0,0,0,755,668,1,0,0,0,755,671,1,0,0,0,755,691,1,0,0,0,755,698,1,0,0,0,755,705,1,0,0,0,755,708,1,0,0,0,755,715,1,0,0,0,755,722,1,0,0,0,755,732,1,0,0,0,755,743,1,0,0,0,756,9,1,0,0,0,757,758,5,106,0,0,758,759,5,97,0,0,759,760,3,170,85,0,760,765,3,186,93,0,761,762,5,303,0,0,762,764,3,186,93,0,763,761,1,0,0,0,764,767,1,0,0,0,765,763,1,0,0,0,765,766,1,0,0,0,766,933,1,0,0,0,767,765,1,0,0,0,768,769,5,106,0,0,769,770,5,97,0,0,770,771,3,170,85,0,771,776,3,188,94,0,772,773,5,303,0,0,773,775,3,188,94,0,774,772,1,0,0,0,775,778,1,0,0,0,776,774,1,0,0,0,776,777,1,0,0,0,777,933,1,0,0,0,778,776,1,0,0,0,779,780,5,106,0,0,780,781,5,97,0,0,781,782,3,170,85,0,782,783,5,197,0,0,783,784,5,173,0,0,784,785,3,124,62,0,785,933,1,0,0,0,786,787,5,106,0,0,787,788,5,97,0,0,788,808,3,170,85,0,789,790,5,216,0,0,790,791,5,305,0,0,791,792,3,208,104,0,792,793,5,306,0,0,793,809,1,0,0,0,794,806,5,217,0,0,795,796,5,305,0,0,796,801,3,124,62,0,797,798,5,303,0,0,798,800,3,124,62,0,799,797,1,0,0,0,800,803,1,0,0,0,801,799,1,0,0,0,801,802,1,0,0,0,802,804,1,0,0,0,803,801,1,0,0,0,804,805,5,306,0,0,805,807,1,0,0,0,806,795,1,0,0,0,806,807,1,0,0,0,807,809,1,0,0,0,808,789,1,0,0,0,808,794,1,0,0,0,809,933,1,0,0,0,810,811,5,106,0,0,811,812,5,96,0,0,812,813,5,97,0,0,813,833,3,170,85,0,814,815,5,216,0,0,815,816,5,305,0,0,816,817,3,208,104,0,817,818,5,306,0,0,818,834,1,0,0,0,819,831,5,217,0,0,820,821,5,305,0,0,821,826,3,124,62,0,822,823,5,303,0,0,823,825,3,124,62,0,824,822,1,0,0,0,825,828,1,0,0,0,826,824,1,0,0,0,826,827,1,0,0,0,827,829,1,0,0,0,828,826,1,0,0,0,829,830,5,306,0,0,830,832,1,0,0,0,831,820,1,0,0,0,831,832,1,0,0,0,832,834,1,0,0,0,833,814,1,0,0,0,833,819,1,0,0,0,834,933,1,0,0,0,835,837,5,106,0,0,836,838,5,96,0,0,837,836,1,0,0,0,837,838,1,0,0,0,838,839,1,0,0,0,839,840,5,97,0,0,840,841,3,170,85,0,841,842,7,9,0,0,842,933,1,0,0,0,843,845,5,106,0,0,844,846,5,96,0,0,845,844,1,0,0,0,845,846,1,0,0,0,846,847,1,0,0,0,847,848,5,97,0,0,848,849,3,170,85,0,849,850,5,113,0,0,850,851,5,4,0,0,851,852,3,116,58,0,852,933,1,0,0,0,853,855,5,106,0,0,854,856,5,96,0,0,855,854,1,0,0,0,855,856,1,0,0,0,856,857,1,0,0,0,857,858,5,97,0,0,858,859,3,170,85,0,859,861,5,113,0,0,860,862,5,110,0,0,861,860,1,0,0,0,861,862,1,0,0,0,862,863,1,0,0,0,863,864,3,96,48,0,864,865,5,4,0,0,865,866,3,96,48,0,866,933,1,0,0,0,867,869,5,106,0,0,868,870,5,96,0,0,869,868,1,0,0,0,869,870,1,0,0,0,870,871,1,0,0,0,871,872,5,97,0,0,872,873,3,170,85,0,873,874,5,114,0,0,874,875,3,190,95,0,875,933,1,0,0,0,876,877,5,106,0,0,877,878,5,103,0,0,878,879,5,114,0,0,879,880,5,120,0,0,880,933,5,121,0,0,881,882,5,106,0,0,882,883,5,103,0,0,883,884,5,98,0,0,884,885,5,97,0,0,885,886,3,116,58,0,886,887,5,4,0,0,887,889,3,116,58,0,888,890,3,206,103,0,889,888,1,0,0,0,889,890,1,0,0,0,890,933,1,0,0,0,891,892,5,106,0,0,892,893,5,103,0,0,893,894,5,102,0,0,894,933,3,58,29,0,895,896,5,106,0,0,896,897,5,103,0,0,897,898,5,99,0,0,898,899,5,100,0,0,899,933,5,101,0,0,900,901,5,106,0,0,901,902,7,7,0,0,902,903,3,124,62,0,903,904,5,216,0,0,904,905,5,305,0,0,905,906,3,208,104,0,906,907,5,306,0,0,907,933,1,0,0,0,908,909,5,106,0,0,909,910,5,256,0,0,910,911,3,124,62,0,911,912,7,10,0,0,912,913,5,97,0,0,913,915,3,116,58,0,914,916,5,295,0,0,915,914,1,0,0,0,915,916,1,0,0,0,916,924,1,0,0,0,917,918,5,303,0,0,918,920,3,116,58,0,919,921,5,295,0,0,920,919,1,0,0,0,920,921,1,0,0,0,921,923,1,0,0,0,922,917,1,0,0,0,923,926,1,0,0,0,924,922,1,0,0,0,924,925,1,0,0,0,925,933,1,0,0,0,926,924,1,0,0,0,927,928,5,106,0,0,928,929,5,257,0,0,929,930,3,124,62,0,930,931,3,172,86,0,931,933,1,0,0,0,932,757,1,0,0,0,932,768,1,0,0,0,932,779,1,0,0,0,932,786,1,0,0,0,932,810,1,0,0,0,932,835,1,0,0,0,932,843,1,0,0,0,932,853,1,0,0,0,932,867,1,0,0,0,932,876,1,0,0,0,932,881,1,0,0,0,932,891,1,0,0,0,932,895,1,0,0,0,932,900,1,0,0,0,932,908,1,0,0,0,932,927,1,0,0,0,933,11,1,0,0,0,934,935,5,305,0,0,935,936,3,14,7,0,936,937,5,306,0,0,937,944,1,0,0,0,938,944,3,14,7,0,939,940,5,305,0,0,940,941,3,12,6,0,941,942,5,306,0,0,942,944,1,0,0,0,943,934,1,0,0,0,943,938,1,0,0,0,943,939,1,0,0,0,944,13,1,0,0,0,945,947,3,54,27,0,946,945,1,0,0,0,946,947,1,0,0,0,947,948,1,0,0,0,948,949,3,16,8,0,949,15,1,0,0,0,950,961,3,22,11,0,951,952,5,16,0,0,952,953,5,15,0,0,953,958,3,26,13,0,954,955,5,303,0,0,955,957,3,26,13,0,956,954,1,0,0,0,957,960,1,0,0,0,958,956,1,0,0,0,958,959,1,0,0,0,959,962,1,0,0,0,960,958,1,0,0,0,961,951,1,0,0,0,961,962,1,0,0,0,962,975,1,0,0,0,963,965,3,18,9,0,964,963,1,0,0,0,964,965,1,0,0,0,965,967,1,0,0,0,966,968,3,20,10,0,967,966,1,0,0,0,967,968,1,0,0,0,968,976,1,0,0,0,969,971,3,20,10,0,970,969,1,0,0,0,970,971,1,0,0,0,971,973,1,0,0,0,972,974,3,18,9,0,973,972,1,0,0,0,973,974,1,0,0,0,974,976,1,0,0,0,975,964,1,0,0,0,975,970,1,0,0,0,976,17,1,0,0,0,977,980,5,18,0,0,978,981,3,78,39,0,979,981,5,7,0,0,980,978,1,0,0,0,980,979,1,0,0,0,981,989,1,0,0,0,982,983,5,35,0,0,983,984,7,11,0,0,984,985,3,78,39,0,985,986,7,12,0,0,986,987,5,108,0,0,987,989,1,0,0,0,988,977,1,0,0,0,988,982,1,0,0,0,989,19,1,0,0,0,990,991,5,19,0,0,991,993,3,78,39,0,992,994,7,12,0,0,993,992,1,0,0,0,993,994,1,0,0,0,994,21,1,0,0,0,995,996,6,11,-1,0,996,1002,3,28,14,0,997,998,3,28,14,0,998,999,7,13,0,0,999,1e3,3,28,14,0,1e3,1002,1,0,0,0,1001,995,1,0,0,0,1001,997,1,0,0,0,1002,1011,1,0,0,0,1003,1004,10,1,0,0,1004,1006,5,199,0,0,1005,1007,3,24,12,0,1006,1005,1,0,0,0,1006,1007,1,0,0,0,1007,1008,1,0,0,0,1008,1010,3,22,11,2,1009,1003,1,0,0,0,1010,1013,1,0,0,0,1011,1009,1,0,0,0,1011,1012,1,0,0,0,1012,23,1,0,0,0,1013,1011,1,0,0,0,1014,1015,7,14,0,0,1015,25,1,0,0,0,1016,1018,3,58,29,0,1017,1019,7,15,0,0,1018,1017,1,0,0,0,1018,1019,1,0,0,0,1019,1022,1,0,0,0,1020,1021,5,34,0,0,1021,1023,7,16,0,0,1022,1020,1,0,0,0,1022,1023,1,0,0,0,1023,27,1,0,0,0,1024,1026,5,2,0,0,1025,1027,3,24,12,0,1026,1025,1,0,0,0,1026,1027,1,0,0,0,1027,1028,1,0,0,0,1028,1033,3,30,15,0,1029,1030,5,303,0,0,1030,1032,3,30,15,0,1031,1029,1,0,0,0,1032,1035,1,0,0,0,1033,1031,1,0,0,0,1033,1034,1,0,0,0,1034,1045,1,0,0,0,1035,1033,1,0,0,0,1036,1037,5,3,0,0,1037,1042,3,38,19,0,1038,1039,5,303,0,0,1039,1041,3,38,19,0,1040,1038,1,0,0,0,1041,1044,1,0,0,0,1042,1040,1,0,0,0,1042,1043,1,0,0,0,1043,1046,1,0,0,0,1044,1042,1,0,0,0,1045,1036,1,0,0,0,1045,1046,1,0,0,0,1046,1048,1,0,0,0,1047,1049,3,32,16,0,1048,1047,1,0,0,0,1048,1049,1,0,0,0,1049,1060,1,0,0,0,1050,1051,5,14,0,0,1051,1052,5,15,0,0,1052,1057,3,58,29,0,1053,1054,5,303,0,0,1054,1056,3,58,29,0,1055,1053,1,0,0,0,1056,1059,1,0,0,0,1057,1055,1,0,0,0,1057,1058,1,0,0,0,1058,1061,1,0,0,0,1059,1057,1,0,0,0,1060,1050,1,0,0,0,1060,1061,1,0,0,0,1061,1064,1,0,0,0,1062,1063,5,17,0,0,1063,1065,3,60,30,0,1064,1062,1,0,0,0,1064,1065,1,0,0,0,1065,1075,1,0,0,0,1066,1067,5,82,0,0,1067,1072,3,104,52,0,1068,1069,5,303,0,0,1069,1071,3,104,52,0,1070,1068,1,0,0,0,1071,1074,1,0,0,0,1072,1070,1,0,0,0,1072,1073,1,0,0,0,1073,1076,1,0,0,0,1074,1072,1,0,0,0,1075,1066,1,0,0,0,1075,1076,1,0,0,0,1076,1087,1,0,0,0,1077,1078,5,208,0,0,1078,1083,3,154,77,0,1079,1080,5,303,0,0,1080,1082,3,154,77,0,1081,1079,1,0,0,0,1082,1085,1,0,0,0,1083,1081,1,0,0,0,1083,1084,1,0,0,0,1084,1087,1,0,0,0,1085,1083,1,0,0,0,1086,1024,1,0,0,0,1086,1077,1,0,0,0,1087,29,1,0,0,0,1088,1093,3,58,29,0,1089,1091,5,5,0,0,1090,1089,1,0,0,0,1090,1091,1,0,0,0,1091,1092,1,0,0,0,1092,1094,3,124,62,0,1093,1090,1,0,0,0,1093,1094,1,0,0,0,1094,1101,1,0,0,0,1095,1096,3,116,58,0,1096,1097,5,304,0,0,1097,1098,5,295,0,0,1098,1101,1,0,0,0,1099,1101,5,295,0,0,1100,1088,1,0,0,0,1100,1095,1,0,0,0,1100,1099,1,0,0,0,1101,31,1,0,0,0,1102,1103,5,13,0,0,1103,1104,3,60,30,0,1104,33,1,0,0,0,1105,1106,5,229,0,0,1106,1111,3,30,15,0,1107,1108,5,303,0,0,1108,1110,3,30,15,0,1109,1107,1,0,0,0,1110,1113,1,0,0,0,1111,1109,1,0,0,0,1111,1112,1,0,0,0,1112,35,1,0,0,0,1113,1111,1,0,0,0,1114,1115,5,225,0,0,1115,1116,5,305,0,0,1116,1117,3,32,16,0,1117,1118,5,306,0,0,1118,37,1,0,0,0,1119,1120,6,19,-1,0,1120,1121,3,44,22,0,1121,1140,1,0,0,0,1122,1136,10,2,0,0,1123,1124,5,72,0,0,1124,1125,5,71,0,0,1125,1137,3,44,22,0,1126,1127,3,40,20,0,1127,1128,5,71,0,0,1128,1129,3,38,19,0,1129,1130,3,42,21,0,1130,1137,1,0,0,0,1131,1132,5,78,0,0,1132,1133,3,40,20,0,1133,1134,5,71,0,0,1134,1135,3,44,22,0,1135,1137,1,0,0,0,1136,1123,1,0,0,0,1136,1126,1,0,0,0,1136,1131,1,0,0,0,1137,1139,1,0,0,0,1138,1122,1,0,0,0,1139,1142,1,0,0,0,1140,1138,1,0,0,0,1140,1141,1,0,0,0,1141,39,1,0,0,0,1142,1140,1,0,0,0,1143,1145,5,74,0,0,1144,1143,1,0,0,0,1144,1145,1,0,0,0,1145,1159,1,0,0,0,1146,1148,5,75,0,0,1147,1149,5,73,0,0,1148,1147,1,0,0,0,1148,1149,1,0,0,0,1149,1159,1,0,0,0,1150,1152,5,76,0,0,1151,1153,5,73,0,0,1152,1151,1,0,0,0,1152,1153,1,0,0,0,1153,1159,1,0,0,0,1154,1156,5,77,0,0,1155,1157,5,73,0,0,1156,1155,1,0,0,0,1156,1157,1,0,0,0,1157,1159,1,0,0,0,1158,1144,1,0,0,0,1158,1146,1,0,0,0,1158,1150,1,0,0,0,1158,1154,1,0,0,0,1159,41,1,0,0,0,1160,1161,5,80,0,0,1161,1175,3,60,30,0,1162,1163,5,79,0,0,1163,1164,5,305,0,0,1164,1169,3,124,62,0,1165,1166,5,303,0,0,1166,1168,3,124,62,0,1167,1165,1,0,0,0,1168,1171,1,0,0,0,1169,1167,1,0,0,0,1169,1170,1,0,0,0,1170,1172,1,0,0,0,1171,1169,1,0,0,0,1172,1173,5,306,0,0,1173,1175,1,0,0,0,1174,1160,1,0,0,0,1174,1162,1,0,0,0,1175,43,1,0,0,0,1176,1184,3,46,23,0,1177,1179,5,5,0,0,1178,1177,1,0,0,0,1178,1179,1,0,0,0,1179,1180,1,0,0,0,1180,1182,3,124,62,0,1181,1183,3,52,26,0,1182,1181,1,0,0,0,1182,1183,1,0,0,0,1183,1185,1,0,0,0,1184,1178,1,0,0,0,1184,1185,1,0,0,0,1185,45,1,0,0,0,1186,1196,3,50,25,0,1187,1188,5,305,0,0,1188,1189,3,14,7,0,1189,1190,5,306,0,0,1190,1196,1,0,0,0,1191,1192,5,305,0,0,1192,1193,3,38,19,0,1193,1194,5,306,0,0,1194,1196,1,0,0,0,1195,1186,1,0,0,0,1195,1187,1,0,0,0,1195,1191,1,0,0,0,1196,47,1,0,0,0,1197,1210,3,116,58,0,1198,1199,5,83,0,0,1199,1200,5,305,0,0,1200,1205,3,158,79,0,1201,1202,5,303,0,0,1202,1204,3,158,79,0,1203,1201,1,0,0,0,1204,1207,1,0,0,0,1205,1203,1,0,0,0,1205,1206,1,0,0,0,1206,1208,1,0,0,0,1207,1205,1,0,0,0,1208,1209,5,306,0,0,1209,1211,1,0,0,0,1210,1198,1,0,0,0,1210,1211,1,0,0,0,1211,49,1,0,0,0,1212,1228,3,116,58,0,1213,1214,3,116,58,0,1214,1216,5,305,0,0,1215,1217,3,66,33,0,1216,1215,1,0,0,0,1216,1217,1,0,0,0,1217,1222,1,0,0,0,1218,1219,5,303,0,0,1219,1221,3,66,33,0,1220,1218,1,0,0,0,1221,1224,1,0,0,0,1222,1220,1,0,0,0,1222,1223,1,0,0,0,1223,1225,1,0,0,0,1224,1222,1,0,0,0,1225,1226,5,306,0,0,1226,1228,1,0,0,0,1227,1212,1,0,0,0,1227,1213,1,0,0,0,1228,51,1,0,0,0,1229,1230,5,305,0,0,1230,1235,3,124,62,0,1231,1232,5,303,0,0,1232,1234,3,124,62,0,1233,1231,1,0,0,0,1234,1237,1,0,0,0,1235,1233,1,0,0,0,1235,1236,1,0,0,0,1236,1238,1,0,0,0,1237,1235,1,0,0,0,1238,1239,5,306,0,0,1239,53,1,0,0,0,1240,1241,5,92,0,0,1241,1246,3,56,28,0,1242,1243,5,303,0,0,1243,1245,3,56,28,0,1244,1242,1,0,0,0,1245,1248,1,0,0,0,1246,1244,1,0,0,0,1246,1247,1,0,0,0,1247,55,1,0,0,0,1248,1246,1,0,0,0,1249,1251,3,124,62,0,1250,1252,3,52,26,0,1251,1250,1,0,0,0,1251,1252,1,0,0,0,1252,1253,1,0,0,0,1253,1254,5,5,0,0,1254,1255,5,305,0,0,1255,1256,3,14,7,0,1256,1257,5,306,0,0,1257,57,1,0,0,0,1258,1259,3,60,30,0,1259,59,1,0,0,0,1260,1261,6,30,-1,0,1261,1278,3,62,31,0,1262,1263,5,23,0,0,1263,1278,3,60,30,4,1264,1265,5,243,0,0,1265,1266,5,305,0,0,1266,1267,3,216,108,0,1267,1268,5,303,0,0,1268,1269,3,68,34,0,1269,1275,5,306,0,0,1270,1271,5,79,0,0,1271,1273,3,124,62,0,1272,1274,3,206,103,0,1273,1272,1,0,0,0,1273,1274,1,0,0,0,1274,1276,1,0,0,0,1275,1270,1,0,0,0,1275,1276,1,0,0,0,1276,1278,1,0,0,0,1277,1260,1,0,0,0,1277,1262,1,0,0,0,1277,1264,1,0,0,0,1278,1287,1,0,0,0,1279,1280,10,3,0,0,1280,1281,5,21,0,0,1281,1286,3,60,30,4,1282,1283,10,2,0,0,1283,1284,5,20,0,0,1284,1286,3,60,30,3,1285,1279,1,0,0,0,1285,1282,1,0,0,0,1286,1289,1,0,0,0,1287,1285,1,0,0,0,1287,1288,1,0,0,0,1288,61,1,0,0,0,1289,1287,1,0,0,0,1290,1292,3,66,33,0,1291,1293,3,64,32,0,1292,1291,1,0,0,0,1292,1293,1,0,0,0,1293,63,1,0,0,0,1294,1295,3,98,49,0,1295,1296,3,66,33,0,1296,1363,1,0,0,0,1297,1298,3,98,49,0,1298,1299,3,100,50,0,1299,1300,3,68,34,0,1300,1363,1,0,0,0,1301,1303,5,23,0,0,1302,1301,1,0,0,0,1302,1303,1,0,0,0,1303,1304,1,0,0,0,1304,1305,5,25,0,0,1305,1306,3,66,33,0,1306,1307,5,21,0,0,1307,1308,3,66,33,0,1308,1363,1,0,0,0,1309,1311,5,23,0,0,1310,1309,1,0,0,0,1310,1311,1,0,0,0,1311,1312,1,0,0,0,1312,1313,5,22,0,0,1313,1314,5,305,0,0,1314,1319,3,58,29,0,1315,1316,5,303,0,0,1316,1318,3,58,29,0,1317,1315,1,0,0,0,1318,1321,1,0,0,0,1319,1317,1,0,0,0,1319,1320,1,0,0,0,1320,1322,1,0,0,0,1321,1319,1,0,0,0,1322,1323,5,306,0,0,1323,1363,1,0,0,0,1324,1326,5,23,0,0,1325,1324,1,0,0,0,1325,1326,1,0,0,0,1326,1327,1,0,0,0,1327,1328,5,22,0,0,1328,1363,3,72,36,0,1329,1331,5,23,0,0,1330,1329,1,0,0,0,1330,1331,1,0,0,0,1331,1332,1,0,0,0,1332,1333,7,17,0,0,1333,1336,3,66,33,0,1334,1335,5,39,0,0,1335,1337,3,74,37,0,1336,1334,1,0,0,0,1336,1337,1,0,0,0,1337,1363,1,0,0,0,1338,1340,5,23,0,0,1339,1338,1,0,0,0,1339,1340,1,0,0,0,1340,1341,1,0,0,0,1341,1342,7,17,0,0,1342,1343,3,100,50,0,1343,1344,5,305,0,0,1344,1345,3,66,33,0,1345,1348,5,306,0,0,1346,1347,5,39,0,0,1347,1349,3,66,33,0,1348,1346,1,0,0,0,1348,1349,1,0,0,0,1349,1363,1,0,0,0,1350,1352,5,28,0,0,1351,1353,5,23,0,0,1352,1351,1,0,0,0,1352,1353,1,0,0,0,1353,1354,1,0,0,0,1354,1363,5,29,0,0,1355,1357,5,28,0,0,1356,1358,5,23,0,0,1357,1356,1,0,0,0,1357,1358,1,0,0,0,1358,1359,1,0,0,0,1359,1360,5,12,0,0,1360,1361,5,3,0,0,1361,1363,3,66,33,0,1362,1294,1,0,0,0,1362,1297,1,0,0,0,1362,1302,1,0,0,0,1362,1310,1,0,0,0,1362,1325,1,0,0,0,1362,1330,1,0,0,0,1362,1339,1,0,0,0,1362,1350,1,0,0,0,1362,1355,1,0,0,0,1363,65,1,0,0,0,1364,1365,6,33,-1,0,1365,1372,3,68,34,0,1366,1367,7,18,0,0,1367,1372,3,66,33,7,1368,1369,3,192,96,0,1369,1370,3,92,46,0,1370,1372,1,0,0,0,1371,1364,1,0,0,0,1371,1366,1,0,0,0,1371,1368,1,0,0,0,1372,1390,1,0,0,0,1373,1374,10,6,0,0,1374,1375,5,296,0,0,1375,1389,3,66,33,7,1376,1377,10,5,0,0,1377,1378,7,19,0,0,1378,1389,3,66,33,6,1379,1380,10,4,0,0,1380,1381,7,18,0,0,1381,1389,3,66,33,5,1382,1383,10,3,0,0,1383,1384,7,20,0,0,1384,1389,3,66,33,4,1385,1386,10,2,0,0,1386,1387,5,299,0,0,1387,1389,3,66,33,3,1388,1373,1,0,0,0,1388,1376,1,0,0,0,1388,1379,1,0,0,0,1388,1382,1,0,0,0,1388,1385,1,0,0,0,1389,1392,1,0,0,0,1390,1388,1,0,0,0,1390,1391,1,0,0,0,1391,67,1,0,0,0,1392,1390,1,0,0,0,1393,1394,6,34,-1,0,1394,1462,3,74,37,0,1395,1462,3,70,35,0,1396,1397,3,116,58,0,1397,1398,5,305,0,0,1398,1399,5,295,0,0,1399,1401,5,306,0,0,1400,1402,3,36,18,0,1401,1400,1,0,0,0,1401,1402,1,0,0,0,1402,1404,1,0,0,0,1403,1405,3,106,53,0,1404,1403,1,0,0,0,1404,1405,1,0,0,0,1405,1462,1,0,0,0,1406,1462,3,124,62,0,1407,1408,3,116,58,0,1408,1420,5,305,0,0,1409,1411,3,24,12,0,1410,1409,1,0,0,0,1410,1411,1,0,0,0,1411,1412,1,0,0,0,1412,1417,3,58,29,0,1413,1414,5,303,0,0,1414,1416,3,58,29,0,1415,1413,1,0,0,0,1416,1419,1,0,0,0,1417,1415,1,0,0,0,1417,1418,1,0,0,0,1418,1421,1,0,0,0,1419,1417,1,0,0,0,1420,1410,1,0,0,0,1420,1421,1,0,0,0,1421,1422,1,0,0,0,1422,1424,5,306,0,0,1423,1425,3,36,18,0,1424,1423,1,0,0,0,1424,1425,1,0,0,0,1425,1428,1,0,0,0,1426,1427,7,21,0,0,1427,1429,5,34,0,0,1428,1426,1,0,0,0,1428,1429,1,0,0,0,1429,1431,1,0,0,0,1430,1432,3,106,53,0,1431,1430,1,0,0,0,1431,1432,1,0,0,0,1432,1462,1,0,0,0,1433,1462,3,72,36,0,1434,1435,5,305,0,0,1435,1436,3,68,34,0,1436,1437,5,306,0,0,1437,1438,5,304,0,0,1438,1439,3,124,62,0,1439,1462,1,0,0,0,1440,1441,5,305,0,0,1441,1442,3,58,29,0,1442,1443,5,306,0,0,1443,1462,1,0,0,0,1444,1445,5,24,0,0,1445,1446,5,305,0,0,1446,1447,3,14,7,0,1447,1448,5,306,0,0,1448,1462,1,0,0,0,1449,1454,3,124,62,0,1450,1451,5,304,0,0,1451,1453,3,124,62,0,1452,1450,1,0,0,0,1453,1456,1,0,0,0,1454,1452,1,0,0,0,1454,1455,1,0,0,0,1455,1462,1,0,0,0,1456,1454,1,0,0,0,1457,1459,5,233,0,0,1458,1457,1,0,0,0,1458,1459,1,0,0,0,1459,1460,1,0,0,0,1460,1462,5,311,0,0,1461,1393,1,0,0,0,1461,1395,1,0,0,0,1461,1396,1,0,0,0,1461,1406,1,0,0,0,1461,1407,1,0,0,0,1461,1433,1,0,0,0,1461,1434,1,0,0,0,1461,1440,1,0,0,0,1461,1444,1,0,0,0,1461,1449,1,0,0,0,1461,1458,1,0,0,0,1462,1488,1,0,0,0,1463,1464,10,2,0,0,1464,1465,5,6,0,0,1465,1466,5,48,0,0,1466,1467,5,49,0,0,1467,1487,3,68,34,3,1468,1469,10,6,0,0,1469,1470,5,309,0,0,1470,1471,3,66,33,0,1471,1472,5,310,0,0,1472,1487,1,0,0,0,1473,1474,10,5,0,0,1474,1476,5,309,0,0,1475,1477,3,66,33,0,1476,1475,1,0,0,0,1476,1477,1,0,0,0,1477,1478,1,0,0,0,1478,1480,5,302,0,0,1479,1481,3,66,33,0,1480,1479,1,0,0,0,1480,1481,1,0,0,0,1481,1482,1,0,0,0,1482,1487,5,310,0,0,1483,1484,10,3,0,0,1484,1485,5,300,0,0,1485,1487,3,192,96,0,1486,1463,1,0,0,0,1486,1468,1,0,0,0,1486,1473,1,0,0,0,1486,1483,1,0,0,0,1487,1490,1,0,0,0,1488,1486,1,0,0,0,1488,1489,1,0,0,0,1489,69,1,0,0,0,1490,1488,1,0,0,0,1491,1608,5,56,0,0,1492,1497,5,57,0,0,1493,1494,5,305,0,0,1494,1495,3,144,72,0,1495,1496,5,306,0,0,1496,1498,1,0,0,0,1497,1493,1,0,0,0,1497,1498,1,0,0,0,1498,1608,1,0,0,0,1499,1504,5,58,0,0,1500,1501,5,305,0,0,1501,1502,3,144,72,0,1502,1503,5,306,0,0,1503,1505,1,0,0,0,1504,1500,1,0,0,0,1504,1505,1,0,0,0,1505,1608,1,0,0,0,1506,1608,5,59,0,0,1507,1608,7,22,0,0,1508,1608,5,62,0,0,1509,1510,5,75,0,0,1510,1511,5,305,0,0,1511,1512,3,58,29,0,1512,1513,5,303,0,0,1513,1514,3,58,29,0,1514,1515,5,306,0,0,1515,1608,1,0,0,0,1516,1517,5,76,0,0,1517,1518,5,305,0,0,1518,1519,3,58,29,0,1519,1520,5,303,0,0,1520,1521,3,58,29,0,1521,1522,5,306,0,0,1522,1608,1,0,0,0,1523,1524,5,42,0,0,1524,1525,5,305,0,0,1525,1526,3,58,29,0,1526,1527,5,3,0,0,1527,1530,3,58,29,0,1528,1529,5,47,0,0,1529,1531,3,58,29,0,1530,1528,1,0,0,0,1530,1531,1,0,0,0,1531,1532,1,0,0,0,1532,1533,5,306,0,0,1533,1608,1,0,0,0,1534,1535,5,43,0,0,1535,1543,5,305,0,0,1536,1538,7,23,0,0,1537,1536,1,0,0,0,1537,1538,1,0,0,0,1538,1540,1,0,0,0,1539,1541,3,58,29,0,1540,1539,1,0,0,0,1540,1541,1,0,0,0,1541,1542,1,0,0,0,1542,1544,5,3,0,0,1543,1537,1,0,0,0,1543,1544,1,0,0,0,1544,1545,1,0,0,0,1545,1546,3,58,29,0,1546,1547,5,306,0,0,1547,1608,1,0,0,0,1548,1549,5,63,0,0,1549,1550,5,305,0,0,1550,1551,3,130,65,0,1551,1552,5,3,0,0,1552,1553,3,58,29,0,1553,1554,5,306,0,0,1554,1608,1,0,0,0,1555,1556,5,183,0,0,1556,1557,5,305,0,0,1557,1558,3,58,29,0,1558,1559,5,5,0,0,1559,1560,3,192,96,0,1560,1561,5,306,0,0,1561,1608,1,0,0,0,1562,1563,5,184,0,0,1563,1564,5,305,0,0,1564,1565,3,58,29,0,1565,1566,5,5,0,0,1566,1567,3,192,96,0,1567,1568,5,306,0,0,1568,1608,1,0,0,0,1569,1570,5,64,0,0,1570,1572,3,58,29,0,1571,1573,3,102,51,0,1572,1571,1,0,0,0,1573,1574,1,0,0,0,1574,1572,1,0,0,0,1574,1575,1,0,0,0,1575,1578,1,0,0,0,1576,1577,5,67,0,0,1577,1579,3,58,29,0,1578,1576,1,0,0,0,1578,1579,1,0,0,0,1579,1580,1,0,0,0,1580,1581,5,68,0,0,1581,1608,1,0,0,0,1582,1584,5,64,0,0,1583,1585,3,102,51,0,1584,1583,1,0,0,0,1585,1586,1,0,0,0,1586,1584,1,0,0,0,1586,1587,1,0,0,0,1587,1590,1,0,0,0,1588,1589,5,67,0,0,1589,1591,3,58,29,0,1590,1588,1,0,0,0,1590,1591,1,0,0,0,1591,1592,1,0,0,0,1592,1593,5,68,0,0,1593,1608,1,0,0,0,1594,1595,5,69,0,0,1595,1596,5,305,0,0,1596,1597,3,58,29,0,1597,1598,5,303,0,0,1598,1601,3,58,29,0,1599,1600,5,303,0,0,1600,1602,3,58,29,0,1601,1599,1,0,0,0,1601,1602,1,0,0,0,1602,1603,1,0,0,0,1603,1604,5,306,0,0,1604,1608,1,0,0,0,1605,1606,5,233,0,0,1606,1608,3,72,36,0,1607,1491,1,0,0,0,1607,1492,1,0,0,0,1607,1499,1,0,0,0,1607,1506,1,0,0,0,1607,1507,1,0,0,0,1607,1508,1,0,0,0,1607,1509,1,0,0,0,1607,1516,1,0,0,0,1607,1523,1,0,0,0,1607,1534,1,0,0,0,1607,1548,1,0,0,0,1607,1555,1,0,0,0,1607,1562,1,0,0,0,1607,1569,1,0,0,0,1607,1582,1,0,0,0,1607,1594,1,0,0,0,1607,1605,1,0,0,0,1608,71,1,0,0,0,1609,1610,5,305,0,0,1610,1611,3,14,7,0,1611,1612,5,306,0,0,1612,73,1,0,0,0,1613,1642,3,76,38,0,1614,1616,5,233,0,0,1615,1614,1,0,0,0,1615,1616,1,0,0,0,1616,1617,1,0,0,0,1617,1626,5,309,0,0,1618,1623,3,58,29,0,1619,1620,5,303,0,0,1620,1622,3,58,29,0,1621,1619,1,0,0,0,1622,1625,1,0,0,0,1623,1621,1,0,0,0,1623,1624,1,0,0,0,1624,1627,1,0,0,0,1625,1623,1,0,0,0,1626,1618,1,0,0,0,1626,1627,1,0,0,0,1627,1628,1,0,0,0,1628,1642,5,310,0,0,1629,1638,5,307,0,0,1630,1635,3,146,73,0,1631,1632,5,303,0,0,1632,1634,3,146,73,0,1633,1631,1,0,0,0,1634,1637,1,0,0,0,1635,1633,1,0,0,0,1635,1636,1,0,0,0,1636,1639,1,0,0,0,1637,1635,1,0,0,0,1638,1630,1,0,0,0,1638,1639,1,0,0,0,1639,1640,1,0,0,0,1640,1642,5,308,0,0,1641,1613,1,0,0,0,1641,1615,1,0,0,0,1641,1629,1,0,0,0,1642,75,1,0,0,0,1643,1652,3,86,43,0,1644,1652,3,136,68,0,1645,1652,3,88,44,0,1646,1652,3,92,46,0,1647,1652,3,134,67,0,1648,1652,3,140,70,0,1649,1652,3,94,47,0,1650,1652,3,84,42,0,1651,1643,1,0,0,0,1651,1644,1,0,0,0,1651,1645,1,0,0,0,1651,1646,1,0,0,0,1651,1647,1,0,0,0,1651,1648,1,0,0,0,1651,1649,1,0,0,0,1651,1650,1,0,0,0,1652,77,1,0,0,0,1653,1675,3,84,42,0,1654,1675,3,144,72,0,1655,1675,3,86,43,0,1656,1657,3,74,37,0,1657,1658,5,300,0,0,1658,1659,3,192,96,0,1659,1675,1,0,0,0,1660,1661,5,183,0,0,1661,1662,5,305,0,0,1662,1663,3,58,29,0,1663,1664,5,5,0,0,1664,1665,3,192,96,0,1665,1666,5,306,0,0,1666,1675,1,0,0,0,1667,1668,5,184,0,0,1668,1669,5,305,0,0,1669,1670,3,58,29,0,1670,1671,5,5,0,0,1671,1672,3,192,96,0,1672,1673,5,306,0,0,1673,1675,1,0,0,0,1674,1653,1,0,0,0,1674,1654,1,0,0,0,1674,1655,1,0,0,0,1674,1656,1,0,0,0,1674,1660,1,0,0,0,1674,1667,1,0,0,0,1675,79,1,0,0,0,1676,1679,3,84,42,0,1677,1679,3,124,62,0,1678,1676,1,0,0,0,1678,1677,1,0,0,0,1679,81,1,0,0,0,1680,1683,3,84,42,0,1681,1683,3,92,46,0,1682,1680,1,0,0,0,1682,1681,1,0,0,0,1683,83,1,0,0,0,1684,1685,5,313,0,0,1685,1688,3,144,72,0,1686,1688,5,312,0,0,1687,1684,1,0,0,0,1687,1686,1,0,0,0,1688,85,1,0,0,0,1689,1690,5,29,0,0,1690,87,1,0,0,0,1691,1692,5,318,0,0,1692,89,1,0,0,0,1693,1697,5,326,0,0,1694,1696,5,330,0,0,1695,1694,1,0,0,0,1696,1699,1,0,0,0,1697,1695,1,0,0,0,1697,1698,1,0,0,0,1698,1700,1,0,0,0,1699,1697,1,0,0,0,1700,1701,5,331,0,0,1701,91,1,0,0,0,1702,1705,5,317,0,0,1703,1705,3,90,45,0,1704,1702,1,0,0,0,1704,1703,1,0,0,0,1705,93,1,0,0,0,1706,1707,5,319,0,0,1707,95,1,0,0,0,1708,1709,6,48,-1,0,1709,1710,3,116,58,0,1710,1718,1,0,0,0,1711,1712,10,2,0,0,1712,1713,5,309,0,0,1713,1714,3,66,33,0,1714,1715,5,310,0,0,1715,1717,1,0,0,0,1716,1711,1,0,0,0,1717,1720,1,0,0,0,1718,1716,1,0,0,0,1718,1719,1,0,0,0,1719,97,1,0,0,0,1720,1718,1,0,0,0,1721,1722,7,24,0,0,1722,99,1,0,0,0,1723,1724,7,25,0,0,1724,101,1,0,0,0,1725,1726,5,65,0,0,1726,1727,3,58,29,0,1727,1728,5,66,0,0,1728,1729,3,58,29,0,1729,103,1,0,0,0,1730,1731,3,124,62,0,1731,1732,5,5,0,0,1732,1733,3,108,54,0,1733,105,1,0,0,0,1734,1735,5,81,0,0,1735,1736,3,108,54,0,1736,107,1,0,0,0,1737,1771,3,124,62,0,1738,1740,5,305,0,0,1739,1741,3,124,62,0,1740,1739,1,0,0,0,1740,1741,1,0,0,0,1741,1752,1,0,0,0,1742,1743,5,83,0,0,1743,1744,5,15,0,0,1744,1749,3,58,29,0,1745,1746,5,303,0,0,1746,1748,3,58,29,0,1747,1745,1,0,0,0,1748,1751,1,0,0,0,1749,1747,1,0,0,0,1749,1750,1,0,0,0,1750,1753,1,0,0,0,1751,1749,1,0,0,0,1752,1742,1,0,0,0,1752,1753,1,0,0,0,1753,1764,1,0,0,0,1754,1755,5,16,0,0,1755,1756,5,15,0,0,1756,1761,3,26,13,0,1757,1758,5,303,0,0,1758,1760,3,26,13,0,1759,1757,1,0,0,0,1760,1763,1,0,0,0,1761,1759,1,0,0,0,1761,1762,1,0,0,0,1762,1765,1,0,0,0,1763,1761,1,0,0,0,1764,1754,1,0,0,0,1764,1765,1,0,0,0,1765,1767,1,0,0,0,1766,1768,3,110,55,0,1767,1766,1,0,0,0,1767,1768,1,0,0,0,1768,1769,1,0,0,0,1769,1771,5,306,0,0,1770,1737,1,0,0,0,1770,1738,1,0,0,0,1771,109,1,0,0,0,1772,1773,5,85,0,0,1773,1789,3,112,56,0,1774,1775,5,86,0,0,1775,1789,3,112,56,0,1776,1777,5,85,0,0,1777,1778,5,25,0,0,1778,1779,3,112,56,0,1779,1780,5,21,0,0,1780,1781,3,112,56,0,1781,1789,1,0,0,0,1782,1783,5,86,0,0,1783,1784,5,25,0,0,1784,1785,3,112,56,0,1785,1786,5,21,0,0,1786,1787,3,112,56,0,1787,1789,1,0,0,0,1788,1772,1,0,0,0,1788,1774,1,0,0,0,1788,1776,1,0,0,0,1788,1782,1,0,0,0,1789,111,1,0,0,0,1790,1791,5,87,0,0,1791,1800,5,88,0,0,1792,1793,5,87,0,0,1793,1800,5,89,0,0,1794,1795,5,90,0,0,1795,1800,5,91,0,0,1796,1797,3,58,29,0,1797,1798,7,26,0,0,1798,1800,1,0,0,0,1799,1790,1,0,0,0,1799,1792,1,0,0,0,1799,1794,1,0,0,0,1799,1796,1,0,0,0,1800,113,1,0,0,0,1801,1806,3,116,58,0,1802,1803,5,303,0,0,1803,1805,3,116,58,0,1804,1802,1,0,0,0,1805,1808,1,0,0,0,1806,1804,1,0,0,0,1806,1807,1,0,0,0,1807,115,1,0,0,0,1808,1806,1,0,0,0,1809,1814,3,124,62,0,1810,1811,5,304,0,0,1811,1813,3,124,62,0,1812,1810,1,0,0,0,1813,1816,1,0,0,0,1814,1812,1,0,0,0,1814,1815,1,0,0,0,1815,117,1,0,0,0,1816,1814,1,0,0,0,1817,1821,3,120,60,0,1818,1820,3,120,60,0,1819,1818,1,0,0,0,1820,1823,1,0,0,0,1821,1819,1,0,0,0,1821,1822,1,0,0,0,1822,119,1,0,0,0,1823,1821,1,0,0,0,1824,1826,3,124,62,0,1825,1827,3,76,38,0,1826,1825,1,0,0,0,1826,1827,1,0,0,0,1827,121,1,0,0,0,1828,1833,3,124,62,0,1829,1830,5,303,0,0,1830,1832,3,124,62,0,1831,1829,1,0,0,0,1832,1835,1,0,0,0,1833,1831,1,0,0,0,1833,1834,1,0,0,0,1834,123,1,0,0,0,1835,1833,1,0,0,0,1836,1839,3,126,63,0,1837,1839,3,128,64,0,1838,1836,1,0,0,0,1838,1837,1,0,0,0,1839,125,1,0,0,0,1840,1844,5,322,0,0,1841,1844,3,248,124,0,1842,1844,5,323,0,0,1843,1840,1,0,0,0,1843,1841,1,0,0,0,1843,1842,1,0,0,0,1844,127,1,0,0,0,1845,1848,5,324,0,0,1846,1848,5,325,0,0,1847,1845,1,0,0,0,1847,1846,1,0,0,0,1848,129,1,0,0,0,1849,1852,3,124,62,0,1850,1852,3,92,46,0,1851,1849,1,0,0,0,1851,1850,1,0,0,0,1852,131,1,0,0,0,1853,1857,3,124,62,0,1854,1857,3,116,58,0,1855,1857,3,92,46,0,1856,1853,1,0,0,0,1856,1854,1,0,0,0,1856,1855,1,0,0,0,1857,133,1,0,0,0,1858,1861,3,142,71,0,1859,1861,3,144,72,0,1860,1858,1,0,0,0,1860,1859,1,0,0,0,1861,135,1,0,0,0,1862,1864,5,70,0,0,1863,1865,7,18,0,0,1864,1863,1,0,0,0,1864,1865,1,0,0,0,1865,1866,1,0,0,0,1866,1867,3,92,46,0,1867,1870,3,138,69,0,1868,1869,5,4,0,0,1869,1871,3,138,69,0,1870,1868,1,0,0,0,1870,1871,1,0,0,0,1871,137,1,0,0,0,1872,1873,7,27,0,0,1873,139,1,0,0,0,1874,1875,7,28,0,0,1875,141,1,0,0,0,1876,1877,5,321,0,0,1877,143,1,0,0,0,1878,1879,5,320,0,0,1879,145,1,0,0,0,1880,1881,3,124,62,0,1881,1882,5,282,0,0,1882,1883,3,58,29,0,1883,147,1,0,0,0,1884,1890,3,14,7,0,1885,1886,5,305,0,0,1886,1887,3,14,7,0,1887,1888,5,306,0,0,1888,1890,1,0,0,0,1889,1884,1,0,0,0,1889,1885,1,0,0,0,1890,149,1,0,0,0,1891,1892,5,80,0,0,1892,1894,5,213,0,0,1893,1895,3,152,76,0,1894,1893,1,0,0,0,1894,1895,1,0,0,0,1895,1896,1,0,0,0,1896,1897,5,214,0,0,1897,1913,5,215,0,0,1898,1899,5,80,0,0,1899,1900,5,213,0,0,1900,1901,3,152,76,0,1901,1902,5,214,0,0,1902,1903,5,210,0,0,1903,1904,5,216,0,0,1904,1909,3,158,79,0,1905,1906,5,303,0,0,1906,1908,3,158,79,0,1907,1905,1,0,0,0,1908,1911,1,0,0,0,1909,1907,1,0,0,0,1909,1910,1,0,0,0,1910,1913,1,0,0,0,1911,1909,1,0,0,0,1912,1891,1,0,0,0,1912,1898,1,0,0,0,1913,151,1,0,0,0,1914,1915,5,305,0,0,1915,1920,3,96,48,0,1916,1917,5,303,0,0,1917,1919,3,96,48,0,1918,1916,1,0,0,0,1919,1922,1,0,0,0,1920,1918,1,0,0,0,1920,1921,1,0,0,0,1921,1923,1,0,0,0,1922,1920,1,0,0,0,1923,1924,5,306,0,0,1924,153,1,0,0,0,1925,1926,5,305,0,0,1926,1931,3,58,29,0,1927,1928,5,303,0,0,1928,1930,3,58,29,0,1929,1927,1,0,0,0,1930,1933,1,0,0,0,1931,1929,1,0,0,0,1931,1932,1,0,0,0,1932,1934,1,0,0,0,1933,1931,1,0,0,0,1934,1935,5,306,0,0,1935,155,1,0,0,0,1936,1937,5,305,0,0,1937,1942,3,68,34,0,1938,1939,5,303,0,0,1939,1941,3,68,34,0,1940,1938,1,0,0,0,1941,1944,1,0,0,0,1942,1940,1,0,0,0,1942,1943,1,0,0,0,1943,1945,1,0,0,0,1944,1942,1,0,0,0,1945,1946,5,306,0,0,1946,157,1,0,0,0,1947,1948,3,68,34,0,1948,1949,5,282,0,0,1949,1950,3,58,29,0,1950,159,1,0,0,0,1951,1952,5,95,0,0,1952,1956,5,97,0,0,1953,1954,5,69,0,0,1954,1955,5,23,0,0,1955,1957,5,24,0,0,1956,1953,1,0,0,0,1956,1957,1,0,0,0,1957,1958,1,0,0,0,1958,1959,3,50,25,0,1959,1960,5,305,0,0,1960,1965,3,182,91,0,1961,1962,5,303,0,0,1962,1964,3,182,91,0,1963,1961,1,0,0,0,1964,1967,1,0,0,0,1965,1963,1,0,0,0,1965,1966,1,0,0,0,1966,1968,1,0,0,0,1967,1965,1,0,0,0,1968,1969,5,306,0,0,1969,1971,3,174,87,0,1970,1972,3,206,103,0,1971,1970,1,0,0,0,1971,1972,1,0,0,0,1972,2177,1,0,0,0,1973,1974,5,95,0,0,1974,1978,5,97,0,0,1975,1976,5,69,0,0,1976,1977,5,23,0,0,1977,1979,5,24,0,0,1978,1975,1,0,0,0,1978,1979,1,0,0,0,1979,1980,1,0,0,0,1980,1981,3,50,25,0,1981,1982,5,5,0,0,1982,1983,3,148,74,0,1983,2177,1,0,0,0,1984,1985,5,95,0,0,1985,1986,5,275,0,0,1986,1990,5,97,0,0,1987,1988,5,69,0,0,1988,1989,5,23,0,0,1989,1991,5,24,0,0,1990,1987,1,0,0,0,1990,1991,1,0,0,0,1991,1992,1,0,0,0,1992,1993,3,116,58,0,1993,1994,5,305,0,0,1994,1999,3,182,91,0,1995,1996,5,303,0,0,1996,1998,3,182,91,0,1997,1995,1,0,0,0,1998,2001,1,0,0,0,1999,1997,1,0,0,0,1999,2e3,1,0,0,0,2e3,2002,1,0,0,0,2001,1999,1,0,0,0,2002,2003,5,306,0,0,2003,2004,5,274,0,0,2004,2006,3,124,62,0,2005,2007,3,164,82,0,2006,2005,1,0,0,0,2006,2007,1,0,0,0,2007,2177,1,0,0,0,2008,2009,5,95,0,0,2009,2010,5,96,0,0,2010,2011,5,97,0,0,2011,2013,3,50,25,0,2012,2014,3,180,90,0,2013,2012,1,0,0,0,2013,2014,1,0,0,0,2014,2016,1,0,0,0,2015,2017,3,206,103,0,2016,2015,1,0,0,0,2016,2017,1,0,0,0,2017,2177,1,0,0,0,2018,2019,5,95,0,0,2019,2020,5,104,0,0,2020,2021,3,124,62,0,2021,2022,5,178,0,0,2022,2024,3,124,62,0,2023,2025,3,206,103,0,2024,2023,1,0,0,0,2024,2025,1,0,0,0,2025,2177,1,0,0,0,2026,2027,5,95,0,0,2027,2028,5,105,0,0,2028,2032,3,116,58,0,2029,2033,5,7,0,0,2030,2031,5,97,0,0,2031,2033,3,230,115,0,2032,2029,1,0,0,0,2032,2030,1,0,0,0,2033,2035,1,0,0,0,2034,2036,3,206,103,0,2035,2034,1,0,0,0,2035,2036,1,0,0,0,2036,2177,1,0,0,0,2037,2038,5,95,0,0,2038,2039,5,234,0,0,2039,2042,3,124,62,0,2040,2041,5,235,0,0,2041,2043,3,124,62,0,2042,2040,1,0,0,0,2042,2043,1,0,0,0,2043,2045,1,0,0,0,2044,2046,5,92,0,0,2045,2044,1,0,0,0,2045,2046,1,0,0,0,2046,2047,1,0,0,0,2047,2048,5,305,0,0,2048,2053,3,220,110,0,2049,2050,5,303,0,0,2050,2052,3,220,110,0,2051,2049,1,0,0,0,2052,2055,1,0,0,0,2053,2051,1,0,0,0,2053,2054,1,0,0,0,2054,2056,1,0,0,0,2055,2053,1,0,0,0,2056,2057,5,306,0,0,2057,2177,1,0,0,0,2058,2061,5,95,0,0,2059,2060,5,20,0,0,2060,2062,5,161,0,0,2061,2059,1,0,0,0,2061,2062,1,0,0,0,2062,2063,1,0,0,0,2063,2064,5,162,0,0,2064,2065,3,116,58,0,2065,2074,5,305,0,0,2066,2071,3,168,84,0,2067,2068,5,303,0,0,2068,2070,3,168,84,0,2069,2067,1,0,0,0,2070,2073,1,0,0,0,2071,2069,1,0,0,0,2071,2072,1,0,0,0,2072,2075,1,0,0,0,2073,2071,1,0,0,0,2074,2066,1,0,0,0,2074,2075,1,0,0,0,2075,2076,1,0,0,0,2076,2077,5,306,0,0,2077,2078,5,159,0,0,2078,2079,3,192,96,0,2079,2080,5,163,0,0,2080,2081,3,80,40,0,2081,2082,5,5,0,0,2082,2083,3,82,41,0,2083,2177,1,0,0,0,2084,2085,5,95,0,0,2085,2086,5,246,0,0,2086,2090,5,279,0,0,2087,2088,5,69,0,0,2088,2089,5,23,0,0,2089,2091,5,24,0,0,2090,2087,1,0,0,0,2090,2091,1,0,0,0,2091,2092,1,0,0,0,2092,2093,5,47,0,0,2093,2094,3,162,81,0,2094,2095,5,274,0,0,2095,2097,3,124,62,0,2096,2098,3,164,82,0,2097,2096,1,0,0,0,2097,2098,1,0,0,0,2098,2177,1,0,0,0,2099,2100,5,95,0,0,2100,2101,7,7,0,0,2101,2115,3,124,62,0,2102,2114,3,206,103,0,2103,2105,5,92,0,0,2104,2103,1,0,0,0,2104,2105,1,0,0,0,2105,2107,1,0,0,0,2106,2108,5,305,0,0,2107,2106,1,0,0,0,2107,2108,1,0,0,0,2108,2109,1,0,0,0,2109,2111,3,118,59,0,2110,2112,5,306,0,0,2111,2110,1,0,0,0,2111,2112,1,0,0,0,2112,2114,1,0,0,0,2113,2102,1,0,0,0,2113,2104,1,0,0,0,2114,2116,1,0,0,0,2115,2113,1,0,0,0,2115,2116,1,0,0,0,2116,2177,1,0,0,0,2117,2120,5,95,0,0,2118,2119,5,20,0,0,2119,2121,5,161,0,0,2120,2118,1,0,0,0,2120,2121,1,0,0,0,2121,2122,1,0,0,0,2122,2123,5,193,0,0,2123,2124,3,116,58,0,2124,2125,5,5,0,0,2125,2126,3,12,6,0,2126,2177,1,0,0,0,2127,2128,5,95,0,0,2128,2129,5,256,0,0,2129,2149,3,124,62,0,2130,2131,5,47,0,0,2131,2132,5,7,0,0,2132,2150,5,186,0,0,2133,2134,5,47,0,0,2134,2135,5,97,0,0,2135,2137,3,116,58,0,2136,2138,5,295,0,0,2137,2136,1,0,0,0,2137,2138,1,0,0,0,2138,2146,1,0,0,0,2139,2140,5,303,0,0,2140,2142,3,116,58,0,2141,2143,5,295,0,0,2142,2141,1,0,0,0,2142,2143,1,0,0,0,2143,2145,1,0,0,0,2144,2139,1,0,0,0,2145,2148,1,0,0,0,2146,2144,1,0,0,0,2146,2147,1,0,0,0,2147,2150,1,0,0,0,2148,2146,1,0,0,0,2149,2130,1,0,0,0,2149,2133,1,0,0,0,2149,2150,1,0,0,0,2150,2177,1,0,0,0,2151,2152,5,95,0,0,2152,2153,5,257,0,0,2153,2154,3,124,62,0,2154,2155,5,258,0,0,2155,2156,3,58,29,0,2156,2157,5,256,0,0,2157,2159,3,122,61,0,2158,2160,3,206,103,0,2159,2158,1,0,0,0,2159,2160,1,0,0,0,2160,2177,1,0,0,0,2161,2162,5,95,0,0,2162,2166,5,274,0,0,2163,2164,5,69,0,0,2164,2165,5,23,0,0,2165,2167,5,24,0,0,2166,2163,1,0,0,0,2166,2167,1,0,0,0,2167,2168,1,0,0,0,2168,2169,3,124,62,0,2169,2170,5,275,0,0,2170,2171,5,276,0,0,2171,2172,5,277,0,0,2172,2174,3,124,62,0,2173,2175,3,164,82,0,2174,2173,1,0,0,0,2174,2175,1,0,0,0,2175,2177,1,0,0,0,2176,1951,1,0,0,0,2176,1973,1,0,0,0,2176,1984,1,0,0,0,2176,2008,1,0,0,0,2176,2018,1,0,0,0,2176,2026,1,0,0,0,2176,2037,1,0,0,0,2176,2058,1,0,0,0,2176,2084,1,0,0,0,2176,2099,1,0,0,0,2176,2117,1,0,0,0,2176,2127,1,0,0,0,2176,2151,1,0,0,0,2176,2161,1,0,0,0,2177,161,1,0,0,0,2178,2183,3,124,62,0,2179,2183,5,246,0,0,2180,2183,5,61,0,0,2181,2183,5,60,0,0,2182,2178,1,0,0,0,2182,2179,1,0,0,0,2182,2180,1,0,0,0,2182,2181,1,0,0,0,2183,163,1,0,0,0,2184,2185,5,278,0,0,2185,2186,5,305,0,0,2186,2191,3,166,83,0,2187,2188,5,303,0,0,2188,2190,3,166,83,0,2189,2187,1,0,0,0,2190,2193,1,0,0,0,2191,2189,1,0,0,0,2191,2192,1,0,0,0,2192,2194,1,0,0,0,2193,2191,1,0,0,0,2194,2195,5,306,0,0,2195,165,1,0,0,0,2196,2197,3,124,62,0,2197,2198,3,74,37,0,2198,167,1,0,0,0,2199,2201,3,124,62,0,2200,2199,1,0,0,0,2200,2201,1,0,0,0,2201,2202,1,0,0,0,2202,2203,3,192,96,0,2203,169,1,0,0,0,2204,2205,5,108,0,0,2205,2208,3,116,58,0,2206,2208,3,48,24,0,2207,2204,1,0,0,0,2207,2206,1,0,0,0,2208,171,1,0,0,0,2209,2210,7,29,0,0,2210,173,1,0,0,0,2211,2213,3,176,88,0,2212,2211,1,0,0,0,2212,2213,1,0,0,0,2213,2215,1,0,0,0,2214,2216,3,178,89,0,2215,2214,1,0,0,0,2215,2216,1,0,0,0,2216,2224,1,0,0,0,2217,2219,3,178,89,0,2218,2217,1,0,0,0,2218,2219,1,0,0,0,2219,2221,1,0,0,0,2220,2222,3,176,88,0,2221,2220,1,0,0,0,2221,2222,1,0,0,0,2222,2224,1,0,0,0,2223,2212,1,0,0,0,2223,2218,1,0,0,0,2224,175,1,0,0,0,2225,2226,5,239,0,0,2226,2227,5,15,0,0,2227,2228,3,156,78,0,2228,177,1,0,0,0,2229,2235,5,220,0,0,2230,2231,5,15,0,0,2231,2232,5,305,0,0,2232,2233,3,68,34,0,2233,2234,5,306,0,0,2234,2236,1,0,0,0,2235,2230,1,0,0,0,2235,2236,1,0,0,0,2236,2241,1,0,0,0,2237,2238,5,207,0,0,2238,2239,3,78,39,0,2239,2240,5,221,0,0,2240,2242,1,0,0,0,2241,2237,1,0,0,0,2241,2242,1,0,0,0,2242,179,1,0,0,0,2243,2244,5,220,0,0,2244,2245,5,207,0,0,2245,2246,3,78,39,0,2246,2247,5,221,0,0,2247,181,1,0,0,0,2248,2262,3,184,92,0,2249,2250,3,202,101,0,2250,2251,3,156,78,0,2251,2262,1,0,0,0,2252,2253,5,227,0,0,2253,2254,3,124,62,0,2254,2255,5,79,0,0,2255,2256,3,124,62,0,2256,2258,3,156,78,0,2257,2259,3,206,103,0,2258,2257,1,0,0,0,2258,2259,1,0,0,0,2259,2262,1,0,0,0,2260,2262,3,204,102,0,2261,2248,1,0,0,0,2261,2249,1,0,0,0,2261,2252,1,0,0,0,2261,2260,1,0,0,0,2262,183,1,0,0,0,2263,2265,3,124,62,0,2264,2266,3,192,96,0,2265,2264,1,0,0,0,2265,2266,1,0,0,0,2266,2270,1,0,0,0,2267,2269,3,200,100,0,2268,2267,1,0,0,0,2269,2272,1,0,0,0,2270,2268,1,0,0,0,2270,2271,1,0,0,0,2271,185,1,0,0,0,2272,2270,1,0,0,0,2273,2275,5,109,0,0,2274,2276,5,110,0,0,2275,2274,1,0,0,0,2275,2276,1,0,0,0,2276,2277,1,0,0,0,2277,2279,3,96,48,0,2278,2280,3,192,96,0,2279,2278,1,0,0,0,2279,2280,1,0,0,0,2280,2284,1,0,0,0,2281,2283,3,200,100,0,2282,2281,1,0,0,0,2283,2286,1,0,0,0,2284,2282,1,0,0,0,2284,2285,1,0,0,0,2285,187,1,0,0,0,2286,2284,1,0,0,0,2287,2289,5,197,0,0,2288,2290,5,110,0,0,2289,2288,1,0,0,0,2289,2290,1,0,0,0,2290,2293,1,0,0,0,2291,2292,5,69,0,0,2292,2294,5,24,0,0,2293,2291,1,0,0,0,2293,2294,1,0,0,0,2294,2295,1,0,0,0,2295,2296,3,96,48,0,2296,189,1,0,0,0,2297,2298,5,115,0,0,2298,2299,5,116,0,0,2299,2300,3,78,39,0,2300,2301,5,3,0,0,2301,2302,3,82,41,0,2302,2303,5,4,0,0,2303,2304,3,82,41,0,2304,2330,1,0,0,0,2305,2306,5,117,0,0,2306,2307,5,118,0,0,2307,2308,5,116,0,0,2308,2309,3,78,39,0,2309,2310,5,80,0,0,2310,2311,3,82,41,0,2311,2330,1,0,0,0,2312,2313,5,84,0,0,2313,2314,5,118,0,0,2314,2315,5,116,0,0,2315,2316,3,78,39,0,2316,2317,5,80,0,0,2317,2319,3,82,41,0,2318,2320,3,206,103,0,2319,2318,1,0,0,0,2319,2320,1,0,0,0,2320,2330,1,0,0,0,2321,2322,5,119,0,0,2322,2323,5,116,0,0,2323,2324,3,78,39,0,2324,2325,5,80,0,0,2325,2327,3,82,41,0,2326,2328,3,206,103,0,2327,2326,1,0,0,0,2327,2328,1,0,0,0,2328,2330,1,0,0,0,2329,2297,1,0,0,0,2329,2305,1,0,0,0,2329,2312,1,0,0,0,2329,2321,1,0,0,0,2330,191,1,0,0,0,2331,2332,6,96,-1,0,2332,2344,3,194,97,0,2333,2334,5,305,0,0,2334,2339,3,144,72,0,2335,2336,5,303,0,0,2336,2338,3,144,72,0,2337,2335,1,0,0,0,2338,2341,1,0,0,0,2339,2337,1,0,0,0,2339,2340,1,0,0,0,2340,2342,1,0,0,0,2341,2339,1,0,0,0,2342,2343,5,306,0,0,2343,2345,1,0,0,0,2344,2333,1,0,0,0,2344,2345,1,0,0,0,2345,2353,1,0,0,0,2346,2353,3,198,99,0,2347,2348,5,233,0,0,2348,2349,5,305,0,0,2349,2350,3,192,96,0,2350,2351,5,306,0,0,2351,2353,1,0,0,0,2352,2331,1,0,0,0,2352,2346,1,0,0,0,2352,2347,1,0,0,0,2353,2358,1,0,0,0,2354,2355,10,1,0,0,2355,2357,5,311,0,0,2356,2354,1,0,0,0,2357,2360,1,0,0,0,2358,2356,1,0,0,0,2358,2359,1,0,0,0,2359,193,1,0,0,0,2360,2358,1,0,0,0,2361,2364,3,196,98,0,2362,2364,3,124,62,0,2363,2361,1,0,0,0,2363,2362,1,0,0,0,2364,195,1,0,0,0,2365,2366,5,129,0,0,2366,2383,5,130,0,0,2367,2368,5,131,0,0,2368,2369,5,93,0,0,2369,2370,5,48,0,0,2370,2383,5,49,0,0,2371,2372,5,131,0,0,2372,2373,5,92,0,0,2373,2374,5,48,0,0,2374,2383,5,49,0,0,2375,2376,5,48,0,0,2376,2377,5,92,0,0,2377,2378,5,48,0,0,2378,2383,5,49,0,0,2379,2380,5,133,0,0,2380,2383,5,135,0,0,2381,2383,5,134,0,0,2382,2365,1,0,0,0,2382,2367,1,0,0,0,2382,2371,1,0,0,0,2382,2375,1,0,0,0,2382,2379,1,0,0,0,2382,2381,1,0,0,0,2383,197,1,0,0,0,2384,2388,5,136,0,0,2385,2386,5,305,0,0,2386,2387,7,30,0,0,2387,2389,5,306,0,0,2388,2385,1,0,0,0,2388,2389,1,0,0,0,2389,2402,1,0,0,0,2390,2391,5,5,0,0,2391,2392,5,305,0,0,2392,2397,3,184,92,0,2393,2394,5,303,0,0,2394,2396,3,184,92,0,2395,2393,1,0,0,0,2396,2399,1,0,0,0,2397,2395,1,0,0,0,2397,2398,1,0,0,0,2398,2400,1,0,0,0,2399,2397,1,0,0,0,2400,2401,5,306,0,0,2401,2403,1,0,0,0,2402,2390,1,0,0,0,2402,2403,1,0,0,0,2403,199,1,0,0,0,2404,2436,3,202,101,0,2405,2406,5,23,0,0,2406,2436,5,29,0,0,2407,2436,5,29,0,0,2408,2409,5,227,0,0,2409,2410,5,79,0,0,2410,2412,3,124,62,0,2411,2413,3,206,103,0,2412,2411,1,0,0,0,2412,2413,1,0,0,0,2413,2436,1,0,0,0,2414,2415,5,227,0,0,2415,2436,5,223,0,0,2416,2417,5,228,0,0,2417,2436,3,206,103,0,2418,2419,5,173,0,0,2419,2421,3,124,62,0,2420,2418,1,0,0,0,2420,2421,1,0,0,0,2421,2422,1,0,0,0,2422,2423,5,218,0,0,2423,2436,3,58,29,0,2424,2425,5,173,0,0,2425,2427,3,124,62,0,2426,2424,1,0,0,0,2426,2427,1,0,0,0,2427,2430,1,0,0,0,2428,2429,5,244,0,0,2429,2431,5,245,0,0,2430,2428,1,0,0,0,2430,2431,1,0,0,0,2431,2432,1,0,0,0,2432,2433,5,5,0,0,2433,2436,3,58,29,0,2434,2436,3,204,102,0,2435,2404,1,0,0,0,2435,2405,1,0,0,0,2435,2407,1,0,0,0,2435,2408,1,0,0,0,2435,2414,1,0,0,0,2435,2416,1,0,0,0,2435,2420,1,0,0,0,2435,2426,1,0,0,0,2435,2434,1,0,0,0,2436,201,1,0,0,0,2437,2438,5,173,0,0,2438,2440,3,124,62,0,2439,2437,1,0,0,0,2439,2440,1,0,0,0,2440,2441,1,0,0,0,2441,2442,5,222,0,0,2442,203,1,0,0,0,2443,2444,5,173,0,0,2444,2446,3,124,62,0,2445,2443,1,0,0,0,2445,2446,1,0,0,0,2446,2447,1,0,0,0,2447,2448,5,174,0,0,2448,2449,5,305,0,0,2449,2450,3,60,30,0,2450,2451,5,306,0,0,2451,205,1,0,0,0,2452,2453,5,92,0,0,2453,2454,5,305,0,0,2454,2455,3,208,104,0,2455,2456,5,306,0,0,2456,207,1,0,0,0,2457,2462,3,210,105,0,2458,2459,5,303,0,0,2459,2461,3,210,105,0,2460,2458,1,0,0,0,2461,2464,1,0,0,0,2462,2460,1,0,0,0,2462,2463,1,0,0,0,2463,209,1,0,0,0,2464,2462,1,0,0,0,2465,2466,3,124,62,0,2466,2467,5,282,0,0,2467,2468,3,58,29,0,2468,211,1,0,0,0,2469,2470,5,305,0,0,2470,2475,3,214,107,0,2471,2472,5,303,0,0,2472,2474,3,214,107,0,2473,2471,1,0,0,0,2474,2477,1,0,0,0,2475,2473,1,0,0,0,2475,2476,1,0,0,0,2476,2478,1,0,0,0,2477,2475,1,0,0,0,2478,2479,5,306,0,0,2479,213,1,0,0,0,2480,2482,7,31,0,0,2481,2483,3,140,70,0,2482,2481,1,0,0,0,2482,2483,1,0,0,0,2483,215,1,0,0,0,2484,2497,3,218,109,0,2485,2486,5,305,0,0,2486,2491,3,218,109,0,2487,2488,5,303,0,0,2488,2490,3,218,109,0,2489,2487,1,0,0,0,2490,2493,1,0,0,0,2491,2489,1,0,0,0,2491,2492,1,0,0,0,2492,2494,1,0,0,0,2493,2491,1,0,0,0,2494,2495,5,306,0,0,2495,2497,1,0,0,0,2496,2484,1,0,0,0,2496,2485,1,0,0,0,2497,217,1,0,0,0,2498,2500,3,96,48,0,2499,2501,3,76,38,0,2500,2499,1,0,0,0,2500,2501,1,0,0,0,2501,219,1,0,0,0,2502,2507,3,222,111,0,2503,2507,3,224,112,0,2504,2507,3,226,113,0,2505,2507,3,210,105,0,2506,2502,1,0,0,0,2506,2503,1,0,0,0,2506,2504,1,0,0,0,2506,2505,1,0,0,0,2507,221,1,0,0,0,2508,2509,5,236,0,0,2509,2510,3,228,114,0,2510,223,1,0,0,0,2511,2512,5,237,0,0,2512,2513,5,305,0,0,2513,2518,3,228,114,0,2514,2515,5,303,0,0,2515,2517,3,228,114,0,2516,2514,1,0,0,0,2517,2520,1,0,0,0,2518,2516,1,0,0,0,2518,2519,1,0,0,0,2519,2521,1,0,0,0,2520,2518,1,0,0,0,2521,2522,5,306,0,0,2522,225,1,0,0,0,2523,2524,5,238,0,0,2524,2525,5,305,0,0,2525,2530,3,228,114,0,2526,2527,5,303,0,0,2527,2529,3,228,114,0,2528,2526,1,0,0,0,2529,2532,1,0,0,0,2530,2528,1,0,0,0,2530,2531,1,0,0,0,2531,2533,1,0,0,0,2532,2530,1,0,0,0,2533,2534,5,306,0,0,2534,227,1,0,0,0,2535,2537,3,124,62,0,2536,2538,3,206,103,0,2537,2536,1,0,0,0,2537,2538,1,0,0,0,2538,229,1,0,0,0,2539,2544,3,48,24,0,2540,2541,5,303,0,0,2541,2543,3,48,24,0,2542,2540,1,0,0,0,2543,2546,1,0,0,0,2544,2542,1,0,0,0,2544,2545,1,0,0,0,2545,231,1,0,0,0,2546,2544,1,0,0,0,2547,2548,3,68,34,0,2548,2549,7,3,0,0,2549,2550,3,58,29,0,2550,233,1,0,0,0,2551,2557,3,92,46,0,2552,2557,3,140,70,0,2553,2557,3,134,67,0,2554,2557,3,124,62,0,2555,2557,3,236,118,0,2556,2551,1,0,0,0,2556,2552,1,0,0,0,2556,2553,1,0,0,0,2556,2554,1,0,0,0,2556,2555,1,0,0,0,2557,235,1,0,0,0,2558,2559,5,80,0,0,2559,237,1,0,0,0,2560,2561,7,32,0,0,2561,239,1,0,0,0,2562,2563,5,150,0,0,2563,2564,5,151,0,0,2564,2576,3,242,121,0,2565,2566,5,156,0,0,2566,2570,5,157,0,0,2567,2568,5,156,0,0,2568,2570,5,108,0,0,2569,2565,1,0,0,0,2569,2567,1,0,0,0,2570,2576,1,0,0,0,2571,2573,5,23,0,0,2572,2571,1,0,0,0,2572,2573,1,0,0,0,2573,2574,1,0,0,0,2574,2576,5,158,0,0,2575,2562,1,0,0,0,2575,2569,1,0,0,0,2575,2572,1,0,0,0,2576,241,1,0,0,0,2577,2585,5,152,0,0,2578,2579,5,153,0,0,2579,2585,5,156,0,0,2580,2581,5,156,0,0,2581,2585,5,154,0,0,2582,2583,5,156,0,0,2583,2585,5,155,0,0,2584,2577,1,0,0,0,2584,2578,1,0,0,0,2584,2580,1,0,0,0,2584,2582,1,0,0,0,2585,243,1,0,0,0,2586,2610,5,38,0,0,2587,2610,5,273,0,0,2588,2610,5,36,0,0,2589,2610,5,37,0,0,2590,2591,5,269,0,0,2591,2610,3,144,72,0,2592,2594,5,272,0,0,2593,2595,5,294,0,0,2594,2593,1,0,0,0,2594,2595,1,0,0,0,2595,2596,1,0,0,0,2596,2610,3,144,72,0,2597,2610,3,144,72,0,2598,2610,5,7,0,0,2599,2610,5,270,0,0,2600,2601,5,270,0,0,2601,2610,3,144,72,0,2602,2603,5,270,0,0,2603,2610,5,7,0,0,2604,2610,5,271,0,0,2605,2606,5,271,0,0,2606,2610,3,144,72,0,2607,2608,5,271,0,0,2608,2610,5,7,0,0,2609,2586,1,0,0,0,2609,2587,1,0,0,0,2609,2588,1,0,0,0,2609,2589,1,0,0,0,2609,2590,1,0,0,0,2609,2592,1,0,0,0,2609,2597,1,0,0,0,2609,2598,1,0,0,0,2609,2599,1,0,0,0,2609,2600,1,0,0,0,2609,2602,1,0,0,0,2609,2604,1,0,0,0,2609,2605,1,0,0,0,2609,2607,1,0,0,0,2610,245,1,0,0,0,2611,2619,5,263,0,0,2612,2619,5,265,0,0,2613,2619,5,264,0,0,2614,2616,5,266,0,0,2615,2614,1,0,0,0,2615,2616,1,0,0,0,2616,2617,1,0,0,0,2617,2619,5,267,0,0,2618,2611,1,0,0,0,2618,2612,1,0,0,0,2618,2613,1,0,0,0,2618,2615,1,0,0,0,2619,2622,1,0,0,0,2620,2618,1,0,0,0,2620,2621,1,0,0,0,2621,247,1,0,0,0,2622,2620,1,0,0,0,2623,2624,7,33,0,0,2624,249,1,0,0,0,339,255,259,265,275,279,284,287,293,298,301,305,309,317,320,327,340,344,347,353,360,370,375,382,390,395,400,410,417,425,430,436,443,453,456,461,468,477,482,493,498,502,505,515,518,528,533,538,542,547,550,554,558,565,567,573,581,583,589,597,599,605,612,616,627,634,637,643,645,652,659,675,684,687,695,702,712,719,726,730,737,741,748,755,765,776,801,806,808,826,831,833,837,845,855,861,869,889,915,920,924,932,943,946,958,961,964,967,970,973,975,980,988,993,1001,1006,1011,1018,1022,1026,1033,1042,1045,1048,1057,1060,1064,1072,1075,1083,1086,1090,1093,1100,1111,1136,1140,1144,1148,1152,1156,1158,1169,1174,1178,1182,1184,1195,1205,1210,1216,1222,1227,1235,1246,1251,1273,1275,1277,1285,1287,1292,1302,1310,1319,1325,1330,1336,1339,1348,1352,1357,1362,1371,1388,1390,1401,1404,1410,1417,1420,1424,1428,1431,1454,1458,1461,1476,1480,1486,1488,1497,1504,1530,1537,1540,1543,1574,1578,1586,1590,1601,1607,1615,1623,1626,1635,1638,1641,1651,1674,1678,1682,1687,1697,1704,1718,1740,1749,1752,1761,1764,1767,1770,1788,1799,1806,1814,1821,1826,1833,1838,1843,1847,1851,1856,1860,1864,1870,1889,1894,1909,1912,1920,1931,1942,1956,1965,1971,1978,1990,1999,2006,2013,2016,2024,2032,2035,2042,2045,2053,2061,2071,2074,2090,2097,2104,2107,2111,2113,2115,2120,2137,2142,2146,2149,2159,2166,2174,2176,2182,2191,2200,2207,2212,2215,2218,2221,2223,2235,2241,2258,2261,2265,2270,2275,2279,2284,2289,2293,2319,2327,2329,2339,2344,2352,2358,2363,2382,2388,2397,2402,2412,2420,2426,2430,2435,2439,2445,2462,2475,2482,2491,2496,2500,2506,2518,2530,2537,2544,2556,2569,2572,2575,2584,2594,2609,2615,2618,2620]),ls=os.decisionToState.map(((t,e)=>new ss.dfa.DFA(t,e))),us=new ss.atn.PredictionContextCache,Ts=class t extends ss.Parser{constructor(e){super(e),this._interp=new ss.atn.ParserATNSimulator(this,os,ls,us),this.ruleNames=t.ruleNames,this.literalNames=t.literalNames,this.symbolicNames=t.symbolicNames}sempred(t,e,s){switch(e){case 11:return this.queryTerm_sempred(t,s);case 19:return this.relation_sempred(t,s);case 30:return this.booleanExpression_sempred(t,s);case 33:return this.valueExpression_sempred(t,s);case 34:return this.primaryExpression_sempred(t,s);case 48:return this.subscriptSafe_sempred(t,s);case 96:return this.dataType_sempred(t,s);default:throw"No predicate with index:"+e}}queryTerm_sempred(t,e){if(0===e)return this.precpred(this._ctx,1);throw"No predicate with index:"+e}relation_sempred(t,e){if(1===e)return this.precpred(this._ctx,2);throw"No predicate with index:"+e}booleanExpression_sempred(t,e){switch(e){case 2:return this.precpred(this._ctx,3);case 3:return this.precpred(this._ctx,2);default:throw"No predicate with index:"+e}}valueExpression_sempred(t,e){switch(e){case 4:return this.precpred(this._ctx,6);case 5:return this.precpred(this._ctx,5);case 6:return this.precpred(this._ctx,4);case 7:return this.precpred(this._ctx,3);case 8:return this.precpred(this._ctx,2);default:throw"No predicate with index:"+e}}primaryExpression_sempred(t,e){switch(e){case 9:return this.precpred(this._ctx,2);case 10:return this.precpred(this._ctx,6);case 11:return this.precpred(this._ctx,5);case 12:return this.precpred(this._ctx,3);default:throw"No predicate with index:"+e}}subscriptSafe_sempred(t,e){if(13===e)return this.precpred(this._ctx,2);throw"No predicate with index:"+e}dataType_sempred(t,e){if(14===e)return this.precpred(this._ctx,1);throw"No predicate with index:"+e}statements(){let e=new Es(this,this._ctx,this.state);this.enterRule(e,0,t.RULE_statements);try{this.enterOuterAlt(e,1),this.state=250,this.statement(),this.state=255,this._errHandler.sync(this);for(var s=this._interp.adaptivePredict(this._input,0,this._ctx);2!=s&&s!=ss.atn.ATN.INVALID_ALT_NUMBER;)1===s&&(this.state=251,this.match(t.SEMICOLON),this.state=252,this.statement()),this.state=257,this._errHandler.sync(this),s=this._interp.adaptivePredict(this._input,0,this._ctx);this.state=259,this._errHandler.sync(this),301===this._input.LA(1)&&(this.state=258,this.match(t.SEMICOLON)),this.state=261,this.match(t.EOF)}catch(i){if(!(i instanceof ss.error.RecognitionException))throw i;e.exception=i,this._errHandler.reportError(this,i),this._errHandler.recover(this,i)}finally{this.exitRule()}return e}singleStatement(){let e=new ps(this,this._ctx,this.state);this.enterRule(e,2,t.RULE_singleStatement);try{this.enterOuterAlt(e,1),this.state=263,this.statement(),this.state=265,this._errHandler.sync(this),301===this._input.LA(1)&&(this.state=264,this.match(t.SEMICOLON)),this.state=267,this.match(t.EOF)}catch(s){if(!(s instanceof ss.error.RecognitionException))throw s;e.exception=s,this._errHandler.reportError(this,s),this._errHandler.recover(this,s)}finally{this.exitRule()}return e}singleExpression(){let e=new Rs(this,this._ctx,this.state);this.enterRule(e,4,t.RULE_singleExpression);try{this.enterOuterAlt(e,1),this.state=269,this.expr(),this.state=270,this.match(t.EOF)}catch(s){if(!(s instanceof ss.error.RecognitionException))throw s;e.exception=s,this._errHandler.reportError(this,s),this._errHandler.recover(this,s)}finally{this.exitRule()}return e}statement(){let e=new Cs(this,this._ctx,this.state);this.enterRule(e,6,t.RULE_statement);var s=0;try{switch(this.state=645,this._errHandler.sync(this),this._interp.adaptivePredict(this._input,67,this._ctx)){case 1:e=new Ps(this,e),this.enterOuterAlt(e,1),this.state=272,this.query();break;case 2:if(e=new si(this,e),this.enterOuterAlt(e,2),this.state=273,this.match(t.BEGIN),this.state=275,this._errHandler.sync(this),146!==(s=this._input.LA(1))&&147!==s||(this.state=274,146!==(s=this._input.LA(1))&&147!==s?this._errHandler.recoverInline(this):(this._errHandler.reportMatch(this),this.consume())),this.state=287,this._errHandler.sync(this),23===(s=this._input.LA(1))||!(s-150&-32)&&1<'","'>='","'<<'","'~'","'!~'","'~*'","'!~*'","'+'","'-'","'*'","'^'","'/'","'%'","'||'","'::'","';'","':'","','","'.'","'('","')'","'{'","'}'","'['","']'","'[]'","'?'","'$'","'&'","'|'","'#'"]),s(Ts,"symbolicNames",[null,"AUTHORIZATION","SELECT","FROM","TO","AS","AT","ALL","ANY","SOME","DEALLOCATE","DIRECTORY","DISTINCT","WHERE","GROUP","BY","ORDER","HAVING","LIMIT","OFFSET","OR","AND","IN","NOT","EXISTS","BETWEEN","LIKE","ILIKE","IS","NULL","TRUE","FALSE","IGNORE","RESPECT","NULLS","FETCH","FIRST","LAST","NEXT","ESCAPE","ASC","DESC","SUBSTRING","TRIM","LEADING","TRAILING","BOTH","FOR","TIME","ZONE","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_SCHEMA","CURRENT_USER","CURRENT_ROLE","SESSION_USER","EXTRACT","CASE","WHEN","THEN","ELSE","END","IF","INTERVAL","JOIN","CROSS","OUTER","INNER","LEFT","RIGHT","FULL","NATURAL","USING","ON","OVER","WINDOW","PARTITION","PROMOTE","RANGE","ROWS","UNBOUNDED","PRECEDING","FOLLOWING","CURRENT","ROW","WITH","WITHOUT","RECURSIVE","CREATE","BLOB","TABLE","SWAP","GC","DANGLING","ARTIFACTS","DECOMMISSION","CLUSTER","REPOSITORY","SNAPSHOT","ALTER","KILL","ONLY","ADD","COLUMN","OPEN","CLOSE","RENAME","REROUTE","MOVE","SHARD","ALLOCATE","REPLICA","CANCEL","RETRY","FAILED","BOOLEAN","BYTE","SHORT","INTEGER","INT","LONG","FLOAT","DOUBLE","PRECISION","TIMESTAMP","IP","CHARACTER","CHAR_SPECIAL","VARYING","OBJECT","STRING_TYPE","GEO_POINT","GEO_SHAPE","GLOBAL","SESSION","LOCAL","BEGIN","START","COMMIT","WORK","TRANSACTION","TRANSACTION_ISOLATION","CHARACTERISTICS","ISOLATION","LEVEL","SERIALIZABLE","REPEATABLE","COMMITTED","UNCOMMITTED","READ","WRITE","DEFERRABLE","RETURNS","CALLED","REPLACE","FUNCTION","LANGUAGE","INPUT","ANALYZE","COSTS","VERBOSE","DISCARD","PLANS","SEQUENCES","TEMPORARY","TEMP","CONSTRAINT","CHECK","DESCRIBE","EXPLAIN","FORMAT","TYPE","TEXT","GRAPHVIZ","LOGICAL","DISTRIBUTED","CAST","TRY_CAST","SHOW","TABLES","SCHEMAS","CATALOGS","COLUMNS","PARTITIONS","FUNCTIONS","MATERIALIZED","VIEW","OPTIMIZE","REFRESH","RESTORE","DROP","ALIAS","UNION","EXCEPT","INTERSECT","SYSTEM","BERNOULLI","TABLESAMPLE","STRATIFY","INSERT","INTO","VALUES","DELETE","UPDATE","KEY","DUPLICATE","CONFLICT","DO","NOTHING","SET","RESET","DEFAULT","COPY","CLUSTERED","SHARDS","PRIMARY_KEY","OFF","FULLTEXT","FILTER","PLAIN","INDEX","STORAGE","RETURNING","DYNAMIC","STRICT","IGNORED","ARRAY","ANALYZER","EXTENDS","TOKENIZER","TOKEN_FILTERS","CHAR_FILTERS","PARTITIONED","PREPARE","TRANSIENT","PERSISTENT","MATCH","GENERATED","ALWAYS","USER","ROLE","GRANT","DENY","REVOKE","PRIVILEGES","SCHEMA","RETURN","SUMMARY","METADATA","PUBLICATION","SUBSCRIPTION","CONNECTION","ENABLE","DISABLE","DECLARE","CURSOR","ASENSITIVE","INSENSITIVE","BINARY","NO","SCROLL","HOLD","ABSOLUTE","FORWARD","BACKWARD","RELATIVE","PRIOR","SERVER","FOREIGN","DATA","WRAPPER","OPTIONS","MAPPING","CASCADE","RESTRICT","EQ","NEQ","LT","LTE","GT","GTE","LLT","REGEX_MATCH","REGEX_NO_MATCH","REGEX_MATCH_CI","REGEX_NO_MATCH_CI","PLUS","MINUS","ASTERISK","CARET","SLASH","PERCENT","CONCAT","CAST_OPERATOR","SEMICOLON","COLON","COMMA","DOT","OPEN_ROUND_BRACKET","CLOSE_ROUND_BRACKET","OPEN_CURLY_BRACKET","CLOSE_CURLY_BRACKET","OPEN_SQUARE_BRACKET","CLOSE_SQUARE_BRACKET","EMPTY_SQUARE_BRACKET","QUESTION","DOLLAR","BITWISE_AND","BITWISE_OR","BITWISE_XOR","STRING","ESCAPED_STRING","BIT_STRING","INTEGER_VALUE","DECIMAL_VALUE","IDENTIFIER","DIGIT_IDENTIFIER","QUOTED_IDENTIFIER","BACKQUOTED_IDENTIFIER","BEGIN_DOLLAR_QUOTED_STRING","COMMENT","WS","UNRECOGNIZED","DOLLAR_QUOTED_STRING_BODY","END_DOLLAR_QUOTED_STRING"]),s(Ts,"ruleNames",["statements","singleStatement","singleExpression","statement","dropStmt","alterStmt","queryOptParens","query","queryNoWith","limitClause","offsetClause","queryTerm","setQuant","sortItem","querySpec","selectItem","where","returning","filter","relation","joinType","joinCriteria","aliasedRelation","relationPrimary","tableWithPartition","table","aliasedColumns","with","namedQuery","expr","booleanExpression","predicated","predicate","valueExpression","primaryExpression","explicitFunction","subqueryExpression","parameterOrLiteral","parameterOrSimpleLiteral","parameterOrInteger","parameterOrIdent","parameterOrString","parameterExpr","nullLiteral","escapedCharsStringLiteral","dollarQuotedStringLiteral","stringLiteral","bitString","subscriptSafe","cmpOp","setCmpQuantifier","whenClause","namedWindow","over","windowDefinition","windowFrame","frameBound","qnames","qname","spaceSeparatedIdents","identWithOrWithoutValue","idents","ident","unquotedIdent","quotedIdent","stringLiteralOrIdentifier","stringLiteralOrIdentifierOrQname","numericLiteral","intervalLiteral","intervalField","booleanLiteral","decimalLiteral","integerLiteral","objectKeyValue","insertSource","onConflict","conflictTarget","values","columns","assignment","createStmt","mappedUser","kvOptions","kvOption","functionArgument","alterTableDefinition","alterSubscriptionMode","partitionedByOrClusteredInto","partitionedBy","clusteredBy","blobClusteredInto","tableElement","columnDefinition","addColumnDefinition","dropColumnDefinition","rerouteOption","dataType","baseDataType","definedDataType","objectTypeDefinition","columnConstraint","primaryKeyContraint","checkConstraint","withProperties","genericProperties","genericProperty","explainOptions","explainOption","matchPredicateIdents","matchPredicateIdent","analyzerElement","tokenizer","tokenFilters","charFilters","namedProperties","tableWithPartitions","setGlobalAssignment","setExpr","on","securable","transactionMode","isolationLevel","direction","declareCursorParams","nonReserved"]);let ds=Ts;ds.EOF=ss.Token.EOF,ds.AUTHORIZATION=1,ds.SELECT=2,ds.FROM=3,ds.TO=4,ds.AS=5,ds.AT=6,ds.ALL=7,ds.ANY=8,ds.SOME=9,ds.DEALLOCATE=10,ds.DIRECTORY=11,ds.DISTINCT=12,ds.WHERE=13,ds.GROUP=14,ds.BY=15,ds.ORDER=16,ds.HAVING=17,ds.LIMIT=18,ds.OFFSET=19,ds.OR=20,ds.AND=21,ds.IN=22,ds.NOT=23,ds.EXISTS=24,ds.BETWEEN=25,ds.LIKE=26,ds.ILIKE=27,ds.IS=28,ds.NULL=29,ds.TRUE=30,ds.FALSE=31,ds.IGNORE=32,ds.RESPECT=33,ds.NULLS=34,ds.FETCH=35,ds.FIRST=36,ds.LAST=37,ds.NEXT=38,ds.ESCAPE=39,ds.ASC=40,ds.DESC=41,ds.SUBSTRING=42,ds.TRIM=43,ds.LEADING=44,ds.TRAILING=45,ds.BOTH=46,ds.FOR=47,ds.TIME=48,ds.ZONE=49,ds.YEAR=50,ds.MONTH=51,ds.DAY=52,ds.HOUR=53,ds.MINUTE=54,ds.SECOND=55,ds.CURRENT_DATE=56,ds.CURRENT_TIME=57,ds.CURRENT_TIMESTAMP=58,ds.CURRENT_SCHEMA=59,ds.CURRENT_USER=60,ds.CURRENT_ROLE=61,ds.SESSION_USER=62,ds.EXTRACT=63,ds.CASE=64,ds.WHEN=65,ds.THEN=66,ds.ELSE=67,ds.END=68,ds.IF=69,ds.INTERVAL=70,ds.JOIN=71,ds.CROSS=72,ds.OUTER=73,ds.INNER=74,ds.LEFT=75,ds.RIGHT=76,ds.FULL=77,ds.NATURAL=78,ds.USING=79,ds.ON=80,ds.OVER=81,ds.WINDOW=82,ds.PARTITION=83,ds.PROMOTE=84,ds.RANGE=85,ds.ROWS=86,ds.UNBOUNDED=87,ds.PRECEDING=88,ds.FOLLOWING=89,ds.CURRENT=90,ds.ROW=91,ds.WITH=92,ds.WITHOUT=93,ds.RECURSIVE=94,ds.CREATE=95,ds.BLOB=96,ds.TABLE=97,ds.SWAP=98,ds.GC=99,ds.DANGLING=100,ds.ARTIFACTS=101,ds.DECOMMISSION=102,ds.CLUSTER=103,ds.REPOSITORY=104,ds.SNAPSHOT=105,ds.ALTER=106,ds.KILL=107,ds.ONLY=108,ds.ADD=109,ds.COLUMN=110,ds.OPEN=111,ds.CLOSE=112,ds.RENAME=113,ds.REROUTE=114,ds.MOVE=115,ds.SHARD=116,ds.ALLOCATE=117,ds.REPLICA=118,ds.CANCEL=119,ds.RETRY=120,ds.FAILED=121,ds.BOOLEAN=122,ds.BYTE=123,ds.SHORT=124,ds.INTEGER=125,ds.INT=126,ds.LONG=127,ds.FLOAT=128,ds.DOUBLE=129,ds.PRECISION=130,ds.TIMESTAMP=131,ds.IP=132,ds.CHARACTER=133,ds.CHAR_SPECIAL=134,ds.VARYING=135,ds.OBJECT=136,ds.STRING_TYPE=137,ds.GEO_POINT=138,ds.GEO_SHAPE=139,ds.GLOBAL=140,ds.SESSION=141,ds.LOCAL=142,ds.BEGIN=143,ds.START=144,ds.COMMIT=145,ds.WORK=146,ds.TRANSACTION=147,ds.TRANSACTION_ISOLATION=148,ds.CHARACTERISTICS=149,ds.ISOLATION=150,ds.LEVEL=151,ds.SERIALIZABLE=152,ds.REPEATABLE=153,ds.COMMITTED=154,ds.UNCOMMITTED=155,ds.READ=156,ds.WRITE=157,ds.DEFERRABLE=158,ds.RETURNS=159,ds.CALLED=160,ds.REPLACE=161,ds.FUNCTION=162,ds.LANGUAGE=163,ds.INPUT=164,ds.ANALYZE=165,ds.COSTS=166,ds.VERBOSE=167,ds.DISCARD=168,ds.PLANS=169,ds.SEQUENCES=170,ds.TEMPORARY=171,ds.TEMP=172,ds.CONSTRAINT=173,ds.CHECK=174,ds.DESCRIBE=175,ds.EXPLAIN=176,ds.FORMAT=177,ds.TYPE=178,ds.TEXT=179,ds.GRAPHVIZ=180,ds.LOGICAL=181,ds.DISTRIBUTED=182,ds.CAST=183,ds.TRY_CAST=184,ds.SHOW=185,ds.TABLES=186,ds.SCHEMAS=187,ds.CATALOGS=188,ds.COLUMNS=189,ds.PARTITIONS=190,ds.FUNCTIONS=191,ds.MATERIALIZED=192,ds.VIEW=193,ds.OPTIMIZE=194,ds.REFRESH=195,ds.RESTORE=196,ds.DROP=197,ds.ALIAS=198,ds.UNION=199,ds.EXCEPT=200,ds.INTERSECT=201,ds.SYSTEM=202,ds.BERNOULLI=203,ds.TABLESAMPLE=204,ds.STRATIFY=205,ds.INSERT=206,ds.INTO=207,ds.VALUES=208,ds.DELETE=209,ds.UPDATE=210,ds.KEY=211,ds.DUPLICATE=212,ds.CONFLICT=213,ds.DO=214,ds.NOTHING=215,ds.SET=216,ds.RESET=217,ds.DEFAULT=218,ds.COPY=219,ds.CLUSTERED=220,ds.SHARDS=221,ds.PRIMARY_KEY=222,ds.OFF=223,ds.FULLTEXT=224,ds.FILTER=225,ds.PLAIN=226,ds.INDEX=227,ds.STORAGE=228,ds.RETURNING=229,ds.DYNAMIC=230,ds.STRICT=231,ds.IGNORED=232,ds.ARRAY=233,ds.ANALYZER=234,ds.EXTENDS=235,ds.TOKENIZER=236,ds.TOKEN_FILTERS=237,ds.CHAR_FILTERS=238,ds.PARTITIONED=239,ds.PREPARE=240,ds.TRANSIENT=241,ds.PERSISTENT=242,ds.MATCH=243,ds.GENERATED=244,ds.ALWAYS=245,ds.USER=246,ds.ROLE=247,ds.GRANT=248,ds.DENY=249,ds.REVOKE=250,ds.PRIVILEGES=251,ds.SCHEMA=252,ds.RETURN=253,ds.SUMMARY=254,ds.METADATA=255,ds.PUBLICATION=256,ds.SUBSCRIPTION=257,ds.CONNECTION=258,ds.ENABLE=259,ds.DISABLE=260,ds.DECLARE=261,ds.CURSOR=262,ds.ASENSITIVE=263,ds.INSENSITIVE=264,ds.BINARY=265,ds.NO=266,ds.SCROLL=267,ds.HOLD=268,ds.ABSOLUTE=269,ds.FORWARD=270,ds.BACKWARD=271,ds.RELATIVE=272,ds.PRIOR=273,ds.SERVER=274,ds.FOREIGN=275,ds.DATA=276,ds.WRAPPER=277,ds.OPTIONS=278,ds.MAPPING=279,ds.CASCADE=280,ds.RESTRICT=281,ds.EQ=282,ds.NEQ=283,ds.LT=284,ds.LTE=285,ds.GT=286,ds.GTE=287,ds.LLT=288,ds.REGEX_MATCH=289,ds.REGEX_NO_MATCH=290,ds.REGEX_MATCH_CI=291,ds.REGEX_NO_MATCH_CI=292,ds.PLUS=293,ds.MINUS=294,ds.ASTERISK=295,ds.CARET=296,ds.SLASH=297,ds.PERCENT=298,ds.CONCAT=299,ds.CAST_OPERATOR=300,ds.SEMICOLON=301,ds.COLON=302,ds.COMMA=303,ds.DOT=304,ds.OPEN_ROUND_BRACKET=305,ds.CLOSE_ROUND_BRACKET=306,ds.OPEN_CURLY_BRACKET=307,ds.CLOSE_CURLY_BRACKET=308,ds.OPEN_SQUARE_BRACKET=309,ds.CLOSE_SQUARE_BRACKET=310,ds.EMPTY_SQUARE_BRACKET=311,ds.QUESTION=312,ds.DOLLAR=313,ds.BITWISE_AND=314,ds.BITWISE_OR=315,ds.BITWISE_XOR=316,ds.STRING=317,ds.ESCAPED_STRING=318,ds.BIT_STRING=319,ds.INTEGER_VALUE=320,ds.DECIMAL_VALUE=321,ds.IDENTIFIER=322,ds.DIGIT_IDENTIFIER=323,ds.QUOTED_IDENTIFIER=324,ds.BACKQUOTED_IDENTIFIER=325,ds.BEGIN_DOLLAR_QUOTED_STRING=326,ds.COMMENT=327,ds.WS=328,ds.UNRECOGNIZED=329,ds.DOLLAR_QUOTED_STRING_BODY=330,ds.END_DOLLAR_QUOTED_STRING=331,ds.RULE_statements=0,ds.RULE_singleStatement=1,ds.RULE_singleExpression=2,ds.RULE_statement=3,ds.RULE_dropStmt=4,ds.RULE_alterStmt=5,ds.RULE_queryOptParens=6,ds.RULE_query=7,ds.RULE_queryNoWith=8,ds.RULE_limitClause=9,ds.RULE_offsetClause=10,ds.RULE_queryTerm=11,ds.RULE_setQuant=12,ds.RULE_sortItem=13,ds.RULE_querySpec=14,ds.RULE_selectItem=15,ds.RULE_where=16,ds.RULE_returning=17,ds.RULE_filter=18,ds.RULE_relation=19,ds.RULE_joinType=20,ds.RULE_joinCriteria=21,ds.RULE_aliasedRelation=22,ds.RULE_relationPrimary=23,ds.RULE_tableWithPartition=24,ds.RULE_table=25,ds.RULE_aliasedColumns=26,ds.RULE_with=27,ds.RULE_namedQuery=28,ds.RULE_expr=29,ds.RULE_booleanExpression=30,ds.RULE_predicated=31,ds.RULE_predicate=32,ds.RULE_valueExpression=33,ds.RULE_primaryExpression=34,ds.RULE_explicitFunction=35,ds.RULE_subqueryExpression=36,ds.RULE_parameterOrLiteral=37,ds.RULE_parameterOrSimpleLiteral=38,ds.RULE_parameterOrInteger=39,ds.RULE_parameterOrIdent=40,ds.RULE_parameterOrString=41,ds.RULE_parameterExpr=42,ds.RULE_nullLiteral=43,ds.RULE_escapedCharsStringLiteral=44,ds.RULE_dollarQuotedStringLiteral=45,ds.RULE_stringLiteral=46,ds.RULE_bitString=47,ds.RULE_subscriptSafe=48,ds.RULE_cmpOp=49,ds.RULE_setCmpQuantifier=50,ds.RULE_whenClause=51,ds.RULE_namedWindow=52,ds.RULE_over=53,ds.RULE_windowDefinition=54,ds.RULE_windowFrame=55,ds.RULE_frameBound=56,ds.RULE_qnames=57,ds.RULE_qname=58,ds.RULE_spaceSeparatedIdents=59,ds.RULE_identWithOrWithoutValue=60,ds.RULE_idents=61,ds.RULE_ident=62,ds.RULE_unquotedIdent=63,ds.RULE_quotedIdent=64,ds.RULE_stringLiteralOrIdentifier=65,ds.RULE_stringLiteralOrIdentifierOrQname=66,ds.RULE_numericLiteral=67,ds.RULE_intervalLiteral=68,ds.RULE_intervalField=69,ds.RULE_booleanLiteral=70,ds.RULE_decimalLiteral=71,ds.RULE_integerLiteral=72,ds.RULE_objectKeyValue=73,ds.RULE_insertSource=74,ds.RULE_onConflict=75,ds.RULE_conflictTarget=76,ds.RULE_values=77,ds.RULE_columns=78,ds.RULE_assignment=79,ds.RULE_createStmt=80,ds.RULE_mappedUser=81,ds.RULE_kvOptions=82,ds.RULE_kvOption=83,ds.RULE_functionArgument=84,ds.RULE_alterTableDefinition=85,ds.RULE_alterSubscriptionMode=86,ds.RULE_partitionedByOrClusteredInto=87,ds.RULE_partitionedBy=88,ds.RULE_clusteredBy=89,ds.RULE_blobClusteredInto=90,ds.RULE_tableElement=91,ds.RULE_columnDefinition=92,ds.RULE_addColumnDefinition=93,ds.RULE_dropColumnDefinition=94,ds.RULE_rerouteOption=95,ds.RULE_dataType=96,ds.RULE_baseDataType=97,ds.RULE_definedDataType=98,ds.RULE_objectTypeDefinition=99,ds.RULE_columnConstraint=100,ds.RULE_primaryKeyContraint=101,ds.RULE_checkConstraint=102,ds.RULE_withProperties=103,ds.RULE_genericProperties=104,ds.RULE_genericProperty=105,ds.RULE_explainOptions=106,ds.RULE_explainOption=107,ds.RULE_matchPredicateIdents=108,ds.RULE_matchPredicateIdent=109,ds.RULE_analyzerElement=110,ds.RULE_tokenizer=111,ds.RULE_tokenFilters=112,ds.RULE_charFilters=113,ds.RULE_namedProperties=114,ds.RULE_tableWithPartitions=115,ds.RULE_setGlobalAssignment=116,ds.RULE_setExpr=117,ds.RULE_on=118,ds.RULE_securable=119,ds.RULE_transactionMode=120,ds.RULE_isolationLevel=121,ds.RULE_direction=122,ds.RULE_declareCursorParams=123,ds.RULE_nonReserved=124;class Es extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"statement",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cs):this.getTypedRuleContext(Cs,t)})),s(this,"SEMICOLON",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.SEMICOLON):this.getToken(ds.SEMICOLON,t)})),this.parser=t,this.ruleIndex=ds.RULE_statements}EOF(){return this.getToken(ds.EOF,0)}enterRule(t){t instanceof hs&&t.enterStatements(this)}exitRule(t){t instanceof hs&&t.exitStatements(this)}accept(t){return t instanceof cs?t.visitStatements(this):t.visitChildren(this)}}class ps extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_singleStatement}statement(){return this.getTypedRuleContext(Cs,0)}EOF(){return this.getToken(ds.EOF,0)}SEMICOLON(){return this.getToken(ds.SEMICOLON,0)}enterRule(t){t instanceof hs&&t.enterSingleStatement(this)}exitRule(t){t instanceof hs&&t.exitSingleStatement(this)}accept(t){return t instanceof cs?t.visitSingleStatement(this):t.visitChildren(this)}}class Rs extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_singleExpression}expr(){return this.getTypedRuleContext(Cr,0)}EOF(){return this.getToken(ds.EOF,0)}enterRule(t){t instanceof hs&&t.enterSingleExpression(this)}exitRule(t){t instanceof hs&&t.exitSingleExpression(this)}accept(t){return t instanceof cs?t.visitSingleExpression(this):t.visitChildren(this)}}class Cs extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_statement}copyFrom(t){super.copyFrom(t)}}class As extends Cs{constructor(t,e){super(t),s(this,"explainOptions",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(bh):this.getTypedRuleContext(bh,t)})),super.copyFrom(e)}EXPLAIN(){return this.getToken(ds.EXPLAIN,0)}statement(){return this.getTypedRuleContext(Cs,0)}ANALYZE(){return this.getToken(ds.ANALYZE,0)}VERBOSE(){return this.getToken(ds.VERBOSE,0)}enterRule(t){t instanceof hs&&t.enterExplain(this)}exitRule(t){t instanceof hs&&t.exitExplain(this)}accept(t){return t instanceof cs?t.visitExplain(this):t.visitChildren(this)}}ds.ExplainContext=As;class xs extends Cs{constructor(t,e){super(t),s(this,"transactionMode",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Zh):this.getTypedRuleContext(Zh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}SET(){return this.getToken(ds.SET,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}SESSION(){return this.getToken(ds.SESSION,0)}CHARACTERISTICS(){return this.getToken(ds.CHARACTERISTICS,0)}AS(){return this.getToken(ds.AS,0)}enterRule(t){t instanceof hs&&t.enterSetTransaction(this)}exitRule(t){t instanceof hs&&t.exitSetTransaction(this)}accept(t){return t instanceof cs?t.visitSetTransaction(this):t.visitChildren(this)}}ds.SetTransactionContext=xs;class Os extends Cs{constructor(t,e){super(t),super.copyFrom(e)}dropStmt(){return this.getTypedRuleContext(ii,0)}enterRule(t){t instanceof hs&&t.enterDrop(this)}exitRule(t){t instanceof hs&&t.exitDrop(this)}accept(t){return t instanceof cs?t.visitDrop(this):t.visitChildren(this)}}ds.DropContext=Os;class _s extends Cs{constructor(t,e){super(t),super.copyFrom(e)}DISCARD(){return this.getToken(ds.DISCARD,0)}ALL(){return this.getToken(ds.ALL,0)}PLANS(){return this.getToken(ds.PLANS,0)}SEQUENCES(){return this.getToken(ds.SEQUENCES,0)}TEMPORARY(){return this.getToken(ds.TEMPORARY,0)}TEMP(){return this.getToken(ds.TEMP,0)}enterRule(t){t instanceof hs&&t.enterDiscard(this)}exitRule(t){t instanceof hs&&t.exitDiscard(this)}accept(t){return t instanceof cs?t.visitDiscard(this):t.visitChildren(this)}}ds.DiscardContext=_s;class gs extends Cs{constructor(t,e){super(t),s(this,"transactionMode",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Zh):this.getTypedRuleContext(Zh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}START(){return this.getToken(ds.START,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}enterRule(t){t instanceof hs&&t.enterStartTransaction(this)}exitRule(t){t instanceof hs&&t.exitStartTransaction(this)}accept(t){return t instanceof cs?t.visitStartTransaction(this):t.visitChildren(this)}}ds.StartTransactionContext=gs;class Ss extends Cs{constructor(t,e){super(t),super.copyFrom(e)}DECLARE(){return this.getToken(ds.DECLARE,0)}ident(){return this.getTypedRuleContext(ia,0)}declareCursorParams(){return this.getTypedRuleContext($h,0)}CURSOR(){return this.getToken(ds.CURSOR,0)}FOR(){return this.getToken(ds.FOR,0)}queryNoWith(){return this.getTypedRuleContext(wi,0)}HOLD(){return this.getToken(ds.HOLD,0)}WITH(){return this.getToken(ds.WITH,0)}WITHOUT(){return this.getToken(ds.WITHOUT,0)}enterRule(t){t instanceof hs&&t.enterDeclare(this)}exitRule(t){t instanceof hs&&t.exitDeclare(this)}accept(t){return t instanceof cs?t.visitDeclare(this):t.visitChildren(this)}}ds.DeclareContext=Ss;class Ls extends Cs{constructor(t,e){super(t),this.prepStmt=null,super.copyFrom(e)}DEALLOCATE(){return this.getToken(ds.DEALLOCATE,0)}ALL(){return this.getToken(ds.ALL,0)}PREPARE(){return this.getToken(ds.PREPARE,0)}stringLiteralOrIdentifierOrQname(){return this.getTypedRuleContext(ua,0)}enterRule(t){t instanceof hs&&t.enterDeallocate(this)}exitRule(t){t instanceof hs&&t.exitDeallocate(this)}accept(t){return t instanceof cs?t.visitDeallocate(this):t.visitChildren(this)}}ds.DeallocateContext=Ls;class fs extends Cs{constructor(t,e){super(t),super.copyFrom(e)}COMMIT(){return this.getToken(ds.COMMIT,0)}WORK(){return this.getToken(ds.WORK,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}END(){return this.getToken(ds.END,0)}enterRule(t){t instanceof hs&&t.enterCommit(this)}exitRule(t){t instanceof hs&&t.exitCommit(this)}accept(t){return t instanceof cs?t.visitCommit(this):t.visitChildren(this)}}ds.CommitContext=fs;class Is extends Cs{constructor(t,e){super(t),s(this,"assignment",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(La):this.getTypedRuleContext(La,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}UPDATE(){return this.getToken(ds.UPDATE,0)}aliasedRelation(){return this.getTypedRuleContext(nr,0)}SET(){return this.getToken(ds.SET,0)}where(){return this.getTypedRuleContext(ji,0)}returning(){return this.getTypedRuleContext(Ji,0)}enterRule(t){t instanceof hs&&t.enterUpdate(this)}exitRule(t){t instanceof hs&&t.exitUpdate(this)}accept(t){return t instanceof cs?t.visitUpdate(this):t.visitChildren(this)}}ds.UpdateContext=Is;class Ns extends Cs{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}INSERT(){return this.getToken(ds.INSERT,0)}INTO(){return this.getToken(ds.INTO,0)}table(){return this.getTypedRuleContext(ur,0)}insertSource(){return this.getTypedRuleContext(xa,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}onConflict(){return this.getTypedRuleContext(Oa,0)}returning(){return this.getTypedRuleContext(Ji,0)}enterRule(t){t instanceof hs&&t.enterInsert(this)}exitRule(t){t instanceof hs&&t.exitInsert(this)}accept(t){return t instanceof cs?t.visitInsert(this):t.visitChildren(this)}}ds.InsertContext=Ns;class ms extends Cs{constructor(t,e){super(t),super.copyFrom(e)}DELETE(){return this.getToken(ds.DELETE,0)}FROM(){return this.getToken(ds.FROM,0)}aliasedRelation(){return this.getTypedRuleContext(nr,0)}where(){return this.getTypedRuleContext(ji,0)}enterRule(t){t instanceof hs&&t.enterDelete(this)}exitRule(t){t instanceof hs&&t.exitDelete(this)}accept(t){return t instanceof cs?t.visitDelete(this):t.visitChildren(this)}}ds.DeleteContext=ms;class ys extends Cs{constructor(t,e){super(t),this.pattern=null,super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}TABLES(){return this.getToken(ds.TABLES,0)}qname(){return this.getTypedRuleContext($n,0)}LIKE(){return this.getToken(ds.LIKE,0)}where(){return this.getTypedRuleContext(ji,0)}FROM(){return this.getToken(ds.FROM,0)}IN(){return this.getToken(ds.IN,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterShowTables(this)}exitRule(t){t instanceof hs&&t.exitShowTables(this)}accept(t){return t instanceof cs?t.visitShowTables(this):t.visitChildren(this)}}ds.ShowTablesContext=ys;class vs extends Cs{constructor(t,e){super(t),s(this,"setGlobalAssignment",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(qh):this.getTypedRuleContext(qh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}SET(){return this.getToken(ds.SET,0)}GLOBAL(){return this.getToken(ds.GLOBAL,0)}PERSISTENT(){return this.getToken(ds.PERSISTENT,0)}TRANSIENT(){return this.getToken(ds.TRANSIENT,0)}enterRule(t){t instanceof hs&&t.enterSetGlobal(this)}exitRule(t){t instanceof hs&&t.exitSetGlobal(this)}accept(t){return t instanceof cs?t.visitSetGlobal(this):t.visitChildren(this)}}ds.SetGlobalContext=vs;class Ds extends Cs{constructor(t,e){super(t),this.path=null,super.copyFrom(e)}COPY(){return this.getToken(ds.COPY,0)}tableWithPartition(){return this.getTypedRuleContext(lr,0)}TO(){return this.getToken(ds.TO,0)}expr(){return this.getTypedRuleContext(Cr,0)}columns(){return this.getTypedRuleContext(Sa,0)}where(){return this.getTypedRuleContext(ji,0)}DIRECTORY(){return this.getToken(ds.DIRECTORY,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterCopyTo(this)}exitRule(t){t instanceof hs&&t.exitCopyTo(this)}accept(t){return t instanceof cs?t.visitCopyTo(this):t.visitChildren(this)}}ds.CopyToContext=Ds;class ks extends Cs{constructor(t,e){super(t),super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}qname(){return this.getTypedRuleContext($n,0)}ALL(){return this.getToken(ds.ALL,0)}enterRule(t){t instanceof hs&&t.enterShowSessionParameter(this)}exitRule(t){t instanceof hs&&t.exitShowSessionParameter(this)}accept(t){return t instanceof cs?t.visitShowSessionParameter(this):t.visitChildren(this)}}ds.ShowSessionParameterContext=ks;class Ps extends Cs{constructor(t,e){super(t),super.copyFrom(e)}query(){return this.getTypedRuleContext(bi,0)}enterRule(t){t instanceof hs&&t.enterDefault(this)}exitRule(t){t instanceof hs&&t.exitDefault(this)}accept(t){return t instanceof cs?t.visitDefault(this):t.visitChildren(this)}}ds.DefaultContext=Ps;class Us extends Cs{constructor(t,e){super(t),super.copyFrom(e)}OPTIMIZE(){return this.getToken(ds.OPTIMIZE,0)}TABLE(){return this.getToken(ds.TABLE,0)}tableWithPartitions(){return this.getTypedRuleContext(Yh,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterOptimize(this)}exitRule(t){t instanceof hs&&t.exitOptimize(this)}accept(t){return t instanceof cs?t.visitOptimize(this):t.visitChildren(this)}}ds.OptimizeContext=Us;class Ms extends Cs{constructor(t,e){super(t),s(this,"primaryExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Kr):this.getTypedRuleContext(Kr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}RESET(){return this.getToken(ds.RESET,0)}GLOBAL(){return this.getToken(ds.GLOBAL,0)}enterRule(t){t instanceof hs&&t.enterResetGlobal(this)}exitRule(t){t instanceof hs&&t.exitResetGlobal(this)}accept(t){return t instanceof cs?t.visitResetGlobal(this):t.visitChildren(this)}}ds.ResetGlobalContext=Ms;class bs extends Cs{constructor(t,e){super(t),s(this,"idents",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(sa):this.getTypedRuleContext(sa,t)})),this.privileges=null,this.users=null,super.copyFrom(e)}REVOKE(){return this.getToken(ds.REVOKE,0)}FROM(){return this.getToken(ds.FROM,0)}ALL(){return this.getToken(ds.ALL,0)}ON(){return this.getToken(ds.ON,0)}securable(){return this.getTypedRuleContext(zh,0)}qnames(){return this.getTypedRuleContext(Jn,0)}PRIVILEGES(){return this.getToken(ds.PRIVILEGES,0)}enterRule(t){t instanceof hs&&t.enterRevokePrivilege(this)}exitRule(t){t instanceof hs&&t.exitRevokePrivilege(this)}accept(t){return t instanceof cs?t.visitRevokePrivilege(this):t.visitChildren(this)}}ds.RevokePrivilegeContext=bs;class ws extends Cs{constructor(t,e){super(t),super.copyFrom(e)}SET(){return this.getToken(ds.SET,0)}TIME(){return this.getToken(ds.TIME,0)}ZONE(){return this.getToken(ds.ZONE,0)}LOCAL(){return this.getToken(ds.LOCAL,0)}DEFAULT(){return this.getToken(ds.DEFAULT,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterSetTimeZone(this)}exitRule(t){t instanceof hs&&t.exitSetTimeZone(this)}accept(t){return t instanceof cs?t.visitSetTimeZone(this):t.visitChildren(this)}}ds.SetTimeZoneContext=ws;class Hs extends Cs{constructor(t,e){super(t),super.copyFrom(e)}createStmt(){return this.getTypedRuleContext(fa,0)}enterRule(t){t instanceof hs&&t.enterCreate(this)}exitRule(t){t instanceof hs&&t.exitCreate(this)}accept(t){return t instanceof cs?t.visitCreate(this):t.visitChildren(this)}}ds.CreateContext=Hs;class Bs extends Cs{constructor(t,e){super(t),super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}CREATE(){return this.getToken(ds.CREATE,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}enterRule(t){t instanceof hs&&t.enterShowCreateTable(this)}exitRule(t){t instanceof hs&&t.exitShowCreateTable(this)}accept(t){return t instanceof cs?t.visitShowCreateTable(this):t.visitChildren(this)}}ds.ShowCreateTableContext=Bs;class Fs extends Cs{constructor(t,e){super(t),this.pattern=null,super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}SCHEMAS(){return this.getToken(ds.SCHEMAS,0)}LIKE(){return this.getToken(ds.LIKE,0)}where(){return this.getTypedRuleContext(ji,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterShowSchemas(this)}exitRule(t){t instanceof hs&&t.exitShowSchemas(this)}accept(t){return t instanceof cs?t.visitShowSchemas(this):t.visitChildren(this)}}ds.ShowSchemasContext=Fs;class Ks extends Cs{constructor(t,e){super(t),super.copyFrom(e)}CLOSE(){return this.getToken(ds.CLOSE,0)}ident(){return this.getTypedRuleContext(ia,0)}ALL(){return this.getToken(ds.ALL,0)}enterRule(t){t instanceof hs&&t.enterClose(this)}exitRule(t){t instanceof hs&&t.exitClose(this)}accept(t){return t instanceof cs?t.visitClose(this):t.visitChildren(this)}}ds.CloseContext=Ks;class Gs extends Cs{constructor(t,e){super(t),s(this,"FROM",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.FROM):this.getToken(ds.FROM,t)})),s(this,"IN",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.IN):this.getToken(ds.IN,t)})),s(this,"qname",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts($n):this.getTypedRuleContext($n,t)})),this.tableName=null,this.schema=null,this.pattern=null,super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}COLUMNS(){return this.getToken(ds.COLUMNS,0)}LIKE(){return this.getToken(ds.LIKE,0)}where(){return this.getTypedRuleContext(ji,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterShowColumns(this)}exitRule(t){t instanceof hs&&t.exitShowColumns(this)}accept(t){return t instanceof cs?t.visitShowColumns(this):t.visitChildren(this)}}ds.ShowColumnsContext=Gs;class Ws extends Cs{constructor(t,e){super(t),super.copyFrom(e)}alterStmt(){return this.getTypedRuleContext(Ai,0)}enterRule(t){t instanceof hs&&t.enterAlter(this)}exitRule(t){t instanceof hs&&t.exitAlter(this)}accept(t){return t instanceof cs?t.visitAlter(this):t.visitChildren(this)}}ds.AlterContext=Ws;class Vs extends Cs{constructor(t,e){super(t),s(this,"setExpr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Qh):this.getTypedRuleContext(Qh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}SET(){return this.getToken(ds.SET,0)}qname(){return this.getTypedRuleContext($n,0)}EQ(){return this.getToken(ds.EQ,0)}TO(){return this.getToken(ds.TO,0)}DEFAULT(){return this.getToken(ds.DEFAULT,0)}SESSION(){return this.getToken(ds.SESSION,0)}LOCAL(){return this.getToken(ds.LOCAL,0)}enterRule(t){t instanceof hs&&t.enterSet(this)}exitRule(t){t instanceof hs&&t.exitSet(this)}accept(t){return t instanceof cs?t.visitSet(this):t.visitChildren(this)}}ds.SetContext=Vs;class Ys extends Cs{constructor(t,e){super(t),this.metatypes=null,super.copyFrom(e)}RESTORE(){return this.getToken(ds.RESTORE,0)}SNAPSHOT(){return this.getToken(ds.SNAPSHOT,0)}qname(){return this.getTypedRuleContext($n,0)}ALL(){return this.getToken(ds.ALL,0)}METADATA(){return this.getToken(ds.METADATA,0)}TABLE(){return this.getToken(ds.TABLE,0)}tableWithPartitions(){return this.getTypedRuleContext(Yh,0)}idents(){return this.getTypedRuleContext(sa,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterRestore(this)}exitRule(t){t instanceof hs&&t.exitRestore(this)}accept(t){return t instanceof cs?t.visitRestore(this):t.visitChildren(this)}}ds.RestoreContext=Ys;class qs extends Cs{constructor(t,e){super(t),super.copyFrom(e)}REFRESH(){return this.getToken(ds.REFRESH,0)}TABLE(){return this.getToken(ds.TABLE,0)}tableWithPartitions(){return this.getTypedRuleContext(Yh,0)}enterRule(t){t instanceof hs&&t.enterRefreshTable(this)}exitRule(t){t instanceof hs&&t.exitRefreshTable(this)}accept(t){return t instanceof cs?t.visitRefreshTable(this):t.visitChildren(this)}}ds.RefreshTableContext=qs;class Qs extends Cs{constructor(t,e){super(t),s(this,"idents",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(sa):this.getTypedRuleContext(sa,t)})),this.priviliges=null,this.users=null,super.copyFrom(e)}GRANT(){return this.getToken(ds.GRANT,0)}TO(){return this.getToken(ds.TO,0)}ALL(){return this.getToken(ds.ALL,0)}ON(){return this.getToken(ds.ON,0)}securable(){return this.getTypedRuleContext(zh,0)}qnames(){return this.getTypedRuleContext(Jn,0)}PRIVILEGES(){return this.getToken(ds.PRIVILEGES,0)}enterRule(t){t instanceof hs&&t.enterGrantPrivilege(this)}exitRule(t){t instanceof hs&&t.exitGrantPrivilege(this)}accept(t){return t instanceof cs?t.visitGrantPrivilege(this):t.visitChildren(this)}}ds.GrantPrivilegeContext=Qs;class Xs extends Cs{constructor(t,e){super(t),s(this,"idents",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(sa):this.getTypedRuleContext(sa,t)})),this.priviliges=null,this.users=null,super.copyFrom(e)}DENY(){return this.getToken(ds.DENY,0)}TO(){return this.getToken(ds.TO,0)}ALL(){return this.getToken(ds.ALL,0)}ON(){return this.getToken(ds.ON,0)}securable(){return this.getTypedRuleContext(zh,0)}qnames(){return this.getTypedRuleContext(Jn,0)}PRIVILEGES(){return this.getToken(ds.PRIVILEGES,0)}enterRule(t){t instanceof hs&&t.enterDenyPrivilege(this)}exitRule(t){t instanceof hs&&t.exitDenyPrivilege(this)}accept(t){return t instanceof cs?t.visitDenyPrivilege(this):t.visitChildren(this)}}ds.DenyPrivilegeContext=Xs;class zs extends Cs{constructor(t,e){super(t),s(this,"SESSION",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.SESSION):this.getToken(ds.SESSION,t)})),this.username=null,super.copyFrom(e)}SET(){return this.getToken(ds.SET,0)}AUTHORIZATION(){return this.getToken(ds.AUTHORIZATION,0)}DEFAULT(){return this.getToken(ds.DEFAULT,0)}stringLiteralOrIdentifier(){return this.getTypedRuleContext(la,0)}LOCAL(){return this.getToken(ds.LOCAL,0)}enterRule(t){t instanceof hs&&t.enterSetSessionAuthorization(this)}exitRule(t){t instanceof hs&&t.exitSetSessionAuthorization(this)}accept(t){return t instanceof cs?t.visitSetSessionAuthorization(this):t.visitChildren(this)}}ds.SetSessionAuthorizationContext=zs;class Zs extends Cs{constructor(t,e){super(t),this.jobId=null,super.copyFrom(e)}KILL(){return this.getToken(ds.KILL,0)}ALL(){return this.getToken(ds.ALL,0)}parameterOrString(){return this.getTypedRuleContext(Dn,0)}enterRule(t){t instanceof hs&&t.enterKill(this)}exitRule(t){t instanceof hs&&t.exitKill(this)}accept(t){return t instanceof cs?t.visitKill(this):t.visitChildren(this)}}ds.KillContext=Zs;class js extends Cs{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.path=null,super.copyFrom(e)}COPY(){return this.getToken(ds.COPY,0)}tableWithPartition(){return this.getTypedRuleContext(lr,0)}FROM(){return this.getToken(ds.FROM,0)}expr(){return this.getTypedRuleContext(Cr,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}withProperties(){return this.getTypedRuleContext(kh,0)}RETURN(){return this.getToken(ds.RETURN,0)}SUMMARY(){return this.getToken(ds.SUMMARY,0)}enterRule(t){t instanceof hs&&t.enterCopyFrom(this)}exitRule(t){t instanceof hs&&t.exitCopyFrom(this)}accept(t){return t instanceof cs?t.visitCopyFrom(this):t.visitChildren(this)}}ds.CopyFromContext=js;class Js extends Cs{constructor(t,e){super(t),super.copyFrom(e)}ANALYZE(){return this.getToken(ds.ANALYZE,0)}enterRule(t){t instanceof hs&&t.enterAnalyze(this)}exitRule(t){t instanceof hs&&t.exitAnalyze(this)}accept(t){return t instanceof cs?t.visitAnalyze(this):t.visitChildren(this)}}ds.AnalyzeContext=Js;class $s extends Cs{constructor(t,e){super(t),super.copyFrom(e)}FETCH(){return this.getToken(ds.FETCH,0)}ident(){return this.getTypedRuleContext(ia,0)}direction(){return this.getTypedRuleContext(Jh,0)}IN(){return this.getToken(ds.IN,0)}FROM(){return this.getToken(ds.FROM,0)}enterRule(t){t instanceof hs&&t.enterFetch(this)}exitRule(t){t instanceof hs&&t.exitFetch(this)}accept(t){return t instanceof cs?t.visitFetch(this):t.visitChildren(this)}}ds.FetchContext=$s;class ti extends Cs{constructor(t,e){super(t),super.copyFrom(e)}SHOW(){return this.getToken(ds.SHOW,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}ISOLATION(){return this.getToken(ds.ISOLATION,0)}LEVEL(){return this.getToken(ds.LEVEL,0)}TRANSACTION_ISOLATION(){return this.getToken(ds.TRANSACTION_ISOLATION,0)}enterRule(t){t instanceof hs&&t.enterShowTransaction(this)}exitRule(t){t instanceof hs&&t.exitShowTransaction(this)}accept(t){return t instanceof cs?t.visitShowTransaction(this):t.visitChildren(this)}}ds.ShowTransactionContext=ti;class ei extends Cs{constructor(t,e){super(t),super.copyFrom(e)}RESET(){return this.getToken(ds.RESET,0)}SESSION(){return this.getToken(ds.SESSION,0)}AUTHORIZATION(){return this.getToken(ds.AUTHORIZATION,0)}enterRule(t){t instanceof hs&&t.enterResetSessionAuthorization(this)}exitRule(t){t instanceof hs&&t.exitResetSessionAuthorization(this)}accept(t){return t instanceof cs?t.visitResetSessionAuthorization(this):t.visitChildren(this)}}ds.ResetSessionAuthorizationContext=ei;class si extends Cs{constructor(t,e){super(t),s(this,"transactionMode",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Zh):this.getTypedRuleContext(Zh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}BEGIN(){return this.getToken(ds.BEGIN,0)}WORK(){return this.getToken(ds.WORK,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}enterRule(t){t instanceof hs&&t.enterBegin(this)}exitRule(t){t instanceof hs&&t.exitBegin(this)}accept(t){return t instanceof cs?t.visitBegin(this):t.visitChildren(this)}}ds.BeginContext=si;class ii extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_dropStmt}copyFrom(t){super.copyFrom(t)}}class ri extends ii{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}SUBSCRIPTION(){return this.getToken(ds.SUBSCRIPTION,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropSubscription(this)}exitRule(t){t instanceof hs&&t.exitDropSubscription(this)}accept(t){return t instanceof cs?t.visitDropSubscription(this):t.visitChildren(this)}}ds.DropSubscriptionContext=ri;class ni extends ii{constructor(t,e){super(t),super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}SNAPSHOT(){return this.getToken(ds.SNAPSHOT,0)}qname(){return this.getTypedRuleContext($n,0)}enterRule(t){t instanceof hs&&t.enterDropSnapshot(this)}exitRule(t){t instanceof hs&&t.exitDropSnapshot(this)}accept(t){return t instanceof cs?t.visitDropSnapshot(this):t.visitChildren(this)}}ds.DropSnapshotContext=ni;class ai extends ii{constructor(t,e){super(t),s(this,"functionArgument",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Wa):this.getTypedRuleContext(Wa,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.name=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}FUNCTION(){return this.getToken(ds.FUNCTION,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}qname(){return this.getTypedRuleContext($n,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropFunction(this)}exitRule(t){t instanceof hs&&t.exitDropFunction(this)}accept(t){return t instanceof cs?t.visitDropFunction(this):t.visitChildren(this)}}ds.DropFunctionContext=ai;class hi extends ii{constructor(t,e){super(t),this.names=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}VIEW(){return this.getToken(ds.VIEW,0)}qnames(){return this.getTypedRuleContext(Jn,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropView(this)}exitRule(t){t instanceof hs&&t.exitDropView(this)}accept(t){return t instanceof cs?t.visitDropView(this):t.visitChildren(this)}}ds.DropViewContext=hi;class ci extends ii{constructor(t,e){super(t),this.server=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}USER(){return this.getToken(ds.USER,0)}MAPPING(){return this.getToken(ds.MAPPING,0)}FOR(){return this.getToken(ds.FOR,0)}mappedUser(){return this.getTypedRuleContext(Fa,0)}SERVER(){return this.getToken(ds.SERVER,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropUserMapping(this)}exitRule(t){t instanceof hs&&t.exitDropUserMapping(this)}accept(t){return t instanceof cs?t.visitDropUserMapping(this):t.visitChildren(this)}}ds.DropUserMappingContext=ci;class oi extends ii{constructor(t,e){super(t),super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}REPOSITORY(){return this.getToken(ds.REPOSITORY,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterDropRepository(this)}exitRule(t){t instanceof hs&&t.exitDropRepository(this)}accept(t){return t instanceof cs?t.visitDropRepository(this):t.visitChildren(this)}}ds.DropRepositoryContext=oi;class li extends ii{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}USER(){return this.getToken(ds.USER,0)}ROLE(){return this.getToken(ds.ROLE,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropRole(this)}exitRule(t){t instanceof hs&&t.exitDropRole(this)}accept(t){return t instanceof cs?t.visitDropRole(this):t.visitChildren(this)}}ds.DropRoleContext=li;class ui extends ii{constructor(t,e){super(t),this.names=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}FOREIGN(){return this.getToken(ds.FOREIGN,0)}TABLE(){return this.getToken(ds.TABLE,0)}qnames(){return this.getTypedRuleContext(Jn,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}CASCADE(){return this.getToken(ds.CASCADE,0)}RESTRICT(){return this.getToken(ds.RESTRICT,0)}enterRule(t){t instanceof hs&&t.enterDropForeignTable(this)}exitRule(t){t instanceof hs&&t.exitDropForeignTable(this)}accept(t){return t instanceof cs?t.visitDropForeignTable(this):t.visitChildren(this)}}ds.DropForeignTableContext=ui;class Ti extends ii{constructor(t,e){super(t),super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}BLOB(){return this.getToken(ds.BLOB,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropBlobTable(this)}exitRule(t){t instanceof hs&&t.exitDropBlobTable(this)}accept(t){return t instanceof cs?t.visitDropBlobTable(this):t.visitChildren(this)}}ds.DropBlobTableContext=Ti;class di extends ii{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}ANALYZER(){return this.getToken(ds.ANALYZER,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterDropAnalyzer(this)}exitRule(t){t instanceof hs&&t.exitDropAnalyzer(this)}accept(t){return t instanceof cs?t.visitDropAnalyzer(this):t.visitChildren(this)}}ds.DropAnalyzerContext=di;class Ei extends ii{constructor(t,e){super(t),super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}ALIAS(){return this.getToken(ds.ALIAS,0)}qname(){return this.getTypedRuleContext($n,0)}enterRule(t){t instanceof hs&&t.enterDropAlias(this)}exitRule(t){t instanceof hs&&t.exitDropAlias(this)}accept(t){return t instanceof cs?t.visitDropAlias(this):t.visitChildren(this)}}ds.DropAliasContext=Ei;class pi extends ii{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}PUBLICATION(){return this.getToken(ds.PUBLICATION,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropPublication(this)}exitRule(t){t instanceof hs&&t.exitDropPublication(this)}accept(t){return t instanceof cs?t.visitDropPublication(this):t.visitChildren(this)}}ds.DropPublicationContext=pi;class Ri extends ii{constructor(t,e){super(t),super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropTable(this)}exitRule(t){t instanceof hs&&t.exitDropTable(this)}accept(t){return t instanceof cs?t.visitDropTable(this):t.visitChildren(this)}}ds.DropTableContext=Ri;class Ci extends ii{constructor(t,e){super(t),this.names=null,super.copyFrom(e)}DROP(){return this.getToken(ds.DROP,0)}SERVER(){return this.getToken(ds.SERVER,0)}idents(){return this.getTypedRuleContext(sa,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}CASCADE(){return this.getToken(ds.CASCADE,0)}RESTRICT(){return this.getToken(ds.RESTRICT,0)}enterRule(t){t instanceof hs&&t.enterDropServer(this)}exitRule(t){t instanceof hs&&t.exitDropServer(this)}accept(t){return t instanceof cs?t.visitDropServer(this):t.visitChildren(this)}}ds.DropServerContext=Ci;class Ai extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_alterStmt}copyFrom(t){super.copyFrom(t)}}class xi extends Ai{constructor(t,e){super(t),s(this,"addColumnDefinition",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(rh):this.getTypedRuleContext(rh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}enterRule(t){t instanceof hs&&t.enterAddColumn(this)}exitRule(t){t instanceof hs&&t.exitAddColumn(this)}accept(t){return t instanceof cs?t.visitAddColumn(this):t.visitChildren(this)}}ds.AddColumnContext=xi;class Oi extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}CLUSTER(){return this.getToken(ds.CLUSTER,0)}GC(){return this.getToken(ds.GC,0)}DANGLING(){return this.getToken(ds.DANGLING,0)}ARTIFACTS(){return this.getToken(ds.ARTIFACTS,0)}enterRule(t){t instanceof hs&&t.enterAlterClusterGCDanglingArtifacts(this)}exitRule(t){t instanceof hs&&t.exitAlterClusterGCDanglingArtifacts(this)}accept(t){return t instanceof cs?t.visitAlterClusterGCDanglingArtifacts(this):t.visitChildren(this)}}ds.AlterClusterGCDanglingArtifactsContext=Oi;class _i extends Ai{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}SET(){return this.getToken(ds.SET,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}genericProperties(){return this.getTypedRuleContext(Uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}RESET(){return this.getToken(ds.RESET,0)}enterRule(t){t instanceof hs&&t.enterAlterTableProperties(this)}exitRule(t){t instanceof hs&&t.exitAlterTableProperties(this)}accept(t){return t instanceof cs?t.visitAlterTableProperties(this):t.visitChildren(this)}}ds.AlterTablePropertiesContext=_i;class gi extends Ai{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}SET(){return this.getToken(ds.SET,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}genericProperties(){return this.getTypedRuleContext(Uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}USER(){return this.getToken(ds.USER,0)}ROLE(){return this.getToken(ds.ROLE,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterAlterRole(this)}exitRule(t){t instanceof hs&&t.exitAlterRole(this)}accept(t){return t instanceof cs?t.visitAlterRole(this):t.visitChildren(this)}}ds.AlterRoleContext=gi;class Si extends Ai{constructor(t,e){super(t),s(this,"dropColumnDefinition",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(nh):this.getTypedRuleContext(nh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}enterRule(t){t instanceof hs&&t.enterDropColumn(this)}exitRule(t){t instanceof hs&&t.exitDropColumn(this)}accept(t){return t instanceof cs?t.visitDropColumn(this):t.visitChildren(this)}}ds.DropColumnContext=Si;class Li extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}DROP(){return this.getToken(ds.DROP,0)}CONSTRAINT(){return this.getToken(ds.CONSTRAINT,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterDropCheckConstraint(this)}exitRule(t){t instanceof hs&&t.exitDropCheckConstraint(this)}accept(t){return t instanceof cs?t.visitDropCheckConstraint(this):t.visitChildren(this)}}ds.DropCheckConstraintContext=Li;class fi extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}OPEN(){return this.getToken(ds.OPEN,0)}CLOSE(){return this.getToken(ds.CLOSE,0)}BLOB(){return this.getToken(ds.BLOB,0)}enterRule(t){t instanceof hs&&t.enterAlterTableOpenClose(this)}exitRule(t){t instanceof hs&&t.exitAlterTableOpenClose(this)}accept(t){return t instanceof cs?t.visitAlterTableOpenClose(this):t.visitChildren(this)}}ds.AlterTableOpenCloseContext=fi;class Ii extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}RENAME(){return this.getToken(ds.RENAME,0)}TO(){return this.getToken(ds.TO,0)}qname(){return this.getTypedRuleContext($n,0)}BLOB(){return this.getToken(ds.BLOB,0)}enterRule(t){t instanceof hs&&t.enterAlterTableRenameTable(this)}exitRule(t){t instanceof hs&&t.exitAlterTableRenameTable(this)}accept(t){return t instanceof cs?t.visitAlterTableRenameTable(this):t.visitChildren(this)}}ds.AlterTableRenameTableContext=Ii;class Ni extends Ai{constructor(t,e){super(t),s(this,"qname",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts($n):this.getTypedRuleContext($n,t)})),s(this,"ASTERISK",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.ASTERISK):this.getToken(ds.ASTERISK,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.name=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}PUBLICATION(){return this.getToken(ds.PUBLICATION,0)}ident(){return this.getTypedRuleContext(ia,0)}TABLE(){return this.getToken(ds.TABLE,0)}ADD(){return this.getToken(ds.ADD,0)}SET(){return this.getToken(ds.SET,0)}DROP(){return this.getToken(ds.DROP,0)}enterRule(t){t instanceof hs&&t.enterAlterPublication(this)}exitRule(t){t instanceof hs&&t.exitAlterPublication(this)}accept(t){return t instanceof cs?t.visitAlterPublication(this):t.visitChildren(this)}}ds.AlterPublicationContext=Ni;class mi extends Ai{constructor(t,e){super(t),this.node=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}CLUSTER(){return this.getToken(ds.CLUSTER,0)}DECOMMISSION(){return this.getToken(ds.DECOMMISSION,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterAlterClusterDecommissionNode(this)}exitRule(t){t instanceof hs&&t.exitAlterClusterDecommissionNode(this)}accept(t){return t instanceof cs?t.visitAlterClusterDecommissionNode(this):t.visitChildren(this)}}ds.AlterClusterDecommissionNodeContext=mi;class yi extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}CLUSTER(){return this.getToken(ds.CLUSTER,0)}REROUTE(){return this.getToken(ds.REROUTE,0)}RETRY(){return this.getToken(ds.RETRY,0)}FAILED(){return this.getToken(ds.FAILED,0)}enterRule(t){t instanceof hs&&t.enterAlterClusterRerouteRetryFailed(this)}exitRule(t){t instanceof hs&&t.exitAlterClusterRerouteRetryFailed(this)}accept(t){return t instanceof cs?t.visitAlterClusterRerouteRetryFailed(this):t.visitChildren(this)}}ds.AlterClusterRerouteRetryFailedContext=yi;class vi extends Ai{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}BLOB(){return this.getToken(ds.BLOB,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}SET(){return this.getToken(ds.SET,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}genericProperties(){return this.getTypedRuleContext(Uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}RESET(){return this.getToken(ds.RESET,0)}enterRule(t){t instanceof hs&&t.enterAlterBlobTableProperties(this)}exitRule(t){t instanceof hs&&t.exitAlterBlobTableProperties(this)}accept(t){return t instanceof cs?t.visitAlterBlobTableProperties(this):t.visitChildren(this)}}ds.AlterBlobTablePropertiesContext=vi;class Di extends Ai{constructor(t,e){super(t),super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}REROUTE(){return this.getToken(ds.REROUTE,0)}rerouteOption(){return this.getTypedRuleContext(ah,0)}BLOB(){return this.getToken(ds.BLOB,0)}enterRule(t){t instanceof hs&&t.enterAlterTableReroute(this)}exitRule(t){t instanceof hs&&t.exitAlterTableReroute(this)}accept(t){return t instanceof cs?t.visitAlterTableReroute(this):t.visitChildren(this)}}ds.AlterTableRerouteContext=Di;class ki extends Ai{constructor(t,e){super(t),s(this,"qname",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts($n):this.getTypedRuleContext($n,t)})),this.source=null,this.target=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}CLUSTER(){return this.getToken(ds.CLUSTER,0)}SWAP(){return this.getToken(ds.SWAP,0)}TABLE(){return this.getToken(ds.TABLE,0)}TO(){return this.getToken(ds.TO,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterAlterClusterSwapTable(this)}exitRule(t){t instanceof hs&&t.exitAlterClusterSwapTable(this)}accept(t){return t instanceof cs?t.visitAlterClusterSwapTable(this):t.visitChildren(this)}}ds.AlterClusterSwapTableContext=ki;class Pi extends Ai{constructor(t,e){super(t),s(this,"subscriptSafe",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Fn):this.getTypedRuleContext(Fn,t)})),this.source=null,this.target=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}TABLE(){return this.getToken(ds.TABLE,0)}alterTableDefinition(){return this.getTypedRuleContext(Va,0)}RENAME(){return this.getToken(ds.RENAME,0)}TO(){return this.getToken(ds.TO,0)}BLOB(){return this.getToken(ds.BLOB,0)}COLUMN(){return this.getToken(ds.COLUMN,0)}enterRule(t){t instanceof hs&&t.enterAlterTableRenameColumn(this)}exitRule(t){t instanceof hs&&t.exitAlterTableRenameColumn(this)}accept(t){return t instanceof cs?t.visitAlterTableRenameColumn(this):t.visitChildren(this)}}ds.AlterTableRenameColumnContext=Pi;class Ui extends Ai{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}ALTER(){return this.getToken(ds.ALTER,0)}SUBSCRIPTION(){return this.getToken(ds.SUBSCRIPTION,0)}alterSubscriptionMode(){return this.getTypedRuleContext(Qa,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterAlterSubscription(this)}exitRule(t){t instanceof hs&&t.exitAlterSubscription(this)}accept(t){return t instanceof cs?t.visitAlterSubscription(this):t.visitChildren(this)}}ds.AlterSubscriptionContext=Ui;class Mi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_queryOptParens}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}query(){return this.getTypedRuleContext(bi,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}queryOptParens(){return this.getTypedRuleContext(Mi,0)}enterRule(t){t instanceof hs&&t.enterQueryOptParens(this)}exitRule(t){t instanceof hs&&t.exitQueryOptParens(this)}accept(t){return t instanceof cs?t.visitQueryOptParens(this):t.visitChildren(this)}}class bi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_query}queryNoWith(){return this.getTypedRuleContext(wi,0)}with_(){return this.getTypedRuleContext(pr,0)}enterRule(t){t instanceof hs&&t.enterQuery(this)}exitRule(t){t instanceof hs&&t.exitQuery(this)}accept(t){return t instanceof cs?t.visitQuery(this):t.visitChildren(this)}}class wi extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"sortItem",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Vi):this.getTypedRuleContext(Vi,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_queryNoWith}queryTerm(){return this.getTypedRuleContext(Fi,0)}ORDER(){return this.getToken(ds.ORDER,0)}BY(){return this.getToken(ds.BY,0)}limitClause(){return this.getTypedRuleContext(Hi,0)}offsetClause(){return this.getTypedRuleContext(Bi,0)}enterRule(t){t instanceof hs&&t.enterQueryNoWith(this)}exitRule(t){t instanceof hs&&t.exitQueryNoWith(this)}accept(t){return t instanceof cs?t.visitQueryNoWith(this):t.visitChildren(this)}}class Hi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_limitClause,this.limit=null}LIMIT(){return this.getToken(ds.LIMIT,0)}ALL(){return this.getToken(ds.ALL,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}FETCH(){return this.getToken(ds.FETCH,0)}ONLY(){return this.getToken(ds.ONLY,0)}FIRST(){return this.getToken(ds.FIRST,0)}NEXT(){return this.getToken(ds.NEXT,0)}ROW(){return this.getToken(ds.ROW,0)}ROWS(){return this.getToken(ds.ROWS,0)}enterRule(t){t instanceof hs&&t.enterLimitClause(this)}exitRule(t){t instanceof hs&&t.exitLimitClause(this)}accept(t){return t instanceof cs?t.visitLimitClause(this):t.visitChildren(this)}}class Bi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_offsetClause,this.offset=null}OFFSET(){return this.getToken(ds.OFFSET,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}ROW(){return this.getToken(ds.ROW,0)}ROWS(){return this.getToken(ds.ROWS,0)}enterRule(t){t instanceof hs&&t.enterOffsetClause(this)}exitRule(t){t instanceof hs&&t.exitOffsetClause(this)}accept(t){return t instanceof cs?t.visitOffsetClause(this):t.visitChildren(this)}}class Fi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_queryTerm}copyFrom(t){super.copyFrom(t)}}class Ki extends Fi{constructor(t,e){super(t),super.copyFrom(e)}querySpec(){return this.getTypedRuleContext(Yi,0)}enterRule(t){t instanceof hs&&t.enterQueryTermDefault(this)}exitRule(t){t instanceof hs&&t.exitQueryTermDefault(this)}accept(t){return t instanceof cs?t.visitQueryTermDefault(this):t.visitChildren(this)}}ds.QueryTermDefaultContext=Ki;class Gi extends Fi{constructor(t,e){super(t),s(this,"querySpec",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Yi):this.getTypedRuleContext(Yi,t)})),s(this,"queryTerm",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Fi):this.getTypedRuleContext(Fi,t)})),this.left=null,this.first=null,this.operator=null,this.second=null,this.right=null,super.copyFrom(e)}INTERSECT(){return this.getToken(ds.INTERSECT,0)}EXCEPT(){return this.getToken(ds.EXCEPT,0)}UNION(){return this.getToken(ds.UNION,0)}setQuant(){return this.getTypedRuleContext(Wi,0)}enterRule(t){t instanceof hs&&t.enterSetOperation(this)}exitRule(t){t instanceof hs&&t.exitSetOperation(this)}accept(t){return t instanceof cs?t.visitSetOperation(this):t.visitChildren(this)}}ds.SetOperationContext=Gi;class Wi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_setQuant}DISTINCT(){return this.getToken(ds.DISTINCT,0)}ALL(){return this.getToken(ds.ALL,0)}enterRule(t){t instanceof hs&&t.enterSetQuant(this)}exitRule(t){t instanceof hs&&t.exitSetQuant(this)}accept(t){return t instanceof cs?t.visitSetQuant(this):t.visitChildren(this)}}class Vi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_sortItem,this.ordering=null,this.nullOrdering=null}expr(){return this.getTypedRuleContext(Cr,0)}NULLS(){return this.getToken(ds.NULLS,0)}ASC(){return this.getToken(ds.ASC,0)}DESC(){return this.getToken(ds.DESC,0)}FIRST(){return this.getToken(ds.FIRST,0)}LAST(){return this.getToken(ds.LAST,0)}enterRule(t){t instanceof hs&&t.enterSortItem(this)}exitRule(t){t instanceof hs&&t.exitSortItem(this)}accept(t){return t instanceof cs?t.visitSortItem(this):t.visitChildren(this)}}class Yi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_querySpec}copyFrom(t){super.copyFrom(t)}}class qi extends Yi{constructor(t,e){super(t),s(this,"selectItem",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Xi):this.getTypedRuleContext(Xi,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),s(this,"relation",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(tr):this.getTypedRuleContext(tr,t)})),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"namedWindow",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Vn):this.getTypedRuleContext(Vn,t)})),this.having=null,this._namedWindow=null,this.windows=[],super.copyFrom(e)}SELECT(){return this.getToken(ds.SELECT,0)}setQuant(){return this.getTypedRuleContext(Wi,0)}FROM(){return this.getToken(ds.FROM,0)}where(){return this.getTypedRuleContext(ji,0)}GROUP(){return this.getToken(ds.GROUP,0)}BY(){return this.getToken(ds.BY,0)}HAVING(){return this.getToken(ds.HAVING,0)}WINDOW(){return this.getToken(ds.WINDOW,0)}booleanExpression(){return this.getTypedRuleContext(Ar,0)}enterRule(t){t instanceof hs&&t.enterDefaultQuerySpec(this)}exitRule(t){t instanceof hs&&t.exitDefaultQuerySpec(this)}accept(t){return t instanceof cs?t.visitDefaultQuerySpec(this):t.visitChildren(this)}}ds.DefaultQuerySpecContext=qi;class Qi extends Yi{constructor(t,e){super(t),s(this,"values",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ga):this.getTypedRuleContext(ga,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}VALUES(){return this.getToken(ds.VALUES,0)}enterRule(t){t instanceof hs&&t.enterValuesRelation(this)}exitRule(t){t instanceof hs&&t.exitValuesRelation(this)}accept(t){return t instanceof cs?t.visitValuesRelation(this):t.visitChildren(this)}}ds.ValuesRelationContext=Qi;class Xi extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_selectItem}copyFrom(t){super.copyFrom(t)}}class zi extends Xi{constructor(t,e){super(t),super.copyFrom(e)}qname(){return this.getTypedRuleContext($n,0)}DOT(){return this.getToken(ds.DOT,0)}ASTERISK(){return this.getToken(ds.ASTERISK,0)}enterRule(t){t instanceof hs&&t.enterSelectAll(this)}exitRule(t){t instanceof hs&&t.exitSelectAll(this)}accept(t){return t instanceof cs?t.visitSelectAll(this):t.visitChildren(this)}}ds.SelectAllContext=zi;class Zi extends Xi{constructor(t,e){super(t),super.copyFrom(e)}expr(){return this.getTypedRuleContext(Cr,0)}ident(){return this.getTypedRuleContext(ia,0)}AS(){return this.getToken(ds.AS,0)}enterRule(t){t instanceof hs&&t.enterSelectSingle(this)}exitRule(t){t instanceof hs&&t.exitSelectSingle(this)}accept(t){return t instanceof cs?t.visitSelectSingle(this):t.visitChildren(this)}}ds.SelectSingleContext=Zi;class ji extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_where,this.condition=null}WHERE(){return this.getToken(ds.WHERE,0)}booleanExpression(){return this.getTypedRuleContext(Ar,0)}enterRule(t){t instanceof hs&&t.enterWhere(this)}exitRule(t){t instanceof hs&&t.exitWhere(this)}accept(t){return t instanceof cs?t.visitWhere(this):t.visitChildren(this)}}class Ji extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"selectItem",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Xi):this.getTypedRuleContext(Xi,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_returning}RETURNING(){return this.getToken(ds.RETURNING,0)}enterRule(t){t instanceof hs&&t.enterReturning(this)}exitRule(t){t instanceof hs&&t.exitReturning(this)}accept(t){return t instanceof cs?t.visitReturning(this):t.visitChildren(this)}}class $i extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_filter}FILTER(){return this.getToken(ds.FILTER,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}where(){return this.getTypedRuleContext(ji,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterFilter(this)}exitRule(t){t instanceof hs&&t.exitFilter(this)}accept(t){return t instanceof cs?t.visitFilter(this):t.visitChildren(this)}}class tr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_relation}copyFrom(t){super.copyFrom(t)}}class er extends tr{constructor(t,e){super(t),super.copyFrom(e)}aliasedRelation(){return this.getTypedRuleContext(nr,0)}enterRule(t){t instanceof hs&&t.enterRelationDefault(this)}exitRule(t){t instanceof hs&&t.exitRelationDefault(this)}accept(t){return t instanceof cs?t.visitRelationDefault(this):t.visitChildren(this)}}ds.RelationDefaultContext=er;class sr extends tr{constructor(t,e){super(t),s(this,"relation",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(tr):this.getTypedRuleContext(tr,t)})),this.left=null,this.right=null,this.rightRelation=null,super.copyFrom(e)}CROSS(){return this.getToken(ds.CROSS,0)}JOIN(){return this.getToken(ds.JOIN,0)}joinType(){return this.getTypedRuleContext(ir,0)}joinCriteria(){return this.getTypedRuleContext(rr,0)}NATURAL(){return this.getToken(ds.NATURAL,0)}aliasedRelation(){return this.getTypedRuleContext(nr,0)}enterRule(t){t instanceof hs&&t.enterJoinRelation(this)}exitRule(t){t instanceof hs&&t.exitJoinRelation(this)}accept(t){return t instanceof cs?t.visitJoinRelation(this):t.visitChildren(this)}}ds.JoinRelationContext=sr;class ir extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_joinType}INNER(){return this.getToken(ds.INNER,0)}LEFT(){return this.getToken(ds.LEFT,0)}OUTER(){return this.getToken(ds.OUTER,0)}RIGHT(){return this.getToken(ds.RIGHT,0)}FULL(){return this.getToken(ds.FULL,0)}enterRule(t){t instanceof hs&&t.enterJoinType(this)}exitRule(t){t instanceof hs&&t.exitJoinType(this)}accept(t){return t instanceof cs?t.visitJoinType(this):t.visitChildren(this)}}class rr extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_joinCriteria}ON(){return this.getToken(ds.ON,0)}booleanExpression(){return this.getTypedRuleContext(Ar,0)}USING(){return this.getToken(ds.USING,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterJoinCriteria(this)}exitRule(t){t instanceof hs&&t.exitJoinCriteria(this)}accept(t){return t instanceof cs?t.visitJoinCriteria(this):t.visitChildren(this)}}class nr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_aliasedRelation}relationPrimary(){return this.getTypedRuleContext(ar,0)}ident(){return this.getTypedRuleContext(ia,0)}AS(){return this.getToken(ds.AS,0)}aliasedColumns(){return this.getTypedRuleContext(Er,0)}enterRule(t){t instanceof hs&&t.enterAliasedRelation(this)}exitRule(t){t instanceof hs&&t.exitAliasedRelation(this)}accept(t){return t instanceof cs?t.visitAliasedRelation(this):t.visitChildren(this)}}class ar extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_relationPrimary}copyFrom(t){super.copyFrom(t)}}class hr extends ar{constructor(t,e){super(t),super.copyFrom(e)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}query(){return this.getTypedRuleContext(bi,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterSubqueryRelation(this)}exitRule(t){t instanceof hs&&t.exitSubqueryRelation(this)}accept(t){return t instanceof cs?t.visitSubqueryRelation(this):t.visitChildren(this)}}ds.SubqueryRelationContext=hr;class cr extends ar{constructor(t,e){super(t),super.copyFrom(e)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}relation(){return this.getTypedRuleContext(tr,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterParenthesizedRelation(this)}exitRule(t){t instanceof hs&&t.exitParenthesizedRelation(this)}accept(t){return t instanceof cs?t.visitParenthesizedRelation(this):t.visitChildren(this)}}ds.ParenthesizedRelationContext=cr;class or extends ar{constructor(t,e){super(t),super.copyFrom(e)}table(){return this.getTypedRuleContext(ur,0)}enterRule(t){t instanceof hs&&t.enterTableRelation(this)}exitRule(t){t instanceof hs&&t.exitTableRelation(this)}accept(t){return t instanceof cs?t.visitTableRelation(this):t.visitChildren(this)}}ds.TableRelationContext=or;class lr extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"assignment",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(La):this.getTypedRuleContext(La,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_tableWithPartition}qname(){return this.getTypedRuleContext($n,0)}PARTITION(){return this.getToken(ds.PARTITION,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterTableWithPartition(this)}exitRule(t){t instanceof hs&&t.exitTableWithPartition(this)}accept(t){return t instanceof cs?t.visitTableWithPartition(this):t.visitChildren(this)}}class ur extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_table}copyFrom(t){super.copyFrom(t)}}class Tr extends ur{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}qname(){return this.getTypedRuleContext($n,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterTableFunction(this)}exitRule(t){t instanceof hs&&t.exitTableFunction(this)}accept(t){return t instanceof cs?t.visitTableFunction(this):t.visitChildren(this)}}ds.TableFunctionContext=Tr;class dr extends ur{constructor(t,e){super(t),super.copyFrom(e)}qname(){return this.getTypedRuleContext($n,0)}enterRule(t){t instanceof hs&&t.enterTableName(this)}exitRule(t){t instanceof hs&&t.exitTableName(this)}accept(t){return t instanceof cs?t.visitTableName(this):t.visitChildren(this)}}ds.TableNameContext=dr;class Er extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_aliasedColumns}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterAliasedColumns(this)}exitRule(t){t instanceof hs&&t.exitAliasedColumns(this)}accept(t){return t instanceof cs?t.visitAliasedColumns(this):t.visitChildren(this)}}class pr extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"namedQuery",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Rr):this.getTypedRuleContext(Rr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_with}WITH(){return this.getToken(ds.WITH,0)}enterRule(t){t instanceof hs&&t.enterWith(this)}exitRule(t){t instanceof hs&&t.exitWith(this)}accept(t){return t instanceof cs?t.visitWith(this):t.visitChildren(this)}}class Rr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_namedQuery,this.name=null}AS(){return this.getToken(ds.AS,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}query(){return this.getTypedRuleContext(bi,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}ident(){return this.getTypedRuleContext(ia,0)}aliasedColumns(){return this.getTypedRuleContext(Er,0)}enterRule(t){t instanceof hs&&t.enterNamedQuery(this)}exitRule(t){t instanceof hs&&t.exitNamedQuery(this)}accept(t){return t instanceof cs?t.visitNamedQuery(this):t.visitChildren(this)}}class Cr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_expr}booleanExpression(){return this.getTypedRuleContext(Ar,0)}enterRule(t){t instanceof hs&&t.enterExpr(this)}exitRule(t){t instanceof hs&&t.exitExpr(this)}accept(t){return t instanceof cs?t.visitExpr(this):t.visitChildren(this)}}class Ar extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_booleanExpression}copyFrom(t){super.copyFrom(t)}}class xr extends Ar{constructor(t,e){super(t),super.copyFrom(e)}NOT(){return this.getToken(ds.NOT,0)}booleanExpression(){return this.getTypedRuleContext(Ar,0)}enterRule(t){t instanceof hs&&t.enterLogicalNot(this)}exitRule(t){t instanceof hs&&t.exitLogicalNot(this)}accept(t){return t instanceof cs?t.visitLogicalNot(this):t.visitChildren(this)}}ds.LogicalNotContext=xr;class Or extends Ar{constructor(t,e){super(t),super.copyFrom(e)}predicated(){return this.getTypedRuleContext(Sr,0)}enterRule(t){t instanceof hs&&t.enterBooleanDefault(this)}exitRule(t){t instanceof hs&&t.exitBooleanDefault(this)}accept(t){return t instanceof cs?t.visitBooleanDefault(this):t.visitChildren(this)}}ds.BooleanDefaultContext=Or;class _r extends Ar{constructor(t,e){super(t),this.term=null,this.matchType=null,super.copyFrom(e)}MATCH(){return this.getToken(ds.MATCH,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}matchPredicateIdents(){return this.getTypedRuleContext(Hh,0)}COMMA(){return this.getToken(ds.COMMA,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}USING(){return this.getToken(ds.USING,0)}ident(){return this.getTypedRuleContext(ia,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterMatch(this)}exitRule(t){t instanceof hs&&t.exitMatch(this)}accept(t){return t instanceof cs?t.visitMatch(this):t.visitChildren(this)}}ds.MatchContext=_r;class gr extends Ar{constructor(t,e){super(t),s(this,"booleanExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ar):this.getTypedRuleContext(Ar,t)})),this.left=null,this.operator=null,this.right=null,super.copyFrom(e)}AND(){return this.getToken(ds.AND,0)}OR(){return this.getToken(ds.OR,0)}enterRule(t){t instanceof hs&&t.enterLogicalBinary(this)}exitRule(t){t instanceof hs&&t.exitLogicalBinary(this)}accept(t){return t instanceof cs?t.visitLogicalBinary(this):t.visitChildren(this)}}ds.LogicalBinaryContext=gr;class Sr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_predicated,this._valueExpression=null}valueExpression(){return this.getTypedRuleContext(Ur,0)}predicate(){return this.getTypedRuleContext(Lr,0)}enterRule(t){t instanceof hs&&t.enterPredicated(this)}exitRule(t){t instanceof hs&&t.exitPredicated(this)}accept(t){return t instanceof cs?t.visitPredicated(this):t.visitChildren(this)}}class Lr extends ss.ParserRuleContext{constructor(t,e,s,i){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_predicate,this.value=null,this.value=i||null}copyFrom(t){super.copyFrom(t),this.value=t.value}}class fr extends Lr{constructor(t,e){super(t),this.right=null,super.copyFrom(e)}cmpOp(){return this.getTypedRuleContext(Kn,0)}valueExpression(){return this.getTypedRuleContext(Ur,0)}enterRule(t){t instanceof hs&&t.enterComparison(this)}exitRule(t){t instanceof hs&&t.exitComparison(this)}accept(t){return t instanceof cs?t.visitComparison(this):t.visitChildren(this)}}ds.ComparisonContext=fr;class Ir extends Lr{constructor(t,e){super(t),this.pattern=null,this.escape=null,super.copyFrom(e)}LIKE(){return this.getToken(ds.LIKE,0)}ILIKE(){return this.getToken(ds.ILIKE,0)}valueExpression(){return this.getTypedRuleContext(Ur,0)}NOT(){return this.getToken(ds.NOT,0)}ESCAPE(){return this.getToken(ds.ESCAPE,0)}parameterOrLiteral(){return this.getTypedRuleContext(xn,0)}enterRule(t){t instanceof hs&&t.enterLike(this)}exitRule(t){t instanceof hs&&t.exitLike(this)}accept(t){return t instanceof cs?t.visitLike(this):t.visitChildren(this)}}ds.LikeContext=Ir;class Nr extends Lr{constructor(t,e){super(t),super.copyFrom(e)}IN(){return this.getToken(ds.IN,0)}subqueryExpression(){return this.getTypedRuleContext(An,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterInSubquery(this)}exitRule(t){t instanceof hs&&t.exitInSubquery(this)}accept(t){return t instanceof cs?t.visitInSubquery(this):t.visitChildren(this)}}ds.InSubqueryContext=Nr;class mr extends Lr{constructor(t,e){super(t),this.right=null,super.copyFrom(e)}IS(){return this.getToken(ds.IS,0)}DISTINCT(){return this.getToken(ds.DISTINCT,0)}FROM(){return this.getToken(ds.FROM,0)}valueExpression(){return this.getTypedRuleContext(Ur,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterDistinctFrom(this)}exitRule(t){t instanceof hs&&t.exitDistinctFrom(this)}accept(t){return t instanceof cs?t.visitDistinctFrom(this):t.visitChildren(this)}}ds.DistinctFromContext=mr;class yr extends Lr{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}IN(){return this.getToken(ds.IN,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterInList(this)}exitRule(t){t instanceof hs&&t.exitInList(this)}accept(t){return t instanceof cs?t.visitInList(this):t.visitChildren(this)}}ds.InListContext=yr;class vr extends Lr{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.quant=null,this.v=null,this.escape=null,super.copyFrom(e)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}LIKE(){return this.getToken(ds.LIKE,0)}ILIKE(){return this.getToken(ds.ILIKE,0)}setCmpQuantifier(){return this.getTypedRuleContext(Gn,0)}NOT(){return this.getToken(ds.NOT,0)}ESCAPE(){return this.getToken(ds.ESCAPE,0)}enterRule(t){t instanceof hs&&t.enterArrayLike(this)}exitRule(t){t instanceof hs&&t.exitArrayLike(this)}accept(t){return t instanceof cs?t.visitArrayLike(this):t.visitChildren(this)}}ds.ArrayLikeContext=vr;class Dr extends Lr{constructor(t,e){super(t),super.copyFrom(e)}IS(){return this.getToken(ds.IS,0)}NULL(){return this.getToken(ds.NULL,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterNullPredicate(this)}exitRule(t){t instanceof hs&&t.exitNullPredicate(this)}accept(t){return t instanceof cs?t.visitNullPredicate(this):t.visitChildren(this)}}ds.NullPredicateContext=Dr;class kr extends Lr{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.lower=null,this.upper=null,super.copyFrom(e)}BETWEEN(){return this.getToken(ds.BETWEEN,0)}AND(){return this.getToken(ds.AND,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterBetween(this)}exitRule(t){t instanceof hs&&t.exitBetween(this)}accept(t){return t instanceof cs?t.visitBetween(this):t.visitChildren(this)}}ds.BetweenContext=kr;class Pr extends Lr{constructor(t,e){super(t),super.copyFrom(e)}cmpOp(){return this.getTypedRuleContext(Kn,0)}setCmpQuantifier(){return this.getTypedRuleContext(Gn,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}enterRule(t){t instanceof hs&&t.enterQuantifiedComparison(this)}exitRule(t){t instanceof hs&&t.exitQuantifiedComparison(this)}accept(t){return t instanceof cs?t.visitQuantifiedComparison(this):t.visitChildren(this)}}ds.QuantifiedComparisonContext=Pr;class Ur extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_valueExpression}copyFrom(t){super.copyFrom(t)}}class Mr extends Ur{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.left=null,this.operator=null,this.right=null,super.copyFrom(e)}BITWISE_AND(){return this.getToken(ds.BITWISE_AND,0)}BITWISE_OR(){return this.getToken(ds.BITWISE_OR,0)}BITWISE_XOR(){return this.getToken(ds.BITWISE_XOR,0)}enterRule(t){t instanceof hs&&t.enterBitwiseBinary(this)}exitRule(t){t instanceof hs&&t.exitBitwiseBinary(this)}accept(t){return t instanceof cs?t.visitBitwiseBinary(this):t.visitChildren(this)}}ds.BitwiseBinaryContext=Mr;class br extends Ur{constructor(t,e){super(t),super.copyFrom(e)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}enterRule(t){t instanceof hs&&t.enterValueExpressionDefault(this)}exitRule(t){t instanceof hs&&t.exitValueExpressionDefault(this)}accept(t){return t instanceof cs?t.visitValueExpressionDefault(this):t.visitChildren(this)}}ds.ValueExpressionDefaultContext=br;class wr extends Ur{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.left=null,this.right=null,super.copyFrom(e)}CONCAT(){return this.getToken(ds.CONCAT,0)}enterRule(t){t instanceof hs&&t.enterConcatenation(this)}exitRule(t){t instanceof hs&&t.exitConcatenation(this)}accept(t){return t instanceof cs?t.visitConcatenation(this):t.visitChildren(this)}}ds.ConcatenationContext=wr;class Hr extends Ur{constructor(t,e){super(t),super.copyFrom(e)}dataType(){return this.getTypedRuleContext(uh,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterFromStringLiteralCast(this)}exitRule(t){t instanceof hs&&t.exitFromStringLiteralCast(this)}accept(t){return t instanceof cs?t.visitFromStringLiteralCast(this):t.visitChildren(this)}}ds.FromStringLiteralCastContext=Hr;class Br extends Ur{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.left=null,this.operator=null,this.right=null,super.copyFrom(e)}CARET(){return this.getToken(ds.CARET,0)}ASTERISK(){return this.getToken(ds.ASTERISK,0)}SLASH(){return this.getToken(ds.SLASH,0)}PERCENT(){return this.getToken(ds.PERCENT,0)}PLUS(){return this.getToken(ds.PLUS,0)}MINUS(){return this.getToken(ds.MINUS,0)}enterRule(t){t instanceof hs&&t.enterArithmeticBinary(this)}exitRule(t){t instanceof hs&&t.exitArithmeticBinary(this)}accept(t){return t instanceof cs?t.visitArithmeticBinary(this):t.visitChildren(this)}}ds.ArithmeticBinaryContext=Br;class Fr extends Ur{constructor(t,e){super(t),this.operator=null,super.copyFrom(e)}valueExpression(){return this.getTypedRuleContext(Ur,0)}MINUS(){return this.getToken(ds.MINUS,0)}PLUS(){return this.getToken(ds.PLUS,0)}enterRule(t){t instanceof hs&&t.enterArithmeticUnary(this)}exitRule(t){t instanceof hs&&t.exitArithmeticUnary(this)}accept(t){return t instanceof cs?t.visitArithmeticUnary(this):t.visitChildren(this)}}ds.ArithmeticUnaryContext=Fr;class Kr extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_primaryExpression}copyFrom(t){super.copyFrom(t)}}class Gr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}subqueryExpression(){return this.getTypedRuleContext(An,0)}enterRule(t){t instanceof hs&&t.enterSubqueryExpressionDefault(this)}exitRule(t){t instanceof hs&&t.exitSubqueryExpressionDefault(this)}accept(t){return t instanceof cs?t.visitSubqueryExpressionDefault(this):t.visitChildren(this)}}ds.SubqueryExpressionDefaultContext=Gr;class Wr extends Kr{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"DOT",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.DOT):this.getToken(ds.DOT,t)})),super.copyFrom(e)}enterRule(t){t instanceof hs&&t.enterDereference(this)}exitRule(t){t instanceof hs&&t.exitDereference(this)}accept(t){return t instanceof cs?t.visitDereference(this):t.visitChildren(this)}}ds.DereferenceContext=Wr;class Vr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterColumnReference(this)}exitRule(t){t instanceof hs&&t.exitColumnReference(this)}accept(t){return t instanceof cs?t.visitColumnReference(this):t.visitChildren(this)}}ds.ColumnReferenceContext=Vr;class Yr extends Kr{constructor(t,e){super(t),s(this,"primaryExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Kr):this.getTypedRuleContext(Kr,t)})),this.timestamp=null,this.zone=null,super.copyFrom(e)}AT(){return this.getToken(ds.AT,0)}TIME(){return this.getToken(ds.TIME,0)}ZONE(){return this.getToken(ds.ZONE,0)}enterRule(t){t instanceof hs&&t.enterAtTimezone(this)}exitRule(t){t instanceof hs&&t.exitAtTimezone(this)}accept(t){return t instanceof cs?t.visitAtTimezone(this):t.visitChildren(this)}}ds.AtTimezoneContext=Yr;class qr extends Kr{constructor(t,e){super(t),this.value=null,this.index=null,super.copyFrom(e)}OPEN_SQUARE_BRACKET(){return this.getToken(ds.OPEN_SQUARE_BRACKET,0)}CLOSE_SQUARE_BRACKET(){return this.getToken(ds.CLOSE_SQUARE_BRACKET,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}valueExpression(){return this.getTypedRuleContext(Ur,0)}enterRule(t){t instanceof hs&&t.enterSubscript(this)}exitRule(t){t instanceof hs&&t.exitSubscript(this)}accept(t){return t instanceof cs?t.visitSubscript(this):t.visitChildren(this)}}ds.SubscriptContext=qr;class Qr extends Kr{constructor(t,e){super(t),this.base=null,this.fieldName=null,super.copyFrom(e)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}DOT(){return this.getToken(ds.DOT,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterRecordSubscript(this)}exitRule(t){t instanceof hs&&t.exitRecordSubscript(this)}accept(t){return t instanceof cs?t.visitRecordSubscript(this):t.visitChildren(this)}}ds.RecordSubscriptContext=Qr;class Xr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}explicitFunction(){return this.getTypedRuleContext(sn,0)}enterRule(t){t instanceof hs&&t.enterExplicitFunctionDefault(this)}exitRule(t){t instanceof hs&&t.exitExplicitFunctionDefault(this)}accept(t){return t instanceof cs?t.visitExplicitFunctionDefault(this):t.visitChildren(this)}}ds.ExplicitFunctionDefaultContext=Xr;class zr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}CAST_OPERATOR(){return this.getToken(ds.CAST_OPERATOR,0)}dataType(){return this.getTypedRuleContext(uh,0)}enterRule(t){t instanceof hs&&t.enterDoubleColonCast(this)}exitRule(t){t instanceof hs&&t.exitDoubleColonCast(this)}accept(t){return t instanceof cs?t.visitDoubleColonCast(this):t.visitChildren(this)}}ds.DoubleColonCastContext=zr;class Zr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}parameterOrLiteral(){return this.getTypedRuleContext(xn,0)}enterRule(t){t instanceof hs&&t.enterDefaultParamOrLiteral(this)}exitRule(t){t instanceof hs&&t.exitDefaultParamOrLiteral(this)}accept(t){return t instanceof cs?t.visitDefaultParamOrLiteral(this):t.visitChildren(this)}}ds.DefaultParamOrLiteralContext=Zr;class jr extends Kr{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}qname(){return this.getTypedRuleContext($n,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}ASTERISK(){return this.getToken(ds.ASTERISK,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}filter(){return this.getTypedRuleContext($i,0)}over(){return this.getTypedRuleContext(Yn,0)}NULLS(){return this.getToken(ds.NULLS,0)}IGNORE(){return this.getToken(ds.IGNORE,0)}RESPECT(){return this.getToken(ds.RESPECT,0)}setQuant(){return this.getTypedRuleContext(Wi,0)}enterRule(t){t instanceof hs&&t.enterFunctionCall(this)}exitRule(t){t instanceof hs&&t.exitFunctionCall(this)}accept(t){return t instanceof cs?t.visitFunctionCall(this):t.visitChildren(this)}}ds.FunctionCallContext=jr;class Jr extends Kr{constructor(t,e){super(t),super.copyFrom(e)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}expr(){return this.getTypedRuleContext(Cr,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterNestedExpression(this)}exitRule(t){t instanceof hs&&t.exitNestedExpression(this)}accept(t){return t instanceof cs?t.visitNestedExpression(this):t.visitChildren(this)}}ds.NestedExpressionContext=Jr;class $r extends Kr{constructor(t,e){super(t),s(this,"valueExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ur):this.getTypedRuleContext(Ur,t)})),this.base=null,this.from=null,this.to=null,super.copyFrom(e)}OPEN_SQUARE_BRACKET(){return this.getToken(ds.OPEN_SQUARE_BRACKET,0)}COLON(){return this.getToken(ds.COLON,0)}CLOSE_SQUARE_BRACKET(){return this.getToken(ds.CLOSE_SQUARE_BRACKET,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}enterRule(t){t instanceof hs&&t.enterArraySlice(this)}exitRule(t){t instanceof hs&&t.exitArraySlice(this)}accept(t){return t instanceof cs?t.visitArraySlice(this):t.visitChildren(this)}}ds.ArraySliceContext=$r;class tn extends Kr{constructor(t,e){super(t),super.copyFrom(e)}EXISTS(){return this.getToken(ds.EXISTS,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}query(){return this.getTypedRuleContext(bi,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterExists(this)}exitRule(t){t instanceof hs&&t.exitExists(this)}accept(t){return t instanceof cs?t.visitExists(this):t.visitChildren(this)}}ds.ExistsContext=tn;class en extends Kr{constructor(t,e){super(t),super.copyFrom(e)}EMPTY_SQUARE_BRACKET(){return this.getToken(ds.EMPTY_SQUARE_BRACKET,0)}ARRAY(){return this.getToken(ds.ARRAY,0)}enterRule(t){t instanceof hs&&t.enterEmptyArray(this)}exitRule(t){t instanceof hs&&t.exitEmptyArray(this)}accept(t){return t instanceof cs?t.visitEmptyArray(this):t.visitChildren(this)}}ds.EmptyArrayContext=en;class sn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_explicitFunction}copyFrom(t){super.copyFrom(t)}}class rn extends sn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"whenClause",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Wn):this.getTypedRuleContext(Wn,t)})),this.operand=null,this.elseExpr=null,super.copyFrom(e)}CASE(){return this.getToken(ds.CASE,0)}END(){return this.getToken(ds.END,0)}ELSE(){return this.getToken(ds.ELSE,0)}enterRule(t){t instanceof hs&&t.enterSimpleCase(this)}exitRule(t){t instanceof hs&&t.exitSimpleCase(this)}accept(t){return t instanceof cs?t.visitSimpleCase(this):t.visitChildren(this)}}ds.SimpleCaseContext=rn;class nn extends sn{constructor(t,e){super(t),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),this.condition=null,this.trueValue=null,this.falseValue=null,super.copyFrom(e)}IF(){return this.getToken(ds.IF,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterIfCase(this)}exitRule(t){t instanceof hs&&t.exitIfCase(this)}accept(t){return t instanceof cs?t.visitIfCase(this):t.visitChildren(this)}}ds.IfCaseContext=nn;class an extends sn{constructor(t,e){super(t),this.name=null,this.precision=null,super.copyFrom(e)}CURRENT_DATE(){return this.getToken(ds.CURRENT_DATE,0)}CURRENT_TIME(){return this.getToken(ds.CURRENT_TIME,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}integerLiteral(){return this.getTypedRuleContext(Ca,0)}CURRENT_TIMESTAMP(){return this.getToken(ds.CURRENT_TIMESTAMP,0)}enterRule(t){t instanceof hs&&t.enterSpecialDateTimeFunction(this)}exitRule(t){t instanceof hs&&t.exitSpecialDateTimeFunction(this)}accept(t){return t instanceof cs?t.visitSpecialDateTimeFunction(this):t.visitChildren(this)}}ds.SpecialDateTimeFunctionContext=an;class hn extends sn{constructor(t,e){super(t),super.copyFrom(e)}SESSION_USER(){return this.getToken(ds.SESSION_USER,0)}enterRule(t){t instanceof hs&&t.enterSessionUser(this)}exitRule(t){t instanceof hs&&t.exitSessionUser(this)}accept(t){return t instanceof cs?t.visitSessionUser(this):t.visitChildren(this)}}ds.SessionUserContext=hn;class cn extends sn{constructor(t,e){super(t),super.copyFrom(e)}ARRAY(){return this.getToken(ds.ARRAY,0)}subqueryExpression(){return this.getTypedRuleContext(An,0)}enterRule(t){t instanceof hs&&t.enterArraySubquery(this)}exitRule(t){t instanceof hs&&t.exitArraySubquery(this)}accept(t){return t instanceof cs?t.visitArraySubquery(this):t.visitChildren(this)}}ds.ArraySubqueryContext=cn;class on extends sn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),this.strOrColName=null,this.len=null,super.copyFrom(e)}RIGHT(){return this.getToken(ds.RIGHT,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}COMMA(){return this.getToken(ds.COMMA,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterRight(this)}exitRule(t){t instanceof hs&&t.exitRight(this)}accept(t){return t instanceof cs?t.visitRight(this):t.visitChildren(this)}}ds.RightContext=on;class ln extends sn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),super.copyFrom(e)}SUBSTRING(){return this.getToken(ds.SUBSTRING,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}FROM(){return this.getToken(ds.FROM,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}FOR(){return this.getToken(ds.FOR,0)}enterRule(t){t instanceof hs&&t.enterSubstring(this)}exitRule(t){t instanceof hs&&t.exitSubstring(this)}accept(t){return t instanceof cs?t.visitSubstring(this):t.visitChildren(this)}}ds.SubstringContext=ln;class un extends sn{constructor(t,e){super(t),super.copyFrom(e)}CAST(){return this.getToken(ds.CAST,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}expr(){return this.getTypedRuleContext(Cr,0)}AS(){return this.getToken(ds.AS,0)}dataType(){return this.getTypedRuleContext(uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}TRY_CAST(){return this.getToken(ds.TRY_CAST,0)}enterRule(t){t instanceof hs&&t.enterCast(this)}exitRule(t){t instanceof hs&&t.exitCast(this)}accept(t){return t instanceof cs?t.visitCast(this):t.visitChildren(this)}}ds.CastContext=un;class Tn extends sn{constructor(t,e){super(t),super.copyFrom(e)}CURRENT_USER(){return this.getToken(ds.CURRENT_USER,0)}CURRENT_ROLE(){return this.getToken(ds.CURRENT_ROLE,0)}USER(){return this.getToken(ds.USER,0)}enterRule(t){t instanceof hs&&t.enterCurrentUser(this)}exitRule(t){t instanceof hs&&t.exitCurrentUser(this)}accept(t){return t instanceof cs?t.visitCurrentUser(this):t.visitChildren(this)}}ds.CurrentUserContext=Tn;class dn extends sn{constructor(t,e){super(t),super.copyFrom(e)}EXTRACT(){return this.getToken(ds.EXTRACT,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}stringLiteralOrIdentifier(){return this.getTypedRuleContext(la,0)}FROM(){return this.getToken(ds.FROM,0)}expr(){return this.getTypedRuleContext(Cr,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterExtract(this)}exitRule(t){t instanceof hs&&t.exitExtract(this)}accept(t){return t instanceof cs?t.visitExtract(this):t.visitChildren(this)}}ds.ExtractContext=dn;class En extends sn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),this.trimMode=null,this.charsToTrim=null,this.target=null,super.copyFrom(e)}TRIM(){return this.getToken(ds.TRIM,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}FROM(){return this.getToken(ds.FROM,0)}LEADING(){return this.getToken(ds.LEADING,0)}TRAILING(){return this.getToken(ds.TRAILING,0)}BOTH(){return this.getToken(ds.BOTH,0)}enterRule(t){t instanceof hs&&t.enterTrim(this)}exitRule(t){t instanceof hs&&t.exitTrim(this)}accept(t){return t instanceof cs?t.visitTrim(this):t.visitChildren(this)}}ds.TrimContext=En;class pn extends sn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),this.strOrColName=null,this.len=null,super.copyFrom(e)}LEFT(){return this.getToken(ds.LEFT,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}COMMA(){return this.getToken(ds.COMMA,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterLeft(this)}exitRule(t){t instanceof hs&&t.exitLeft(this)}accept(t){return t instanceof cs?t.visitLeft(this):t.visitChildren(this)}}ds.LeftContext=pn;class Rn extends sn{constructor(t,e){super(t),super.copyFrom(e)}CURRENT_SCHEMA(){return this.getToken(ds.CURRENT_SCHEMA,0)}enterRule(t){t instanceof hs&&t.enterCurrentSchema(this)}exitRule(t){t instanceof hs&&t.exitCurrentSchema(this)}accept(t){return t instanceof cs?t.visitCurrentSchema(this):t.visitChildren(this)}}ds.CurrentSchemaContext=Rn;class Cn extends sn{constructor(t,e){super(t),s(this,"whenClause",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Wn):this.getTypedRuleContext(Wn,t)})),this.elseExpr=null,super.copyFrom(e)}CASE(){return this.getToken(ds.CASE,0)}END(){return this.getToken(ds.END,0)}ELSE(){return this.getToken(ds.ELSE,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterSearchedCase(this)}exitRule(t){t instanceof hs&&t.exitSearchedCase(this)}accept(t){return t instanceof cs?t.visitSearchedCase(this):t.visitChildren(this)}}ds.SearchedCaseContext=Cn;class An extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_subqueryExpression}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}query(){return this.getTypedRuleContext(bi,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterSubqueryExpression(this)}exitRule(t){t instanceof hs&&t.exitSubqueryExpression(this)}accept(t){return t instanceof cs?t.visitSubqueryExpression(this):t.visitChildren(this)}}class xn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterOrLiteral}copyFrom(t){super.copyFrom(t)}}class On extends xn{constructor(t,e){super(t),s(this,"objectKeyValue",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Aa):this.getTypedRuleContext(Aa,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}OPEN_CURLY_BRACKET(){return this.getToken(ds.OPEN_CURLY_BRACKET,0)}CLOSE_CURLY_BRACKET(){return this.getToken(ds.CLOSE_CURLY_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterObjectLiteral(this)}exitRule(t){t instanceof hs&&t.exitObjectLiteral(this)}accept(t){return t instanceof cs?t.visitObjectLiteral(this):t.visitChildren(this)}}ds.ObjectLiteralContext=On;class _n extends xn{constructor(t,e){super(t),super.copyFrom(e)}parameterOrSimpleLiteral(){return this.getTypedRuleContext(Sn,0)}enterRule(t){t instanceof hs&&t.enterSimpleLiteral(this)}exitRule(t){t instanceof hs&&t.exitSimpleLiteral(this)}accept(t){return t instanceof cs?t.visitSimpleLiteral(this):t.visitChildren(this)}}ds.SimpleLiteralContext=_n;class gn extends xn{constructor(t,e){super(t),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}OPEN_SQUARE_BRACKET(){return this.getToken(ds.OPEN_SQUARE_BRACKET,0)}CLOSE_SQUARE_BRACKET(){return this.getToken(ds.CLOSE_SQUARE_BRACKET,0)}ARRAY(){return this.getToken(ds.ARRAY,0)}enterRule(t){t instanceof hs&&t.enterArrayLiteral(this)}exitRule(t){t instanceof hs&&t.exitArrayLiteral(this)}accept(t){return t instanceof cs?t.visitArrayLiteral(this):t.visitChildren(this)}}ds.ArrayLiteralContext=gn;class Sn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterOrSimpleLiteral}nullLiteral(){return this.getTypedRuleContext(Mn,0)}intervalLiteral(){return this.getTypedRuleContext(da,0)}escapedCharsStringLiteral(){return this.getTypedRuleContext(bn,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}numericLiteral(){return this.getTypedRuleContext(Ta,0)}booleanLiteral(){return this.getTypedRuleContext(pa,0)}bitString(){return this.getTypedRuleContext(Bn,0)}parameterExpr(){return this.getTypedRuleContext(kn,0)}enterRule(t){t instanceof hs&&t.enterParameterOrSimpleLiteral(this)}exitRule(t){t instanceof hs&&t.exitParameterOrSimpleLiteral(this)}accept(t){return t instanceof cs?t.visitParameterOrSimpleLiteral(this):t.visitChildren(this)}}class Ln extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterOrInteger}copyFrom(t){super.copyFrom(t)}}class fn extends Ln{constructor(t,e){super(t),super.copyFrom(e)}CAST(){return this.getToken(ds.CAST,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}expr(){return this.getTypedRuleContext(Cr,0)}AS(){return this.getToken(ds.AS,0)}dataType(){return this.getTypedRuleContext(uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}TRY_CAST(){return this.getToken(ds.TRY_CAST,0)}enterRule(t){t instanceof hs&&t.enterIntegerParamOrLiteralCast(this)}exitRule(t){t instanceof hs&&t.exitIntegerParamOrLiteralCast(this)}accept(t){return t instanceof cs?t.visitIntegerParamOrLiteralCast(this):t.visitChildren(this)}}ds.IntegerParamOrLiteralCastContext=fn;class In extends Ln{constructor(t,e){super(t),super.copyFrom(e)}parameterOrLiteral(){return this.getTypedRuleContext(xn,0)}CAST_OPERATOR(){return this.getToken(ds.CAST_OPERATOR,0)}dataType(){return this.getTypedRuleContext(uh,0)}enterRule(t){t instanceof hs&&t.enterIntegerParamOrLiteralDoubleColonCast(this)}exitRule(t){t instanceof hs&&t.exitIntegerParamOrLiteralDoubleColonCast(this)}accept(t){return t instanceof cs?t.visitIntegerParamOrLiteralDoubleColonCast(this):t.visitChildren(this)}}ds.IntegerParamOrLiteralDoubleColonCastContext=In;class Nn extends Ln{constructor(t,e){super(t),super.copyFrom(e)}nullLiteral(){return this.getTypedRuleContext(Mn,0)}enterRule(t){t instanceof hs&&t.enterNullAsLiteral(this)}exitRule(t){t instanceof hs&&t.exitNullAsLiteral(this)}accept(t){return t instanceof cs?t.visitNullAsLiteral(this):t.visitChildren(this)}}ds.NullAsLiteralContext=Nn;class mn extends Ln{constructor(t,e){super(t),super.copyFrom(e)}parameterExpr(){return this.getTypedRuleContext(kn,0)}enterRule(t){t instanceof hs&&t.enterParameterExpression(this)}exitRule(t){t instanceof hs&&t.exitParameterExpression(this)}accept(t){return t instanceof cs?t.visitParameterExpression(this):t.visitChildren(this)}}ds.ParameterExpressionContext=mn;class yn extends Ln{constructor(t,e){super(t),super.copyFrom(e)}integerLiteral(){return this.getTypedRuleContext(Ca,0)}enterRule(t){t instanceof hs&&t.enterIntAsLiteral(this)}exitRule(t){t instanceof hs&&t.exitIntAsLiteral(this)}accept(t){return t instanceof cs?t.visitIntAsLiteral(this):t.visitChildren(this)}}ds.IntAsLiteralContext=yn;class vn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterOrIdent}parameterExpr(){return this.getTypedRuleContext(kn,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterParameterOrIdent(this)}exitRule(t){t instanceof hs&&t.exitParameterOrIdent(this)}accept(t){return t instanceof cs?t.visitParameterOrIdent(this):t.visitChildren(this)}}class Dn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterOrString}parameterExpr(){return this.getTypedRuleContext(kn,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterParameterOrString(this)}exitRule(t){t instanceof hs&&t.exitParameterOrString(this)}accept(t){return t instanceof cs?t.visitParameterOrString(this):t.visitChildren(this)}}class kn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_parameterExpr}copyFrom(t){super.copyFrom(t)}}class Pn extends kn{constructor(t,e){super(t),super.copyFrom(e)}QUESTION(){return this.getToken(ds.QUESTION,0)}enterRule(t){t instanceof hs&&t.enterParameterPlaceholder(this)}exitRule(t){t instanceof hs&&t.exitParameterPlaceholder(this)}accept(t){return t instanceof cs?t.visitParameterPlaceholder(this):t.visitChildren(this)}}ds.ParameterPlaceholderContext=Pn;class Un extends kn{constructor(t,e){super(t),super.copyFrom(e)}DOLLAR(){return this.getToken(ds.DOLLAR,0)}integerLiteral(){return this.getTypedRuleContext(Ca,0)}enterRule(t){t instanceof hs&&t.enterPositionalParameter(this)}exitRule(t){t instanceof hs&&t.exitPositionalParameter(this)}accept(t){return t instanceof cs?t.visitPositionalParameter(this):t.visitChildren(this)}}ds.PositionalParameterContext=Un;class Mn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_nullLiteral}NULL(){return this.getToken(ds.NULL,0)}enterRule(t){t instanceof hs&&t.enterNullLiteral(this)}exitRule(t){t instanceof hs&&t.exitNullLiteral(this)}accept(t){return t instanceof cs?t.visitNullLiteral(this):t.visitChildren(this)}}class bn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_escapedCharsStringLiteral}ESCAPED_STRING(){return this.getToken(ds.ESCAPED_STRING,0)}enterRule(t){t instanceof hs&&t.enterEscapedCharsStringLiteral(this)}exitRule(t){t instanceof hs&&t.exitEscapedCharsStringLiteral(this)}accept(t){return t instanceof cs?t.visitEscapedCharsStringLiteral(this):t.visitChildren(this)}}class wn extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"DOLLAR_QUOTED_STRING_BODY",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.DOLLAR_QUOTED_STRING_BODY):this.getToken(ds.DOLLAR_QUOTED_STRING_BODY,t)})),this.parser=t,this.ruleIndex=ds.RULE_dollarQuotedStringLiteral}BEGIN_DOLLAR_QUOTED_STRING(){return this.getToken(ds.BEGIN_DOLLAR_QUOTED_STRING,0)}END_DOLLAR_QUOTED_STRING(){return this.getToken(ds.END_DOLLAR_QUOTED_STRING,0)}enterRule(t){t instanceof hs&&t.enterDollarQuotedStringLiteral(this)}exitRule(t){t instanceof hs&&t.exitDollarQuotedStringLiteral(this)}accept(t){return t instanceof cs?t.visitDollarQuotedStringLiteral(this):t.visitChildren(this)}}class Hn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_stringLiteral}STRING(){return this.getToken(ds.STRING,0)}dollarQuotedStringLiteral(){return this.getTypedRuleContext(wn,0)}enterRule(t){t instanceof hs&&t.enterStringLiteral(this)}exitRule(t){t instanceof hs&&t.exitStringLiteral(this)}accept(t){return t instanceof cs?t.visitStringLiteral(this):t.visitChildren(this)}}class Bn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_bitString}BIT_STRING(){return this.getToken(ds.BIT_STRING,0)}enterRule(t){t instanceof hs&&t.enterBitString(this)}exitRule(t){t instanceof hs&&t.exitBitString(this)}accept(t){return t instanceof cs?t.visitBitString(this):t.visitChildren(this)}}class Fn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_subscriptSafe,this.value=null,this.index=null}qname(){return this.getTypedRuleContext($n,0)}OPEN_SQUARE_BRACKET(){return this.getToken(ds.OPEN_SQUARE_BRACKET,0)}CLOSE_SQUARE_BRACKET(){return this.getToken(ds.CLOSE_SQUARE_BRACKET,0)}subscriptSafe(){return this.getTypedRuleContext(Fn,0)}valueExpression(){return this.getTypedRuleContext(Ur,0)}enterRule(t){t instanceof hs&&t.enterSubscriptSafe(this)}exitRule(t){t instanceof hs&&t.exitSubscriptSafe(this)}accept(t){return t instanceof cs?t.visitSubscriptSafe(this):t.visitChildren(this)}}class Kn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_cmpOp}EQ(){return this.getToken(ds.EQ,0)}NEQ(){return this.getToken(ds.NEQ,0)}LT(){return this.getToken(ds.LT,0)}LTE(){return this.getToken(ds.LTE,0)}GT(){return this.getToken(ds.GT,0)}GTE(){return this.getToken(ds.GTE,0)}LLT(){return this.getToken(ds.LLT,0)}REGEX_MATCH(){return this.getToken(ds.REGEX_MATCH,0)}REGEX_NO_MATCH(){return this.getToken(ds.REGEX_NO_MATCH,0)}REGEX_MATCH_CI(){return this.getToken(ds.REGEX_MATCH_CI,0)}REGEX_NO_MATCH_CI(){return this.getToken(ds.REGEX_NO_MATCH_CI,0)}enterRule(t){t instanceof hs&&t.enterCmpOp(this)}exitRule(t){t instanceof hs&&t.exitCmpOp(this)}accept(t){return t instanceof cs?t.visitCmpOp(this):t.visitChildren(this)}}class Gn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_setCmpQuantifier}ANY(){return this.getToken(ds.ANY,0)}SOME(){return this.getToken(ds.SOME,0)}ALL(){return this.getToken(ds.ALL,0)}enterRule(t){t instanceof hs&&t.enterSetCmpQuantifier(this)}exitRule(t){t instanceof hs&&t.exitSetCmpQuantifier(this)}accept(t){return t instanceof cs?t.visitSetCmpQuantifier(this):t.visitChildren(this)}}class Wn extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),this.parser=t,this.ruleIndex=ds.RULE_whenClause,this.condition=null,this.result=null}WHEN(){return this.getToken(ds.WHEN,0)}THEN(){return this.getToken(ds.THEN,0)}enterRule(t){t instanceof hs&&t.enterWhenClause(this)}exitRule(t){t instanceof hs&&t.exitWhenClause(this)}accept(t){return t instanceof cs?t.visitWhenClause(this):t.visitChildren(this)}}class Vn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_namedWindow,this.name=null}AS(){return this.getToken(ds.AS,0)}windowDefinition(){return this.getTypedRuleContext(qn,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterNamedWindow(this)}exitRule(t){t instanceof hs&&t.exitNamedWindow(this)}accept(t){return t instanceof cs?t.visitNamedWindow(this):t.visitChildren(this)}}class Yn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_over}OVER(){return this.getToken(ds.OVER,0)}windowDefinition(){return this.getTypedRuleContext(qn,0)}enterRule(t){t instanceof hs&&t.enterOver(this)}exitRule(t){t instanceof hs&&t.exitOver(this)}accept(t){return t instanceof cs?t.visitOver(this):t.visitChildren(this)}}class qn extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"BY",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.BY):this.getToken(ds.BY,t)})),s(this,"sortItem",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Vi):this.getTypedRuleContext(Vi,t)})),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_windowDefinition,this.windowRef=null,this._expr=null,this.partition=[]}ident(){return this.getTypedRuleContext(ia,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}PARTITION(){return this.getToken(ds.PARTITION,0)}ORDER(){return this.getToken(ds.ORDER,0)}windowFrame(){return this.getTypedRuleContext(Qn,0)}enterRule(t){t instanceof hs&&t.enterWindowDefinition(this)}exitRule(t){t instanceof hs&&t.exitWindowDefinition(this)}accept(t){return t instanceof cs?t.visitWindowDefinition(this):t.visitChildren(this)}}class Qn extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"frameBound",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Xn):this.getTypedRuleContext(Xn,t)})),this.parser=t,this.ruleIndex=ds.RULE_windowFrame,this.frameType=null,this.start=null,this.end=null}RANGE(){return this.getToken(ds.RANGE,0)}ROWS(){return this.getToken(ds.ROWS,0)}BETWEEN(){return this.getToken(ds.BETWEEN,0)}AND(){return this.getToken(ds.AND,0)}enterRule(t){t instanceof hs&&t.enterWindowFrame(this)}exitRule(t){t instanceof hs&&t.exitWindowFrame(this)}accept(t){return t instanceof cs?t.visitWindowFrame(this):t.visitChildren(this)}}class Xn extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_frameBound}copyFrom(t){super.copyFrom(t)}}class zn extends Xn{constructor(t,e){super(t),this.boundType=null,super.copyFrom(e)}expr(){return this.getTypedRuleContext(Cr,0)}PRECEDING(){return this.getToken(ds.PRECEDING,0)}FOLLOWING(){return this.getToken(ds.FOLLOWING,0)}enterRule(t){t instanceof hs&&t.enterBoundedFrame(this)}exitRule(t){t instanceof hs&&t.exitBoundedFrame(this)}accept(t){return t instanceof cs?t.visitBoundedFrame(this):t.visitChildren(this)}}ds.BoundedFrameContext=zn;class Zn extends Xn{constructor(t,e){super(t),this.boundType=null,super.copyFrom(e)}UNBOUNDED(){return this.getToken(ds.UNBOUNDED,0)}PRECEDING(){return this.getToken(ds.PRECEDING,0)}FOLLOWING(){return this.getToken(ds.FOLLOWING,0)}enterRule(t){t instanceof hs&&t.enterUnboundedFrame(this)}exitRule(t){t instanceof hs&&t.exitUnboundedFrame(this)}accept(t){return t instanceof cs?t.visitUnboundedFrame(this):t.visitChildren(this)}}ds.UnboundedFrameContext=Zn;class jn extends Xn{constructor(t,e){super(t),super.copyFrom(e)}CURRENT(){return this.getToken(ds.CURRENT,0)}ROW(){return this.getToken(ds.ROW,0)}enterRule(t){t instanceof hs&&t.enterCurrentRowBound(this)}exitRule(t){t instanceof hs&&t.exitCurrentRowBound(this)}accept(t){return t instanceof cs?t.visitCurrentRowBound(this):t.visitChildren(this)}}ds.CurrentRowBoundContext=jn;class Jn extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"qname",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts($n):this.getTypedRuleContext($n,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_qnames}enterRule(t){t instanceof hs&&t.enterQnames(this)}exitRule(t){t instanceof hs&&t.exitQnames(this)}accept(t){return t instanceof cs?t.visitQnames(this):t.visitChildren(this)}}class $n extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"DOT",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.DOT):this.getToken(ds.DOT,t)})),this.parser=t,this.ruleIndex=ds.RULE_qname}enterRule(t){t instanceof hs&&t.enterQname(this)}exitRule(t){t instanceof hs&&t.exitQname(this)}accept(t){return t instanceof cs?t.visitQname(this):t.visitChildren(this)}}class ta extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"identWithOrWithoutValue",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ea):this.getTypedRuleContext(ea,t)})),this.parser=t,this.ruleIndex=ds.RULE_spaceSeparatedIdents}enterRule(t){t instanceof hs&&t.enterSpaceSeparatedIdents(this)}exitRule(t){t instanceof hs&&t.exitSpaceSeparatedIdents(this)}accept(t){return t instanceof cs?t.visitSpaceSeparatedIdents(this):t.visitChildren(this)}}class ea extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_identWithOrWithoutValue}ident(){return this.getTypedRuleContext(ia,0)}parameterOrSimpleLiteral(){return this.getTypedRuleContext(Sn,0)}enterRule(t){t instanceof hs&&t.enterIdentWithOrWithoutValue(this)}exitRule(t){t instanceof hs&&t.exitIdentWithOrWithoutValue(this)}accept(t){return t instanceof cs?t.visitIdentWithOrWithoutValue(this):t.visitChildren(this)}}class sa extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_idents}enterRule(t){t instanceof hs&&t.enterIdents(this)}exitRule(t){t instanceof hs&&t.exitIdents(this)}accept(t){return t instanceof cs?t.visitIdents(this):t.visitChildren(this)}}class ia extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_ident}unquotedIdent(){return this.getTypedRuleContext(ra,0)}quotedIdent(){return this.getTypedRuleContext(ha,0)}enterRule(t){t instanceof hs&&t.enterIdent(this)}exitRule(t){t instanceof hs&&t.exitIdent(this)}accept(t){return t instanceof cs?t.visitIdent(this):t.visitChildren(this)}}class ra extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_unquotedIdent}copyFrom(t){super.copyFrom(t)}}class na extends ra{constructor(t,e){super(t),super.copyFrom(e)}DIGIT_IDENTIFIER(){return this.getToken(ds.DIGIT_IDENTIFIER,0)}enterRule(t){t instanceof hs&&t.enterDigitIdentifier(this)}exitRule(t){t instanceof hs&&t.exitDigitIdentifier(this)}accept(t){return t instanceof cs?t.visitDigitIdentifier(this):t.visitChildren(this)}}ds.DigitIdentifierContext=na;class aa extends ra{constructor(t,e){super(t),super.copyFrom(e)}IDENTIFIER(){return this.getToken(ds.IDENTIFIER,0)}nonReserved(){return this.getTypedRuleContext(tc,0)}enterRule(t){t instanceof hs&&t.enterUnquotedIdentifier(this)}exitRule(t){t instanceof hs&&t.exitUnquotedIdentifier(this)}accept(t){return t instanceof cs?t.visitUnquotedIdentifier(this):t.visitChildren(this)}}ds.UnquotedIdentifierContext=aa;class ha extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_quotedIdent}copyFrom(t){super.copyFrom(t)}}class ca extends ha{constructor(t,e){super(t),super.copyFrom(e)}BACKQUOTED_IDENTIFIER(){return this.getToken(ds.BACKQUOTED_IDENTIFIER,0)}enterRule(t){t instanceof hs&&t.enterBackQuotedIdentifier(this)}exitRule(t){t instanceof hs&&t.exitBackQuotedIdentifier(this)}accept(t){return t instanceof cs?t.visitBackQuotedIdentifier(this):t.visitChildren(this)}}ds.BackQuotedIdentifierContext=ca;class oa extends ha{constructor(t,e){super(t),super.copyFrom(e)}QUOTED_IDENTIFIER(){return this.getToken(ds.QUOTED_IDENTIFIER,0)}enterRule(t){t instanceof hs&&t.enterQuotedIdentifier(this)}exitRule(t){t instanceof hs&&t.exitQuotedIdentifier(this)}accept(t){return t instanceof cs?t.visitQuotedIdentifier(this):t.visitChildren(this)}}ds.QuotedIdentifierContext=oa;class la extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_stringLiteralOrIdentifier}ident(){return this.getTypedRuleContext(ia,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterStringLiteralOrIdentifier(this)}exitRule(t){t instanceof hs&&t.exitStringLiteralOrIdentifier(this)}accept(t){return t instanceof cs?t.visitStringLiteralOrIdentifier(this):t.visitChildren(this)}}class ua extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_stringLiteralOrIdentifierOrQname}ident(){return this.getTypedRuleContext(ia,0)}qname(){return this.getTypedRuleContext($n,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}enterRule(t){t instanceof hs&&t.enterStringLiteralOrIdentifierOrQname(this)}exitRule(t){t instanceof hs&&t.exitStringLiteralOrIdentifierOrQname(this)}accept(t){return t instanceof cs?t.visitStringLiteralOrIdentifierOrQname(this):t.visitChildren(this)}}class Ta extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_numericLiteral}decimalLiteral(){return this.getTypedRuleContext(Ra,0)}integerLiteral(){return this.getTypedRuleContext(Ca,0)}enterRule(t){t instanceof hs&&t.enterNumericLiteral(this)}exitRule(t){t instanceof hs&&t.exitNumericLiteral(this)}accept(t){return t instanceof cs?t.visitNumericLiteral(this):t.visitChildren(this)}}class da extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"intervalField",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ea):this.getTypedRuleContext(Ea,t)})),this.parser=t,this.ruleIndex=ds.RULE_intervalLiteral,this.sign=null,this.from=null,this.to=null}INTERVAL(){return this.getToken(ds.INTERVAL,0)}stringLiteral(){return this.getTypedRuleContext(Hn,0)}TO(){return this.getToken(ds.TO,0)}PLUS(){return this.getToken(ds.PLUS,0)}MINUS(){return this.getToken(ds.MINUS,0)}enterRule(t){t instanceof hs&&t.enterIntervalLiteral(this)}exitRule(t){t instanceof hs&&t.exitIntervalLiteral(this)}accept(t){return t instanceof cs?t.visitIntervalLiteral(this):t.visitChildren(this)}}class Ea extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_intervalField}YEAR(){return this.getToken(ds.YEAR,0)}MONTH(){return this.getToken(ds.MONTH,0)}DAY(){return this.getToken(ds.DAY,0)}HOUR(){return this.getToken(ds.HOUR,0)}MINUTE(){return this.getToken(ds.MINUTE,0)}SECOND(){return this.getToken(ds.SECOND,0)}enterRule(t){t instanceof hs&&t.enterIntervalField(this)}exitRule(t){t instanceof hs&&t.exitIntervalField(this)}accept(t){return t instanceof cs?t.visitIntervalField(this):t.visitChildren(this)}}class pa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_booleanLiteral}TRUE(){return this.getToken(ds.TRUE,0)}FALSE(){return this.getToken(ds.FALSE,0)}enterRule(t){t instanceof hs&&t.enterBooleanLiteral(this)}exitRule(t){t instanceof hs&&t.exitBooleanLiteral(this)}accept(t){return t instanceof cs?t.visitBooleanLiteral(this):t.visitChildren(this)}}class Ra extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_decimalLiteral}DECIMAL_VALUE(){return this.getToken(ds.DECIMAL_VALUE,0)}enterRule(t){t instanceof hs&&t.enterDecimalLiteral(this)}exitRule(t){t instanceof hs&&t.exitDecimalLiteral(this)}accept(t){return t instanceof cs?t.visitDecimalLiteral(this):t.visitChildren(this)}}class Ca extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_integerLiteral}INTEGER_VALUE(){return this.getToken(ds.INTEGER_VALUE,0)}enterRule(t){t instanceof hs&&t.enterIntegerLiteral(this)}exitRule(t){t instanceof hs&&t.exitIntegerLiteral(this)}accept(t){return t instanceof cs?t.visitIntegerLiteral(this):t.visitChildren(this)}}class Aa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_objectKeyValue,this.key=null,this.value=null}EQ(){return this.getToken(ds.EQ,0)}ident(){return this.getTypedRuleContext(ia,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterObjectKeyValue(this)}exitRule(t){t instanceof hs&&t.exitObjectKeyValue(this)}accept(t){return t instanceof cs?t.visitObjectKeyValue(this):t.visitChildren(this)}}class xa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_insertSource}query(){return this.getTypedRuleContext(bi,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterInsertSource(this)}exitRule(t){t instanceof hs&&t.exitInsertSource(this)}accept(t){return t instanceof cs?t.visitInsertSource(this):t.visitChildren(this)}}class Oa extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"assignment",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(La):this.getTypedRuleContext(La,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_onConflict}ON(){return this.getToken(ds.ON,0)}CONFLICT(){return this.getToken(ds.CONFLICT,0)}DO(){return this.getToken(ds.DO,0)}NOTHING(){return this.getToken(ds.NOTHING,0)}conflictTarget(){return this.getTypedRuleContext(_a,0)}UPDATE(){return this.getToken(ds.UPDATE,0)}SET(){return this.getToken(ds.SET,0)}enterRule(t){t instanceof hs&&t.enterOnConflict(this)}exitRule(t){t instanceof hs&&t.exitOnConflict(this)}accept(t){return t instanceof cs?t.visitOnConflict(this):t.visitChildren(this)}}class _a extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"subscriptSafe",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Fn):this.getTypedRuleContext(Fn,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_conflictTarget}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterConflictTarget(this)}exitRule(t){t instanceof hs&&t.exitConflictTarget(this)}accept(t){return t instanceof cs?t.visitConflictTarget(this):t.visitChildren(this)}}class ga extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"expr",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Cr):this.getTypedRuleContext(Cr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_values}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterValues(this)}exitRule(t){t instanceof hs&&t.exitValues(this)}accept(t){return t instanceof cs?t.visitValues(this):t.visitChildren(this)}}class Sa extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"primaryExpression",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Kr):this.getTypedRuleContext(Kr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_columns}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterColumns(this)}exitRule(t){t instanceof hs&&t.exitColumns(this)}accept(t){return t instanceof cs?t.visitColumns(this):t.visitChildren(this)}}class La extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_assignment}primaryExpression(){return this.getTypedRuleContext(Kr,0)}EQ(){return this.getToken(ds.EQ,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterAssignment(this)}exitRule(t){t instanceof hs&&t.exitAssignment(this)}accept(t){return t instanceof cs?t.visitAssignment(this):t.visitChildren(this)}}class fa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_createStmt}copyFrom(t){super.copyFrom(t)}}class Ia extends fa{constructor(t,e){super(t),s(this,"tableElement",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ja):this.getTypedRuleContext(Ja,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}partitionedByOrClusteredInto(){return this.getTypedRuleContext(Xa,0)}IF(){return this.getToken(ds.IF,0)}NOT(){return this.getToken(ds.NOT,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterCreateTable(this)}exitRule(t){t instanceof hs&&t.exitCreateTable(this)}accept(t){return t instanceof cs?t.visitCreateTable(this):t.visitChildren(this)}}ds.CreateTableContext=Ia;class Na extends fa{constructor(t,e){super(t),this.name=null,this.conninfo=null,this.publications=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}SUBSCRIPTION(){return this.getToken(ds.SUBSCRIPTION,0)}CONNECTION(){return this.getToken(ds.CONNECTION,0)}PUBLICATION(){return this.getToken(ds.PUBLICATION,0)}ident(){return this.getTypedRuleContext(ia,0)}expr(){return this.getTypedRuleContext(Cr,0)}idents(){return this.getTypedRuleContext(sa,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterCreateSubscription(this)}exitRule(t){t instanceof hs&&t.exitCreateSubscription(this)}accept(t){return t instanceof cs?t.visitCreateSubscription(this):t.visitChildren(this)}}ds.CreateSubscriptionContext=Na;class ma extends fa{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),this.name=null,this.fdw=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}SERVER(){return this.getToken(ds.SERVER,0)}FOREIGN(){return this.getToken(ds.FOREIGN,0)}DATA(){return this.getToken(ds.DATA,0)}WRAPPER(){return this.getToken(ds.WRAPPER,0)}IF(){return this.getToken(ds.IF,0)}NOT(){return this.getToken(ds.NOT,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}kvOptions(){return this.getTypedRuleContext(Ka,0)}enterRule(t){t instanceof hs&&t.enterCreateServer(this)}exitRule(t){t instanceof hs&&t.exitCreateServer(this)}accept(t){return t instanceof cs?t.visitCreateServer(this):t.visitChildren(this)}}ds.CreateServerContext=ma;class ya extends fa{constructor(t,e){super(t),this.name=null,this.options=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}USER(){return this.getToken(ds.USER,0)}ROLE(){return this.getToken(ds.ROLE,0)}ident(){return this.getTypedRuleContext(ia,0)}withProperties(){return this.getTypedRuleContext(kh,0)}spaceSeparatedIdents(){return this.getTypedRuleContext(ta,0)}WITH(){return this.getToken(ds.WITH,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterCreateRole(this)}exitRule(t){t instanceof hs&&t.exitCreateRole(this)}accept(t){return t instanceof cs?t.visitCreateRole(this):t.visitChildren(this)}}ds.CreateRoleContext=ya;class va extends fa{constructor(t,e){super(t),s(this,"qname",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts($n):this.getTypedRuleContext($n,t)})),s(this,"ASTERISK",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.ASTERISK):this.getToken(ds.ASTERISK,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.name=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}PUBLICATION(){return this.getToken(ds.PUBLICATION,0)}ident(){return this.getTypedRuleContext(ia,0)}FOR(){return this.getToken(ds.FOR,0)}ALL(){return this.getToken(ds.ALL,0)}TABLES(){return this.getToken(ds.TABLES,0)}TABLE(){return this.getToken(ds.TABLE,0)}enterRule(t){t instanceof hs&&t.enterCreatePublication(this)}exitRule(t){t instanceof hs&&t.exitCreatePublication(this)}accept(t){return t instanceof cs?t.visitCreatePublication(this):t.visitChildren(this)}}ds.CreatePublicationContext=va;class Da extends fa{constructor(t,e){super(t),this.server=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}USER(){return this.getToken(ds.USER,0)}MAPPING(){return this.getToken(ds.MAPPING,0)}FOR(){return this.getToken(ds.FOR,0)}mappedUser(){return this.getTypedRuleContext(Fa,0)}SERVER(){return this.getToken(ds.SERVER,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}NOT(){return this.getToken(ds.NOT,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}kvOptions(){return this.getTypedRuleContext(Ka,0)}enterRule(t){t instanceof hs&&t.enterCreateUserMapping(this)}exitRule(t){t instanceof hs&&t.exitCreateUserMapping(this)}accept(t){return t instanceof cs?t.visitCreateUserMapping(this):t.visitChildren(this)}}ds.CreateUserMappingContext=Da;class ka extends fa{constructor(t,e){super(t),this.numShards=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}BLOB(){return this.getToken(ds.BLOB,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}withProperties(){return this.getTypedRuleContext(kh,0)}blobClusteredInto(){return this.getTypedRuleContext(ja,0)}enterRule(t){t instanceof hs&&t.enterCreateBlobTable(this)}exitRule(t){t instanceof hs&&t.exitCreateBlobTable(this)}accept(t){return t instanceof cs?t.visitCreateBlobTable(this):t.visitChildren(this)}}ds.CreateBlobTableContext=ka;class Pa extends fa{constructor(t,e){super(t),s(this,"analyzerElement",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Fh):this.getTypedRuleContext(Fh,t)})),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.name=null,this.extendedName=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}ANALYZER(){return this.getToken(ds.ANALYZER,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}EXTENDS(){return this.getToken(ds.EXTENDS,0)}WITH(){return this.getToken(ds.WITH,0)}enterRule(t){t instanceof hs&&t.enterCreateAnalyzer(this)}exitRule(t){t instanceof hs&&t.exitCreateAnalyzer(this)}accept(t){return t instanceof cs?t.visitCreateAnalyzer(this):t.visitChildren(this)}}ds.CreateAnalyzerContext=Pa;class Ua extends fa{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),this.name=null,this.type=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}REPOSITORY(){return this.getToken(ds.REPOSITORY,0)}TYPE(){return this.getToken(ds.TYPE,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterCreateRepository(this)}exitRule(t){t instanceof hs&&t.exitCreateRepository(this)}accept(t){return t instanceof cs?t.visitCreateRepository(this):t.visitChildren(this)}}ds.CreateRepositoryContext=Ua;class Ma extends fa{constructor(t,e){super(t),super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}TABLE(){return this.getToken(ds.TABLE,0)}table(){return this.getTypedRuleContext(ur,0)}AS(){return this.getToken(ds.AS,0)}insertSource(){return this.getTypedRuleContext(xa,0)}IF(){return this.getToken(ds.IF,0)}NOT(){return this.getToken(ds.NOT,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterCreateTableAs(this)}exitRule(t){t instanceof hs&&t.exitCreateTableAs(this)}accept(t){return t instanceof cs?t.visitCreateTableAs(this):t.visitChildren(this)}}ds.CreateTableAsContext=Ma;class ba extends fa{constructor(t,e){super(t),s(this,"tableElement",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ja):this.getTypedRuleContext(Ja,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.tableName=null,this.server=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}FOREIGN(){return this.getToken(ds.FOREIGN,0)}TABLE(){return this.getToken(ds.TABLE,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}SERVER(){return this.getToken(ds.SERVER,0)}qname(){return this.getTypedRuleContext($n,0)}ident(){return this.getTypedRuleContext(ia,0)}IF(){return this.getToken(ds.IF,0)}NOT(){return this.getToken(ds.NOT,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}kvOptions(){return this.getTypedRuleContext(Ka,0)}enterRule(t){t instanceof hs&&t.enterCreateForeignTable(this)}exitRule(t){t instanceof hs&&t.exitCreateForeignTable(this)}accept(t){return t instanceof cs?t.visitCreateForeignTable(this):t.visitChildren(this)}}ds.CreateForeignTableContext=ba;class wa extends fa{constructor(t,e){super(t),super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}SNAPSHOT(){return this.getToken(ds.SNAPSHOT,0)}qname(){return this.getTypedRuleContext($n,0)}ALL(){return this.getToken(ds.ALL,0)}TABLE(){return this.getToken(ds.TABLE,0)}tableWithPartitions(){return this.getTypedRuleContext(Yh,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterCreateSnapshot(this)}exitRule(t){t instanceof hs&&t.exitCreateSnapshot(this)}accept(t){return t instanceof cs?t.visitCreateSnapshot(this):t.visitChildren(this)}}ds.CreateSnapshotContext=wa;class Ha extends fa{constructor(t,e){super(t),s(this,"functionArgument",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Wa):this.getTypedRuleContext(Wa,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.name=null,this.returnType=null,this.language=null,this.body=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}FUNCTION(){return this.getToken(ds.FUNCTION,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}RETURNS(){return this.getToken(ds.RETURNS,0)}LANGUAGE(){return this.getToken(ds.LANGUAGE,0)}AS(){return this.getToken(ds.AS,0)}qname(){return this.getTypedRuleContext($n,0)}dataType(){return this.getTypedRuleContext(uh,0)}parameterOrIdent(){return this.getTypedRuleContext(vn,0)}parameterOrString(){return this.getTypedRuleContext(Dn,0)}OR(){return this.getToken(ds.OR,0)}REPLACE(){return this.getToken(ds.REPLACE,0)}enterRule(t){t instanceof hs&&t.enterCreateFunction(this)}exitRule(t){t instanceof hs&&t.exitCreateFunction(this)}accept(t){return t instanceof cs?t.visitCreateFunction(this):t.visitChildren(this)}}ds.CreateFunctionContext=Ha;class Ba extends fa{constructor(t,e){super(t),this.name=null,super.copyFrom(e)}CREATE(){return this.getToken(ds.CREATE,0)}VIEW(){return this.getToken(ds.VIEW,0)}AS(){return this.getToken(ds.AS,0)}queryOptParens(){return this.getTypedRuleContext(Mi,0)}qname(){return this.getTypedRuleContext($n,0)}OR(){return this.getToken(ds.OR,0)}REPLACE(){return this.getToken(ds.REPLACE,0)}enterRule(t){t instanceof hs&&t.enterCreateView(this)}exitRule(t){t instanceof hs&&t.exitCreateView(this)}accept(t){return t instanceof cs?t.visitCreateView(this):t.visitChildren(this)}}ds.CreateViewContext=Ba;class Fa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_mappedUser,this.userName=null}ident(){return this.getTypedRuleContext(ia,0)}USER(){return this.getToken(ds.USER,0)}CURRENT_ROLE(){return this.getToken(ds.CURRENT_ROLE,0)}CURRENT_USER(){return this.getToken(ds.CURRENT_USER,0)}enterRule(t){t instanceof hs&&t.enterMappedUser(this)}exitRule(t){t instanceof hs&&t.exitMappedUser(this)}accept(t){return t instanceof cs?t.visitMappedUser(this):t.visitChildren(this)}}class Ka extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"kvOption",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ga):this.getTypedRuleContext(Ga,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_kvOptions}OPTIONS(){return this.getToken(ds.OPTIONS,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterKvOptions(this)}exitRule(t){t instanceof hs&&t.exitKvOptions(this)}accept(t){return t instanceof cs?t.visitKvOptions(this):t.visitChildren(this)}}class Ga extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_kvOption}ident(){return this.getTypedRuleContext(ia,0)}parameterOrLiteral(){return this.getTypedRuleContext(xn,0)}enterRule(t){t instanceof hs&&t.enterKvOption(this)}exitRule(t){t instanceof hs&&t.exitKvOption(this)}accept(t){return t instanceof cs?t.visitKvOption(this):t.visitChildren(this)}}class Wa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_functionArgument,this.name=null,this.type=null}dataType(){return this.getTypedRuleContext(uh,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterFunctionArgument(this)}exitRule(t){t instanceof hs&&t.exitFunctionArgument(this)}accept(t){return t instanceof cs?t.visitFunctionArgument(this):t.visitChildren(this)}}class Va extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_alterTableDefinition}copyFrom(t){super.copyFrom(t)}}class Ya extends Va{constructor(t,e){super(t),super.copyFrom(e)}tableWithPartition(){return this.getTypedRuleContext(lr,0)}enterRule(t){t instanceof hs&&t.enterTableWithPartitionDefault(this)}exitRule(t){t instanceof hs&&t.exitTableWithPartitionDefault(this)}accept(t){return t instanceof cs?t.visitTableWithPartitionDefault(this):t.visitChildren(this)}}ds.TableWithPartitionDefaultContext=Ya;class qa extends Va{constructor(t,e){super(t),super.copyFrom(e)}ONLY(){return this.getToken(ds.ONLY,0)}qname(){return this.getTypedRuleContext($n,0)}enterRule(t){t instanceof hs&&t.enterTableOnly(this)}exitRule(t){t instanceof hs&&t.exitTableOnly(this)}accept(t){return t instanceof cs?t.visitTableOnly(this):t.visitChildren(this)}}ds.TableOnlyContext=qa;class Qa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_alterSubscriptionMode}ENABLE(){return this.getToken(ds.ENABLE,0)}DISABLE(){return this.getToken(ds.DISABLE,0)}enterRule(t){t instanceof hs&&t.enterAlterSubscriptionMode(this)}exitRule(t){t instanceof hs&&t.exitAlterSubscriptionMode(this)}accept(t){return t instanceof cs?t.visitAlterSubscriptionMode(this):t.visitChildren(this)}}class Xa extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_partitionedByOrClusteredInto}partitionedBy(){return this.getTypedRuleContext(za,0)}clusteredBy(){return this.getTypedRuleContext(Za,0)}enterRule(t){t instanceof hs&&t.enterPartitionedByOrClusteredInto(this)}exitRule(t){t instanceof hs&&t.exitPartitionedByOrClusteredInto(this)}accept(t){return t instanceof cs?t.visitPartitionedByOrClusteredInto(this):t.visitChildren(this)}}class za extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_partitionedBy}PARTITIONED(){return this.getToken(ds.PARTITIONED,0)}BY(){return this.getToken(ds.BY,0)}columns(){return this.getTypedRuleContext(Sa,0)}enterRule(t){t instanceof hs&&t.enterPartitionedBy(this)}exitRule(t){t instanceof hs&&t.exitPartitionedBy(this)}accept(t){return t instanceof cs?t.visitPartitionedBy(this):t.visitChildren(this)}}class Za extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_clusteredBy,this.routing=null,this.numShards=null}CLUSTERED(){return this.getToken(ds.CLUSTERED,0)}BY(){return this.getToken(ds.BY,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}INTO(){return this.getToken(ds.INTO,0)}SHARDS(){return this.getToken(ds.SHARDS,0)}primaryExpression(){return this.getTypedRuleContext(Kr,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}enterRule(t){t instanceof hs&&t.enterClusteredBy(this)}exitRule(t){t instanceof hs&&t.exitClusteredBy(this)}accept(t){return t instanceof cs?t.visitClusteredBy(this):t.visitChildren(this)}}class ja extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_blobClusteredInto,this.numShards=null}CLUSTERED(){return this.getToken(ds.CLUSTERED,0)}INTO(){return this.getToken(ds.INTO,0)}SHARDS(){return this.getToken(ds.SHARDS,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}enterRule(t){t instanceof hs&&t.enterBlobClusteredInto(this)}exitRule(t){t instanceof hs&&t.exitBlobClusteredInto(this)}accept(t){return t instanceof cs?t.visitBlobClusteredInto(this):t.visitChildren(this)}}class Ja extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_tableElement}copyFrom(t){super.copyFrom(t)}}class $a extends Ja{constructor(t,e){super(t),super.copyFrom(e)}primaryKeyContraint(){return this.getTypedRuleContext(vh,0)}columns(){return this.getTypedRuleContext(Sa,0)}enterRule(t){t instanceof hs&&t.enterPrimaryKeyConstraintTableLevel(this)}exitRule(t){t instanceof hs&&t.exitPrimaryKeyConstraintTableLevel(this)}accept(t){return t instanceof cs?t.visitPrimaryKeyConstraintTableLevel(this):t.visitChildren(this)}}ds.PrimaryKeyConstraintTableLevelContext=$a;class th extends Ja{constructor(t,e){super(t),super.copyFrom(e)}checkConstraint(){return this.getTypedRuleContext(Dh,0)}enterRule(t){t instanceof hs&&t.enterTableCheckConstraint(this)}exitRule(t){t instanceof hs&&t.exitTableCheckConstraint(this)}accept(t){return t instanceof cs?t.visitTableCheckConstraint(this):t.visitChildren(this)}}ds.TableCheckConstraintContext=th;class eh extends Ja{constructor(t,e){super(t),s(this,"ident",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ia):this.getTypedRuleContext(ia,t)})),this.name=null,this.method=null,super.copyFrom(e)}INDEX(){return this.getToken(ds.INDEX,0)}USING(){return this.getToken(ds.USING,0)}columns(){return this.getTypedRuleContext(Sa,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterIndexDefinition(this)}exitRule(t){t instanceof hs&&t.exitIndexDefinition(this)}accept(t){return t instanceof cs?t.visitIndexDefinition(this):t.visitChildren(this)}}ds.IndexDefinitionContext=eh;class sh extends Ja{constructor(t,e){super(t),super.copyFrom(e)}columnDefinition(){return this.getTypedRuleContext(ih,0)}enterRule(t){t instanceof hs&&t.enterColumnDefinitionDefault(this)}exitRule(t){t instanceof hs&&t.exitColumnDefinitionDefault(this)}accept(t){return t instanceof cs?t.visitColumnDefinitionDefault(this):t.visitChildren(this)}}ds.ColumnDefinitionDefaultContext=sh;class ih extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"columnConstraint",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Oh):this.getTypedRuleContext(Oh,t)})),this.parser=t,this.ruleIndex=ds.RULE_columnDefinition}ident(){return this.getTypedRuleContext(ia,0)}dataType(){return this.getTypedRuleContext(uh,0)}enterRule(t){t instanceof hs&&t.enterColumnDefinition(this)}exitRule(t){t instanceof hs&&t.exitColumnDefinition(this)}accept(t){return t instanceof cs?t.visitColumnDefinition(this):t.visitChildren(this)}}class rh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"columnConstraint",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Oh):this.getTypedRuleContext(Oh,t)})),this.parser=t,this.ruleIndex=ds.RULE_addColumnDefinition}ADD(){return this.getToken(ds.ADD,0)}subscriptSafe(){return this.getTypedRuleContext(Fn,0)}COLUMN(){return this.getToken(ds.COLUMN,0)}dataType(){return this.getTypedRuleContext(uh,0)}enterRule(t){t instanceof hs&&t.enterAddColumnDefinition(this)}exitRule(t){t instanceof hs&&t.exitAddColumnDefinition(this)}accept(t){return t instanceof cs?t.visitAddColumnDefinition(this):t.visitChildren(this)}}class nh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_dropColumnDefinition}DROP(){return this.getToken(ds.DROP,0)}subscriptSafe(){return this.getTypedRuleContext(Fn,0)}COLUMN(){return this.getToken(ds.COLUMN,0)}IF(){return this.getToken(ds.IF,0)}EXISTS(){return this.getToken(ds.EXISTS,0)}enterRule(t){t instanceof hs&&t.enterDropColumnDefinition(this)}exitRule(t){t instanceof hs&&t.exitDropColumnDefinition(this)}accept(t){return t instanceof cs?t.visitDropColumnDefinition(this):t.visitChildren(this)}}class ah extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_rerouteOption}copyFrom(t){super.copyFrom(t)}}class hh extends ah{constructor(t,e){super(t),s(this,"parameterOrString",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Dn):this.getTypedRuleContext(Dn,t)})),this.shardId=null,this.fromNodeId=null,this.toNodeId=null,super.copyFrom(e)}MOVE(){return this.getToken(ds.MOVE,0)}SHARD(){return this.getToken(ds.SHARD,0)}FROM(){return this.getToken(ds.FROM,0)}TO(){return this.getToken(ds.TO,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}enterRule(t){t instanceof hs&&t.enterRerouteMoveShard(this)}exitRule(t){t instanceof hs&&t.exitRerouteMoveShard(this)}accept(t){return t instanceof cs?t.visitRerouteMoveShard(this):t.visitChildren(this)}}ds.RerouteMoveShardContext=hh;class ch extends ah{constructor(t,e){super(t),this.shardId=null,this.nodeId=null,super.copyFrom(e)}ALLOCATE(){return this.getToken(ds.ALLOCATE,0)}REPLICA(){return this.getToken(ds.REPLICA,0)}SHARD(){return this.getToken(ds.SHARD,0)}ON(){return this.getToken(ds.ON,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}parameterOrString(){return this.getTypedRuleContext(Dn,0)}enterRule(t){t instanceof hs&&t.enterRerouteAllocateReplicaShard(this)}exitRule(t){t instanceof hs&&t.exitRerouteAllocateReplicaShard(this)}accept(t){return t instanceof cs?t.visitRerouteAllocateReplicaShard(this):t.visitChildren(this)}}ds.RerouteAllocateReplicaShardContext=ch;class oh extends ah{constructor(t,e){super(t),this.shardId=null,this.nodeId=null,super.copyFrom(e)}PROMOTE(){return this.getToken(ds.PROMOTE,0)}REPLICA(){return this.getToken(ds.REPLICA,0)}SHARD(){return this.getToken(ds.SHARD,0)}ON(){return this.getToken(ds.ON,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}parameterOrString(){return this.getTypedRuleContext(Dn,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterReroutePromoteReplica(this)}exitRule(t){t instanceof hs&&t.exitReroutePromoteReplica(this)}accept(t){return t instanceof cs?t.visitReroutePromoteReplica(this):t.visitChildren(this)}}ds.ReroutePromoteReplicaContext=oh;class lh extends ah{constructor(t,e){super(t),this.shardId=null,this.nodeId=null,super.copyFrom(e)}CANCEL(){return this.getToken(ds.CANCEL,0)}SHARD(){return this.getToken(ds.SHARD,0)}ON(){return this.getToken(ds.ON,0)}parameterOrInteger(){return this.getTypedRuleContext(Ln,0)}parameterOrString(){return this.getTypedRuleContext(Dn,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterRerouteCancelShard(this)}exitRule(t){t instanceof hs&&t.exitRerouteCancelShard(this)}accept(t){return t instanceof cs?t.visitRerouteCancelShard(this):t.visitChildren(this)}}ds.RerouteCancelShardContext=lh;class uh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_dataType}copyFrom(t){super.copyFrom(t)}}class Th extends uh{constructor(t,e){super(t),super.copyFrom(e)}objectTypeDefinition(){return this.getTypedRuleContext(xh,0)}enterRule(t){t instanceof hs&&t.enterObjectDataType(this)}exitRule(t){t instanceof hs&&t.exitObjectDataType(this)}accept(t){return t instanceof cs?t.visitObjectDataType(this):t.visitChildren(this)}}ds.ObjectDataTypeContext=Th;class dh extends uh{constructor(t,e){super(t),s(this,"integerLiteral",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Ca):this.getTypedRuleContext(Ca,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),super.copyFrom(e)}baseDataType(){return this.getTypedRuleContext(ph,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterMaybeParametrizedDataType(this)}exitRule(t){t instanceof hs&&t.exitMaybeParametrizedDataType(this)}accept(t){return t instanceof cs?t.visitMaybeParametrizedDataType(this):t.visitChildren(this)}}ds.MaybeParametrizedDataTypeContext=dh;class Eh extends uh{constructor(t,e){super(t),super.copyFrom(e)}ARRAY(){return this.getToken(ds.ARRAY,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}dataType(){return this.getTypedRuleContext(uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}EMPTY_SQUARE_BRACKET(){return this.getToken(ds.EMPTY_SQUARE_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterArrayDataType(this)}exitRule(t){t instanceof hs&&t.exitArrayDataType(this)}accept(t){return t instanceof cs?t.visitArrayDataType(this):t.visitChildren(this)}}ds.ArrayDataTypeContext=Eh;class ph extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_baseDataType}copyFrom(t){super.copyFrom(t)}}class Rh extends ph{constructor(t,e){super(t),super.copyFrom(e)}definedDataType(){return this.getTypedRuleContext(Ah,0)}enterRule(t){t instanceof hs&&t.enterDefinedDataTypeDefault(this)}exitRule(t){t instanceof hs&&t.exitDefinedDataTypeDefault(this)}accept(t){return t instanceof cs?t.visitDefinedDataTypeDefault(this):t.visitChildren(this)}}ds.DefinedDataTypeDefaultContext=Rh;class Ch extends ph{constructor(t,e){super(t),super.copyFrom(e)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterIdentDataType(this)}exitRule(t){t instanceof hs&&t.exitIdentDataType(this)}accept(t){return t instanceof cs?t.visitIdentDataType(this):t.visitChildren(this)}}ds.IdentDataTypeContext=Ch;class Ah extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"TIME",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.TIME):this.getToken(ds.TIME,t)})),this.parser=t,this.ruleIndex=ds.RULE_definedDataType}DOUBLE(){return this.getToken(ds.DOUBLE,0)}PRECISION(){return this.getToken(ds.PRECISION,0)}TIMESTAMP(){return this.getToken(ds.TIMESTAMP,0)}WITHOUT(){return this.getToken(ds.WITHOUT,0)}ZONE(){return this.getToken(ds.ZONE,0)}WITH(){return this.getToken(ds.WITH,0)}CHARACTER(){return this.getToken(ds.CHARACTER,0)}VARYING(){return this.getToken(ds.VARYING,0)}CHAR_SPECIAL(){return this.getToken(ds.CHAR_SPECIAL,0)}enterRule(t){t instanceof hs&&t.enterDefinedDataType(this)}exitRule(t){t instanceof hs&&t.exitDefinedDataType(this)}accept(t){return t instanceof cs?t.visitDefinedDataType(this):t.visitChildren(this)}}class xh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"OPEN_ROUND_BRACKET",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.OPEN_ROUND_BRACKET):this.getToken(ds.OPEN_ROUND_BRACKET,t)})),s(this,"CLOSE_ROUND_BRACKET",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.CLOSE_ROUND_BRACKET):this.getToken(ds.CLOSE_ROUND_BRACKET,t)})),s(this,"columnDefinition",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(ih):this.getTypedRuleContext(ih,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_objectTypeDefinition,this.type=null}OBJECT(){return this.getToken(ds.OBJECT,0)}AS(){return this.getToken(ds.AS,0)}DYNAMIC(){return this.getToken(ds.DYNAMIC,0)}STRICT(){return this.getToken(ds.STRICT,0)}IGNORED(){return this.getToken(ds.IGNORED,0)}enterRule(t){t instanceof hs&&t.enterObjectTypeDefinition(this)}exitRule(t){t instanceof hs&&t.exitObjectTypeDefinition(this)}accept(t){return t instanceof cs?t.visitObjectTypeDefinition(this):t.visitChildren(this)}}class Oh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_columnConstraint}copyFrom(t){super.copyFrom(t)}}class _h extends Oh{constructor(t,e){super(t),super.copyFrom(e)}primaryKeyContraint(){return this.getTypedRuleContext(vh,0)}enterRule(t){t instanceof hs&&t.enterColumnConstraintPrimaryKey(this)}exitRule(t){t instanceof hs&&t.exitColumnConstraintPrimaryKey(this)}accept(t){return t instanceof cs?t.visitColumnConstraintPrimaryKey(this):t.visitChildren(this)}}ds.ColumnConstraintPrimaryKeyContext=_h;class gh extends Oh{constructor(t,e){super(t),super.copyFrom(e)}STORAGE(){return this.getToken(ds.STORAGE,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterColumnStorageDefinition(this)}exitRule(t){t instanceof hs&&t.exitColumnStorageDefinition(this)}accept(t){return t instanceof cs?t.visitColumnStorageDefinition(this):t.visitChildren(this)}}ds.ColumnStorageDefinitionContext=gh;class Sh extends Oh{constructor(t,e){super(t),super.copyFrom(e)}checkConstraint(){return this.getTypedRuleContext(Dh,0)}enterRule(t){t instanceof hs&&t.enterColumnCheckConstraint(this)}exitRule(t){t instanceof hs&&t.exitColumnCheckConstraint(this)}accept(t){return t instanceof cs?t.visitColumnCheckConstraint(this):t.visitChildren(this)}}ds.ColumnCheckConstraintContext=Sh;class Lh extends Oh{constructor(t,e){super(t),super.copyFrom(e)}NULL(){return this.getToken(ds.NULL,0)}enterRule(t){t instanceof hs&&t.enterColumnConstraintNull(this)}exitRule(t){t instanceof hs&&t.exitColumnConstraintNull(this)}accept(t){return t instanceof cs?t.visitColumnConstraintNull(this):t.visitChildren(this)}}ds.ColumnConstraintNullContext=Lh;class fh extends Oh{constructor(t,e){super(t),this.method=null,super.copyFrom(e)}INDEX(){return this.getToken(ds.INDEX,0)}USING(){return this.getToken(ds.USING,0)}ident(){return this.getTypedRuleContext(ia,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterColumnIndexConstraint(this)}exitRule(t){t instanceof hs&&t.exitColumnIndexConstraint(this)}accept(t){return t instanceof cs?t.visitColumnIndexConstraint(this):t.visitChildren(this)}}ds.ColumnIndexConstraintContext=fh;class Ih extends Oh{constructor(t,e){super(t),this.name=null,this.defaultExpr=null,super.copyFrom(e)}DEFAULT(){return this.getToken(ds.DEFAULT,0)}expr(){return this.getTypedRuleContext(Cr,0)}CONSTRAINT(){return this.getToken(ds.CONSTRAINT,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterColumnDefaultConstraint(this)}exitRule(t){t instanceof hs&&t.exitColumnDefaultConstraint(this)}accept(t){return t instanceof cs?t.visitColumnDefaultConstraint(this):t.visitChildren(this)}}ds.ColumnDefaultConstraintContext=Ih;class Nh extends Oh{constructor(t,e){super(t),this.name=null,this.generatedExpr=null,super.copyFrom(e)}AS(){return this.getToken(ds.AS,0)}expr(){return this.getTypedRuleContext(Cr,0)}CONSTRAINT(){return this.getToken(ds.CONSTRAINT,0)}GENERATED(){return this.getToken(ds.GENERATED,0)}ALWAYS(){return this.getToken(ds.ALWAYS,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterColumnGeneratedConstraint(this)}exitRule(t){t instanceof hs&&t.exitColumnGeneratedConstraint(this)}accept(t){return t instanceof cs?t.visitColumnGeneratedConstraint(this):t.visitChildren(this)}}ds.ColumnGeneratedConstraintContext=Nh;class mh extends Oh{constructor(t,e){super(t),super.copyFrom(e)}INDEX(){return this.getToken(ds.INDEX,0)}OFF(){return this.getToken(ds.OFF,0)}enterRule(t){t instanceof hs&&t.enterColumnIndexOff(this)}exitRule(t){t instanceof hs&&t.exitColumnIndexOff(this)}accept(t){return t instanceof cs?t.visitColumnIndexOff(this):t.visitChildren(this)}}ds.ColumnIndexOffContext=mh;class yh extends Oh{constructor(t,e){super(t),super.copyFrom(e)}NOT(){return this.getToken(ds.NOT,0)}NULL(){return this.getToken(ds.NULL,0)}enterRule(t){t instanceof hs&&t.enterColumnConstraintNotNull(this)}exitRule(t){t instanceof hs&&t.exitColumnConstraintNotNull(this)}accept(t){return t instanceof cs?t.visitColumnConstraintNotNull(this):t.visitChildren(this)}}ds.ColumnConstraintNotNullContext=yh;class vh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_primaryKeyContraint,this.name=null}PRIMARY_KEY(){return this.getToken(ds.PRIMARY_KEY,0)}CONSTRAINT(){return this.getToken(ds.CONSTRAINT,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterPrimaryKeyContraint(this)}exitRule(t){t instanceof hs&&t.exitPrimaryKeyContraint(this)}accept(t){return t instanceof cs?t.visitPrimaryKeyContraint(this):t.visitChildren(this)}}class Dh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_checkConstraint,this.name=null,this.expression=null}CHECK(){return this.getToken(ds.CHECK,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}booleanExpression(){return this.getTypedRuleContext(Ar,0)}CONSTRAINT(){return this.getToken(ds.CONSTRAINT,0)}ident(){return this.getTypedRuleContext(ia,0)}enterRule(t){t instanceof hs&&t.enterCheckConstraint(this)}exitRule(t){t instanceof hs&&t.exitCheckConstraint(this)}accept(t){return t instanceof cs?t.visitCheckConstraint(this):t.visitChildren(this)}}class kh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_withProperties}copyFrom(t){super.copyFrom(t)}}class Ph extends kh{constructor(t,e){super(t),super.copyFrom(e)}WITH(){return this.getToken(ds.WITH,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}genericProperties(){return this.getTypedRuleContext(Uh,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterWithGenericProperties(this)}exitRule(t){t instanceof hs&&t.exitWithGenericProperties(this)}accept(t){return t instanceof cs?t.visitWithGenericProperties(this):t.visitChildren(this)}}ds.WithGenericPropertiesContext=Ph;class Uh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"genericProperty",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Mh):this.getTypedRuleContext(Mh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_genericProperties}enterRule(t){t instanceof hs&&t.enterGenericProperties(this)}exitRule(t){t instanceof hs&&t.exitGenericProperties(this)}accept(t){return t instanceof cs?t.visitGenericProperties(this):t.visitChildren(this)}}class Mh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_genericProperty}ident(){return this.getTypedRuleContext(ia,0)}EQ(){return this.getToken(ds.EQ,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterGenericProperty(this)}exitRule(t){t instanceof hs&&t.exitGenericProperty(this)}accept(t){return t instanceof cs?t.visitGenericProperty(this):t.visitChildren(this)}}class bh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"explainOption",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(wh):this.getTypedRuleContext(wh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_explainOptions}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterExplainOptions(this)}exitRule(t){t instanceof hs&&t.exitExplainOptions(this)}accept(t){return t instanceof cs?t.visitExplainOptions(this):t.visitChildren(this)}}class wh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_explainOption}ANALYZE(){return this.getToken(ds.ANALYZE,0)}COSTS(){return this.getToken(ds.COSTS,0)}VERBOSE(){return this.getToken(ds.VERBOSE,0)}booleanLiteral(){return this.getTypedRuleContext(pa,0)}enterRule(t){t instanceof hs&&t.enterExplainOption(this)}exitRule(t){t instanceof hs&&t.exitExplainOption(this)}accept(t){return t instanceof cs?t.visitExplainOption(this):t.visitChildren(this)}}class Hh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"matchPredicateIdent",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Bh):this.getTypedRuleContext(Bh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_matchPredicateIdents,this.matchPred=null}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterMatchPredicateIdents(this)}exitRule(t){t instanceof hs&&t.exitMatchPredicateIdents(this)}accept(t){return t instanceof cs?t.visitMatchPredicateIdents(this):t.visitChildren(this)}}class Bh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_matchPredicateIdent,this.boost=null}subscriptSafe(){return this.getTypedRuleContext(Fn,0)}parameterOrSimpleLiteral(){return this.getTypedRuleContext(Sn,0)}enterRule(t){t instanceof hs&&t.enterMatchPredicateIdent(this)}exitRule(t){t instanceof hs&&t.exitMatchPredicateIdent(this)}accept(t){return t instanceof cs?t.visitMatchPredicateIdent(this):t.visitChildren(this)}}class Fh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_analyzerElement}tokenizer(){return this.getTypedRuleContext(Kh,0)}tokenFilters(){return this.getTypedRuleContext(Gh,0)}charFilters(){return this.getTypedRuleContext(Wh,0)}genericProperty(){return this.getTypedRuleContext(Mh,0)}enterRule(t){t instanceof hs&&t.enterAnalyzerElement(this)}exitRule(t){t instanceof hs&&t.exitAnalyzerElement(this)}accept(t){return t instanceof cs?t.visitAnalyzerElement(this):t.visitChildren(this)}}class Kh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_tokenizer}TOKENIZER(){return this.getToken(ds.TOKENIZER,0)}namedProperties(){return this.getTypedRuleContext(Vh,0)}enterRule(t){t instanceof hs&&t.enterTokenizer(this)}exitRule(t){t instanceof hs&&t.exitTokenizer(this)}accept(t){return t instanceof cs?t.visitTokenizer(this):t.visitChildren(this)}}class Gh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"namedProperties",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Vh):this.getTypedRuleContext(Vh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_tokenFilters}TOKEN_FILTERS(){return this.getToken(ds.TOKEN_FILTERS,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterTokenFilters(this)}exitRule(t){t instanceof hs&&t.exitTokenFilters(this)}accept(t){return t instanceof cs?t.visitTokenFilters(this):t.visitChildren(this)}}class Wh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"namedProperties",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(Vh):this.getTypedRuleContext(Vh,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_charFilters}CHAR_FILTERS(){return this.getToken(ds.CHAR_FILTERS,0)}OPEN_ROUND_BRACKET(){return this.getToken(ds.OPEN_ROUND_BRACKET,0)}CLOSE_ROUND_BRACKET(){return this.getToken(ds.CLOSE_ROUND_BRACKET,0)}enterRule(t){t instanceof hs&&t.enterCharFilters(this)}exitRule(t){t instanceof hs&&t.exitCharFilters(this)}accept(t){return t instanceof cs?t.visitCharFilters(this):t.visitChildren(this)}}class Vh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_namedProperties}ident(){return this.getTypedRuleContext(ia,0)}withProperties(){return this.getTypedRuleContext(kh,0)}enterRule(t){t instanceof hs&&t.enterNamedProperties(this)}exitRule(t){t instanceof hs&&t.exitNamedProperties(this)}accept(t){return t instanceof cs?t.visitNamedProperties(this):t.visitChildren(this)}}class Yh extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"tableWithPartition",(function(t){return void 0===t&&(t=null),null===t?this.getTypedRuleContexts(lr):this.getTypedRuleContext(lr,t)})),s(this,"COMMA",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.COMMA):this.getToken(ds.COMMA,t)})),this.parser=t,this.ruleIndex=ds.RULE_tableWithPartitions}enterRule(t){t instanceof hs&&t.enterTableWithPartitions(this)}exitRule(t){t instanceof hs&&t.exitTableWithPartitions(this)}accept(t){return t instanceof cs?t.visitTableWithPartitions(this):t.visitChildren(this)}}class qh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_setGlobalAssignment,this.name=null,this.value=null}primaryExpression(){return this.getTypedRuleContext(Kr,0)}EQ(){return this.getToken(ds.EQ,0)}TO(){return this.getToken(ds.TO,0)}expr(){return this.getTypedRuleContext(Cr,0)}enterRule(t){t instanceof hs&&t.enterSetGlobalAssignment(this)}exitRule(t){t instanceof hs&&t.exitSetGlobalAssignment(this)}accept(t){return t instanceof cs?t.visitSetGlobalAssignment(this):t.visitChildren(this)}}class Qh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_setExpr}stringLiteral(){return this.getTypedRuleContext(Hn,0)}booleanLiteral(){return this.getTypedRuleContext(pa,0)}numericLiteral(){return this.getTypedRuleContext(Ta,0)}ident(){return this.getTypedRuleContext(ia,0)}on(){return this.getTypedRuleContext(Xh,0)}enterRule(t){t instanceof hs&&t.enterSetExpr(this)}exitRule(t){t instanceof hs&&t.exitSetExpr(this)}accept(t){return t instanceof cs?t.visitSetExpr(this):t.visitChildren(this)}}class Xh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_on}ON(){return this.getToken(ds.ON,0)}enterRule(t){t instanceof hs&&t.enterOn(this)}exitRule(t){t instanceof hs&&t.exitOn(this)}accept(t){return t instanceof cs?t.visitOn(this):t.visitChildren(this)}}class zh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_securable}SCHEMA(){return this.getToken(ds.SCHEMA,0)}TABLE(){return this.getToken(ds.TABLE,0)}VIEW(){return this.getToken(ds.VIEW,0)}enterRule(t){t instanceof hs&&t.enterSecurable(this)}exitRule(t){t instanceof hs&&t.exitSecurable(this)}accept(t){return t instanceof cs?t.visitSecurable(this):t.visitChildren(this)}}class Zh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_transactionMode}ISOLATION(){return this.getToken(ds.ISOLATION,0)}LEVEL(){return this.getToken(ds.LEVEL,0)}isolationLevel(){return this.getTypedRuleContext(jh,0)}READ(){return this.getToken(ds.READ,0)}WRITE(){return this.getToken(ds.WRITE,0)}ONLY(){return this.getToken(ds.ONLY,0)}DEFERRABLE(){return this.getToken(ds.DEFERRABLE,0)}NOT(){return this.getToken(ds.NOT,0)}enterRule(t){t instanceof hs&&t.enterTransactionMode(this)}exitRule(t){t instanceof hs&&t.exitTransactionMode(this)}accept(t){return t instanceof cs?t.visitTransactionMode(this):t.visitChildren(this)}}class jh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_isolationLevel}SERIALIZABLE(){return this.getToken(ds.SERIALIZABLE,0)}REPEATABLE(){return this.getToken(ds.REPEATABLE,0)}READ(){return this.getToken(ds.READ,0)}COMMITTED(){return this.getToken(ds.COMMITTED,0)}UNCOMMITTED(){return this.getToken(ds.UNCOMMITTED,0)}enterRule(t){t instanceof hs&&t.enterIsolationLevel(this)}exitRule(t){t instanceof hs&&t.exitIsolationLevel(this)}accept(t){return t instanceof cs?t.visitIsolationLevel(this):t.visitChildren(this)}}class Jh extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_direction}NEXT(){return this.getToken(ds.NEXT,0)}PRIOR(){return this.getToken(ds.PRIOR,0)}FIRST(){return this.getToken(ds.FIRST,0)}LAST(){return this.getToken(ds.LAST,0)}ABSOLUTE(){return this.getToken(ds.ABSOLUTE,0)}integerLiteral(){return this.getTypedRuleContext(Ca,0)}RELATIVE(){return this.getToken(ds.RELATIVE,0)}MINUS(){return this.getToken(ds.MINUS,0)}ALL(){return this.getToken(ds.ALL,0)}FORWARD(){return this.getToken(ds.FORWARD,0)}BACKWARD(){return this.getToken(ds.BACKWARD,0)}enterRule(t){t instanceof hs&&t.enterDirection(this)}exitRule(t){t instanceof hs&&t.exitDirection(this)}accept(t){return t instanceof cs?t.visitDirection(this):t.visitChildren(this)}}class $h extends ss.ParserRuleContext{constructor(t,e,i){void 0===e&&(e=null),null==i&&(i=-1),super(e,i),s(this,"ASENSITIVE",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.ASENSITIVE):this.getToken(ds.ASENSITIVE,t)})),s(this,"BINARY",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.BINARY):this.getToken(ds.BINARY,t)})),s(this,"INSENSITIVE",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.INSENSITIVE):this.getToken(ds.INSENSITIVE,t)})),s(this,"SCROLL",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.SCROLL):this.getToken(ds.SCROLL,t)})),s(this,"NO",(function(t){return void 0===t&&(t=null),null===t?this.getTokens(ds.NO):this.getToken(ds.NO,t)})),this.parser=t,this.ruleIndex=ds.RULE_declareCursorParams}enterRule(t){t instanceof hs&&t.enterDeclareCursorParams(this)}exitRule(t){t instanceof hs&&t.exitDeclareCursorParams(this)}accept(t){return t instanceof cs?t.visitDeclareCursorParams(this):t.visitChildren(this)}}class tc extends ss.ParserRuleContext{constructor(t,e,s){void 0===e&&(e=null),null==s&&(s=-1),super(e,s),this.parser=t,this.ruleIndex=ds.RULE_nonReserved}ABSOLUTE(){return this.getToken(ds.ABSOLUTE,0)}ALIAS(){return this.getToken(ds.ALIAS,0)}ALLOCATE(){return this.getToken(ds.ALLOCATE,0)}ALWAYS(){return this.getToken(ds.ALWAYS,0)}ANALYZE(){return this.getToken(ds.ANALYZE,0)}ANALYZER(){return this.getToken(ds.ANALYZER,0)}ARTIFACTS(){return this.getToken(ds.ARTIFACTS,0)}ASENSITIVE(){return this.getToken(ds.ASENSITIVE,0)}AT(){return this.getToken(ds.AT,0)}AUTHORIZATION(){return this.getToken(ds.AUTHORIZATION,0)}BACKWARD(){return this.getToken(ds.BACKWARD,0)}BEGIN(){return this.getToken(ds.BEGIN,0)}BERNOULLI(){return this.getToken(ds.BERNOULLI,0)}BINARY(){return this.getToken(ds.BINARY,0)}BLOB(){return this.getToken(ds.BLOB,0)}BOOLEAN(){return this.getToken(ds.BOOLEAN,0)}BOTH(){return this.getToken(ds.BOTH,0)}BYTE(){return this.getToken(ds.BYTE,0)}CANCEL(){return this.getToken(ds.CANCEL,0)}CASCADE(){return this.getToken(ds.CASCADE,0)}CATALOGS(){return this.getToken(ds.CATALOGS,0)}CHARACTER(){return this.getToken(ds.CHARACTER,0)}CHARACTERISTICS(){return this.getToken(ds.CHARACTERISTICS,0)}CHAR_FILTERS(){return this.getToken(ds.CHAR_FILTERS,0)}CHECK(){return this.getToken(ds.CHECK,0)}CLOSE(){return this.getToken(ds.CLOSE,0)}CLUSTER(){return this.getToken(ds.CLUSTER,0)}CLUSTERED(){return this.getToken(ds.CLUSTERED,0)}COLUMNS(){return this.getToken(ds.COLUMNS,0)}COMMIT(){return this.getToken(ds.COMMIT,0)}COMMITTED(){return this.getToken(ds.COMMITTED,0)}CONFLICT(){return this.getToken(ds.CONFLICT,0)}CONNECTION(){return this.getToken(ds.CONNECTION,0)}COPY(){return this.getToken(ds.COPY,0)}CURRENT(){return this.getToken(ds.CURRENT,0)}CURRENT_DATE(){return this.getToken(ds.CURRENT_DATE,0)}CURRENT_SCHEMA(){return this.getToken(ds.CURRENT_SCHEMA,0)}CURRENT_TIME(){return this.getToken(ds.CURRENT_TIME,0)}CURRENT_TIMESTAMP(){return this.getToken(ds.CURRENT_TIMESTAMP,0)}CURSOR(){return this.getToken(ds.CURSOR,0)}DANGLING(){return this.getToken(ds.DANGLING,0)}DATA(){return this.getToken(ds.DATA,0)}DAY(){return this.getToken(ds.DAY,0)}DEALLOCATE(){return this.getToken(ds.DEALLOCATE,0)}DECLARE(){return this.getToken(ds.DECLARE,0)}DECOMMISSION(){return this.getToken(ds.DECOMMISSION,0)}DEFERRABLE(){return this.getToken(ds.DEFERRABLE,0)}DISABLE(){return this.getToken(ds.DISABLE,0)}DISCARD(){return this.getToken(ds.DISCARD,0)}DISTRIBUTED(){return this.getToken(ds.DISTRIBUTED,0)}DO(){return this.getToken(ds.DO,0)}DOUBLE(){return this.getToken(ds.DOUBLE,0)}DUPLICATE(){return this.getToken(ds.DUPLICATE,0)}DYNAMIC(){return this.getToken(ds.DYNAMIC,0)}ENABLE(){return this.getToken(ds.ENABLE,0)}EXPLAIN(){return this.getToken(ds.EXPLAIN,0)}EXTENDS(){return this.getToken(ds.EXTENDS,0)}FAILED(){return this.getToken(ds.FAILED,0)}FETCH(){return this.getToken(ds.FETCH,0)}FILTER(){return this.getToken(ds.FILTER,0)}FLOAT(){return this.getToken(ds.FLOAT,0)}FOLLOWING(){return this.getToken(ds.FOLLOWING,0)}FOREIGN(){return this.getToken(ds.FOREIGN,0)}FORMAT(){return this.getToken(ds.FORMAT,0)}FORWARD(){return this.getToken(ds.FORWARD,0)}FULLTEXT(){return this.getToken(ds.FULLTEXT,0)}FUNCTIONS(){return this.getToken(ds.FUNCTIONS,0)}GC(){return this.getToken(ds.GC,0)}GENERATED(){return this.getToken(ds.GENERATED,0)}GEO_POINT(){return this.getToken(ds.GEO_POINT,0)}GEO_SHAPE(){return this.getToken(ds.GEO_SHAPE,0)}GLOBAL(){return this.getToken(ds.GLOBAL,0)}GRAPHVIZ(){return this.getToken(ds.GRAPHVIZ,0)}HOLD(){return this.getToken(ds.HOLD,0)}HOUR(){return this.getToken(ds.HOUR,0)}IGNORE(){return this.getToken(ds.IGNORE,0)}IGNORED(){return this.getToken(ds.IGNORED,0)}ILIKE(){return this.getToken(ds.ILIKE,0)}INSENSITIVE(){return this.getToken(ds.INSENSITIVE,0)}INT(){return this.getToken(ds.INT,0)}INTEGER(){return this.getToken(ds.INTEGER,0)}INTERVAL(){return this.getToken(ds.INTERVAL,0)}IP(){return this.getToken(ds.IP,0)}ISOLATION(){return this.getToken(ds.ISOLATION,0)}KEY(){return this.getToken(ds.KEY,0)}KILL(){return this.getToken(ds.KILL,0)}LANGUAGE(){return this.getToken(ds.LANGUAGE,0)}LEADING(){return this.getToken(ds.LEADING,0)}LEVEL(){return this.getToken(ds.LEVEL,0)}LOCAL(){return this.getToken(ds.LOCAL,0)}LOGICAL(){return this.getToken(ds.LOGICAL,0)}LONG(){return this.getToken(ds.LONG,0)}MAPPING(){return this.getToken(ds.MAPPING,0)}MATERIALIZED(){return this.getToken(ds.MATERIALIZED,0)}METADATA(){return this.getToken(ds.METADATA,0)}MINUTE(){return this.getToken(ds.MINUTE,0)}MONTH(){return this.getToken(ds.MONTH,0)}MOVE(){return this.getToken(ds.MOVE,0)}NEXT(){return this.getToken(ds.NEXT,0)}NO(){return this.getToken(ds.NO,0)}NOTHING(){return this.getToken(ds.NOTHING,0)}OFF(){return this.getToken(ds.OFF,0)}ONLY(){return this.getToken(ds.ONLY,0)}OPEN(){return this.getToken(ds.OPEN,0)}OPTIMIZE(){return this.getToken(ds.OPTIMIZE,0)}OPTIONS(){return this.getToken(ds.OPTIONS,0)}OVER(){return this.getToken(ds.OVER,0)}PARTITION(){return this.getToken(ds.PARTITION,0)}PARTITIONED(){return this.getToken(ds.PARTITIONED,0)}PARTITIONS(){return this.getToken(ds.PARTITIONS,0)}PLAIN(){return this.getToken(ds.PLAIN,0)}PLANS(){return this.getToken(ds.PLANS,0)}PRECEDING(){return this.getToken(ds.PRECEDING,0)}PRECISION(){return this.getToken(ds.PRECISION,0)}PREPARE(){return this.getToken(ds.PREPARE,0)}PRIOR(){return this.getToken(ds.PRIOR,0)}PRIVILEGES(){return this.getToken(ds.PRIVILEGES,0)}PROMOTE(){return this.getToken(ds.PROMOTE,0)}PUBLICATION(){return this.getToken(ds.PUBLICATION,0)}RANGE(){return this.getToken(ds.RANGE,0)}READ(){return this.getToken(ds.READ,0)}REFRESH(){return this.getToken(ds.REFRESH,0)}RELATIVE(){return this.getToken(ds.RELATIVE,0)}RENAME(){return this.getToken(ds.RENAME,0)}REPEATABLE(){return this.getToken(ds.REPEATABLE,0)}REPLACE(){return this.getToken(ds.REPLACE,0)}REPLICA(){return this.getToken(ds.REPLICA,0)}REPOSITORY(){return this.getToken(ds.REPOSITORY,0)}REROUTE(){return this.getToken(ds.REROUTE,0)}RESPECT(){return this.getToken(ds.RESPECT,0)}RESTORE(){return this.getToken(ds.RESTORE,0)}RESTRICT(){return this.getToken(ds.RESTRICT,0)}RETRY(){return this.getToken(ds.RETRY,0)}RETURN(){return this.getToken(ds.RETURN,0)}RETURNING(){return this.getToken(ds.RETURNING,0)}ROLE(){return this.getToken(ds.ROLE,0)}ROW(){return this.getToken(ds.ROW,0)}ROWS(){return this.getToken(ds.ROWS,0)}SCHEMA(){return this.getToken(ds.SCHEMA,0)}SCHEMAS(){return this.getToken(ds.SCHEMAS,0)}SCROLL(){return this.getToken(ds.SCROLL,0)}SECOND(){return this.getToken(ds.SECOND,0)}SEQUENCES(){return this.getToken(ds.SEQUENCES,0)}SERIALIZABLE(){return this.getToken(ds.SERIALIZABLE,0)}SERVER(){return this.getToken(ds.SERVER,0)}SESSION(){return this.getToken(ds.SESSION,0)}SHARD(){return this.getToken(ds.SHARD,0)}SHARDS(){return this.getToken(ds.SHARDS,0)}SHORT(){return this.getToken(ds.SHORT,0)}SHOW(){return this.getToken(ds.SHOW,0)}SNAPSHOT(){return this.getToken(ds.SNAPSHOT,0)}START(){return this.getToken(ds.START,0)}STORAGE(){return this.getToken(ds.STORAGE,0)}STRICT(){return this.getToken(ds.STRICT,0)}STRING_TYPE(){return this.getToken(ds.STRING_TYPE,0)}SUBSCRIPTION(){return this.getToken(ds.SUBSCRIPTION,0)}SUBSTRING(){return this.getToken(ds.SUBSTRING,0)}SUMMARY(){return this.getToken(ds.SUMMARY,0)}SWAP(){return this.getToken(ds.SWAP,0)}SYSTEM(){return this.getToken(ds.SYSTEM,0)}TABLES(){return this.getToken(ds.TABLES,0)}TABLESAMPLE(){return this.getToken(ds.TABLESAMPLE,0)}TEMP(){return this.getToken(ds.TEMP,0)}TEMPORARY(){return this.getToken(ds.TEMPORARY,0)}TEXT(){return this.getToken(ds.TEXT,0)}TIME(){return this.getToken(ds.TIME,0)}TIMESTAMP(){return this.getToken(ds.TIMESTAMP,0)}TO(){return this.getToken(ds.TO,0)}TOKENIZER(){return this.getToken(ds.TOKENIZER,0)}TOKEN_FILTERS(){return this.getToken(ds.TOKEN_FILTERS,0)}TRAILING(){return this.getToken(ds.TRAILING,0)}TRANSACTION(){return this.getToken(ds.TRANSACTION,0)}TRANSACTION_ISOLATION(){return this.getToken(ds.TRANSACTION_ISOLATION,0)}TRIM(){return this.getToken(ds.TRIM,0)}TYPE(){return this.getToken(ds.TYPE,0)}UNCOMMITTED(){return this.getToken(ds.UNCOMMITTED,0)}VALUES(){return this.getToken(ds.VALUES,0)}VARYING(){return this.getToken(ds.VARYING,0)}VERBOSE(){return this.getToken(ds.VERBOSE,0)}VIEW(){return this.getToken(ds.VIEW,0)}WINDOW(){return this.getToken(ds.WINDOW,0)}WITHOUT(){return this.getToken(ds.WITHOUT,0)}WORK(){return this.getToken(ds.WORK,0)}WRAPPER(){return this.getToken(ds.WRAPPER,0)}WRITE(){return this.getToken(ds.WRITE,0)}YEAR(){return this.getToken(ds.YEAR,0)}ZONE(){return this.getToken(ds.ZONE,0)}enterRule(t){t instanceof hs&&t.enterNonReserved(this)}exitRule(t){t instanceof hs&&t.exitNonReserved(this)}accept(t){return t instanceof cs?t.visitNonReserved(this):t.visitChildren(this)}}ds.StatementsContext=Es,ds.SingleStatementContext=ps,ds.SingleExpressionContext=Rs,ds.StatementContext=Cs,ds.DropStmtContext=ii,ds.AlterStmtContext=Ai,ds.QueryOptParensContext=Mi,ds.QueryContext=bi,ds.QueryNoWithContext=wi,ds.LimitClauseContext=Hi,ds.OffsetClauseContext=Bi,ds.QueryTermContext=Fi,ds.SetQuantContext=Wi,ds.SortItemContext=Vi,ds.QuerySpecContext=Yi,ds.SelectItemContext=Xi,ds.WhereContext=ji,ds.ReturningContext=Ji,ds.FilterContext=$i,ds.RelationContext=tr,ds.JoinTypeContext=ir,ds.JoinCriteriaContext=rr,ds.AliasedRelationContext=nr,ds.RelationPrimaryContext=ar,ds.TableWithPartitionContext=lr,ds.TableContext=ur,ds.AliasedColumnsContext=Er,ds.WithContext=pr,ds.NamedQueryContext=Rr,ds.ExprContext=Cr,ds.BooleanExpressionContext=Ar,ds.PredicatedContext=Sr,ds.PredicateContext=Lr,ds.ValueExpressionContext=Ur,ds.PrimaryExpressionContext=Kr,ds.ExplicitFunctionContext=sn,ds.SubqueryExpressionContext=An,ds.ParameterOrLiteralContext=xn,ds.ParameterOrSimpleLiteralContext=Sn,ds.ParameterOrIntegerContext=Ln,ds.ParameterOrIdentContext=vn,ds.ParameterOrStringContext=Dn,ds.ParameterExprContext=kn,ds.NullLiteralContext=Mn,ds.EscapedCharsStringLiteralContext=bn,ds.DollarQuotedStringLiteralContext=wn,ds.StringLiteralContext=Hn,ds.BitStringContext=Bn,ds.SubscriptSafeContext=Fn,ds.CmpOpContext=Kn,ds.SetCmpQuantifierContext=Gn,ds.WhenClauseContext=Wn,ds.NamedWindowContext=Vn,ds.OverContext=Yn,ds.WindowDefinitionContext=qn,ds.WindowFrameContext=Qn,ds.FrameBoundContext=Xn,ds.QnamesContext=Jn,ds.QnameContext=$n,ds.SpaceSeparatedIdentsContext=ta,ds.IdentWithOrWithoutValueContext=ea,ds.IdentsContext=sa,ds.IdentContext=ia,ds.UnquotedIdentContext=ra,ds.QuotedIdentContext=ha,ds.StringLiteralOrIdentifierContext=la,ds.StringLiteralOrIdentifierOrQnameContext=ua,ds.NumericLiteralContext=Ta,ds.IntervalLiteralContext=da,ds.IntervalFieldContext=Ea,ds.BooleanLiteralContext=pa,ds.DecimalLiteralContext=Ra,ds.IntegerLiteralContext=Ca,ds.ObjectKeyValueContext=Aa,ds.InsertSourceContext=xa,ds.OnConflictContext=Oa,ds.ConflictTargetContext=_a,ds.ValuesContext=ga,ds.ColumnsContext=Sa,ds.AssignmentContext=La,ds.CreateStmtContext=fa,ds.MappedUserContext=Fa,ds.KvOptionsContext=Ka,ds.KvOptionContext=Ga,ds.FunctionArgumentContext=Wa,ds.AlterTableDefinitionContext=Va,ds.AlterSubscriptionModeContext=Qa,ds.PartitionedByOrClusteredIntoContext=Xa,ds.PartitionedByContext=za,ds.ClusteredByContext=Za,ds.BlobClusteredIntoContext=ja,ds.TableElementContext=Ja,ds.ColumnDefinitionContext=ih,ds.AddColumnDefinitionContext=rh,ds.DropColumnDefinitionContext=nh,ds.RerouteOptionContext=ah,ds.DataTypeContext=uh,ds.BaseDataTypeContext=ph,ds.DefinedDataTypeContext=Ah,ds.ObjectTypeDefinitionContext=xh,ds.ColumnConstraintContext=Oh,ds.PrimaryKeyContraintContext=vh,ds.CheckConstraintContext=Dh,ds.WithPropertiesContext=kh,ds.GenericPropertiesContext=Uh,ds.GenericPropertyContext=Mh,ds.ExplainOptionsContext=bh,ds.ExplainOptionContext=wh,ds.MatchPredicateIdentsContext=Hh,ds.MatchPredicateIdentContext=Bh,ds.AnalyzerElementContext=Fh,ds.TokenizerContext=Kh,ds.TokenFiltersContext=Gh,ds.CharFiltersContext=Wh,ds.NamedPropertiesContext=Vh,ds.TableWithPartitionsContext=Yh,ds.SetGlobalAssignmentContext=qh,ds.SetExprContext=Qh,ds.OnContext=Xh,ds.SecurableContext=zh,ds.TransactionModeContext=Zh,ds.IsolationLevelContext=jh,ds.DirectionContext=Jh,ds.DeclareCursorParamsContext=$h,ds.NonReservedContext=tc;class ec{constructor(t,e,s){this.tables=t||[],this.parameterizedProperties=e||{},this.withProperties=s||{}}}function sc(t,e='"'){return e+t+e}class ic{constructor(t,e){this.name=t,this.schema=e,this.fqn=this._getFqn()}_getFqn(){return(this.schema?sc(this.schema)+".":"")+sc(this.name)}}class rc extends cs{getText(t){return t?t.getText().replaceAll("'","").replaceAll('"',""):null}enrich(t){this.stmt=t,this.visit(this.stmt.ctx)}visitTableName(t){const e=t.qname(),s=this.getText(e).split(".");let i=null,r=null;1===s.length?r=s[0]:(i=s[0],r=s[1]),this.stmt.metadata.tables.push(new ic(r,i))}visitGenericProperties(t){const e=t.genericProperty(),s={},i={};for(const r of e){let t=this.getText(r.ident()),e=this.getText(r.expr());s[t]=e,e&&"$"===e[0]&&e.slice(1).split("").every((t=>t>="0"&&t<="9"))&&(i[t]=e),this.stmt.metadata.withProperties=s,this.stmt.metadata.parameterizedProperties=i}}}as.prototype.tags=[],as.prototype.BEGIN_DOLLAR_QUOTED_STRING_action=function(t,e){0===e&&this.tags.push(this.text)},as.prototype.END_DOLLAR_QUOTED_STRING_action=function(t,e){1===e&&this.tags.pop()},as.prototype.END_DOLLAR_QUOTED_STRING_sempred=function(t,e){if(0===e)return this.tags[0]===this.text};class nc extends Error{constructor(t,e,i,r){super(e),s(this,"name","ParseError"),this.query=t,this.msg=e,this.offendingToken=i,this.line=this.getLine(),this.column=this.getColumn(),this.errorMessage=this._getErrorMessage(),this.errorMessageVerbose=this.getOriginalQueryWithErrorMarked()}_getErrorMessage(){return`[line ${this.line}:${this.column} ${this.message}]`}getColumn(){return this.offendingToken.column}getLine(){return this.offendingToken.line}getOriginalQueryWithErrorMarked(){const t=this.offendingToken.source[1].strdata,e=t.substring(this.offendingToken.start,this.offendingToken.stop+1),s=t.split("\n"),i=s[this.getLine()-1],r=i.indexOf(e),n=i+"\n"+(" ".repeat(r)+"^".repeat(this.offendingToken.stop-this.offendingToken.start+1));return s[this.line-1]=n,s.join("\n")}}class ac extends Je{LA(t){const e=super.LA(t);return e<=0||e===es.EOF?e:String.fromCharCode(e).toUpperCase().charCodeAt(0)}}class hc extends je{constructor(){super(...arguments),s(this,"errors",[])}syntaxError(t,e,s,i,r,n){throw new nc(n.ctx.parser.getTokenStream().getText(new $e(n.ctx.start,n.offendingToken.tokenIndex)),r,e,n)}}class cc extends je{constructor(){super(),this.errors=[]}syntaxError(t,e,s,i,r,n){let a;if(super.syntaxError(t,e,s,i,r,n),n)a=n.ctx.parser.getTokenStream().getText(new $e(n.ctx.start,n.offendingToken.tokenIndex));else{const s=Math.max(1,e.tokenIndex-2);a=t.getTokenStream().tokens.slice(s,e.tokenIndex).map((t=>t.text)).join("")}const h=new nc(a,r,e,n);this.errors.push(h)}}class oc{constructor(t,e){this.query=t.parser.getTokenStream().getText(new $e(t.start.tokenIndex,t.stop.tokenIndex)),this.originalQuery=t.parser.getTokenStream().getText(),this.tree=t.toStringTree(null,t.parser),this.type=t.start.text,this.ctx=t,this.exception=e||null,this.metadata=new ec}}function lc(t,e){for(const s of e){let i=s.query;i.endsWith(";")&&(i=i.substring(0,i.length-1)),i=i.trimStart().trimEnd(),t.query.includes(i)&&(t.exception=s,e.splice(e.indexOf(s),1))}}t.Statement=oc,t.__cratedb_version__="5.8.3",t.sqlparse=function(t,e=!1){const s=new ac(t),i=new as(s);i.removeErrorListeners();const r=new Ze(i),n=new ds(r);n.removeErrorListeners();const a=e?new hc:new cc;n.addErrorListener(a);const h=n.statements().children.filter((t=>t instanceof ds.StatementContext));let c=[];for(const l of h){let t=new oc(l);1===h.length&&a.errors?t.exception=a.errors.pop():lc(t,a.errors),c.push(t)}if(1===a.errors.length){let t=a.errors[0];for(const e of c)if(null===e.exception&&e.query.includes(t.query)){e.exception=t;break}}a.errors.length>1&&console.error("Could not match errors to queries, too much ambiguity, please report it opening an issue with the query.");const o=new rc;for(const l of c)o.enrich(l);return c},Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));