@graffiticode/l0179-view 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4598 @@
1
+ //#region ../../node_modules/decimal.js/decimal.mjs
2
+ var e = 9e15, t = 1e9, n = "0123456789abcdef", r = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058", i = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789", a = {
3
+ precision: 20,
4
+ rounding: 4,
5
+ modulo: 1,
6
+ toExpNeg: -7,
7
+ toExpPos: 21,
8
+ minE: -e,
9
+ maxE: e,
10
+ crypto: !1
11
+ }, o, s, c = !0, l = "[DecimalError] ", u = l + "Invalid argument: ", d = l + "Precision limit exceeded", f = l + "crypto unavailable", p = "[object Decimal]", m = Math.floor, h = Math.pow, g = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i, _ = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i, v = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i, y = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, b = 1e7, x = 7, S = 9007199254740991, C = r.length - 1, w = i.length - 1, T = { toStringTag: p };
12
+ T.absoluteValue = T.abs = function() {
13
+ var e = new this.constructor(this);
14
+ return e.s < 0 && (e.s = 1), j(e);
15
+ }, T.ceil = function() {
16
+ return j(new this.constructor(this), this.e + 1, 2);
17
+ }, T.clampedTo = T.clamp = function(e, t) {
18
+ var n, r = this, i = r.constructor;
19
+ if (e = new i(e), t = new i(t), !e.s || !t.s) return new i(NaN);
20
+ if (e.gt(t)) throw Error(u + t);
21
+ return n = r.cmp(e), n < 0 ? e : r.cmp(t) > 0 ? t : new i(r);
22
+ }, T.comparedTo = T.cmp = function(e) {
23
+ var t, n, r, i, a = this, o = a.d, s = (e = new a.constructor(e)).d, c = a.s, l = e.s;
24
+ if (!o || !s) return !c || !l ? NaN : c === l ? o === s ? 0 : !o ^ c < 0 ? 1 : -1 : c;
25
+ if (!o[0] || !s[0]) return o[0] ? c : s[0] ? -l : 0;
26
+ if (c !== l) return c;
27
+ if (a.e !== e.e) return a.e > e.e ^ c < 0 ? 1 : -1;
28
+ for (r = o.length, i = s.length, t = 0, n = r < i ? r : i; t < n; ++t) if (o[t] !== s[t]) return o[t] > s[t] ^ c < 0 ? 1 : -1;
29
+ return r === i ? 0 : r > i ^ c < 0 ? 1 : -1;
30
+ }, T.cosine = T.cos = function() {
31
+ var e, t, n = this, r = n.constructor;
32
+ return n.d ? n.d[0] ? (e = r.precision, t = r.rounding, r.precision = e + Math.max(n.e, n.sd()) + x, r.rounding = 1, n = k(r, ue(r, n)), r.precision = e, r.rounding = t, j(s == 2 || s == 3 ? n.neg() : n, e, t, !0)) : new r(1) : new r(NaN);
33
+ }, T.cubeRoot = T.cbrt = function() {
34
+ var e, t, n, r, i, a, o, s, l, u, d = this, f = d.constructor;
35
+ if (!d.isFinite() || d.isZero()) return new f(d);
36
+ for (c = !1, a = d.s * h(d.s * d, 1 / 3), !a || Math.abs(a) == 1 / 0 ? (n = E(d.d), e = d.e, (a = (e - n.length + 1) % 3) && (n += a == 1 || a == -2 ? "0" : "00"), a = h(n, 1 / 3), e = m((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2)), a == 1 / 0 ? n = "5e" + e : (n = a.toExponential(), n = n.slice(0, n.indexOf("e") + 1) + e), r = new f(n), r.s = d.s) : r = new f(a.toString()), o = (e = f.precision) + 3;;) if (s = r, l = s.times(s).times(s), u = l.plus(d), r = A(u.plus(d).times(s), u.plus(l), o + 2, 1), E(s.d).slice(0, o) === (n = E(r.d)).slice(0, o)) {
37
+ if (n = n.slice(o - 3, o + 1), n == "9999" || !i && n == "4999") {
38
+ if (!i && (j(s, e + 1, 0), s.times(s).times(s).eq(d))) {
39
+ r = s;
40
+ break;
41
+ }
42
+ o += 4, i = 1;
43
+ } else {
44
+ (!+n || !+n.slice(1) && n.charAt(0) == "5") && (j(r, e + 1, 1), t = !r.times(r).times(r).eq(d));
45
+ break;
46
+ }
47
+ }
48
+ return c = !0, j(r, e, f.rounding, t);
49
+ }, T.decimalPlaces = T.dp = function() {
50
+ var e, t = this.d, n = NaN;
51
+ if (t) {
52
+ if (e = t.length - 1, n = (e - m(this.e / x)) * x, e = t[e], e) for (; e % 10 == 0; e /= 10) n--;
53
+ n < 0 && (n = 0);
54
+ }
55
+ return n;
56
+ }, T.dividedBy = T.div = function(e) {
57
+ return A(this, new this.constructor(e));
58
+ }, T.dividedToIntegerBy = T.divToInt = function(e) {
59
+ var t = this, n = t.constructor;
60
+ return j(A(t, new n(e), 0, 1, 1), n.precision, n.rounding);
61
+ }, T.equals = T.eq = function(e) {
62
+ return this.cmp(e) === 0;
63
+ }, T.floor = function() {
64
+ return j(new this.constructor(this), this.e + 1, 3);
65
+ }, T.greaterThan = T.gt = function(e) {
66
+ return this.cmp(e) > 0;
67
+ }, T.greaterThanOrEqualTo = T.gte = function(e) {
68
+ var t = this.cmp(e);
69
+ return t == 1 || t === 0;
70
+ }, T.hyperbolicCosine = T.cosh = function() {
71
+ var e, t, n, r, i, a = this, o = a.constructor, s = new o(1);
72
+ if (!a.isFinite()) return new o(a.s ? 1 / 0 : NaN);
73
+ if (a.isZero()) return s;
74
+ n = o.precision, r = o.rounding, o.precision = n + Math.max(a.e, a.sd()) + 4, o.rounding = 1, i = a.d.length, i < 32 ? (e = Math.ceil(i / 3), t = (1 / le(4, e)).toString()) : (e = 16, t = "2.3283064365386962890625e-10"), a = z(o, 1, a.times(t), new o(1), !0);
75
+ for (var c, l = e, u = new o(8); l--;) c = a.times(a), a = s.minus(c.times(u.minus(c.times(u))));
76
+ return j(a, o.precision = n, o.rounding = r, !0);
77
+ }, T.hyperbolicSine = T.sinh = function() {
78
+ var e, t, n, r, i = this, a = i.constructor;
79
+ if (!i.isFinite() || i.isZero()) return new a(i);
80
+ if (t = a.precision, n = a.rounding, a.precision = t + Math.max(i.e, i.sd()) + 4, a.rounding = 1, r = i.d.length, r < 3) i = z(a, 2, i, i, !0);
81
+ else {
82
+ e = 1.4 * Math.sqrt(r), e = e > 16 ? 16 : e | 0, i = i.times(1 / le(5, e)), i = z(a, 2, i, i, !0);
83
+ for (var o, s = new a(5), c = new a(16), l = new a(20); e--;) o = i.times(i), i = i.times(s.plus(o.times(c.times(o).plus(l))));
84
+ }
85
+ return a.precision = t, a.rounding = n, j(i, t, n, !0);
86
+ }, T.hyperbolicTangent = T.tanh = function() {
87
+ var e, t, n = this, r = n.constructor;
88
+ return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 7, r.rounding = 1, A(n.sinh(), n.cosh(), r.precision = e, r.rounding = t)) : new r(n.s);
89
+ }, T.inverseCosine = T.acos = function() {
90
+ var e = this, t = e.constructor, n = e.abs().cmp(1), r = t.precision, i = t.rounding;
91
+ return n === -1 ? e.isZero() ? P(t, r + 4, i).times(.5) : (t.precision = r + 6, t.rounding = 1, e = new t(1).minus(e).div(e.plus(1)).sqrt().atan(), t.precision = r, t.rounding = i, e.times(2)) : n === 0 ? e.isNeg() ? P(t, r, i) : new t(0) : new t(NaN);
92
+ }, T.inverseHyperbolicCosine = T.acosh = function() {
93
+ var e, t, n = this, r = n.constructor;
94
+ return n.lte(1) ? new r(n.eq(1) ? 0 : NaN) : n.isFinite() ? (e = r.precision, t = r.rounding, r.precision = e + Math.max(Math.abs(n.e), n.sd()) + 4, r.rounding = 1, c = !1, n = n.times(n).minus(1).sqrt().plus(n), c = !0, r.precision = e, r.rounding = t, n.ln()) : new r(n);
95
+ }, T.inverseHyperbolicSine = T.asinh = function() {
96
+ var e, t, n = this, r = n.constructor;
97
+ return !n.isFinite() || n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 2 * Math.max(Math.abs(n.e), n.sd()) + 6, r.rounding = 1, c = !1, n = n.times(n).plus(1).sqrt().plus(n), c = !0, r.precision = e, r.rounding = t, n.ln());
98
+ }, T.inverseHyperbolicTangent = T.atanh = function() {
99
+ var e, t, n, r, i = this, a = i.constructor;
100
+ return i.isFinite() ? i.e >= 0 ? new a(i.abs().eq(1) ? i.s / 0 : i.isZero() ? i : NaN) : (e = a.precision, t = a.rounding, r = i.sd(), Math.max(r, e) < 2 * -i.e - 1 ? j(new a(i), e, t, !0) : (a.precision = n = r - i.e, i = A(i.plus(1), new a(1).minus(i), n + e, 1), a.precision = e + 4, a.rounding = 1, i = i.ln(), a.precision = e, a.rounding = t, i.times(.5))) : new a(NaN);
101
+ }, T.inverseSine = T.asin = function() {
102
+ var e, t, n, r, i = this, a = i.constructor;
103
+ return i.isZero() ? new a(i) : (t = i.abs().cmp(1), n = a.precision, r = a.rounding, t === -1 ? (a.precision = n + 6, a.rounding = 1, i = i.div(new a(1).minus(i.times(i)).sqrt().plus(1)).atan(), a.precision = n, a.rounding = r, i.times(2)) : t === 0 ? (e = P(a, n + 4, r).times(.5), e.s = i.s, e) : new a(NaN));
104
+ }, T.inverseTangent = T.atan = function() {
105
+ var e, t, n, r, i, a, o, s, l, u = this, d = u.constructor, f = d.precision, p = d.rounding;
106
+ if (!u.isFinite()) {
107
+ if (!u.s) return new d(NaN);
108
+ if (f + 4 <= w) return o = P(d, f + 4, p).times(.5), o.s = u.s, o;
109
+ } else if (u.isZero()) return new d(u);
110
+ else if (u.abs().eq(1) && f + 4 <= w) return o = P(d, f + 4, p).times(.25), o.s = u.s, o;
111
+ for (d.precision = s = f + 10, d.rounding = 1, n = Math.min(28, s / x + 2 | 0), e = n; e; --e) u = u.div(u.times(u).plus(1).sqrt().plus(1));
112
+ for (c = !1, t = Math.ceil(s / x), r = 1, l = u.times(u), o = new d(u), i = u; e !== -1;) if (i = i.times(l), a = o.minus(i.div(r += 2)), i = i.times(l), o = a.plus(i.div(r += 2)), o.d[t] !== void 0) for (e = t; o.d[e] === a.d[e] && e--;);
113
+ return n && (o = o.times(2 << n - 1)), c = !0, j(o, d.precision = f, d.rounding = p, !0);
114
+ }, T.isFinite = function() {
115
+ return !!this.d;
116
+ }, T.isInteger = T.isInt = function() {
117
+ return !!this.d && m(this.e / x) > this.d.length - 2;
118
+ }, T.isNaN = function() {
119
+ return !this.s;
120
+ }, T.isNegative = T.isNeg = function() {
121
+ return this.s < 0;
122
+ }, T.isPositive = T.isPos = function() {
123
+ return this.s > 0;
124
+ }, T.isZero = function() {
125
+ return !!this.d && this.d[0] === 0;
126
+ }, T.lessThan = T.lt = function(e) {
127
+ return this.cmp(e) < 0;
128
+ }, T.lessThanOrEqualTo = T.lte = function(e) {
129
+ return this.cmp(e) < 1;
130
+ }, T.logarithm = T.log = function(e) {
131
+ var t, n, r, i, a, o, s, l, u = this, d = u.constructor, f = d.precision, p = d.rounding, m = 5;
132
+ if (e == null) e = new d(10), t = !0;
133
+ else {
134
+ if (e = new d(e), n = e.d, e.s < 0 || !n || !n[0] || e.eq(1)) return new d(NaN);
135
+ t = e.eq(10);
136
+ }
137
+ if (n = u.d, u.s < 0 || !n || !n[0] || u.eq(1)) return new d(n && !n[0] ? -1 / 0 : u.s == 1 ? n ? 0 : 1 / 0 : NaN);
138
+ if (t) {
139
+ if (n.length > 1) a = !0;
140
+ else {
141
+ for (i = n[0]; i % 10 == 0;) i /= 10;
142
+ a = i !== 1;
143
+ }
144
+ }
145
+ if (c = !1, s = f + m, o = L(u, s), r = t ? te(d, s + 10) : L(e, s), l = A(o, r, s, 1), O(l.d, i = f, p)) do
146
+ if (s += 10, o = L(u, s), r = t ? te(d, s + 10) : L(e, s), l = A(o, r, s, 1), !a) {
147
+ +E(l.d).slice(i + 1, i + 15) + 1 == 0x5af3107a4000 && (l = j(l, f + 1, 0));
148
+ break;
149
+ }
150
+ while (O(l.d, i += 10, p));
151
+ return c = !0, j(l, f, p);
152
+ }, T.minus = T.sub = function(e) {
153
+ var t, n, r, i, a, o, s, l, u, d, f, p, h = this, g = h.constructor;
154
+ if (e = new g(e), !h.d || !e.d) return !h.s || !e.s ? e = new g(NaN) : h.d ? e.s = -e.s : e = new g(e.d || h.s !== e.s ? h : NaN), e;
155
+ if (h.s != e.s) return e.s = -e.s, h.plus(e);
156
+ if (u = h.d, p = e.d, s = g.precision, l = g.rounding, !u[0] || !p[0]) {
157
+ if (p[0]) e.s = -e.s;
158
+ else if (u[0]) e = new g(h);
159
+ else return new g(l === 3 ? -0 : 0);
160
+ return c ? j(e, s, l) : e;
161
+ }
162
+ if (n = m(e.e / x), d = m(h.e / x), u = u.slice(), a = d - n, a) {
163
+ for (f = a < 0, f ? (t = u, a = -a, o = p.length) : (t = p, n = d, o = u.length), r = Math.max(Math.ceil(s / x), o) + 2, a > r && (a = r, t.length = 1), t.reverse(), r = a; r--;) t.push(0);
164
+ t.reverse();
165
+ } else {
166
+ for (r = u.length, o = p.length, f = r < o, f && (o = r), r = 0; r < o; r++) if (u[r] != p[r]) {
167
+ f = u[r] < p[r];
168
+ break;
169
+ }
170
+ a = 0;
171
+ }
172
+ for (f && (t = u, u = p, p = t, e.s = -e.s), o = u.length, r = p.length - o; r > 0; --r) u[o++] = 0;
173
+ for (r = p.length; r > a;) {
174
+ if (u[--r] < p[r]) {
175
+ for (i = r; i && u[--i] === 0;) u[i] = b - 1;
176
+ --u[i], u[r] += b;
177
+ }
178
+ u[r] -= p[r];
179
+ }
180
+ for (; u[--o] === 0;) u.pop();
181
+ for (; u[0] === 0; u.shift()) --n;
182
+ return u[0] ? (e.d = u, e.e = N(u, n), c ? j(e, s, l) : e) : new g(l === 3 ? -0 : 0);
183
+ }, T.modulo = T.mod = function(e) {
184
+ var t, n = this, r = n.constructor;
185
+ return e = new r(e), !n.d || !e.s || e.d && !e.d[0] ? new r(NaN) : !e.d || n.d && !n.d[0] ? j(new r(n), r.precision, r.rounding) : (c = !1, r.modulo == 9 ? (t = A(n, e.abs(), 0, 3, 1), t.s *= e.s) : t = A(n, e, 0, r.modulo, 1), t = t.times(e), c = !0, n.minus(t));
186
+ }, T.naturalExponential = T.exp = function() {
187
+ return ae(this);
188
+ }, T.naturalLogarithm = T.ln = function() {
189
+ return L(this);
190
+ }, T.negated = T.neg = function() {
191
+ var e = new this.constructor(this);
192
+ return e.s = -e.s, j(e);
193
+ }, T.plus = T.add = function(e) {
194
+ var t, n, r, i, a, o, s, l, u, d, f = this, p = f.constructor;
195
+ if (e = new p(e), !f.d || !e.d) return !f.s || !e.s ? e = new p(NaN) : f.d || (e = new p(e.d || f.s === e.s ? f : NaN)), e;
196
+ if (f.s != e.s) return e.s = -e.s, f.minus(e);
197
+ if (u = f.d, d = e.d, s = p.precision, l = p.rounding, !u[0] || !d[0]) return d[0] || (e = new p(f)), c ? j(e, s, l) : e;
198
+ if (a = m(f.e / x), r = m(e.e / x), u = u.slice(), i = a - r, i) {
199
+ for (i < 0 ? (n = u, i = -i, o = d.length) : (n = d, r = a, o = u.length), a = Math.ceil(s / x), o = a > o ? a + 1 : o + 1, i > o && (i = o, n.length = 1), n.reverse(); i--;) n.push(0);
200
+ n.reverse();
201
+ }
202
+ for (o = u.length, i = d.length, o - i < 0 && (i = o, n = d, d = u, u = n), t = 0; i;) t = (u[--i] = u[i] + d[i] + t) / b | 0, u[i] %= b;
203
+ for (t && (u.unshift(t), ++r), o = u.length; u[--o] == 0;) u.pop();
204
+ return e.d = u, e.e = N(u, r), c ? j(e, s, l) : e;
205
+ }, T.precision = T.sd = function(e) {
206
+ var t, n = this;
207
+ if (e !== void 0 && e !== !!e && e !== 1 && e !== 0) throw Error(u + e);
208
+ return n.d ? (t = F(n.d), e && n.e + 1 > t && (t = n.e + 1)) : t = NaN, t;
209
+ }, T.round = function() {
210
+ var e = this, t = e.constructor;
211
+ return j(new t(e), e.e + 1, t.rounding);
212
+ }, T.sine = T.sin = function() {
213
+ var e, t, n = this, r = n.constructor;
214
+ return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + Math.max(n.e, n.sd()) + x, r.rounding = 1, n = ce(r, ue(r, n)), r.precision = e, r.rounding = t, j(s > 2 ? n.neg() : n, e, t, !0)) : new r(NaN);
215
+ }, T.squareRoot = T.sqrt = function() {
216
+ var e, t, n, r, i, a, o = this, s = o.d, l = o.e, u = o.s, d = o.constructor;
217
+ if (u !== 1 || !s || !s[0]) return new d(!u || u < 0 && (!s || s[0]) ? NaN : s ? o : 1 / 0);
218
+ for (c = !1, u = Math.sqrt(+o), u == 0 || u == 1 / 0 ? (t = E(s), (t.length + l) % 2 == 0 && (t += "0"), u = Math.sqrt(t), l = m((l + 1) / 2) - (l < 0 || l % 2), u == 1 / 0 ? t = "5e" + l : (t = u.toExponential(), t = t.slice(0, t.indexOf("e") + 1) + l), r = new d(t)) : r = new d(u.toString()), n = (l = d.precision) + 3;;) if (a = r, r = a.plus(A(o, a, n + 2, 1)).times(.5), E(a.d).slice(0, n) === (t = E(r.d)).slice(0, n)) {
219
+ if (t = t.slice(n - 3, n + 1), t == "9999" || !i && t == "4999") {
220
+ if (!i && (j(a, l + 1, 0), a.times(a).eq(o))) {
221
+ r = a;
222
+ break;
223
+ }
224
+ n += 4, i = 1;
225
+ } else {
226
+ (!+t || !+t.slice(1) && t.charAt(0) == "5") && (j(r, l + 1, 1), e = !r.times(r).eq(o));
227
+ break;
228
+ }
229
+ }
230
+ return c = !0, j(r, l, d.rounding, e);
231
+ }, T.tangent = T.tan = function() {
232
+ var e, t, n = this, r = n.constructor;
233
+ return n.isFinite() ? n.isZero() ? new r(n) : (e = r.precision, t = r.rounding, r.precision = e + 10, r.rounding = 1, n = n.sin(), n.s = 1, n = A(n, new r(1).minus(n.times(n)).sqrt(), e + 10, 0), r.precision = e, r.rounding = t, j(s == 2 || s == 4 ? n.neg() : n, e, t, !0)) : new r(NaN);
234
+ }, T.times = T.mul = function(e) {
235
+ var t, n, r, i, a, o, s, l, u, d = this, f = d.constructor, p = d.d, h = (e = new f(e)).d;
236
+ if (e.s *= d.s, !p || !p[0] || !h || !h[0]) return new f(!e.s || p && !p[0] && !h || h && !h[0] && !p ? NaN : !p || !h ? e.s / 0 : e.s * 0);
237
+ for (n = m(d.e / x) + m(e.e / x), l = p.length, u = h.length, l < u && (a = p, p = h, h = a, o = l, l = u, u = o), a = [], o = l + u, r = o; r--;) a.push(0);
238
+ for (r = u; --r >= 0;) {
239
+ for (t = 0, i = l + r; i > r;) s = a[i] + h[r] * p[i - r - 1] + t, a[i--] = s % b | 0, t = s / b | 0;
240
+ a[i] = (a[i] + t) % b | 0;
241
+ }
242
+ for (; !a[--o];) a.pop();
243
+ return t ? ++n : a.shift(), e.d = a, e.e = N(a, n), c ? j(e, f.precision, f.rounding) : e;
244
+ }, T.toBinary = function(e, t) {
245
+ return de(this, 2, e, t);
246
+ }, T.toDecimalPlaces = T.toDP = function(e, n) {
247
+ var r = this, i = r.constructor;
248
+ return r = new i(r), e === void 0 ? r : (D(e, 0, t), n === void 0 ? n = i.rounding : D(n, 0, 8), j(r, e + r.e + 1, n));
249
+ }, T.toExponential = function(e, n) {
250
+ var r, i = this, a = i.constructor;
251
+ return e === void 0 ? r = M(i, !0) : (D(e, 0, t), n === void 0 ? n = a.rounding : D(n, 0, 8), i = j(new a(i), e + 1, n), r = M(i, !0, e + 1)), i.isNeg() && !i.isZero() ? "-" + r : r;
252
+ }, T.toFixed = function(e, n) {
253
+ var r, i, a = this, o = a.constructor;
254
+ return e === void 0 ? r = M(a) : (D(e, 0, t), n === void 0 ? n = o.rounding : D(n, 0, 8), i = j(new o(a), e + a.e + 1, n), r = M(i, !1, e + i.e + 1)), a.isNeg() && !a.isZero() ? "-" + r : r;
255
+ }, T.toFraction = function(e) {
256
+ var t, n, r, i, a, o, s, l, d, f, p, m, g = this, _ = g.d, v = g.constructor;
257
+ if (!_) return new v(g);
258
+ if (d = n = new v(1), r = l = new v(0), t = new v(r), a = t.e = F(_) - g.e - 1, o = a % x, t.d[0] = h(10, o < 0 ? x + o : o), e == null) e = a > 0 ? t : d;
259
+ else {
260
+ if (s = new v(e), !s.isInt() || s.lt(d)) throw Error(u + s);
261
+ e = s.gt(t) ? a > 0 ? t : d : s;
262
+ }
263
+ for (c = !1, s = new v(E(_)), f = v.precision, v.precision = a = _.length * x * 2; p = A(s, t, 0, 1, 1), i = n.plus(p.times(r)), i.cmp(e) != 1;) n = r, r = i, i = d, d = l.plus(p.times(i)), l = i, i = t, t = s.minus(p.times(i)), s = i;
264
+ return i = A(e.minus(n), r, 0, 1, 1), l = l.plus(i.times(d)), n = n.plus(i.times(r)), l.s = d.s = g.s, m = A(d, r, a, 1).minus(g).abs().cmp(A(l, n, a, 1).minus(g).abs()) < 1 ? [d, r] : [l, n], v.precision = f, c = !0, m;
265
+ }, T.toHexadecimal = T.toHex = function(e, t) {
266
+ return de(this, 16, e, t);
267
+ }, T.toNearest = function(e, t) {
268
+ var n = this, r = n.constructor;
269
+ if (n = new r(n), e == null) {
270
+ if (!n.d) return n;
271
+ e = new r(1), t = r.rounding;
272
+ } else {
273
+ if (e = new r(e), t === void 0 ? t = r.rounding : D(t, 0, 8), !n.d) return e.s ? n : e;
274
+ if (!e.d) return e.s && (e.s = n.s), e;
275
+ }
276
+ return e.d[0] ? (c = !1, n = A(n, e, 0, t, 1).times(e), c = !0, j(n)) : (e.s = n.s, n = e), n;
277
+ }, T.toNumber = function() {
278
+ return +this;
279
+ }, T.toOctal = function(e, t) {
280
+ return de(this, 8, e, t);
281
+ }, T.toPower = T.pow = function(e) {
282
+ var t, n, r, i, a, o, s = this, l = s.constructor, u = +(e = new l(e));
283
+ if (!s.d || !e.d || !s.d[0] || !e.d[0]) return new l(h(+s, u));
284
+ if (s = new l(s), s.eq(1)) return s;
285
+ if (r = l.precision, a = l.rounding, e.eq(1)) return j(s, r, a);
286
+ if (t = m(e.e / x), t >= e.d.length - 1 && (n = u < 0 ? -u : u) <= S) return i = I(l, s, n, r), e.s < 0 ? new l(1).div(i) : j(i, r, a);
287
+ if (o = s.s, o < 0) {
288
+ if (t < e.d.length - 1) return new l(NaN);
289
+ if (e.d[t] & 1 || (o = 1), s.e == 0 && s.d[0] == 1 && s.d.length == 1) return s.s = o, s;
290
+ }
291
+ return n = h(+s, u), t = n == 0 || !isFinite(n) ? m(u * (Math.log("0." + E(s.d)) / Math.LN10 + s.e + 1)) : new l(n + "").e, t > l.maxE + 1 || t < l.minE - 1 ? new l(t > 0 ? o / 0 : 0) : (c = !1, l.rounding = s.s = 1, n = Math.min(12, (t + "").length), i = ae(e.times(L(s, r + n)), r), i.d && (i = j(i, r + 5, 1), O(i.d, r, a) && (t = r + 10, i = j(ae(e.times(L(s, t + n)), t), t + 5, 1), +E(i.d).slice(r + 1, r + 15) + 1 == 0x5af3107a4000 && (i = j(i, r + 1, 0)))), i.s = o, c = !0, l.rounding = a, j(i, r, a));
292
+ }, T.toPrecision = function(e, n) {
293
+ var r, i = this, a = i.constructor;
294
+ return e === void 0 ? r = M(i, i.e <= a.toExpNeg || i.e >= a.toExpPos) : (D(e, 1, t), n === void 0 ? n = a.rounding : D(n, 0, 8), i = j(new a(i), e, n), r = M(i, e <= i.e || i.e <= a.toExpNeg, e)), i.isNeg() && !i.isZero() ? "-" + r : r;
295
+ }, T.toSignificantDigits = T.toSD = function(e, n) {
296
+ var r = this, i = r.constructor;
297
+ return e === void 0 ? (e = i.precision, n = i.rounding) : (D(e, 1, t), n === void 0 ? n = i.rounding : D(n, 0, 8)), j(new i(r), e, n);
298
+ }, T.toString = function() {
299
+ var e = this, t = e.constructor, n = M(e, e.e <= t.toExpNeg || e.e >= t.toExpPos);
300
+ return e.isNeg() && !e.isZero() ? "-" + n : n;
301
+ }, T.truncated = T.trunc = function() {
302
+ return j(new this.constructor(this), this.e + 1, 1);
303
+ }, T.valueOf = T.toJSON = function() {
304
+ var e = this, t = e.constructor, n = M(e, e.e <= t.toExpNeg || e.e >= t.toExpPos);
305
+ return e.isNeg() ? "-" + n : n;
306
+ };
307
+ function E(e) {
308
+ var t, n, r, i = e.length - 1, a = "", o = e[0];
309
+ if (i > 0) {
310
+ for (a += o, t = 1; t < i; t++) r = e[t] + "", n = x - r.length, n && (a += ne(n)), a += r;
311
+ o = e[t], r = o + "", n = x - r.length, n && (a += ne(n));
312
+ } else if (o === 0) return "0";
313
+ for (; o % 10 == 0;) o /= 10;
314
+ return a + o;
315
+ }
316
+ function D(e, t, n) {
317
+ if (e !== ~~e || e < t || e > n) throw Error(u + e);
318
+ }
319
+ function O(e, t, n, r) {
320
+ for (var i, a = e[0], o, s; a >= 10; a /= 10) --t;
321
+ return --t < 0 ? (t += x, i = 0) : (i = Math.ceil((t + 1) / x), t %= x), a = h(10, x - t), s = e[i] % a | 0, r == null ? t < 3 ? (t == 0 ? s = s / 100 | 0 : t == 1 && (s = s / 10 | 0), o = n < 4 && s == 99999 || n > 3 && s == 49999 || s == 5e4 || s == 0) : o = (n < 4 && s + 1 == a || n > 3 && s + 1 == a / 2) && (e[i + 1] / a / 100 | 0) == h(10, t - 2) - 1 || (s == a / 2 || s == 0) && !(e[i + 1] / a / 100 | 0) : t < 4 ? (t == 0 ? s = s / 1e3 | 0 : t == 1 ? s = s / 100 | 0 : t == 2 && (s = s / 10 | 0), o = (r || n < 4) && s == 9999 || !r && n > 3 && s == 4999) : o = ((r || n < 4) && s + 1 == a || !r && n > 3 && s + 1 == a / 2) && (e[i + 1] / a / 1e3 | 0) == h(10, t - 3) - 1, o;
322
+ }
323
+ function ee(e, t, r) {
324
+ for (var i, a = [0], o, s = 0, c = e.length; s < c;) {
325
+ for (o = a.length; o--;) a[o] *= t;
326
+ for (a[0] += n.indexOf(e.charAt(s++)), i = 0; i < a.length; i++) a[i] > r - 1 && (a[i + 1] === void 0 && (a[i + 1] = 0), a[i + 1] += a[i] / r | 0, a[i] %= r);
327
+ }
328
+ return a.reverse();
329
+ }
330
+ function k(e, t) {
331
+ var n, r, i;
332
+ if (t.isZero()) return t;
333
+ r = t.d.length, r < 32 ? (n = Math.ceil(r / 3), i = (1 / le(4, n)).toString()) : (n = 16, i = "2.3283064365386962890625e-10"), e.precision += n, t = z(e, 1, t.times(i), new e(1));
334
+ for (var a = n; a--;) {
335
+ var o = t.times(t);
336
+ t = o.times(o).minus(o).times(8).plus(1);
337
+ }
338
+ return e.precision -= n, t;
339
+ }
340
+ var A = (function() {
341
+ function e(e, t, n) {
342
+ var r, i = 0, a = e.length;
343
+ for (e = e.slice(); a--;) r = e[a] * t + i, e[a] = r % n | 0, i = r / n | 0;
344
+ return i && e.unshift(i), e;
345
+ }
346
+ function t(e, t, n, r) {
347
+ var i, a;
348
+ if (n != r) a = n > r ? 1 : -1;
349
+ else for (i = a = 0; i < n; i++) if (e[i] != t[i]) {
350
+ a = e[i] > t[i] ? 1 : -1;
351
+ break;
352
+ }
353
+ return a;
354
+ }
355
+ function n(e, t, n, r) {
356
+ for (var i = 0; n--;) e[n] -= i, i = +(e[n] < t[n]), e[n] = i * r + e[n] - t[n];
357
+ for (; !e[0] && e.length > 1;) e.shift();
358
+ }
359
+ return function(r, i, a, s, c, l) {
360
+ var u, d, f, p, h, g, _, v, y, S, C, w, T, E, D, O, ee, k, A, M, N = r.constructor, te = r.s == i.s ? 1 : -1, P = r.d, F = i.d;
361
+ if (!P || !P[0] || !F || !F[0]) return new N(!r.s || !i.s || (P ? F && P[0] == F[0] : !F) ? NaN : P && P[0] == 0 || !F ? te * 0 : te / 0);
362
+ for (l ? (h = 1, d = r.e - i.e) : (l = b, h = x, d = m(r.e / h) - m(i.e / h)), A = F.length, ee = P.length, y = new N(te), S = y.d = [], f = 0; F[f] == (P[f] || 0); f++);
363
+ if (F[f] > (P[f] || 0) && d--, a == null ? (E = a = N.precision, s = N.rounding) : E = c ? a + (r.e - i.e) + 1 : a, E < 0) S.push(1), g = !0;
364
+ else {
365
+ if (E = E / h + 2 | 0, f = 0, A == 1) {
366
+ for (p = 0, F = F[0], E++; (f < ee || p) && E--; f++) D = p * l + (P[f] || 0), S[f] = D / F | 0, p = D % F | 0;
367
+ g = p || f < ee;
368
+ } else {
369
+ for (p = l / (F[0] + 1) | 0, p > 1 && (F = e(F, p, l), P = e(P, p, l), A = F.length, ee = P.length), O = A, C = P.slice(0, A), w = C.length; w < A;) C[w++] = 0;
370
+ M = F.slice(), M.unshift(0), k = F[0], F[1] >= l / 2 && ++k;
371
+ do
372
+ p = 0, u = t(F, C, A, w), u < 0 ? (T = C[0], A != w && (T = T * l + (C[1] || 0)), p = T / k | 0, p > 1 ? (p >= l && (p = l - 1), _ = e(F, p, l), v = _.length, w = C.length, u = t(_, C, v, w), u == 1 && (p--, n(_, A < v ? M : F, v, l))) : (p == 0 && (u = p = 1), _ = F.slice()), v = _.length, v < w && _.unshift(0), n(C, _, w, l), u == -1 && (w = C.length, u = t(F, C, A, w), u < 1 && (p++, n(C, A < w ? M : F, w, l))), w = C.length) : u === 0 && (p++, C = [0]), S[f++] = p, u && C[0] ? C[w++] = P[O] || 0 : (C = [P[O]], w = 1);
373
+ while ((O++ < ee || C[0] !== void 0) && E--);
374
+ g = C[0] !== void 0;
375
+ }
376
+ S[0] || S.shift();
377
+ }
378
+ if (h == 1) y.e = d, o = g;
379
+ else {
380
+ for (f = 1, p = S[0]; p >= 10; p /= 10) f++;
381
+ y.e = f + d * h - 1, j(y, c ? a + y.e + 1 : a, s, g);
382
+ }
383
+ return y;
384
+ };
385
+ })();
386
+ function j(e, t, n, r) {
387
+ var i, a, o, s, l, u, d, f, p, m = e.constructor;
388
+ out: if (t != null) {
389
+ if (f = e.d, !f) return e;
390
+ for (i = 1, s = f[0]; s >= 10; s /= 10) i++;
391
+ if (a = t - i, a < 0) a += x, o = t, d = f[p = 0], l = d / h(10, i - o - 1) % 10 | 0;
392
+ else if (p = Math.ceil((a + 1) / x), s = f.length, p >= s) {
393
+ if (r) {
394
+ for (; s++ <= p;) f.push(0);
395
+ d = l = 0, i = 1, a %= x, o = a - x + 1;
396
+ } else break out;
397
+ } else {
398
+ for (d = s = f[p], i = 1; s >= 10; s /= 10) i++;
399
+ a %= x, o = a - x + i, l = o < 0 ? 0 : d / h(10, i - o - 1) % 10 | 0;
400
+ }
401
+ if (r = r || t < 0 || f[p + 1] !== void 0 || (o < 0 ? d : d % h(10, i - o - 1)), u = n < 4 ? (l || r) && (n == 0 || n == (e.s < 0 ? 3 : 2)) : l > 5 || l == 5 && (n == 4 || r || n == 6 && (a > 0 ? o > 0 ? d / h(10, i - o) : 0 : f[p - 1]) % 10 & 1 || n == (e.s < 0 ? 8 : 7)), t < 1 || !f[0]) return f.length = 0, u ? (t -= e.e + 1, f[0] = h(10, (x - t % x) % x), e.e = -t || 0) : f[0] = e.e = 0, e;
402
+ if (a == 0 ? (f.length = p, s = 1, p--) : (f.length = p + 1, s = h(10, x - a), f[p] = o > 0 ? (d / h(10, i - o) % h(10, o) | 0) * s : 0), u) for (;;) if (p == 0) {
403
+ for (a = 1, o = f[0]; o >= 10; o /= 10) a++;
404
+ for (o = f[0] += s, s = 1; o >= 10; o /= 10) s++;
405
+ a != s && (e.e++, f[0] == b && (f[0] = 1));
406
+ break;
407
+ } else {
408
+ if (f[p] += s, f[p] != b) break;
409
+ f[p--] = 0, s = 1;
410
+ }
411
+ for (a = f.length; f[--a] === 0;) f.pop();
412
+ }
413
+ return c && (e.e > m.maxE ? (e.d = null, e.e = NaN) : e.e < m.minE && (e.e = 0, e.d = [0])), e;
414
+ }
415
+ function M(e, t, n) {
416
+ if (!e.isFinite()) return R(e);
417
+ var r, i = e.e, a = E(e.d), o = a.length;
418
+ return t ? (n && (r = n - o) > 0 ? a = a.charAt(0) + "." + a.slice(1) + ne(r) : o > 1 && (a = a.charAt(0) + "." + a.slice(1)), a = a + (e.e < 0 ? "e" : "e+") + e.e) : i < 0 ? (a = "0." + ne(-i - 1) + a, n && (r = n - o) > 0 && (a += ne(r))) : i >= o ? (a += ne(i + 1 - o), n && (r = n - i - 1) > 0 && (a = a + "." + ne(r))) : ((r = i + 1) < o && (a = a.slice(0, r) + "." + a.slice(r)), n && (r = n - o) > 0 && (i + 1 === o && (a += "."), a += ne(r))), a;
419
+ }
420
+ function N(e, t) {
421
+ var n = e[0];
422
+ for (t *= x; n >= 10; n /= 10) t++;
423
+ return t;
424
+ }
425
+ function te(e, t, n) {
426
+ if (t > C) throw c = !0, n && (e.precision = n), Error(d);
427
+ return j(new e(r), t, 1, !0);
428
+ }
429
+ function P(e, t, n) {
430
+ if (t > w) throw Error(d);
431
+ return j(new e(i), t, n, !0);
432
+ }
433
+ function F(e) {
434
+ var t = e.length - 1, n = t * x + 1;
435
+ if (t = e[t], t) {
436
+ for (; t % 10 == 0; t /= 10) n--;
437
+ for (t = e[0]; t >= 10; t /= 10) n++;
438
+ }
439
+ return n;
440
+ }
441
+ function ne(e) {
442
+ for (var t = ""; e--;) t += "0";
443
+ return t;
444
+ }
445
+ function I(e, t, n, r) {
446
+ var i, a = new e(1), o = Math.ceil(r / x + 4);
447
+ for (c = !1;;) {
448
+ if (n % 2 && (a = a.times(t), B(a.d, o) && (i = !0)), n = m(n / 2), n === 0) {
449
+ n = a.d.length - 1, i && a.d[n] === 0 && ++a.d[n];
450
+ break;
451
+ }
452
+ t = t.times(t), B(t.d, o);
453
+ }
454
+ return c = !0, a;
455
+ }
456
+ function re(e) {
457
+ return e.d[e.d.length - 1] & 1;
458
+ }
459
+ function ie(e, t, n) {
460
+ for (var r, i, a = new e(t[0]), o = 0; ++o < t.length;) {
461
+ if (i = new e(t[o]), !i.s) {
462
+ a = i;
463
+ break;
464
+ }
465
+ r = a.cmp(i), (r === n || r === 0 && a.s === n) && (a = i);
466
+ }
467
+ return a;
468
+ }
469
+ function ae(e, t) {
470
+ var n, r, i, a, o, s, l, u = 0, d = 0, f = 0, p = e.constructor, m = p.rounding, g = p.precision;
471
+ if (!e.d || !e.d[0] || e.e > 17) return new p(e.d ? e.d[0] ? e.s < 0 ? 0 : 1 / 0 : 1 : e.s ? e.s < 0 ? 0 : e : NaN);
472
+ for (t == null ? (c = !1, l = g) : l = t, s = new p(.03125); e.e > -2;) e = e.times(s), f += 5;
473
+ for (r = Math.log(h(2, f)) / Math.LN10 * 2 + 5 | 0, l += r, n = a = o = new p(1), p.precision = l;;) {
474
+ if (a = j(a.times(e), l, 1), n = n.times(++d), s = o.plus(A(a, n, l, 1)), E(s.d).slice(0, l) === E(o.d).slice(0, l)) {
475
+ for (i = f; i--;) o = j(o.times(o), l, 1);
476
+ if (t == null) {
477
+ if (u < 3 && O(o.d, l - r, m, u)) p.precision = l += 10, n = a = s = new p(1), d = 0, u++;
478
+ else return j(o, p.precision = g, m, c = !0);
479
+ } else return p.precision = g, o;
480
+ }
481
+ o = s;
482
+ }
483
+ }
484
+ function L(e, t) {
485
+ var n, r, i, a, o, s, l, u, d, f, p, m = 1, h = 10, g = e, _ = g.d, v = g.constructor, y = v.rounding, b = v.precision;
486
+ if (g.s < 0 || !_ || !_[0] || !g.e && _[0] == 1 && _.length == 1) return new v(_ && !_[0] ? -1 / 0 : g.s == 1 ? _ ? 0 : g : NaN);
487
+ if (t == null ? (c = !1, d = b) : d = t, v.precision = d += h, n = E(_), r = n.charAt(0), Math.abs(a = g.e) < 0x5543df729c000) {
488
+ for (; r < 7 && r != 1 || r == 1 && n.charAt(1) > 3;) g = g.times(e), n = E(g.d), r = n.charAt(0), m++;
489
+ a = g.e, r > 1 ? (g = new v("0." + n), a++) : g = new v(r + "." + n.slice(1));
490
+ } else return u = te(v, d + 2, b).times(a + ""), g = L(new v(r + "." + n.slice(1)), d - h).plus(u), v.precision = b, t == null ? j(g, b, y, c = !0) : g;
491
+ for (f = g, l = o = g = A(g.minus(1), g.plus(1), d, 1), p = j(g.times(g), d, 1), i = 3;;) {
492
+ if (o = j(o.times(p), d, 1), u = l.plus(A(o, new v(i), d, 1)), E(u.d).slice(0, d) === E(l.d).slice(0, d)) {
493
+ if (l = l.times(2), a !== 0 && (l = l.plus(te(v, d + 2, b).times(a + ""))), l = A(l, new v(m), d, 1), t == null) {
494
+ if (O(l.d, d - h, y, s)) v.precision = d += h, u = o = g = A(f.minus(1), f.plus(1), d, 1), p = j(g.times(g), d, 1), i = s = 1;
495
+ else return j(l, v.precision = b, y, c = !0);
496
+ } else return v.precision = b, l;
497
+ }
498
+ l = u, i += 2;
499
+ }
500
+ }
501
+ function R(e) {
502
+ return String(e.s * e.s / 0);
503
+ }
504
+ function oe(e, t) {
505
+ var n, r, i;
506
+ for ((n = t.indexOf(".")) > -1 && (t = t.replace(".", "")), (r = t.search(/e/i)) > 0 ? (n < 0 && (n = r), n += +t.slice(r + 1), t = t.substring(0, r)) : n < 0 && (n = t.length), r = 0; t.charCodeAt(r) === 48; r++);
507
+ for (i = t.length; t.charCodeAt(i - 1) === 48; --i);
508
+ if (t = t.slice(r, i), t) {
509
+ if (i -= r, e.e = n = n - r - 1, e.d = [], r = (n + 1) % x, n < 0 && (r += x), r < i) {
510
+ for (r && e.d.push(+t.slice(0, r)), i -= x; r < i;) e.d.push(+t.slice(r, r += x));
511
+ t = t.slice(r), r = x - t.length;
512
+ } else r -= i;
513
+ for (; r--;) t += "0";
514
+ e.d.push(+t), c && (e.e > e.constructor.maxE ? (e.d = null, e.e = NaN) : e.e < e.constructor.minE && (e.e = 0, e.d = [0]));
515
+ } else e.e = 0, e.d = [0];
516
+ return e;
517
+ }
518
+ function se(e, t) {
519
+ var n, r, i, a, o, s, l, d, f;
520
+ if (t.indexOf("_") > -1) {
521
+ if (t = t.replace(/(\d)_(?=\d)/g, "$1"), y.test(t)) return oe(e, t);
522
+ } else if (t === "Infinity" || t === "NaN") return +t || (e.s = NaN), e.e = NaN, e.d = null, e;
523
+ if (_.test(t)) n = 16, t = t.toLowerCase();
524
+ else if (g.test(t)) n = 2;
525
+ else if (v.test(t)) n = 8;
526
+ else throw Error(u + t);
527
+ for (a = t.search(/p/i), a > 0 ? (l = +t.slice(a + 1), t = t.substring(2, a)) : t = t.slice(2), a = t.indexOf("."), o = a >= 0, r = e.constructor, o && (t = t.replace(".", ""), s = t.length, a = s - a, i = I(r, new r(n), a, a * 2)), d = ee(t, n, b), f = d.length - 1, a = f; d[a] === 0; --a) d.pop();
528
+ return a < 0 ? new r(e.s * 0) : (e.e = N(d, f), e.d = d, c = !1, o && (e = A(e, i, s * 4)), l && (e = e.times(Math.abs(l) < 54 ? h(2, l) : G.pow(2, l))), c = !0, e);
529
+ }
530
+ function ce(e, t) {
531
+ var n, r = t.d.length;
532
+ if (r < 3) return t.isZero() ? t : z(e, 2, t, t);
533
+ n = 1.4 * Math.sqrt(r), n = n > 16 ? 16 : n | 0, t = t.times(1 / le(5, n)), t = z(e, 2, t, t);
534
+ for (var i, a = new e(5), o = new e(16), s = new e(20); n--;) i = t.times(t), t = t.times(a.plus(i.times(o.times(i).minus(s))));
535
+ return t;
536
+ }
537
+ function z(e, t, n, r, i) {
538
+ var a, o, s, l, u = 1, d = e.precision, f = Math.ceil(d / x);
539
+ for (c = !1, l = n.times(n), s = new e(r);;) {
540
+ if (o = A(s.times(l), new e(t++ * t++), d, 1), s = i ? r.plus(o) : r.minus(o), r = A(o.times(l), new e(t++ * t++), d, 1), o = s.plus(r), o.d[f] !== void 0) {
541
+ for (a = f; o.d[a] === s.d[a] && a--;);
542
+ if (a == -1) break;
543
+ }
544
+ a = s, s = r, r = o, o = a, u++;
545
+ }
546
+ return c = !0, o.d.length = f + 1, o;
547
+ }
548
+ function le(e, t) {
549
+ for (var n = e; --t;) n *= e;
550
+ return n;
551
+ }
552
+ function ue(e, t) {
553
+ var n, r = t.s < 0, i = P(e, e.precision, 1), a = i.times(.5);
554
+ if (t = t.abs(), t.lte(a)) return s = r ? 4 : 1, t;
555
+ if (n = t.divToInt(i), n.isZero()) s = r ? 3 : 2;
556
+ else {
557
+ if (t = t.minus(n.times(i)), t.lte(a)) return s = re(n) ? r ? 2 : 3 : r ? 4 : 1, t;
558
+ s = re(n) ? r ? 1 : 4 : r ? 3 : 2;
559
+ }
560
+ return t.minus(i).abs();
561
+ }
562
+ function de(e, r, i, a) {
563
+ var s, c, l, u, d, f, p, m, h, g = e.constructor, _ = i !== void 0;
564
+ if (_ ? (D(i, 1, t), a === void 0 ? a = g.rounding : D(a, 0, 8)) : (i = g.precision, a = g.rounding), !e.isFinite()) p = R(e);
565
+ else {
566
+ for (p = M(e), l = p.indexOf("."), _ ? (s = 2, r == 16 ? i = i * 4 - 3 : r == 8 && (i = i * 3 - 2)) : s = r, l >= 0 && (p = p.replace(".", ""), h = new g(1), h.e = p.length - l, h.d = ee(M(h), 10, s), h.e = h.d.length), m = ee(p, 10, s), c = d = m.length; m[--d] == 0;) m.pop();
567
+ if (!m[0]) p = _ ? "0p+0" : "0";
568
+ else {
569
+ if (l < 0 ? c-- : (e = new g(e), e.d = m, e.e = c, e = A(e, h, i, a, 0, s), m = e.d, c = e.e, f = o), l = m[i], u = s / 2, f ||= m[i + 1] !== void 0, f = a < 4 ? (l !== void 0 || f) && (a === 0 || a === (e.s < 0 ? 3 : 2)) : l > u || l === u && (a === 4 || f || a === 6 && m[i - 1] & 1 || a === (e.s < 0 ? 8 : 7)), m.length = i, f) for (; ++m[--i] > s - 1;) m[i] = 0, i || (++c, m.unshift(1));
570
+ for (d = m.length; !m[d - 1]; --d);
571
+ for (l = 0, p = ""; l < d; l++) p += n.charAt(m[l]);
572
+ if (_) {
573
+ if (d > 1) {
574
+ if (r == 16 || r == 8) {
575
+ for (l = r == 16 ? 4 : 3, --d; d % l; d++) p += "0";
576
+ for (m = ee(p, s, r), d = m.length; !m[d - 1]; --d);
577
+ for (l = 1, p = "1."; l < d; l++) p += n.charAt(m[l]);
578
+ } else p = p.charAt(0) + "." + p.slice(1);
579
+ }
580
+ p = p + (c < 0 ? "p" : "p+") + c;
581
+ } else if (c < 0) {
582
+ for (; ++c;) p = "0" + p;
583
+ p = "0." + p;
584
+ } else if (++c > d) for (c -= d; c--;) p += "0";
585
+ else c < d && (p = p.slice(0, c) + "." + p.slice(c));
586
+ }
587
+ p = (r == 16 ? "0x" : r == 2 ? "0b" : r == 8 ? "0o" : "") + p;
588
+ }
589
+ return e.s < 0 ? "-" + p : p;
590
+ }
591
+ function B(e, t) {
592
+ if (e.length > t) return e.length = t, !0;
593
+ }
594
+ function fe(e) {
595
+ return new this(e).abs();
596
+ }
597
+ function pe(e) {
598
+ return new this(e).acos();
599
+ }
600
+ function me(e) {
601
+ return new this(e).acosh();
602
+ }
603
+ function he(e, t) {
604
+ return new this(e).plus(t);
605
+ }
606
+ function ge(e) {
607
+ return new this(e).asin();
608
+ }
609
+ function _e(e) {
610
+ return new this(e).asinh();
611
+ }
612
+ function ve(e) {
613
+ return new this(e).atan();
614
+ }
615
+ function ye(e) {
616
+ return new this(e).atanh();
617
+ }
618
+ function be(e, t) {
619
+ e = new this(e), t = new this(t);
620
+ var n, r = this.precision, i = this.rounding, a = r + 4;
621
+ return !e.s || !t.s ? n = new this(NaN) : !e.d && !t.d ? (n = P(this, a, 1).times(t.s > 0 ? .25 : .75), n.s = e.s) : !t.d || e.isZero() ? (n = t.s < 0 ? P(this, r, i) : new this(0), n.s = e.s) : !e.d || t.isZero() ? (n = P(this, a, 1).times(.5), n.s = e.s) : t.s < 0 ? (this.precision = a, this.rounding = 1, n = this.atan(A(e, t, a, 1)), t = P(this, a, 1), this.precision = r, this.rounding = i, n = e.s < 0 ? n.minus(t) : n.plus(t)) : n = this.atan(A(e, t, a, 1)), n;
622
+ }
623
+ function xe(e) {
624
+ return new this(e).cbrt();
625
+ }
626
+ function V(e) {
627
+ return j(e = new this(e), e.e + 1, 2);
628
+ }
629
+ function Se(e, t, n) {
630
+ return new this(e).clamp(t, n);
631
+ }
632
+ function Ce(n) {
633
+ if (!n || typeof n != "object") throw Error(l + "Object expected");
634
+ var r, i, o, s = n.defaults === !0, c = [
635
+ "precision",
636
+ 1,
637
+ t,
638
+ "rounding",
639
+ 0,
640
+ 8,
641
+ "toExpNeg",
642
+ -e,
643
+ 0,
644
+ "toExpPos",
645
+ 0,
646
+ e,
647
+ "maxE",
648
+ 0,
649
+ e,
650
+ "minE",
651
+ -e,
652
+ 0,
653
+ "modulo",
654
+ 0,
655
+ 9
656
+ ];
657
+ for (r = 0; r < c.length; r += 3) if (i = c[r], s && (this[i] = a[i]), (o = n[i]) !== void 0) {
658
+ if (m(o) === o && o >= c[r + 1] && o <= c[r + 2]) this[i] = o;
659
+ else throw Error(u + i + ": " + o);
660
+ }
661
+ if (i = "crypto", s && (this[i] = a[i]), (o = n[i]) !== void 0) {
662
+ if (o === !0 || o === !1 || o === 0 || o === 1) {
663
+ if (o) {
664
+ if (typeof crypto < "u" && crypto && (crypto.getRandomValues || crypto.randomBytes)) this[i] = !0;
665
+ else throw Error(f);
666
+ } else this[i] = !1;
667
+ } else throw Error(u + i + ": " + o);
668
+ }
669
+ return this;
670
+ }
671
+ function we(e) {
672
+ return new this(e).cos();
673
+ }
674
+ function Te(e) {
675
+ return new this(e).cosh();
676
+ }
677
+ function Ee(e) {
678
+ var t, n, r;
679
+ function i(e) {
680
+ var t, n, r, a = this;
681
+ if (!(a instanceof i)) return new i(e);
682
+ if (a.constructor = i, je(e)) {
683
+ a.s = e.s, c ? !e.d || e.e > i.maxE ? (a.e = NaN, a.d = null) : e.e < i.minE ? (a.e = 0, a.d = [0]) : (a.e = e.e, a.d = e.d.slice()) : (a.e = e.e, a.d = e.d ? e.d.slice() : e.d);
684
+ return;
685
+ }
686
+ if (r = typeof e, r === "number") {
687
+ if (e === 0) {
688
+ a.s = 1 / e < 0 ? -1 : 1, a.e = 0, a.d = [0];
689
+ return;
690
+ }
691
+ if (e < 0 ? (e = -e, a.s = -1) : a.s = 1, e === ~~e && e < 1e7) {
692
+ for (t = 0, n = e; n >= 10; n /= 10) t++;
693
+ c ? t > i.maxE ? (a.e = NaN, a.d = null) : t < i.minE ? (a.e = 0, a.d = [0]) : (a.e = t, a.d = [e]) : (a.e = t, a.d = [e]);
694
+ return;
695
+ }
696
+ if (e * 0 != 0) {
697
+ e || (a.s = NaN), a.e = NaN, a.d = null;
698
+ return;
699
+ }
700
+ return oe(a, e.toString());
701
+ }
702
+ if (r === "string") return (n = e.charCodeAt(0)) === 45 ? (e = e.slice(1), a.s = -1) : (n === 43 && (e = e.slice(1)), a.s = 1), y.test(e) ? oe(a, e) : se(a, e);
703
+ if (r === "bigint") return e < 0 ? (e = -e, a.s = -1) : a.s = 1, oe(a, e.toString());
704
+ throw Error(u + e);
705
+ }
706
+ if (i.prototype = T, i.ROUND_UP = 0, i.ROUND_DOWN = 1, i.ROUND_CEIL = 2, i.ROUND_FLOOR = 3, i.ROUND_HALF_UP = 4, i.ROUND_HALF_DOWN = 5, i.ROUND_HALF_EVEN = 6, i.ROUND_HALF_CEIL = 7, i.ROUND_HALF_FLOOR = 8, i.EUCLID = 9, i.config = i.set = Ce, i.clone = Ee, i.isDecimal = je, i.abs = fe, i.acos = pe, i.acosh = me, i.add = he, i.asin = ge, i.asinh = _e, i.atan = ve, i.atanh = ye, i.atan2 = be, i.cbrt = xe, i.ceil = V, i.clamp = Se, i.cos = we, i.cosh = Te, i.div = De, i.exp = Oe, i.floor = ke, i.hypot = Ae, i.ln = Me, i.log = Ne, i.log10 = Fe, i.log2 = Pe, i.max = Ie, i.min = Le, i.mod = H, i.mul = U, i.pow = W, i.random = Re, i.round = ze, i.sign = Be, i.sin = Ve, i.sinh = He, i.sqrt = Ue, i.sub = We, i.sum = Ge, i.tan = Ke, i.tanh = qe, i.trunc = Je, e === void 0 && (e = {}), e && e.defaults !== !0) for (r = [
707
+ "precision",
708
+ "rounding",
709
+ "toExpNeg",
710
+ "toExpPos",
711
+ "maxE",
712
+ "minE",
713
+ "modulo",
714
+ "crypto"
715
+ ], t = 0; t < r.length;) e.hasOwnProperty(n = r[t++]) || (e[n] = this[n]);
716
+ return i.config(e), i;
717
+ }
718
+ function De(e, t) {
719
+ return new this(e).div(t);
720
+ }
721
+ function Oe(e) {
722
+ return new this(e).exp();
723
+ }
724
+ function ke(e) {
725
+ return j(e = new this(e), e.e + 1, 3);
726
+ }
727
+ function Ae() {
728
+ var e, t, n = new this(0);
729
+ for (c = !1, e = 0; e < arguments.length;) if (t = new this(arguments[e++]), t.d) n.d && (n = n.plus(t.times(t)));
730
+ else {
731
+ if (t.s) return c = !0, new this(1 / 0);
732
+ n = t;
733
+ }
734
+ return c = !0, n.sqrt();
735
+ }
736
+ function je(e) {
737
+ return e instanceof G || e && e.toStringTag === p || !1;
738
+ }
739
+ function Me(e) {
740
+ return new this(e).ln();
741
+ }
742
+ function Ne(e, t) {
743
+ return new this(e).log(t);
744
+ }
745
+ function Pe(e) {
746
+ return new this(e).log(2);
747
+ }
748
+ function Fe(e) {
749
+ return new this(e).log(10);
750
+ }
751
+ function Ie() {
752
+ return ie(this, arguments, -1);
753
+ }
754
+ function Le() {
755
+ return ie(this, arguments, 1);
756
+ }
757
+ function H(e, t) {
758
+ return new this(e).mod(t);
759
+ }
760
+ function U(e, t) {
761
+ return new this(e).mul(t);
762
+ }
763
+ function W(e, t) {
764
+ return new this(e).pow(t);
765
+ }
766
+ function Re(e) {
767
+ var n, r, i, a, o = 0, s = new this(1), c = [];
768
+ if (e === void 0 ? e = this.precision : D(e, 1, t), i = Math.ceil(e / x), !this.crypto) for (; o < i;) c[o++] = Math.random() * 1e7 | 0;
769
+ else if (crypto.getRandomValues) for (n = crypto.getRandomValues(new Uint32Array(i)); o < i;) a = n[o], a >= 429e7 ? n[o] = crypto.getRandomValues(/* @__PURE__ */ new Uint32Array(1))[0] : c[o++] = a % 1e7;
770
+ else if (crypto.randomBytes) {
771
+ for (n = crypto.randomBytes(i *= 4); o < i;) a = n[o] + (n[o + 1] << 8) + (n[o + 2] << 16) + ((n[o + 3] & 127) << 24), a >= 214e7 ? crypto.randomBytes(4).copy(n, o) : (c.push(a % 1e7), o += 4);
772
+ o = i / 4;
773
+ } else throw Error(f);
774
+ for (i = c[--o], e %= x, i && e && (a = h(10, x - e), c[o] = (i / a | 0) * a); c[o] === 0; o--) c.pop();
775
+ if (o < 0) r = 0, c = [0];
776
+ else {
777
+ for (r = -1; c[0] === 0; r -= x) c.shift();
778
+ for (i = 1, a = c[0]; a >= 10; a /= 10) i++;
779
+ i < x && (r -= x - i);
780
+ }
781
+ return s.e = r, s.d = c, s;
782
+ }
783
+ function ze(e) {
784
+ return j(e = new this(e), e.e + 1, this.rounding);
785
+ }
786
+ function Be(e) {
787
+ return e = new this(e), e.d ? e.d[0] ? e.s : 0 * e.s : e.s || NaN;
788
+ }
789
+ function Ve(e) {
790
+ return new this(e).sin();
791
+ }
792
+ function He(e) {
793
+ return new this(e).sinh();
794
+ }
795
+ function Ue(e) {
796
+ return new this(e).sqrt();
797
+ }
798
+ function We(e, t) {
799
+ return new this(e).sub(t);
800
+ }
801
+ function Ge() {
802
+ var e = 0, t = arguments, n = new this(t[e]);
803
+ for (c = !1; n.s && ++e < t.length;) n = n.plus(t[e]);
804
+ return c = !0, j(n, this.precision, this.rounding);
805
+ }
806
+ function Ke(e) {
807
+ return new this(e).tan();
808
+ }
809
+ function qe(e) {
810
+ return new this(e).tanh();
811
+ }
812
+ function Je(e) {
813
+ return j(e = new this(e), e.e + 1, 1);
814
+ }
815
+ T[Symbol.for("nodejs.util.inspect.custom")] = T.toString, T[Symbol.toStringTag] = "Decimal";
816
+ var G = T.constructor = Ee(a);
817
+ r = new G(r), i = new G(i);
818
+ //#endregion
819
+ //#region ../../node_modules/@graffiticode/parselatex/src/assert.js
820
+ var K = (e, t, n) => {
821
+ if (t === void 0 && (t = "failed!"), !e) {
822
+ let e = Error(t);
823
+ throw e.location = n || q.location, e;
824
+ }
825
+ }, q = {
826
+ assert: K,
827
+ message: (e, t) => {
828
+ let n = q.messages[e];
829
+ return t && t.forEach((e, t) => {
830
+ n = n.replace(`%${t + 1}`, e);
831
+ }), `${e}: ${n}`;
832
+ },
833
+ messages: {},
834
+ reserveCodeRange: (e, t, n) => {
835
+ K(e <= t, "Invalid code range"), K(q.reservedCodes.every((n) => t < n.first || e > n.last), "Conflicting request for error code range"), q.reservedCodes.push({
836
+ first: e,
837
+ last: t,
838
+ name: n
839
+ });
840
+ },
841
+ reservedCodes: [],
842
+ setLocation: (e) => {
843
+ q.location = e;
844
+ },
845
+ clearLocation: () => {
846
+ q.location = null;
847
+ },
848
+ checkTimeout: () => {
849
+ K(!q.timeout || q.timeout > Date.now(), q.timeoutMessage);
850
+ },
851
+ setTimeout: (e, t) => {
852
+ e !== void 0 && (q.timeout = e ? Date.now() + e : 0, q.timeoutMessage = t || "ERROR timeout exceeded");
853
+ },
854
+ setCounter: (e, t) => {
855
+ q.count = e, q.countMessage = t || "ERROR count exceeded";
856
+ },
857
+ checkCounter: () => {
858
+ let { count: e } = q;
859
+ if (typeof e != "number" || Number.isNaN(e)) {
860
+ K(!1, "ERROR counter not set");
861
+ return;
862
+ }
863
+ K(q.count--, q.countMessage);
864
+ }
865
+ }, Ye = (() => {
866
+ function e() {
867
+ this.nodePool = ["unused"], this.nodeMap = {};
868
+ }
869
+ e.prototype.arg = function(e) {
870
+ if (!t(this)) throw Error("Malformed node");
871
+ return this.args.push(e), this;
872
+ }, e.prototype.argN = function(e, n) {
873
+ if (!t(this)) throw Error("Malformed node");
874
+ return n === void 0 ? this.args[e] : (this.args[e] = n, this);
875
+ }, e.prototype.args = function(e) {
876
+ if (!t(this)) throw Error("Malformed node");
877
+ return e === void 0 ? this.args : (this.args = e, this);
878
+ }, e.prototype.isNode = t;
879
+ function t(e) {
880
+ return e === void 0 && (e = this), e.op && e.args;
881
+ }
882
+ return e.prototype.intern = function(n) {
883
+ this instanceof e && n === void 0 && t(this) && (n = this), K(typeof n == "object", "node not an object");
884
+ let { op: r } = n, i = n.args.length, a = "", o = [];
885
+ for (let e = 0; e < i; e++) a += " ", typeof n.args[e] == "string" ? a += o[e] = n.args[e] : a += o[e] = this.intern(n.args[e]);
886
+ n.lbrk && n.lbrk !== 123 && n.lbrk !== 371 && (a += String.fromCharCode(n.lbrk), a += String.fromCharCode(n.rbrk));
887
+ let s = r + i + a, c = this.nodeMap[s];
888
+ return c === void 0 && (this.nodePool.push({
889
+ op: r,
890
+ args: o
891
+ }), c = this.nodePool.length - 1, this.nodeMap[s] = c), c;
892
+ }, e.prototype.node = function(e) {
893
+ let t = JSON.parse(JSON.stringify(this.nodePool[e]));
894
+ for (let e = 0; e < t.args.length; e++) typeof t.args[e] != "string" && (t.args[e] = this.node(t.args[e]));
895
+ return t;
896
+ }, e.prototype.dumpAll = function() {
897
+ let t = "";
898
+ return this.nodePool.forEach((n, r) => {
899
+ t += `\n${r}: ${e.dump(n)}`;
900
+ }), t;
901
+ }, e.dump = e.prototype.dump = function e(t) {
902
+ let n;
903
+ if (typeof t == "string") n = `"${t}"`;
904
+ else if (typeof t == "number") n = t;
905
+ else {
906
+ n = `{ op: "${t.op}", args: [ `;
907
+ for (let r = 0; r < t.args.length; r++) r > 0 && (n += " , "), n += e(t.args[r]);
908
+ n += " ] }";
909
+ }
910
+ return n;
911
+ }, e;
912
+ })(), Xe = (() => {
913
+ function e() {}
914
+ let t = [], n = {};
915
+ e.fn = {}, e.env = n, e.pushEnv = (r) => {
916
+ t.push(n), e.env = n = r;
917
+ }, e.popEnv = () => {
918
+ K(t.length > 0, "1000: Empty envStack"), e.env = n = t.pop();
919
+ }, e.option = (e, t) => e[t];
920
+ function r() {
921
+ return !!e.env.Au;
922
+ }
923
+ let i = e.prototype = new Ye();
924
+ q.reserveCodeRange(1e3, 1999, "model"), q.messages[1e3] = "Internal error. %1.", q.messages[1001] = "Invalid syntax. \"%1\" expected, \"%2\" found.", q.messages[1002] = "Only one decimal separator can be specified.", q.messages[1003] = "Extra characters in input at position: %1, lexeme: %2, prefix: %3.", q.messages[1004] = "Invalid character \"%1\" (%2) in input.", q.messages[1005] = "Misplaced thousands separator.", q.messages[1006] = "Invalid syntax. Expression expected, %1 found.", q.messages[1007] = "Unexpected character: \"%1\" in \"%2\".", q.messages[1008] = "The same character \"%1\" is being used as a thousands and decimal separators.", q.messages[1009] = "Missing argument for \"%1\" command.", q.messages[1010] = "Expecting an operator between numbers.", q.messages[1011] = "Invalid grouping bracket. %1", q.messages[1012] = "Misplaced subscript in \"%1\"", q.messages[1013] = "Mismatched thousands separators: \"%1\" and \"%2\".", q.messages[1014] = "Missing integration variable in \"%1\".";
925
+ let { message: a } = q;
926
+ e.create = i.create = function t(n, r, a) {
927
+ if (K(r instanceof Array || typeof r == "object" && (r.op || r instanceof e) || typeof r == "string", JSON.stringify(r)), K(r !== void 0, "1000: Internal error. Node undefined."), r instanceof e) return a && (r.location = a), r;
928
+ let o;
929
+ return r instanceof Array ? (o = [], r.forEach((e) => {
930
+ o.push(t(n, e, a));
931
+ }), o) : this instanceof e ? (o = t(n, this), o.location = a, r = typeof r == "string" ? E(n, r, e.env).expr() : JSON.parse(JSON.stringify(r)), Object.keys(e.fn).forEach((t) => {
932
+ i[t] || (i[t] = function(...n) {
933
+ let r = e.fn[t];
934
+ if (n.length > 1 && n[1] instanceof e) return r.apply(this, n);
935
+ let i = [this];
936
+ for (let e = 0; e < n.length; e++) i.push(n[e]);
937
+ return r.apply(this, i);
938
+ });
939
+ }), Object.keys(r).forEach((e) => {
940
+ o[e] = r[e];
941
+ }), o) : new e().create(n, r, a);
942
+ }, e.fromLaTeX = i.fromLaTeX = function(t, n) {
943
+ return K(typeof n == "string", "1000: Model.prototype.fromLaTex"), this ? this.create(t, n) : e.create(t, n);
944
+ }, e.toLaTeX = i.toLaTeX = function(e) {
945
+ return m(e);
946
+ };
947
+ let o = {
948
+ ADD: "+",
949
+ SUB: "-",
950
+ MUL: "mul",
951
+ TIMES: "\\times",
952
+ DIV: "\\div",
953
+ FRAC: "\\frac",
954
+ EQL: "=",
955
+ ATAN2: "atan2",
956
+ SQRT: "sqrt",
957
+ VEC: "vec",
958
+ PM: "pm",
959
+ NOT: "not",
960
+ SIN: "sin",
961
+ COS: "cos",
962
+ TAN: "tan",
963
+ SEC: "sec",
964
+ COT: "cot",
965
+ CSC: "csc",
966
+ ARCSIN: "arcsin",
967
+ ARCCOS: "arccos",
968
+ ARCTAN: "arctan",
969
+ ARCSEC: "arcsec",
970
+ ARCCOT: "arccot",
971
+ ARCCSC: "arccsc",
972
+ SINH: "sinh",
973
+ COSH: "cosh",
974
+ TANH: "tanh",
975
+ SECH: "sech",
976
+ COTH: "coth",
977
+ CSCH: "csch",
978
+ ARCSINH: "arcsinh",
979
+ ARCCOSH: "arccosh",
980
+ ARCTANH: "arctanh",
981
+ ARCSECH: "arcsech",
982
+ ARCCSCH: "arccsch",
983
+ ARCCOTH: "arccoth",
984
+ LOG: "log",
985
+ LN: "ln",
986
+ LG: "lg",
987
+ VAR: "var",
988
+ TEXT: "text",
989
+ NUM: "num",
990
+ COMMA: ",",
991
+ POW: "^",
992
+ SUBSCRIPT: "_",
993
+ ABS: "abs",
994
+ PAREN: "()",
995
+ BRACE: "{}",
996
+ BRACKET: "[]",
997
+ ANGLEBRACKET: "anglebracket",
998
+ HIGHLIGHT: "hi",
999
+ LT: "lt",
1000
+ LE: "le",
1001
+ GT: "gt",
1002
+ GE: "ge",
1003
+ NE: "ne",
1004
+ NGTR: "ngtr",
1005
+ NLESS: "nless",
1006
+ NI: "ni",
1007
+ SUBSETEQ: "subseteq",
1008
+ SUPSETEQ: "supseteq",
1009
+ SUBSET: "subset",
1010
+ SUPSET: "supset",
1011
+ NNI: "nni",
1012
+ NSUBSETEQ: "nsubseteq",
1013
+ NSUPSETEQ: "nsupseteq",
1014
+ NSUBSET: "nsubset",
1015
+ NSUPSET: "nsupset",
1016
+ APPROX: "approx",
1017
+ IMPLIES: "implies",
1018
+ CAPRIGHTARROW: "caprightarrow",
1019
+ RIGHTARROW: "rightarrow",
1020
+ LEFTARROW: "leftarrrow",
1021
+ LONGRIGHTARROW: "longrightarrow",
1022
+ LONGLEFTARROW: "longleftarrow",
1023
+ OVERRIGHTARROW: "overrightarrow",
1024
+ OVERLEFTARROW: "overleftarrow",
1025
+ CAPLEFTRIGHTARROW: "capleftrightarrow",
1026
+ LEFTRIGHTARROW: "leftrightarrow",
1027
+ LONGLEFTRIGHTARROW: "longleftrightarrow",
1028
+ OVERLEFTRIGHTARROW: "overleftrightarrow",
1029
+ PERP: "perp",
1030
+ PROPTO: "propto",
1031
+ PARALLEL: "parallel",
1032
+ NPARALLEL: "nparallel",
1033
+ SIM: "sim",
1034
+ CONG: "cong",
1035
+ INTERVAL: "interval",
1036
+ INTERVALOPEN: "intervalopen",
1037
+ INTERVALLEFTOPEN: "intervalleftopen",
1038
+ INTERVALRIGHTOPEN: "intervalrightopen",
1039
+ EVALAT: "eval-at",
1040
+ LIST: "list",
1041
+ SET: "set",
1042
+ EXISTS: "exists",
1043
+ IN: "in",
1044
+ FORALL: "forall",
1045
+ LIM: "lim",
1046
+ EXP: "exp",
1047
+ TO: "to",
1048
+ SUM: "sum",
1049
+ DERIV: "deriv",
1050
+ PIPE: "pipe",
1051
+ INTEGRAL: "integral",
1052
+ PROD: "prod",
1053
+ CUP: "cup",
1054
+ BIGCUP: "bigcup",
1055
+ CAP: "cap",
1056
+ BIGCAP: "bigcap",
1057
+ PERCENT: "%",
1058
+ QMARK: "?",
1059
+ M: "M",
1060
+ FACT: "fact",
1061
+ BINOM: "binom",
1062
+ ROW: "row",
1063
+ COL: "col",
1064
+ COLON: "colon",
1065
+ MATRIX: "matrix",
1066
+ TYPE: "type",
1067
+ FORMAT: "format",
1068
+ OVERSET: "overset",
1069
+ UNDERSET: "underset",
1070
+ OVERLINE: "overline",
1071
+ DEGREE: "degree",
1072
+ BACKSLASH: "backslash",
1073
+ MATHBF: "mathbf",
1074
+ CDOT: "\\cdot",
1075
+ MATHFIELD: "mathfield",
1076
+ DELTA: "delta",
1077
+ OPERATORNAME: "operatorname",
1078
+ DOT: "dot",
1079
+ NONE: "none"
1080
+ };
1081
+ Object.keys(o).forEach((t) => {
1082
+ e[t] = o[t];
1083
+ });
1084
+ let s = {};
1085
+ s[o.ADD] = "+", s[o.SUB] = "-", s[o.MUL] = "\\times", s[o.TIMES] = "\\times", s[o.DIV] = "\\div", s[o.FRAC] = "\\frac", s[o.EQL] = "=", s[o.ATAN2] = "\\atan2", s[o.POW] = "^", s[o.SUBSCRIPT] = "_", s[o.PM] = "\\pm", s[o.NOT] = "\\not", s[o.SIN] = "\\sin", s[o.COS] = "\\cos", s[o.TAN] = "\\tan", s[o.SEC] = "\\sec", s[o.COT] = "\\cot", s[o.CSC] = "\\csc", s[o.ARCSIN] = "\\arcsin", s[o.ARCCOS] = "\\arccos", s[o.ARCTAN] = "\\arctan", s[o.ARCSEC] = "\\arcsec", s[o.ARCCOT] = "\\arccot", s[o.ARCCSC] = "\\arccsc", s[o.SEC] = "\\sec", s[o.COT] = "\\cot", s[o.CSC] = "\\csc", s[o.SINH] = "\\sinh", s[o.COSH] = "\\cosh", s[o.TANH] = "\\tanh", s[o.ARCSINH] = "\\arcsinh", s[o.ARCCOSH] = "\\arccosh", s[o.ARCTANH] = "\\arctanh", s[o.ARCSECH] = "\\arcsech", s[o.ARCCSCH] = "\\arccsch", s[o.ARCCOTH] = "\\arccoth", s[o.SECH] = "\\sech", s[o.COTH] = "\\coth", s[o.CSCH] = "\\csch", s[o.LN] = "\\ln", s[o.COMMA] = ",", s[o.M] = "\\M", s[o.BINOM] = "\\binom", s[o.COLON] = "\\colon", s[o.INT] = "\\int", e.fold = function e(t, n) {
1086
+ let r = [], i;
1087
+ switch (t.args.forEach((t) => {
1088
+ r.push(e(t, n));
1089
+ }), t.args = r, t.op) {
1090
+ case o.VAR: (i = n[t.args[0]]) && (t = i);
1091
+ }
1092
+ return t;
1093
+ };
1094
+ function c(e) {
1095
+ return e >= 1 && e <= 31 && e !== 9 || e >= 127 && e <= 159;
1096
+ }
1097
+ function l(e) {
1098
+ return e === v || e === g || e === _ || e === S || e === y || e === b || e === x || e === h;
1099
+ }
1100
+ function u(e) {
1101
+ let t = "", n, r, i = 0;
1102
+ for (; i < e.length;) {
1103
+ for (; i < e.length && d(n = e.charCodeAt(i++));) r !== 32 && (n = 9, r = n);
1104
+ n === 92 && (t += String.fromCharCode(n), i < e.length && (n = e.charCodeAt(i++))), t += String.fromCharCode(n);
1105
+ }
1106
+ return t;
1107
+ }
1108
+ function d(e) {
1109
+ return c(e);
1110
+ }
1111
+ function f(e) {
1112
+ return e === 32 || e === 9 || e === 10 || e === 13;
1113
+ }
1114
+ function p(e) {
1115
+ return e >= 48 && e <= 57;
1116
+ }
1117
+ let m = function e(t) {
1118
+ let n = "";
1119
+ if (typeof t == "string") n = t;
1120
+ else if (typeof t == "number") n = t;
1121
+ else if (typeof t == "object") {
1122
+ let r = [];
1123
+ switch (t.args.forEach((t) => {
1124
+ r.push(e(t));
1125
+ }), t.op) {
1126
+ case o.NUM:
1127
+ case o.VAR:
1128
+ n = `${t.args[0]}`;
1129
+ break;
1130
+ case o.TEXT:
1131
+ n = `\\text{${r[0]}}`;
1132
+ break;
1133
+ case o.SUBSCRIPT:
1134
+ r.reverse().forEach((e, i) => {
1135
+ n = i === r.length - 1 ? `${e}${n}` : `${s[t.op]}{${e}${n}}`;
1136
+ });
1137
+ break;
1138
+ case o.SUB:
1139
+ n = t.args.length === 1 ? `${s[t.op]}${r[0]}` : `${r[0]} ${s[t.op]} ${r[1]}`;
1140
+ break;
1141
+ case o.DIV:
1142
+ case o.PM:
1143
+ case o.EQL:
1144
+ n = `${r[0]} ${s[t.op]} ${r[1]}`;
1145
+ break;
1146
+ case o.POW: {
1147
+ let e = t.args[0], i = t.args[1];
1148
+ (e.args && e.args.length === 2 || i.args && i.args.length === 2) && (e.op === o.ADD || e.op === o.SUB || e.op === o.MUL || e.op === o.DIV || e.op === o.SQRT) && (r[0] = ` (${r[0]}) `), n = `{${r[0]}^{${r[1]}}}`;
1149
+ break;
1150
+ }
1151
+ case o.SIN:
1152
+ case o.COS:
1153
+ case o.TAN:
1154
+ case o.ARCSIN:
1155
+ case o.ARCCOS:
1156
+ case o.ARCTAN:
1157
+ case o.ARCSEC:
1158
+ case o.ARCCSC:
1159
+ case o.ARCCOT:
1160
+ case o.SEC:
1161
+ case o.COT:
1162
+ case o.CSC:
1163
+ case o.SINH:
1164
+ case o.COSH:
1165
+ case o.TANH:
1166
+ case o.ARCSINH:
1167
+ case o.ARCCOSH:
1168
+ case o.ARCTANH:
1169
+ case o.ARCSECH:
1170
+ case o.ARCCSCH:
1171
+ case o.ARCCOTH:
1172
+ case o.SECH:
1173
+ case o.COTH:
1174
+ case o.CSCH:
1175
+ case o.LN:
1176
+ case o.M:
1177
+ n = `{${s[t.op]}{${r[0]}}}`;
1178
+ break;
1179
+ case o.FRAC:
1180
+ n = `\\frac{${r[0]}}{${r[1]}}`;
1181
+ break;
1182
+ case o.BINOM:
1183
+ n = `\\binom{${r[0]}}{${r[1]}}`;
1184
+ break;
1185
+ case o.SQRT:
1186
+ switch (r.length) {
1187
+ case 1:
1188
+ n = `\\sqrt{${r[0]}}`;
1189
+ break;
1190
+ case 2: n = `\\sqrt[${r[0]}]{${r[1]}}`;
1191
+ }
1192
+ break;
1193
+ case o.INTEGRAL:
1194
+ n = r.length === 4 ? `\\int_{${r[0]}}^{${r[1]}} ${r[2]} d${r[3]}` : `\\int ${r[0]} d${r[1]}`;
1195
+ break;
1196
+ case o.VEC:
1197
+ n = `\\vec{${r[0]}}`;
1198
+ break;
1199
+ case o.MUL: {
1200
+ let e;
1201
+ n = "", t.args.forEach((i, a) => {
1202
+ i.args && i.args.length >= 2 ? ((i.op === o.ADD || i.op === o.SUB) && (r[a] = `(${r[a]})`), a !== 0 && typeof i == "number" ? n += `${s[t.op]} ` : t.isMixedNumber || t.isScientific && (n += "\\times "), n += r[a]) : (i.op === o.PAREN || i.op === o.VAR || typeof e == "number" && typeof i != "number" || a !== 0 && (n += ` ${s[t.op]} `), n += r[a]), e = i;
1203
+ });
1204
+ break;
1205
+ }
1206
+ case o.TIMES:
1207
+ case o.CDOT:
1208
+ case o.ADD:
1209
+ case o.COMMA:
1210
+ r.forEach((e, r) => {
1211
+ n = r === 0 ? e : `${n}${s[t.op]} ${e}`;
1212
+ });
1213
+ break;
1214
+ case o.NONE:
1215
+ n = "";
1216
+ break;
1217
+ default: K(!1, `1000: Unimplemented operator translating to LaTeX: ${t.op}`);
1218
+ }
1219
+ } else K(!1, "1000: Invalid expression type");
1220
+ return n;
1221
+ }, h = 0, g = 125, _ = 93, v = 41, y = 286, b = 287, x = 289, S = 376, C = {};
1222
+ C[47] = o.FRAC, C[256] = o.FRAC, C[257] = o.SQRT, C[290] = o.VEC, C[43] = o.ADD, C[45] = o.SUB, C[258] = o.PM, C[351] = o.NOT, C[94] = o.POW, C[95] = o.SUBSCRIPT, C[42] = o.MUL, C[304] = o.CDOT, C[373] = o.TIMES, C[294] = o.DIV, C[259] = o.SIN, C[261] = o.COS, C[260] = o.TAN, C[291] = o.ARCSIN, C[292] = o.ARCCOS, C[293] = o.ARCTAN, C[337] = o.ARCSEC, C[338] = o.ARCCSC, C[339] = o.ARCCOT, C[262] = o.SEC, C[264] = o.COT, C[265] = o.CSC, C[307] = o.SINH, C[308] = o.COSH, C[309] = o.TANH, C[313] = o.ARCSINH, C[314] = o.ARCCOSH, C[315] = o.ARCTANH, C[334] = o.ARCSECH, C[335] = o.ARCCSCH, C[336] = o.ARCCOTH, C[310] = o.SECH, C[311] = o.COTH, C[312] = o.CSCH, C[263] = o.LN, C[267] = o.LG, C[268] = o.LOG, C[61] = o.EQL, C[44] = o.COMMA, C[269] = o.TEXT, C[368] = o.OPERATORNAME, C[270] = o.LT, C[271] = o.LE, C[272] = o.GT, C[273] = o.GE, C[301] = o.NE, C[305] = o.NGTR, C[306] = o.NLESS, C[333] = o.NI, C[347] = o.SUBSETEQ, C[348] = o.SUPSETEQ, C[349] = o.SUBSET, C[350] = o.SUPSET, C[302] = o.APPROX, C[345] = o.PERP, C[346] = o.PROPTO, C[352] = o.PARALLEL, C[353] = o.NPARALLEL, C[354] = o.SIM, C[355] = o.CONG, C[274] = o.EXISTS, C[275] = o.IN, C[276] = o.FORALL, C[277] = o.LIM, C[278] = o.EXP, C[279] = o.TO, C[124] = o.PIPE, C[280] = o.SUM, C[281] = o.INTEGRAL, C[282] = o.PROD, C[341] = o.CUP, C[342] = o.BIGCUP, C[343] = o.CAP, C[344] = o.BIGCAP, C[283] = o.M, C[363] = o.IMPLIES, C[366] = o.CAPRIGHTARROW, C[284] = o.RIGHTARROW, C[356] = o.LEFTARROW, C[357] = o.LONGRIGHTARROW, C[358] = o.LONGLEFTARROW, C[359] = o.OVERRIGHTARROW, C[360] = o.OVERLEFTARROW, C[364] = o.LEFTRIGHTARROW, C[365] = o.CAPLEFTRIGHTARROW, C[361] = o.LONGLEFTRIGHTARROW, C[362] = o.OVERLEFTRIGHTARROW, C[33] = o.FACT, C[285] = o.BINOM, C[286] = o.ROW, C[287] = o.COL, C[58] = o.COLON, C[59] = o.SEMICOLON, C[295] = o.TYPE, C[296] = o.OVERLINE, C[377] = o.DOT, C[297] = o.OVERSET, C[298] = o.UNDERSET, C[299] = o.BACKSLASH, C[300] = o.MATHBF, C[340] = o.MATHFIELD, C[367] = o.DELTA;
1223
+ function w(e, t) {
1224
+ return {
1225
+ op: e,
1226
+ args: t
1227
+ };
1228
+ }
1229
+ let T = w(e.NONE, [w(e.VAR, ["None"])]), E = function(t, n, i) {
1230
+ let s = Object.keys(i);
1231
+ s.push("to"), n = u(n);
1232
+ function c(n, r) {
1233
+ let i = "";
1234
+ if (e.option(t, "allowThousandsSeparator") || e.option(t, "setThousandsSeparator")) {
1235
+ let o = e.option(t, "setThousandsSeparator");
1236
+ o = [].concat(o === void 0 ? "," : o), o.indexOf(n) >= 0 && (K(!r || n === r, a(1013, [r, n])), i = n);
1237
+ }
1238
+ return i;
1239
+ }
1240
+ function d(n) {
1241
+ let r = e.option(t, "setDecimalSeparator"), i = e.option(t, "setThousandsSeparator");
1242
+ if (typeof r == "string") {
1243
+ K(r.length === 1, a(1002));
1244
+ let e = r;
1245
+ return i instanceof Array && i.indexOf(e) >= 0 && K(!1, a(1008, [e])), n === e;
1246
+ }
1247
+ return r instanceof Array ? (r.forEach((e) => {
1248
+ i instanceof Array && i.indexOf(e) >= 0 && K(!1, a(1008, [e]));
1249
+ }), r.indexOf(n) >= 0) : i instanceof Array && i.indexOf(".") >= 0 || i === "." ? (K(r === void 0, a(1008, ["."])), n === ",") : n === ".";
1250
+ }
1251
+ let m = w(e.NUM, ["Infinity"]);
1252
+ function h(t, n, r, i) {
1253
+ if (n === "\\infty") return m;
1254
+ let o = "", s, l, u, f = 0, p = "integer";
1255
+ for (n === "." && K(!1, a(1004, [n, n.charCodeAt(0)])), s = 0; s < n.length; s++) c(l = n.charAt(s)) ? ((f && u !== s - 4 || !f && s > 4) && K(!1, a(1005)), u = s, f++) : (d(l) && (p === "decimal" && K(!1, a(1007, [l, o + l])), l = ".", p = "decimal", f && u !== s - 4 && K(!1, a(1005)), u = s, f++), o += l);
1256
+ if (p !== "decimal" && u && u !== s - 4 && K(!1, a(1005)), r) {
1257
+ let n = e.option(t, "decimalPlaces");
1258
+ (!i || o.scale() > n) && (o = o.setScale(n, G.ROUND_HALF_UP), o = String(o));
1259
+ } else o = String(o);
1260
+ let h = e.option(t, "strict") && n || o;
1261
+ return {
1262
+ op: e.NUM,
1263
+ args: [h],
1264
+ separatorCount: f,
1265
+ lastSeparatorIndex: u,
1266
+ numberFormat: p
1267
+ };
1268
+ }
1269
+ function g(t, n) {
1270
+ return t.length === 0 && (t = [y]), v(e.MUL, t, n);
1271
+ }
1272
+ function _(e, t) {
1273
+ return K(t.length === 1, "1000: Wrong number of arguments for unary node"), w(e, t);
1274
+ }
1275
+ function v(e, t, n) {
1276
+ if (K(t.length > 0, "1000: Too few argument for binary node"), t.length < 2) return t[0];
1277
+ let r = [];
1278
+ return t.forEach((t) => {
1279
+ n && t.op === e && t.args.length > 1 ? r = r.concat(t.args) : r.push(t);
1280
+ }), w(e, r);
1281
+ }
1282
+ let y = h(t, "1"), b = h(t, "-1"), x = 0, S = 0, E, D, O = q(n);
1283
+ function ee(e) {
1284
+ x = O.start(e), E = O.lexeme();
1285
+ }
1286
+ function k() {
1287
+ return x;
1288
+ }
1289
+ function A() {
1290
+ return K(E !== void 0, `1000: Lexeme for token T0=${x} is missing.`), E;
1291
+ }
1292
+ function j(e) {
1293
+ S === 0 ? (x = O.start(e), E = O.lexeme()) : (K(D !== void 0, `1000: Lexeme for token=${S} is missing.`), x = S, E = D, S = 0);
1294
+ }
1295
+ function M(e) {
1296
+ return S === 0 && (S = O.start(e), D = O.lexeme()), S;
1297
+ }
1298
+ function N(e, t) {
1299
+ let n = k();
1300
+ if (n !== e) {
1301
+ let t = String.fromCharCode(e), r = n ? String.fromCharCode(n) : "EOS";
1302
+ K(!1, a(1001, [`${t}[${e}]`, `${r}[${n}]`]));
1303
+ }
1304
+ j(t);
1305
+ }
1306
+ function te(t) {
1307
+ if (t.op === e.FRAC && (t.args[0].op === e.NUM || t.args[1].op === e.NUM)) {
1308
+ let n = (t.args[0].op === e.SUB || t.args[0].op === e.ADD) && t.args[0].args.length === 1 && t.args[0].args[0] || t.args[0], r = (t.args[1].op === e.SUB || t.args[1].op === e.ADD) && t.args[1].args.length === 1 && t.args[1].args[0] || t.args[1];
1309
+ return n.op === e.NUM && n.numberFormat === "integer" && r.op === e.NUM && r.numberFormat === "integer" && +r.args[0] != 0;
1310
+ }
1311
+ return !1;
1312
+ }
1313
+ function P(t) {
1314
+ if (t.op === e.FRAC) {
1315
+ let n = t.args[0], r = t.args[1];
1316
+ return n.op === e.NUM && n.numberFormat === "integer" && r.op === e.NUM && r.numberFormat === "integer" && +n.args[0] < r.args[0];
1317
+ }
1318
+ return !1;
1319
+ }
1320
+ let F = [
1321
+ "K",
1322
+ "C",
1323
+ "F"
1324
+ ], ne = [
1325
+ "g",
1326
+ "L",
1327
+ "m",
1328
+ "s"
1329
+ ];
1330
+ function I() {
1331
+ let n, i, o, c, l, u = [], d, f, p, m;
1332
+ switch (o = k()) {
1333
+ case 65:
1334
+ case 97:
1335
+ if (u = [A()], j(), k() === 48) {
1336
+ let n = u[0].toUpperCase() + A(), r = s.some((e) => e.indexOf(n) === 0);
1337
+ i = w(e.VAR, u), r && (i = g([i, h(t, A())]), j());
1338
+ } else u[0] === "\\emptyset" ? u[0] = "\\varnothing" : u[0] === "\\mu" && k() === 269 && ne.includes(A()) ? (u[0] = `\\mu${A()}`, j()) : u[0] === "\\degree" && k() === 269 && F.includes(A()) && (u[0] = `\\degree ${A()}`, j()), i = w(e.VAR, u), r() && k() === 123 && M() === 125 && (N(123), N(125));
1339
+ break;
1340
+ case 269:
1341
+ u = [A()], j(), i = w(e.TEXT, [w(e.VAR, u)]);
1342
+ break;
1343
+ case 48:
1344
+ i = h(t, A()), j();
1345
+ break;
1346
+ case 369:
1347
+ i = M() === 123 || M() === 371 ? R(o) : M() === 124 ? L(o) : z(o);
1348
+ break;
1349
+ case 295:
1350
+ i = w(e.TYPE, [w(e.VAR, [A()])]), j();
1351
+ break;
1352
+ case 91:
1353
+ case 40:
1354
+ case 375:
1355
+ i = z(o);
1356
+ break;
1357
+ case 93:
1358
+ i = ce ? T : z(o);
1359
+ break;
1360
+ case 123:
1361
+ case 371:
1362
+ i = R(o);
1363
+ break;
1364
+ case 288: {
1365
+ j();
1366
+ let t = R();
1367
+ if (t.op === e.VAR) {
1368
+ if (t.args[0].indexOf("array") === 0) {
1369
+ if (k() === 123) {
1370
+ for (; k() !== 125;) j();
1371
+ j();
1372
+ }
1373
+ } else if (t.args[0].indexOf("matrix") >= 0 && k() === 91) {
1374
+ for (; k() !== 93;) j();
1375
+ j();
1376
+ }
1377
+ }
1378
+ let n = re();
1379
+ N(289), R(), t.op === e.VAR && (t.args[0].indexOf("matrix") >= 0 || t.args[0].indexOf("array") === 0 ? i = w(e.MATRIX, [n]) : K(!1, "1000: Unrecognized LaTeX name"));
1380
+ break;
1381
+ }
1382
+ case 124:
1383
+ i = L();
1384
+ break;
1385
+ case 303:
1386
+ j(), i = _(e.ABS, [R()]);
1387
+ break;
1388
+ case 256:
1389
+ j(), f = R(), p = R(), f = f.args.length === 0 ? w(e.COMMA, [T]) : f, p = f.args.length === 0 ? w(e.COMMA, [T]) : p, i = w(e.FRAC, [f, p]), i.isFraction = te(i);
1390
+ break;
1391
+ case 285: {
1392
+ j();
1393
+ let t = R(), n = R();
1394
+ i = v(e.BINOM, [t, n]);
1395
+ break;
1396
+ }
1397
+ case 257:
1398
+ switch (j(), k()) {
1399
+ case 91: {
1400
+ let t = se(), n = R();
1401
+ i = w(e.SQRT, [n, t]);
1402
+ break;
1403
+ }
1404
+ case 123:
1405
+ l = R(), i = w(e.SQRT, [l, w(e.NUM, ["2"])]);
1406
+ break;
1407
+ default: K(!1, a(1001, ["{ or (", String.fromCharCode(k())]));
1408
+ }
1409
+ break;
1410
+ case 290:
1411
+ j(), i = w(e.VEC, [R()]);
1412
+ break;
1413
+ case 368: {
1414
+ let t = A();
1415
+ j(), i = w(e.OPERATORNAME, [w(e.VAR, [t]), I()]);
1416
+ break;
1417
+ }
1418
+ case 259:
1419
+ case 261:
1420
+ case 260:
1421
+ case 262:
1422
+ case 264:
1423
+ case 265:
1424
+ case 307:
1425
+ case 308:
1426
+ case 309:
1427
+ case 310:
1428
+ case 311:
1429
+ case 312:
1430
+ for (j(); k() === 94;) j({ oneCharToken: !0 }), u.push(B());
1431
+ return u.length === 1 && _e(u[0]) ? (c = `arc${C[o]}`, u.pop()) : c = C[o], (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.unshift(w(c, [i]))) : (n = k()) === 123 || n === 371 ? u.unshift(w(c, [R(n)])) : (n = k()) === 40 || n === 91 ? u.unshift(w(c, [z(n)])) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.unshift(w(c, [d]))), i = u.length > 1 ? w(e.POW, u) : u[0], m && (i = g([
1432
+ i,
1433
+ w(e.VAR, ["d"]),
1434
+ m
1435
+ ])), i;
1436
+ case 291:
1437
+ case 292:
1438
+ case 293:
1439
+ case 337:
1440
+ case 338:
1441
+ case 339:
1442
+ case 313:
1443
+ case 314:
1444
+ case 315:
1445
+ case 334:
1446
+ case 335:
1447
+ case 336:
1448
+ for (j(); (n = k()) === 94;) j({ oneCharToken: !0 }), u.push(B());
1449
+ return (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.unshift(w(C[o], [i]))) : (n = k()) === 123 || n === 371 ? u.unshift(w(C[o], [R(n)])) : (n = k()) === 40 || n === 91 ? u.unshift(w(C[o], [z(n)])) : (n = k()) === 124 ? u.unshift(w(C[o], [L(n)])) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.unshift(w(C[o], [d]))), i = u.length > 1 ? w(e.POW, u) : u[0], m && (i = g([
1450
+ i,
1451
+ w(e.VAR, ["d"]),
1452
+ m
1453
+ ])), i;
1454
+ case 263: return j(), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, [w(e.VAR, ["e"])].concat(u)), m && (i = g([
1455
+ i,
1456
+ w(e.VAR, ["d"]),
1457
+ m
1458
+ ])), i;
1459
+ case 267: return j(), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, [w(e.NUM, ["10"])].concat(u)), m && (i = g([
1460
+ i,
1461
+ w(e.VAR, ["d"]),
1462
+ m
1463
+ ])), i;
1464
+ case 268: return j(), (n = k()) === 95 ? (j({ oneCharToken: !0 }), u.push(I())) : u.push(w(e.NUM, ["10"])), (n = k()) === 369 ? (i = M() === 123 || M() === 371 ? R(n) : M() === 124 ? L(n) : z(n), u.push(i)) : (n = k()) === 123 || n === 371 ? u.push(R(n)) : (n = k()) === 40 || n === 91 ? u.push(z(n)) : (n = k()) === 124 ? u.push(L(n)) : (d = H(V(!0)), m = U(t, d), d = m && W(d) || d, u.push(d)), i = w(e.LOG, u), m && (i = g([
1465
+ i,
1466
+ w(e.VAR, ["d"]),
1467
+ m
1468
+ ])), i;
1469
+ case 277: return ze();
1470
+ case 281:
1471
+ case 378:
1472
+ case 379: return Re();
1473
+ case 280:
1474
+ case 282:
1475
+ case 341:
1476
+ case 342:
1477
+ case 343:
1478
+ case 344: return j(), k() === 95 && (j({ oneCharToken: !0 }), u.push(I()), k() === 94 && (N(94, { oneCharToken: !0 }), u.push(I()))), u.push(V()), w(C[o], u);
1479
+ case 274: return j(), w(e.EXISTS, [We()]);
1480
+ case 276:
1481
+ case 366:
1482
+ case 284:
1483
+ case 356:
1484
+ case 357:
1485
+ case 358:
1486
+ case 359:
1487
+ case 360:
1488
+ case 365:
1489
+ case 364:
1490
+ case 361:
1491
+ case 362: return j(), w(C[o], [qe()]);
1492
+ case 278: return j(), w(e.EXP, [Ie()]);
1493
+ case 283: return j(), w(e.M, [V()]);
1494
+ case 332: return j(), w(e.FORMAT, [R()]);
1495
+ case 296: return j(), w(e.OVERLINE, [R()]);
1496
+ case 377:
1497
+ j();
1498
+ {
1499
+ let n, r = "";
1500
+ n = R(), K(n.op === e.NUM), r += n.args[0], k() === 48 && M() === 377 && (n = I(), K(n.op === e.NUM), r += n.args[0]), k() === 377 && (j(), n = R(), K(n.op === e.NUM), r += n.args[0]), d = w(e.OVERLINE, [h(t, r)]);
1501
+ }
1502
+ return d;
1503
+ case 340: return j(), w(C[o], [R()]);
1504
+ case 297:
1505
+ case 298: return j(), f = R(), p = R(), p.args.push(w(C[o], [f])), p;
1506
+ case 300: return j(), f = R(), w(e.MATHBF, [f]);
1507
+ case 63: return j(), w(e.VAR, ["?"]);
1508
+ case 367: {
1509
+ j();
1510
+ let t;
1511
+ return k() === 97 ? (t = A(), j()) : t = "", w(e.VAR, [`Delta_${t}`]);
1512
+ }
1513
+ case 46: return j(), T;
1514
+ default: K(!e.option(t, "strict"), a(1006, [o])), i = T;
1515
+ }
1516
+ return i;
1517
+ }
1518
+ function re() {
1519
+ let e = [];
1520
+ for (e.push(ie()); k() === 286;) j(), e.push(ie());
1521
+ return w(C[286], e);
1522
+ }
1523
+ function ie() {
1524
+ let e = [];
1525
+ for (e.push(qe()); k() === 287;) j(), e.push(We());
1526
+ return w(C[287], e);
1527
+ }
1528
+ let ae = 0;
1529
+ function L(t) {
1530
+ t ||= 124, ae++, N(t);
1531
+ let n, r;
1532
+ t === 369 ? N(n = k()) : n = t;
1533
+ let i = Ie();
1534
+ return N(r = t === 369 && 370 || n), r === 370 && N(r = n), ae--, _(e.ABS, [i]);
1535
+ }
1536
+ function R(t) {
1537
+ t ||= 123, N(t);
1538
+ let n, r;
1539
+ t === 369 ? N(n = k() === 371 && 371 || 123) : n = t;
1540
+ let i;
1541
+ return k() === 370 || k() === 125 || k() === 372 ? (N(r = k()), r === 370 && N(r = k() === 46 && 46 || k() === 372 && 372 || 125), i = w(e.COMMA, [])) : (i = qe(), N(r = t === 369 && 370 || t === 371 && 372 || 125), r === 370 && N(r = k() === 46 && 46 || k() === 372 && 372 || 125), i.op === T.op && i.args[0] === T.args[0] && (i = w(e.COMMA, []))), i.lbrk = n, i.rbrk = r, i;
1542
+ }
1543
+ let oe = 0;
1544
+ function se(e) {
1545
+ e ||= 91, K(e === 369 || e === 91, "1000: Internal error"), oe++, N(e);
1546
+ let t;
1547
+ e === 369 && N(91);
1548
+ let n = qe();
1549
+ return N(t = e === 369 && 369 || 93), t === 370 && N(t = 93), oe--, n;
1550
+ }
1551
+ let ce;
1552
+ function z(t) {
1553
+ oe++, N(t);
1554
+ let n, r, i;
1555
+ t === 369 ? (N(n = k()), i = !0) : n = t;
1556
+ let o;
1557
+ return k() === 370 || k() === 41 || k() === 93 ? (N(r = i && 370 || k()), r === 370 && N(r = n === 40 && 41 || n === 91 && 93 || n === 375 && 376), o = w(e.COMMA, [])) : (ce = !0, o = qe(!0), N(r = i && 370 || k() === 41 && 41 || k() === 376 && 376 || t === 369 && 370 || k() === 91 && 91 || 93), r === 370 && N(r = k() === 41 && 41 || k() === 376 && 376 || k() === 91 && 91 || 93)), n = n === 93 ? 40 : n, r = r === 91 ? 41 : r, (n === 40 || n === 91 || n === 93) && (r === 41 || r === 93 || r === 91) ? o = w(o.op === e.COMMA && o.args.length === 2 && (n === 40 && r === 41 && e.INTERVALOPEN || n === 91 && r === 93 && e.INTERVAL) || n === 40 && r === 41 && e.PAREN || n === 91 && r === 93 && e.BRACKET || n === 40 && r === 93 && e.INTERVALLEFTOPEN || n === 91 && r === 41 && e.INTERVALRIGHTOPEN, [o]) : o.lbrk === 46 && o.rbrk === 124 ? o = w(e.EVALAT, [o]) : n === 375 && r === 376 ? o = w(e.ANGLEBRACKET, [o]) : (o.op === e.COMMA || n === 40 || n === 91) && (K(n === 40 && r === 41 || n === 91 && r === 93 || n === r, a(1011, [`tk1=${n} tk2=${r}`])), o = w(n === 91 && e.BRACKET || e.PAREN, [o])), oe--, ce = !1, o.lbrk = n, o.rbrk = r, o;
1558
+ }
1559
+ function le() {
1560
+ let t = [I()];
1561
+ for (; k() === 94;) {
1562
+ j({ oneCharToken: !0 });
1563
+ let n;
1564
+ if ((me(t[0]) || r()) && ((n = k()) === 43 || n === 45)) j(), t.push(_(C[n], [y]));
1565
+ else {
1566
+ let n = B();
1567
+ n.op === e.VAR && n.args[0] === "\\circ" && (k() === 269 && (A() === "K" || A() === "C" || A() === "F") ? (n = g([t.pop(), _(e.VAR, [`\\degree ${A()}`])]), j()) : n = g([t.pop(), _(e.VAR, ["\\degree"])])), t.push(n);
1568
+ }
1569
+ }
1570
+ if (t.length > 1) {
1571
+ let n = t.pop();
1572
+ return t.reverse().forEach((t) => {
1573
+ n = w(e.POW, [t, n]);
1574
+ }), n.isPolynomial = Oe(n), n;
1575
+ }
1576
+ let n = t[0];
1577
+ return n.isPolynomial = Oe(n), n;
1578
+ }
1579
+ function ue() {
1580
+ let t, n = le();
1581
+ switch (t = k()) {
1582
+ case 37:
1583
+ j(), n = w(e.PERCENT, [n]);
1584
+ break;
1585
+ case 33:
1586
+ j(), n = w(e.FACT, [n]);
1587
+ break;
1588
+ default: if (t === 124 && M() === 95) {
1589
+ j();
1590
+ let t = [n];
1591
+ j({ oneCharToken: !0 }), t.push(w(e.SUBSCRIPT, [We()])), n = w(e.PIPE, t);
1592
+ } else r() && (t === 43 || t === 45) && M() === 125 && (j(), n = _(C[t], [n]));
1593
+ }
1594
+ return n;
1595
+ }
1596
+ function de(e) {
1597
+ return e === 43 || e === 45 || e === 44 || e === 125 || e === 41 || e === 93 || e === 376 || e === 370 || e === 0;
1598
+ }
1599
+ function B() {
1600
+ let t, n, r;
1601
+ switch (t = k()) {
1602
+ case 43:
1603
+ case 351:
1604
+ case 45:
1605
+ j(), n = w(C[t], [B()]);
1606
+ break;
1607
+ case 258:
1608
+ j(), n = V(!0), n = w(C[t], [n]);
1609
+ break;
1610
+ case 95:
1611
+ if (r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), n = w(r, [n]), (t = k()) === 94) {
1612
+ let e = [n];
1613
+ r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), e.push(n), n = w(r, e);
1614
+ }
1615
+ break;
1616
+ case 94:
1617
+ r = C[t], j({ oneCharToken: !0 }), (t = k()) === 43 || t === 45 ? (j(), n = y) : n = B(), n = w(r, [n]);
1618
+ break;
1619
+ default: t === 97 && A() === "$" ? (j(), de(k()) ? n = w(e.VAR, ["$"]) : (n = g([w(e.VAR, ["$"]), ue()]), n.args[1].isPolynomialTerm = !0)) : n = ue();
1620
+ }
1621
+ return n;
1622
+ }
1623
+ function fe() {
1624
+ let t = [B()];
1625
+ for (; k() === 95;) j({ oneCharToken: !0 }), t.push(le()), r() && k() === 123 && (N(123), N(125));
1626
+ let i;
1627
+ return t.length === 1 ? (i = t[0], K(i.op !== e.SUBSCRIPT || i.args.length !== 1, a(1012, [n]))) : i = o(t), i;
1628
+ function o(t) {
1629
+ let n, r;
1630
+ return t.forEach((t) => {
1631
+ t.op === e.SUBSCRIPT && (t = o(t.args));
1632
+ let i, a;
1633
+ t.op === e.POW && !t.lbrk ? (n = t.args[1], i = r && r.op === e.SUBSCRIPT && r.args || r && [r] || [], a = t.args[0].op === e.SUBSCRIPT && t.args[0].args || [t.args[0]]) : r && r.op === e.POW ? (n = r.args[1], i = r.args[0].op === e.SUBSCRIPT && r.args[0].args || [r.args[0]], a = t.op === e.SUBSCRIPT && t.args || [t]) : (i = r && r.op === e.SUBSCRIPT && r.args || r && [r] || [], a = t.op === e.SUBSCRIPT && t.args || [t]);
1634
+ let s = i.concat(a);
1635
+ r = s.length > 1 && w(e.SUBSCRIPT, s) || s[0];
1636
+ }), n && v(e.POW, [r, n]) || r;
1637
+ }
1638
+ }
1639
+ function pe() {
1640
+ let t, n = fe();
1641
+ if (be(n)) return xe(n);
1642
+ if (Ce(n) && (k() === 256 || k() === 48 && M() === 47)) {
1643
+ let t = pe();
1644
+ if (be(t)) return xe(t);
1645
+ if (we(n, t)) {
1646
+ let r;
1647
+ t.op === e.PERCENT && (t = t.args[0], r = !0);
1648
+ let i;
1649
+ Ne(n) && (i = !0, n = Pe(n)), n = v(e.ADD, [n, t]), n.isMixedNumber = !0, i && (n = Pe(n)), r === !0 && (n = w(e.PERCENT, [n]));
1650
+ } else n = v(e.MUL, [n, t]), t.isImplicit = !0;
1651
+ }
1652
+ for (; (t === void 0 || t === k()) && (t = k()) === 47;) j(), n = w(C[t], [n, fe()]), n.isFraction = te(n), n.isSlash = t === 47;
1653
+ return n.op === e.FRAC && n.args[1].op === e.PERCENT && (n = w(e.PERCENT, [w(e.FRAC, [n.args[0], n.args[1].args[0]])])), n;
1654
+ }
1655
+ function me(t) {
1656
+ if (t.op !== e.VAR) return !1;
1657
+ let n = e.env[t.args[0]];
1658
+ return !!(n && n.name);
1659
+ }
1660
+ function he(t, n) {
1661
+ return K(n === void 0 || typeof n == "string", "1000: Invalid id"), t.op === e.VAR ? n === void 0 || t.args[0] === n : t.op === e.POW && he(t.args[0]) && Te(t.args[1]) ? n === void 0 || t.args[0].args[0] === n : !1;
1662
+ }
1663
+ function ge(t) {
1664
+ return t.op === e.NUM && (t.args[0] === "1" || t.args[0] === "1.");
1665
+ }
1666
+ function _e(t) {
1667
+ return t.op === e.SUB && t.args.length === 1 && ge(t.args[0]);
1668
+ }
1669
+ function ve(e) {
1670
+ return e === 42 || e === 294 || e === 47 || e === 373 || e === 304;
1671
+ }
1672
+ function ye(e) {
1673
+ return e === 259 || e === 261 || e === 260 || e === 262 || e === 264 || e === 265 || e === 307 || e === 308 || e === 309 || e === 310 || e === 311 || e === 312 || e === 291 || e === 292 || e === 293 || e === 337 || e === 339 || e === 338 || e === 313 || e === 314 || e === 315 || e === 334 || e === 336 || e === 335 || e === 263 || e === 268 || e === 267;
1674
+ }
1675
+ function be(t) {
1676
+ if (t.op !== e.FRAC) return !1;
1677
+ let n = t.args[0], r = n.op === e.MUL && n.args[0].op === e.VAR && n.args[0].args[0] || n.op === e.VAR && n.args[0] || n.op === e.POW && n.args[0].op === e.VAR && n.args[0].args[0], i = t.args[1], a = i.op === e.MUL && i.args[0].op === e.VAR && i.args[0].args[0];
1678
+ return r === "d" && a === "d" && (i.args[1] && i.args[1].op === e.VAR || i.args[1] && i.args[1].op === e.POW && i.args[1].args[0] && i.args[1].args[0].op === e.VAR);
1679
+ }
1680
+ function xe(t) {
1681
+ if (t.op !== e.FRAC) return null;
1682
+ let n = t.args[0], r = t.args[1], i = n.op === e.MUL && g(n.args.slice(1)) || V();
1683
+ K(r.args.length === 2);
1684
+ let a = r.args[1], o = a.op === e.POW && a.args[0] || a, s = a.op === e.POW && a.args[1] || y;
1685
+ return t = w(e.DERIV, [
1686
+ i,
1687
+ o,
1688
+ s
1689
+ ]), t;
1690
+ }
1691
+ function V(n = !1) {
1692
+ let i, o, s = !1, c = [], l;
1693
+ o = pe(), c = [o];
1694
+ let u = 0;
1695
+ for (; (i = k()) && !Fe(i) && !Ve(i) && !Ge(i) && i !== 44 && i !== 59 && i !== 58 && !Ue(i) && i !== 125 && i !== 372 && i !== 41 && i !== 370 && i !== 376 && !((i === 91 || i === 93) && oe > 0) && i !== 284 && i !== 366 && i !== 270 && !(i === 124 && ae > 0) && i !== 286 && i !== 287 && i !== 289 && !(n && (ve(i) || ye(i) || i === 40 || i === 369 || i === 91 || i === 375 || i === 300) || U(t, H(o)));) {
1696
+ if (s = !1, ve(i) && (j(), s = !0), o = pe(), (i === 304 || i === 373 || i === 294) && (o = v(C[i], [c.pop(), o], !0)), s || c.length === 0 || o.lbrk || c[c.length - 1].op !== e.NUM || c[c.length - 1].numberFormat !== "decimal" || c[c.length - 1].lastSeparatorIndex !== c[c.length - 1].args[0].length - 1 || c[c.length - 1].lastSeparatorIndex === c[c.length - 1].args[0].length || c[c.length - 1].lbrk || Ae([c[c.length - 1], o]) || o.op !== e.NUM || K(!1, "Shouldn't get here"), K(s || c.length === 0 || o.lbrk || c[c.length - 1].op !== e.NUM || c[c.length - 1].lbrk || Ae([c[c.length - 1], o]) || o.op !== e.NUM, a(1010)), r() && i === 40 && he(c[c.length - 1], "M")) c.pop(), o = _(e.M, [o]);
1697
+ else if (!s && c.length > 0) {
1698
+ if (c.length > 0 && we(c[c.length - 1], o)) i = c.pop(), Ne(i) && (o = v(e.MUL, [b, o])), o = v(e.ADD, [i, o]), o.isMixedNumber = !0;
1699
+ else if (c.length > 0 && c[c.length - 1].op === e.VAR && o.op === e.VAR && o.args[0].indexOf("'") === 0) o = v(e.POW, [c.pop(), o]), o.isImplicit = o.args[0].isImplicit;
1700
+ else if (c.length > 0 && (c[c.length - 1].op === e.MUL || c[c.length - 1].op === e.DOT) && c[c.length - 1].args[c[c.length - 1].args.length - 1].op === e.VAR && o.op === e.VAR && o.args[0].indexOf("'") === 0) i = c.pop(), o = g(i.args.concat(v(e.POW, [i.args.pop(), o]))), o.isImplicit = o.args[0].isImplicit;
1701
+ else if (c.length > 0 && c[c.length - 1].op === e.VAR && o.op === e.POW && o.args[0].op === e.VAR && o.args[0].args[0].indexOf("'") === 0) o = w(e.POW, [v(e.POW, [c.pop(), o.args[0]])].concat(o.args.slice(1)));
1702
+ else if (c.length > 0 && (l = Ae([c[c.length - 1], o]))) c.pop(), o = l;
1703
+ else if (je(c, o)) {
1704
+ let n = c.pop();
1705
+ o = v(e.POW, [h(t, "10"), B()]), o = v(e.TIMES, [n, o]), Me(o.args) && (o.isScientific = !0);
1706
+ } else o.op === e.VAR && o.args[0] === "\\degree" && c.length === 1 && c[0].op === e.SUB && c[0].args.length === 1 ? (o = _(e.SUB, [g([c[0].args[0], o])]), c.pop()) : o = g([c.pop(), o], !0);
1707
+ } else (i === 373 || i === 304) && Me(o.args) && (o.isScientific = !0);
1708
+ c.push(o), K(u++ < 1e3, "1000: Stuck in loop in multiplicativeExpr()");
1709
+ }
1710
+ let d = c[0];
1711
+ return d.op === e.MUL && d.args.length > 1 ? Se(d) : d;
1712
+ }
1713
+ function Se(t) {
1714
+ K(t.op === e.MUL, "1000: Internal error");
1715
+ let { args: n } = t, r = n[0];
1716
+ return r.op === e.COMMA && r.args.length === 0 && (n = n.slice(1, n.length), n[0].isImplicit = !1), r = n[n.length - 1], r.op === e.COMMA && r.args.length === 0 && (n = n.slice(0, n.length - 1)), w(t.op, n);
1717
+ }
1718
+ function Ce(t) {
1719
+ return (t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), t.op === e.NUM && t;
1720
+ }
1721
+ function we(t, n) {
1722
+ return (t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), n.op === e.PERCENT && (n = n.args[0]), !!(t.op === e.NUM && P(n));
1723
+ }
1724
+ function Te(t) {
1725
+ let n;
1726
+ return t ? ((t.op === e.SUB || t.op === e.ADD) && t.args.length === 1 && (t = t.args[0]), t.op === e.NUM && (n = new G(t.args[0])) && Te(n) ? !0 : t instanceof G && t.modulo(De).cmp(Ee) === 0) : !1;
1727
+ }
1728
+ let Ee = new G("0"), De = new G("1");
1729
+ function Oe(t) {
1730
+ let n = 0;
1731
+ if (t.op === e.POW) {
1732
+ let r = t.args[0], i = t.args[1];
1733
+ (r.op === e.VAR || r.isPolynomial || r.op === e.PAREN && Oe(r.args[0])) && Te(i) && (n = parseInt(i.args[0], 10));
1734
+ } else t.op === e.VAR ? n = 1 : (t.op === e.ADD || t.op === e.SUB || t.op === e.MUL) && t.args.forEach((e) => {
1735
+ let t = Oe(e);
1736
+ n = t > n && t || n;
1737
+ });
1738
+ return n;
1739
+ }
1740
+ function ke(t) {
1741
+ return t.op === e.MUL || t.op === e.TIMES || t.op === e.CDOT;
1742
+ }
1743
+ function Ae(t) {
1744
+ if (!Ce(t[0])) return null;
1745
+ let n, r = !1;
1746
+ t[0].op === e.SUB && t[0].args[0].op === e.NUM && (t[0] = t[0].args[0], r = !0), ke(t[0]) && t[0].args[t[0].args.length - 1].numberFormat === "decimal" && (n = t[0].args.slice(0, t[0].args.length - 1), t = t[0].args.slice(t[0].args.length - 1).concat(t[1]));
1747
+ let i, a, o;
1748
+ if (!t[0].lbrk && (t[0].op === e.NUM && t[0].numberFormat === "decimal" || t[0].op === e.VAR && t[0].args[0] === "?" || t[0].op === e.TYPE && t[0].args[0].op === e.VAR && t[0].args[0].args[0] === "decimal")) {
1749
+ if (!t[1].lbrk && t[1].op === e.OVERLINE) a = t[0], o = t[1].args[0];
1750
+ else return null;
1751
+ a.isRepeating = !0, o.isRepeating = !0, i = v(e.ADD, [a, o]), i.numberFormat = "decimal", i.isRepeating = !0, n && (i = g(n.concat(i)));
1752
+ } else i = null;
1753
+ return i = i !== null && r && _(e.SUB, [i]) || i, i;
1754
+ }
1755
+ function je(t, n) {
1756
+ return !!(t.length > 0 && Ce(t[t.length - 1]) && n.op === e.TEXT && (n.args[0].args[0] === "E" || n.args[0].args[0] === "e") && (k() === 48 || (k() === 45 || k() === 43) && M() === 48));
1757
+ }
1758
+ function Me(t) {
1759
+ let n;
1760
+ if (t.length === 2) {
1761
+ let r = t[0], i = t[1];
1762
+ return !!((n = Ce(r)) && +n.args[0] >= 1 && +n.args[0] < 10 && i.op === e.POW && (n = Ce(i.args[0])) && n.args[0] === "10" && Te(i.args[1]));
1763
+ }
1764
+ return !1;
1765
+ }
1766
+ function Ne(t) {
1767
+ return typeof t == "number" ? t < 0 : t.args.length === 1 ? t.op === o.SUB && t.args[0].args[0] > 0 || t.op === e.NUM && +t.args[0] < 0 : t.args.length === 2 && t.op === o.MUL && Ne(t.args[0]);
1768
+ }
1769
+ function Pe(t) {
1770
+ if (typeof t == "number") return -t;
1771
+ if (t.op === e.SUB && t.args.length === 1) return t.args[0];
1772
+ if (t.op === e.MUL) {
1773
+ let e = t.args.slice(0);
1774
+ return g([Pe(e.shift())].concat(e));
1775
+ }
1776
+ return t.op === e.POW && _e(t.args[1]) ? v(e.POW, [Pe(t.args[0]), b]) : _(e.SUB, [t]);
1777
+ }
1778
+ function Fe(e) {
1779
+ return e === 43 || e === 45 || e === 258 || e === 299 || e === 341 || e === 343;
1780
+ }
1781
+ function Ie() {
1782
+ let n = V(), r;
1783
+ for (; Fe(r = k());) {
1784
+ j();
1785
+ let i = V();
1786
+ switch (r) {
1787
+ case 299:
1788
+ case 341:
1789
+ case 343:
1790
+ n.lbrk === 371 && n.rbrk === 372 && (n = w(e.SET, [n])), i.lbrk === 371 && i.rbrk === 372 && (i = w(e.SET, [i])), n = v(C[r], [n, i]);
1791
+ break;
1792
+ case 258:
1793
+ n = v(e.PM, [n, i]);
1794
+ break;
1795
+ case 45:
1796
+ n = v(e.SUB, [n, i]);
1797
+ break;
1798
+ default: {
1799
+ let r = !e.option(t, "compareGrouping") && !(n.isMixedNumber || i.isMixedNumber);
1800
+ n = v(e.ADD, [n, i], r);
1801
+ break;
1802
+ }
1803
+ }
1804
+ }
1805
+ return n.isPolynomial = Oe(n), n;
1806
+ }
1807
+ function Le(t) {
1808
+ return t.op === e.SIN || t.op === e.COS || t.op === e.TAN || t.op === e.SEC || t.op === e.COT || t.op === e.CSC || t.op === e.SINH || t.op === e.COSH || t.op === e.TANH || t.op === e.SECH || t.op === e.COTH || t.op === e.CSCH || t.op === e.ARCSIN || t.op === e.ARCCOS || t.op === e.ARCTAN || t.op === e.ARCSEC || t.op === e.ARCCOT || t.op === e.ARCCSC || t.op === e.ARCSINH || t.op === e.ARCCOSH || t.op === e.ARCTANH || t.op === e.ARCSECH || t.op === e.ARCCOTH || t.op === e.ARCCSCH || t.op === e.LN || t.op === e.LOG || t.op === e.LG;
1809
+ }
1810
+ function H(t) {
1811
+ let n = [], r = t.op;
1812
+ if (r === e.NUM || r === e.VAR) return t;
1813
+ (r === e.CDOT || r === e.TIMES) && (r = e.MUL), t.args.forEach((t) => {
1814
+ t = H(t), r !== e.INTEGRAL && t.op === r && t.args.length > 1 ? n = n.concat(t.args) : n.push(t);
1815
+ });
1816
+ let { isMixedNumber: i } = t;
1817
+ return t = w(r, n), t.isMixedNumber = i, t;
1818
+ }
1819
+ function U(t, n) {
1820
+ if (!e.option(t, "parsingIntegralExpr")) return null;
1821
+ let r = n.args.length;
1822
+ if (n.op === e.MUL && n.args[r - 1].op === e.FRAC || ke(n) && Le(n.args[r - 1])) return U(t, n.args[r - 1]);
1823
+ if (n.op === e.FRAC) return U(t, n.args[0]);
1824
+ if (Le(n)) return U(t, n.args[r - 1]);
1825
+ let i = n.args[r - 2], a = n.args[r - 1];
1826
+ return n && n.op === e.MUL && i.op === e.VAR && i.args[0] === "d" && a.op === e.VAR && a || null;
1827
+ }
1828
+ function W(t) {
1829
+ K(ke(t) || t.op === e.FRAC || Le(t));
1830
+ let n = t.args[t.args.length - 1];
1831
+ return t.op === e.MUL && n.op === e.FRAC ? (n = W(n), t = g(t.args.slice(0, t.args.length - 1).concat(n))) : ke(t) && Le(n) ? (n = W(n), t = w(t.op, t.args.slice(0, t.args.length - 1).concat(n))) : t = t.op === e.FRAC ? w(e.FRAC, [W(t.args[0]), t.args[1]]) : Le(t) ? w(t.op, [W(t.args[t.args.length - 1])]) : g(t.args.slice(0, t.args.length - 2)), t;
1832
+ }
1833
+ function Re(r) {
1834
+ let i, o, s = e.option(t, "parsingIntegralExpr", !0), c = [];
1835
+ if (k() === 379) N(379), i = Re(379), o = U(t, H(V()));
1836
+ else if (k() === 378 || r === 379) r !== 379 && N(378), i = Re(378), o = U(t, H(V()));
1837
+ else if (r !== 378 && N(281), k() === 95 && (j({ oneCharToken: !0 }), c.push(I()), k() === 94 && (N(94, { oneCharToken: !0 }), c.push(I()))), k() === 281) i = Re(), o = U(t, H(V()));
1838
+ else {
1839
+ i = H(V());
1840
+ let n;
1841
+ for (o = U(t, i), i = o && W(i) || i; Fe(n = k()) && !o;) {
1842
+ j();
1843
+ let r = H(V());
1844
+ switch (o = U(t, r), r = o && W(r) || r, n) {
1845
+ case 45:
1846
+ i = v(e.SUB, [i, r]);
1847
+ break;
1848
+ default: i = v(e.ADD, [i, r], !0);
1849
+ }
1850
+ }
1851
+ }
1852
+ return c.push(i), c.push(o || T), e.option(t, "parsingIntegralExpr", s), K(o, a(1014, [n.replace(/\\\\/g, "\\")])), w(e.INTEGRAL, c);
1853
+ }
1854
+ function ze() {
1855
+ N(277);
1856
+ let t = [];
1857
+ return k() === 95 && (j({ oneCharToken: !0 }), t.push(I())), t.push(V()), w(e.LIM, t);
1858
+ }
1859
+ function Be() {
1860
+ let t = Ie();
1861
+ for (; k() === 58;) {
1862
+ j();
1863
+ let n = Ie();
1864
+ t = v(e.COLON, [t, n], !0);
1865
+ }
1866
+ return t;
1867
+ }
1868
+ function Ve(e) {
1869
+ return e === 270 || e === 271 || e === 272 || e === 273 || e === 305 || e === 306 || e === 275 || e === 279 || e === 345 || e === 346 || e === 333 || e === 351 || e === 347 || e === 348 || e === 349 || e === 350 || e === 352 || e === 353 || e === 354 || e === 355;
1870
+ }
1871
+ function He() {
1872
+ let n = k(), r = Be(), i = [], a = !1;
1873
+ for (; Ve(n = k());) {
1874
+ if (j(), n === 351) {
1875
+ a = !0;
1876
+ continue;
1877
+ }
1878
+ let o = Be();
1879
+ r = w(C[n], [r, o]), a &&= (r.op = `n${r.op}`, !1), i.push(r), r = e.create(t, o);
1880
+ }
1881
+ return i.length === 0 ? r : i.length === 1 ? i[0] : w(e.COMMA, i);
1882
+ }
1883
+ function Ue(e) {
1884
+ return e === 61 || e === 301 || e === 302;
1885
+ }
1886
+ function We() {
1887
+ let n = He(), r, i = [];
1888
+ for (; Ue(r = k()) || r === 284;) {
1889
+ j();
1890
+ let a = Be();
1891
+ n = w(C[r], [n, a]), i.push(n), n = e.create(t, a);
1892
+ }
1893
+ return i.length === 0 ? n : i.length === 1 ? i[0] : w(e.COMMA, i);
1894
+ }
1895
+ function Ge(e) {
1896
+ return e === 363 || e === 284 || e === 366 || e === 356 || e === 357 || e === 358 || e === 359 || e === 360 || e === 365 || e === 364 || e === 361 || e === 362;
1897
+ }
1898
+ function Ke() {
1899
+ let e = We(), t;
1900
+ for (; Ge(t = k());) {
1901
+ j();
1902
+ let n = We();
1903
+ e = w(C[t], [e, n]);
1904
+ }
1905
+ return e;
1906
+ }
1907
+ function qe(e) {
1908
+ let t = Ke(), n = [t], r;
1909
+ for (; (r = k()) === 44 || e && r === 59;) j(), l(k()) || n.push(Ke());
1910
+ return n.length > 1 ? w(C[44], n) : t;
1911
+ }
1912
+ function Je() {
1913
+ try {
1914
+ if (ee(), k()) {
1915
+ let t = qe();
1916
+ return K(!k(), a(1003, [
1917
+ O.pos(),
1918
+ O.lexeme(),
1919
+ `"${n.substring(O.pos() - 1)}"`
1920
+ ])), t.lbrk === 371 && (t = w(e.SET, [t])), t;
1921
+ }
1922
+ } catch (e) {
1923
+ throw console.log(`SYNTAX ERROR in: ${n}\n${e.stack}`), e;
1924
+ }
1925
+ return T;
1926
+ }
1927
+ return { expr: Je };
1928
+ function q(n) {
1929
+ let r = 0, i = "", o = {
1930
+ "\\Delta": 367,
1931
+ "\\cdot": 304,
1932
+ "\\times": 373,
1933
+ "\\div": 294,
1934
+ "\\dfrac": 256,
1935
+ "\\frac": 256,
1936
+ "\\sqrt": 257,
1937
+ "\\vec": 290,
1938
+ "\\pm": 258,
1939
+ "\\not": 351,
1940
+ "\\sin": 259,
1941
+ "\\cos": 261,
1942
+ "\\tan": 260,
1943
+ "\\sec": 262,
1944
+ "\\cot": 264,
1945
+ "\\csc": 265,
1946
+ "\\arcsin": 291,
1947
+ "\\arccos": 292,
1948
+ "\\arctan": 293,
1949
+ "\\arcsec": 337,
1950
+ "\\arccsc": 338,
1951
+ "\\arccot": 339,
1952
+ "\\asin": 291,
1953
+ "\\acos": 292,
1954
+ "\\atan": 293,
1955
+ "\\asec": 337,
1956
+ "\\acsc": 338,
1957
+ "\\acot": 339,
1958
+ "\\sinh": 307,
1959
+ "\\cosh": 308,
1960
+ "\\tanh": 309,
1961
+ "\\sech": 310,
1962
+ "\\coth": 311,
1963
+ "\\csch": 312,
1964
+ "\\arcsinh": 313,
1965
+ "\\arccosh": 314,
1966
+ "\\arctanh": 315,
1967
+ "\\arcsech": 334,
1968
+ "\\arccsch": 335,
1969
+ "\\arccoth": 336,
1970
+ "\\ln": 263,
1971
+ "\\lg": 267,
1972
+ "\\log": 268,
1973
+ "\\left": 369,
1974
+ "\\right": 370,
1975
+ "\\big": null,
1976
+ "\\Big": null,
1977
+ "\\bigg": null,
1978
+ "\\Bigg": null,
1979
+ "\\ ": null,
1980
+ "\\quad": null,
1981
+ "\\qquad": null,
1982
+ "\\text": 269,
1983
+ "\\textrm": 269,
1984
+ "\\textit": 269,
1985
+ "\\textbf": 269,
1986
+ "\\operatorname": 368,
1987
+ "\\lt": 270,
1988
+ "\\le": 271,
1989
+ "\\leq": 271,
1990
+ "\\gt": 272,
1991
+ "\\ge": 273,
1992
+ "\\geq": 273,
1993
+ "\\ne": 301,
1994
+ "\\neq": 301,
1995
+ "\\ngtr": 305,
1996
+ "\\nless": 306,
1997
+ "\\ni": 333,
1998
+ "\\subseteq": 347,
1999
+ "\\supseteq": 348,
2000
+ "\\subset": 349,
2001
+ "\\supset": 350,
2002
+ "\\approx": 302,
2003
+ "\\implies": 363,
2004
+ "\\Rightarrow": 366,
2005
+ "\\rightarrow": 284,
2006
+ "\\leftarrow": 356,
2007
+ "\\longrightarrow": 357,
2008
+ "\\longleftarrow": 358,
2009
+ "\\overrightarrow": 359,
2010
+ "\\overleftarrow": 360,
2011
+ "\\Leftrightarrow": 365,
2012
+ "\\leftrightarrow": 364,
2013
+ "\\longleftrightarrow": 361,
2014
+ "\\overleftrightarrow": 362,
2015
+ "\\perp": 345,
2016
+ "\\propto": 346,
2017
+ "\\parallel": 352,
2018
+ "\\nparallel": 353,
2019
+ "\\sim": 354,
2020
+ "\\cong": 355,
2021
+ "\\exists": 274,
2022
+ "\\in": 275,
2023
+ "\\forall": 276,
2024
+ "\\lim": 277,
2025
+ "\\exp": 278,
2026
+ "\\to": 279,
2027
+ "\\sum": 280,
2028
+ "\\int": 281,
2029
+ "\\iint": 378,
2030
+ "\\iiint": 379,
2031
+ "\\prod": 282,
2032
+ "\\cup": 341,
2033
+ "\\bigcup": 342,
2034
+ "\\cap": 343,
2035
+ "\\bigcap": 344,
2036
+ "\\%": 37,
2037
+ "\\binom": 285,
2038
+ "\\begin": 288,
2039
+ "\\end": 289,
2040
+ "\\colon": 58,
2041
+ "\\vert": 124,
2042
+ "\\lvert": 124,
2043
+ "\\rvert": 124,
2044
+ "\\mid": 124,
2045
+ "\\type": 295,
2046
+ "\\format": 332,
2047
+ "\\overline": 296,
2048
+ "\\dot": 377,
2049
+ "\\overset": 297,
2050
+ "\\underset": 298,
2051
+ "\\backslash": 299,
2052
+ "\\mathbf": 300,
2053
+ "\\abs": 303,
2054
+ "\\MathQuillMathField": 340,
2055
+ "\\ldots": 97,
2056
+ "\\vdots": 97,
2057
+ "\\ddots": 97,
2058
+ "\\infty": 374,
2059
+ "\\langle": 375,
2060
+ "\\rangle": 376
2061
+ }, l = {
2062
+ 162: "\\cent",
2063
+ 176: "\\degree",
2064
+ 8592: "\\leftarrow",
2065
+ 8594: "\\rightarrow",
2066
+ 8652: "\\rightleftharpoons",
2067
+ 8704: "\\forall",
2068
+ 8705: "\\complement",
2069
+ 8706: "\\partial",
2070
+ 8707: "\\exists",
2071
+ 8708: "\\nexists",
2072
+ 8709: "\\varnothing",
2073
+ 8710: "\\triangle",
2074
+ 8711: "\\nabla",
2075
+ 8712: "\\in",
2076
+ 8713: "\\notin",
2077
+ 8714: "\\in",
2078
+ 8715: "\\ni",
2079
+ 8716: "\\notni",
2080
+ 8717: "\\ni",
2081
+ 8718: "\\blacksquare",
2082
+ 8719: "\\sqcap",
2083
+ 8720: "\\amalg",
2084
+ 8721: "\\sigma",
2085
+ 8722: "-",
2086
+ 8723: "\\mp",
2087
+ 8724: "\\dotplus",
2088
+ 8725: "/",
2089
+ 8726: "\\setminus",
2090
+ 8727: "*",
2091
+ 8728: "\\circ",
2092
+ 8729: "\\bullet",
2093
+ 8730: "\\sqrt",
2094
+ 8731: null,
2095
+ 8732: null,
2096
+ 8733: "\\propto",
2097
+ 8734: "\\infty",
2098
+ 8735: "\\llcorner",
2099
+ 8736: "\\angle",
2100
+ 8737: "\\measuredangle",
2101
+ 8738: "\\sphericalangle",
2102
+ 8739: "\\divides",
2103
+ 8740: "\\notdivides",
2104
+ 8741: "\\parallel",
2105
+ 8742: "\\nparallel",
2106
+ 8743: "\\wedge",
2107
+ 8744: "\\vee",
2108
+ 8745: "\\cap",
2109
+ 8746: "\\cup",
2110
+ 8747: "\\int",
2111
+ 8748: "\\iint",
2112
+ 8749: "\\iiint",
2113
+ 8750: "\\oint",
2114
+ 8751: "\\oiint",
2115
+ 8752: "\\oiiint",
2116
+ 8753: null,
2117
+ 8754: null,
2118
+ 8755: null,
2119
+ 8756: "\\therefore",
2120
+ 8757: "\\because",
2121
+ 8758: "\\colon",
2122
+ 8759: null,
2123
+ 8760: null,
2124
+ 8761: null,
2125
+ 8762: null,
2126
+ 8763: null,
2127
+ 8764: "\\sim",
2128
+ 8765: "\\backsim",
2129
+ 8766: null,
2130
+ 8767: null,
2131
+ 8768: "\\wr",
2132
+ 8769: "\\nsim",
2133
+ 8770: "\\eqsim",
2134
+ 8771: "\\simeq",
2135
+ 8772: null,
2136
+ 8773: "\\cong",
2137
+ 8774: null,
2138
+ 8775: "\\ncong",
2139
+ 8776: "\\approx",
2140
+ 8777: null,
2141
+ 8778: "\\approxeq",
2142
+ 8779: null,
2143
+ 8780: null,
2144
+ 8781: "\\asymp",
2145
+ 8782: "\\Bumpeq",
2146
+ 8783: "\\bumpeq",
2147
+ 8784: "\\doteq",
2148
+ 8785: "\\doteqdot",
2149
+ 8786: "\\fallingdotseq",
2150
+ 8787: "\\risingdotseq",
2151
+ 8788: null,
2152
+ 8789: null,
2153
+ 8790: "\\eqcirc",
2154
+ 8791: "\\circeq",
2155
+ 8792: null,
2156
+ 8793: null,
2157
+ 8794: null,
2158
+ 8795: null,
2159
+ 8796: "\\triangleq",
2160
+ 8797: null,
2161
+ 8798: null,
2162
+ 8799: null,
2163
+ 8800: "\\ne",
2164
+ 8801: "\\equiv",
2165
+ 8802: null,
2166
+ 8803: null,
2167
+ 8804: "\\le",
2168
+ 8805: "\\ge",
2169
+ 8806: "\\leqq",
2170
+ 8807: "\\geqq",
2171
+ 8808: "\\lneqq",
2172
+ 8809: "\\gneqq",
2173
+ 8810: "\\ll",
2174
+ 8811: "\\gg",
2175
+ 8812: "\\between",
2176
+ 8813: null,
2177
+ 8814: "\\nless",
2178
+ 8815: "\\ngtr",
2179
+ 8816: "\\nleq",
2180
+ 8817: "\\ngeq",
2181
+ 8818: "\\lessim",
2182
+ 8819: "\\gtrsim",
2183
+ 8820: null,
2184
+ 8821: null,
2185
+ 8822: "\\lessgtr",
2186
+ 8823: "\\gtrless",
2187
+ 8824: null,
2188
+ 8825: null,
2189
+ 8826: "\\prec",
2190
+ 8827: "\\succ",
2191
+ 8828: "\\preccurlyeq",
2192
+ 8829: "\\succcurlyeq",
2193
+ 8830: "\\precsim",
2194
+ 8831: "\\succsim",
2195
+ 8832: "\\nprec",
2196
+ 8833: "\\nsucc",
2197
+ 8834: "\\subset",
2198
+ 8835: "\\supset",
2199
+ 8836: null,
2200
+ 8837: null,
2201
+ 8838: "\\subseteq",
2202
+ 8839: "\\supseteq",
2203
+ 8840: "\\nsubseteq",
2204
+ 8841: "\\nsupseteq",
2205
+ 8842: "\\subsetneq",
2206
+ 8843: "\\supsetneq",
2207
+ 8844: null,
2208
+ 8845: null,
2209
+ 8846: null,
2210
+ 8847: "\\sqsubset",
2211
+ 8848: "\\sqsupset",
2212
+ 8849: null,
2213
+ 8850: null,
2214
+ 8851: "\\sqcap",
2215
+ 8852: "\\sqcup",
2216
+ 8853: "\\oplus",
2217
+ 8854: "\\ominus",
2218
+ 8855: "\\otimes",
2219
+ 8856: "\\oslash",
2220
+ 8857: "\\odot",
2221
+ 8858: "\\circledcirc",
2222
+ 8859: "\\circledast",
2223
+ 8860: null,
2224
+ 8861: "\\circleddash",
2225
+ 8862: "\\boxplus",
2226
+ 8863: "\\boxminus",
2227
+ 8864: "\\boxtimes",
2228
+ 8865: "\\boxdot",
2229
+ 8866: "\\vdash",
2230
+ 8867: "\\dashv",
2231
+ 8868: "\\top",
2232
+ 8869: "\\bot",
2233
+ 8870: null,
2234
+ 8871: "\\models",
2235
+ 8872: "\\vDash",
2236
+ 8873: "\\Vdash",
2237
+ 8874: "\\Vvdash",
2238
+ 8875: "\\VDash*",
2239
+ 8876: "\\nvdash",
2240
+ 8877: "\\nvDash",
2241
+ 8878: "\\nVdash",
2242
+ 8879: "\\nVDash",
2243
+ 8880: null,
2244
+ 8881: null,
2245
+ 8882: "\\vartriangleleft",
2246
+ 8883: "\\vartriangleright",
2247
+ 8884: "\\trianglelefteq",
2248
+ 8885: "\\trianglerighteq",
2249
+ 8886: null,
2250
+ 8887: null,
2251
+ 8888: "\\multimap",
2252
+ 8889: null,
2253
+ 8890: "\\intercal",
2254
+ 8891: "\\veebar",
2255
+ 8892: "\\barwedge",
2256
+ 8893: null,
2257
+ 8894: null,
2258
+ 8895: null,
2259
+ 8896: "\\wedge",
2260
+ 8897: "\\vee",
2261
+ 8898: "\\cap",
2262
+ 8899: "\\cup",
2263
+ 8900: "\\diamond",
2264
+ 8901: "\\cdot",
2265
+ 8902: "\\star",
2266
+ 8903: null,
2267
+ 8904: "\\bowtie",
2268
+ 8905: "\\ltimes",
2269
+ 8906: "\\rtimes",
2270
+ 8907: "\\leftthreetimes",
2271
+ 8908: "\\rightthreetimes",
2272
+ 8909: "\\backsimeq",
2273
+ 8910: "\\curlyvee",
2274
+ 8911: "\\curlywedge",
2275
+ 8912: "\\Subset",
2276
+ 8913: "\\Supset",
2277
+ 8914: "\\Cap",
2278
+ 8915: "\\Cup",
2279
+ 8916: "\\pitchfork",
2280
+ 8917: "\\lessdot",
2281
+ 8918: "\\gtrdot",
2282
+ 8919: null,
2283
+ 8920: "\\lll",
2284
+ 8921: "\\ggg",
2285
+ 8922: "\\lesseqgtr",
2286
+ 8923: "\\gtreqless",
2287
+ 8924: null,
2288
+ 8925: null,
2289
+ 8926: "\\curlyeqprec",
2290
+ 8927: "\\curlyeqsucc",
2291
+ 8928: null,
2292
+ 8929: null,
2293
+ 8930: null,
2294
+ 8931: null,
2295
+ 8932: null,
2296
+ 8933: null,
2297
+ 8934: "\\lnsim",
2298
+ 8935: "\\gnsim",
2299
+ 8936: "\\precnsim",
2300
+ 8937: "\\succnsim",
2301
+ 8938: "\\ntriangleleft",
2302
+ 8939: "\\ntriangleright",
2303
+ 8940: "\\ntrianglelefteq",
2304
+ 8941: "\\ntrianglerighteq",
2305
+ 8942: "\\vdots",
2306
+ 8943: "\\cdots",
2307
+ 8944: null,
2308
+ 8945: "\\ddots",
2309
+ 8946: null,
2310
+ 8947: null,
2311
+ 8948: null,
2312
+ 8949: null,
2313
+ 8950: null,
2314
+ 8951: null,
2315
+ 8952: null,
2316
+ 8953: null,
2317
+ 8954: null,
2318
+ 8955: null,
2319
+ 8956: null,
2320
+ 8957: null,
2321
+ 8958: null,
2322
+ 8959: null,
2323
+ 10231: "\\longleftrightarrow",
2324
+ 945: "\\alpha",
2325
+ 946: "\\beta",
2326
+ 947: "\\gamma",
2327
+ 948: "\\delta",
2328
+ 949: "\\epsilon",
2329
+ 950: "\\zeta",
2330
+ 951: "\\eta",
2331
+ 952: "\\theta",
2332
+ 953: "\\iota",
2333
+ 954: "\\kappa",
2334
+ 955: "\\lambda",
2335
+ 956: "\\mu",
2336
+ 957: "\\nu",
2337
+ 958: "\\xi",
2338
+ 959: "o",
2339
+ 960: "\\pi",
2340
+ 961: "\\rho",
2341
+ 962: "\\varsigma",
2342
+ 963: "\\sigma",
2343
+ 964: "\\tau",
2344
+ 965: "\\upsilon",
2345
+ 966: "\\varphi",
2346
+ 967: "\\chi",
2347
+ 968: "\\psi",
2348
+ 969: "\\omega",
2349
+ 977: "\\vartheta",
2350
+ 981: "\\phi",
2351
+ 982: "\\varpi",
2352
+ 1009: "\\varrho",
2353
+ 1013: "\\epsilon",
2354
+ 913: "A",
2355
+ 914: "B",
2356
+ 915: "\\Gamma",
2357
+ 916: "\\Delta",
2358
+ 917: "E",
2359
+ 918: "Z",
2360
+ 919: "H",
2361
+ 920: "\\Theta",
2362
+ 921: "I",
2363
+ 922: "K",
2364
+ 923: "\\Lambda",
2365
+ 924: "M",
2366
+ 925: "N",
2367
+ 926: "\\Xi",
2368
+ 927: "O",
2369
+ 928: "\\Pi",
2370
+ 929: "P",
2371
+ 930: null,
2372
+ 931: "\\Sigma",
2373
+ 932: "T",
2374
+ 933: "\\Upsilon",
2375
+ 934: "\\Phi",
2376
+ 935: "X",
2377
+ 936: "\\Psi",
2378
+ 937: "\\Omega",
2379
+ 1013: "\\epsilon"
2380
+ };
2381
+ function u(e) {
2382
+ return e >= 65 && e <= 90 || e >= 97 && e <= 122;
2383
+ }
2384
+ function m(e) {
2385
+ e ||= {};
2386
+ let t;
2387
+ i = "";
2388
+ let s;
2389
+ for (; r < n.length;) {
2390
+ let c;
2391
+ switch (t = n.charCodeAt(r++), t === 55349 && (n.charCodeAt(r++) === 57030 ? t = 949 : K(!1, a(1004, [String.fromCharCode(t), t]))), t) {
2392
+ case 32:
2393
+ case 9:
2394
+ case 10:
2395
+ case 13:
2396
+ case 160:
2397
+ case 8203: continue;
2398
+ case 38:
2399
+ if (n.substring(r).indexOf("nbsp;") === 0) {
2400
+ r += 5;
2401
+ continue;
2402
+ }
2403
+ return 287;
2404
+ case 92:
2405
+ switch (i += String.fromCharCode(t), n.charCodeAt(r)) {
2406
+ case 92: return r++, 286;
2407
+ case 123: return r++, 371;
2408
+ case 124: return r++, 124;
2409
+ case 125: return r++, 372;
2410
+ }
2411
+ if (c = v(), c !== null) return c;
2412
+ i = "";
2413
+ continue;
2414
+ case 42:
2415
+ case 8727: return n.charCodeAt(r) === 42 ? (r++, 94) : 373;
2416
+ case 45:
2417
+ case 8722: return n.charCodeAt(r) === 62 ? (r++, 284) : 45;
2418
+ case 47:
2419
+ case 8725: return 47;
2420
+ case 33: return n.charCodeAt(r) === 61 ? (r++, 301) : t;
2421
+ case 58:
2422
+ case 8758: return 58;
2423
+ case 59: return 59;
2424
+ case 37:
2425
+ case 40:
2426
+ case 41:
2427
+ case 43:
2428
+ case 44:
2429
+ case 61:
2430
+ case 63:
2431
+ case 91:
2432
+ case 93:
2433
+ case 94:
2434
+ case 95:
2435
+ case 123:
2436
+ case 124:
2437
+ case 125: return i += String.fromCharCode(t), t;
2438
+ case 36: return i += String.fromCharCode(t), 97;
2439
+ case 39: return y(t);
2440
+ case 60: return n.charCodeAt(r) === 61 ? (r++, 271) : 270;
2441
+ case 62: return n.charCodeAt(r) === 61 ? (r++, 273) : 272;
2442
+ default: return u(t) || t === 39 ? _(t) : (s = l[t]) ? (i = s, c = o[i], c === void 0 && (c = 97), c) : d(String.fromCharCode(t)) || p(t) ? e.oneCharToken ? (i += String.fromCharCode(t), 48) : g(t) : (K(!1, a(1004, [String.fromCharCode(t), t])), 0);
2443
+ }
2444
+ }
2445
+ return 0;
2446
+ }
2447
+ let h;
2448
+ function g(e) {
2449
+ let t;
2450
+ for (; p(e) || d(String.fromCharCode(e)) || (t = c(String.fromCharCode(e), h));) {
2451
+ if (h = t || h, i += String.fromCharCode(e), e = n.charCodeAt(r++), e === 92 && n.charCodeAt(r) === 32 && (e = 32, r++), d(String.fromCharCode(e)) || (t = c(String.fromCharCode(e), h))) for (h = t || h, i += String.fromCharCode(e), e = n.charCodeAt(r++); e === 92 && (e = n.charCodeAt(r)) === 32 && r++ || f(e);) e = n.charCodeAt(r++);
2452
+ e === 92 && n.charCodeAt(r) === 32 && (e = 32, r++);
2453
+ }
2454
+ return i === "." && (n.substring(r).indexOf("overline") === 0 || n.substring(r).indexOf("dot") === 0) && (i = "0."), r--, 48;
2455
+ }
2456
+ function _(e) {
2457
+ let t = String.fromCharCode(e);
2458
+ i += t;
2459
+ let a = i, o = r + 1;
2460
+ for (; (u(e) || e === 39) && (e = n.charCodeAt(r++), !(!u(e) || (t = String.fromCharCode(e), !s.some((e) => {
2461
+ let n = a + t;
2462
+ return e.indexOf(n) === 0;
2463
+ }))));) a += t;
2464
+ for (s.indexOf(a) >= 0 ? i = a : r = o; i.lastIndexOf("'") === i.length - 1 && e === 39;) i += String.fromCharCode(e), e = n.charCodeAt(r++);
2465
+ return r--, 97;
2466
+ }
2467
+ function v() {
2468
+ let a = n.charCodeAt(r++);
2469
+ if (a === 36) i = String.fromCharCode(a);
2470
+ else if (a === 37) i += String.fromCharCode(a);
2471
+ else if ([
2472
+ 32,
2473
+ 58,
2474
+ 59,
2475
+ 44,
2476
+ 33
2477
+ ].indexOf(a) >= 0) i = "\\ ";
2478
+ else {
2479
+ for (; u(a);) i += String.fromCharCode(a), a = n.charCodeAt(r++);
2480
+ i = i === "\\varepsilon" && "\\epsilon" || i, r--;
2481
+ }
2482
+ let s = o[i];
2483
+ if (s === void 0) i === "\\emptyset" && (i = "\\varnothing"), s = 97;
2484
+ else if (s === 368) {
2485
+ for (a = n.charCodeAt(r++); a && a !== 123;) a = n.charCodeAt(r++);
2486
+ for (i = "", a = n.charCodeAt(r++); a && a !== 125;) {
2487
+ let e = String.fromCharCode(a);
2488
+ e === "&" && n.substring(r).indexOf("nbsp;") === 0 ? r += 5 : e === " " || e === " " || (i += e), a = n.charCodeAt(r++);
2489
+ }
2490
+ s = o[`\\${i}`], s === void 0 && (s = 368);
2491
+ } else if (s === 269 || s === 295) {
2492
+ for (a = n.charCodeAt(r++); a && a !== 123;) a = n.charCodeAt(r++);
2493
+ i = "", a = n.charCodeAt(r++);
2494
+ let o = e.option(t, "keepTextWhitespace");
2495
+ for (; a && a !== 125;) {
2496
+ let e = String.fromCharCode(a);
2497
+ !o && e === "&" && n.substring(r).indexOf("nbsp;") === 0 ? r += 5 : !o && (e === " " || e === " ") || (i += e), a = n.charCodeAt(r++);
2498
+ }
2499
+ s !== 295 && (s = !i || e.option(t, "ignoreText") ? null : 269);
2500
+ } else s === 374 && (s = 48);
2501
+ return s;
2502
+ }
2503
+ function y(e) {
2504
+ for (K(e === 39), i = "'"; n.charCodeAt(r) === 39;) r++, i += "'";
2505
+ return 97;
2506
+ }
2507
+ return {
2508
+ start: m,
2509
+ lexeme() {
2510
+ return i;
2511
+ },
2512
+ pos() {
2513
+ return r;
2514
+ }
2515
+ };
2516
+ }
2517
+ };
2518
+ return e;
2519
+ })(), Ze = Ye, J = Xe, Y = (e, t, n) => {
2520
+ if (t === void 0 && (t = "failed!"), !e) {
2521
+ let e = Error(t);
2522
+ throw e.location = n || X.location, e;
2523
+ }
2524
+ }, Qe = (e, t) => {
2525
+ let n = X.messages[e];
2526
+ return t && t.forEach((e, t) => {
2527
+ n = n.replace(`%${t + 1}`, e);
2528
+ }), `${e}: ${n}`;
2529
+ }, X = {
2530
+ assert: Y,
2531
+ message: Qe,
2532
+ messages: {},
2533
+ reserveCodeRange: (e, t, n) => {
2534
+ Y(e <= t, "Invalid code range"), Y(X.reservedCodes.every((n) => t < n.first || e > n.last), "Conflicting request for error code range"), X.reservedCodes.push({
2535
+ first: e,
2536
+ last: t,
2537
+ name: n
2538
+ });
2539
+ },
2540
+ reservedCodes: [],
2541
+ setLocation: (e) => {
2542
+ X.location = e;
2543
+ },
2544
+ clearLocation: () => {
2545
+ X.location = null;
2546
+ },
2547
+ checkTimeout: () => {
2548
+ Y(!X.timeout || X.timeout > Date.now(), X.timeoutMessage);
2549
+ },
2550
+ setTimeout: (e, t) => {
2551
+ e !== void 0 && (X.timeout = e ? Date.now() + e : 0, X.timeoutMessage = t || "ERROR timeout exceeded");
2552
+ },
2553
+ setCounter: (e, t) => {
2554
+ X.count = e, X.countMessage = t || "ERROR count exceeded";
2555
+ },
2556
+ checkCounter: () => {
2557
+ let { count: e } = X;
2558
+ if (typeof e != "number" || Number.isNaN(e)) {
2559
+ Y(!1, "ERROR counter not set");
2560
+ return;
2561
+ }
2562
+ Y(X.count--, X.countMessage);
2563
+ }
2564
+ }, $e = {
2565
+ data: {},
2566
+ words: {
2567
+ "\\alpha": "\\alpha",
2568
+ "\\beta": "\\beta",
2569
+ "\\gamma": "\\gamma",
2570
+ "\\delta": "\\delta",
2571
+ "\\epsilon": "\\epsilon",
2572
+ "\\zeta": "\\zeta",
2573
+ "\\eta": "\\eta",
2574
+ "\\theta": "\\theta",
2575
+ "\\iota": "\\iota",
2576
+ "\\kappa": "\\kappa",
2577
+ "\\lambda": "\\lambda",
2578
+ "\\mu": "\\mu",
2579
+ "\\nu": "\\nu",
2580
+ "\\xi": "\\xi",
2581
+ "\\omicron": "\\omicron",
2582
+ "\\pi": "\\pi",
2583
+ "\\rho": "\\rho",
2584
+ "\\sigma": "\\simga",
2585
+ "\\tau": "\\tau",
2586
+ "\\upsilon": "\\upsilon",
2587
+ "\\phi": "\\phi",
2588
+ "\\chi": "\\chi",
2589
+ "\\psi": "\\psi",
2590
+ "\\omega": "\\omega",
2591
+ "\\Alpha": "\\Alpha",
2592
+ "\\Beta": "\\Beta",
2593
+ "\\Gamma": "\\Gamma",
2594
+ "\\Delta": "\\Delta",
2595
+ "\\Epsilon": "\\Epsilon",
2596
+ "\\Zeta": "\\Zeta",
2597
+ "\\Eta": "\\Eta",
2598
+ "\\Theta": "\\Theta",
2599
+ "\\Iota": "\\Iota",
2600
+ "\\Kappa": "\\Kappa",
2601
+ "\\Lambda": "\\Lambda",
2602
+ "\\Mu": "\\Mu",
2603
+ "\\Nu": "\\Nu",
2604
+ "\\Xi": "\\Xi",
2605
+ "\\Omicron": "\\Omicron",
2606
+ "\\Pi": "\\Pi",
2607
+ "\\Rho": "\\Rho",
2608
+ "\\Sigma": "\\Simga",
2609
+ "\\Tau": "\\Tau",
2610
+ "\\Upsilon": "\\Upsilon",
2611
+ "\\Phi": "\\Phi",
2612
+ "\\Chi": "\\Chi",
2613
+ "\\Psi": "\\Psi",
2614
+ "\\Omega": "\\Omega",
2615
+ "\\emptyset": "\\emptyset"
2616
+ },
2617
+ types: { numberPosNeg: [
2618
+ "(\\type{numberPosNeg})",
2619
+ "\\type{number}",
2620
+ "-\\type{number}"
2621
+ ] },
2622
+ rules: {
2623
+ "\\left(?\\right]": ["\\left(%1\\right]"],
2624
+ "\\left[?\\right)": ["\\left[%1\\right)"],
2625
+ "\\left[?\\right]": ["\\left[%1\\right]"],
2626
+ "\\left\\{?\\right\\}": ["\\left\\{%1\\right\\}"],
2627
+ "?\\cup?": ["%1\\cup %2"],
2628
+ "?\\cap?": ["%1\\cap %2"],
2629
+ "?\\backslash?": ["%1\\backslash %2"],
2630
+ "\\mathbb{?}": ["\\mathbb{%2}"],
2631
+ "\\ln{?}": ["\\ln{%2}"],
2632
+ "\\log{?}": ["\\log{%2}"],
2633
+ "\\log_{?}{?}": ["\\log_{%1}{%2}"],
2634
+ "\\type{matrix}": [{ "\\begin{bmatrix}%1\\end{bmatrix}": {
2635
+ "\\type{row}": "%*\\\\",
2636
+ "\\type{column}": "%*&"
2637
+ } }],
2638
+ "\\frac{d}{d?}?": ["\\frac{d}{d%2}{%1}"],
2639
+ "\\frac{d^?}{d?^?}?": ["\\frac{d^%3}{d%2^%3}{%1}"],
2640
+ "\\int_?^? ? d?": ["\\int_{%1}^{%2} %3 d%4"],
2641
+ "\\int ? d?": ["\\int %1 d%2"],
2642
+ "\\lim_? ?": [{ "\\lim_{%1}{%2}": {
2643
+ "? \\rightarrow ?": "%1 \\rightarrow %2",
2644
+ "? \\to ?": "%1 \\to %2",
2645
+ "\\left(?,?\\right)": "\\left(%1, %2\\right)"
2646
+ } }],
2647
+ "\\sum_?^? ?": ["\\sum_{%1}^{%2}{%3}"],
2648
+ "\\sin{?}": ["\\sin{%1}"],
2649
+ "\\cos{?}": ["\\cos{%1}"],
2650
+ "\\tan{?}": ["\\tan{%1}"],
2651
+ "\\cot{?}": ["\\cot{%1}"],
2652
+ "\\sec{?}": ["\\sec{%1}"],
2653
+ "\\csc{?}": ["\\csc{%1}"],
2654
+ "\\sin^{-1}?": ["\\sin^{-1}{%1}"],
2655
+ "\\cos^{-1}{?}": ["\\cos^{-1}{%1}"],
2656
+ "\\tan^{-1}{?}": ["\\tan^{-1}{%1}"],
2657
+ "\\cot^{-1}{?}": ["\\cot^{-1}{%1}"],
2658
+ "\\sec^{-1}{?}": ["\\sec^{-1}{%1}"],
2659
+ "\\csc^{-1}{?}": ["\\csc^{-1}{%1}"],
2660
+ "\\sinh{?}": ["\\sinh{%1}"],
2661
+ "\\cosh{?}": ["\\cosh{%1}"],
2662
+ "\\tanh{?}": ["\\tanh{%1}"],
2663
+ "\\coth{?}": ["\\coth{%1}"],
2664
+ "\\sech{?}": ["\\sech{%1}"],
2665
+ "\\csch{?}": ["\\csch{%1}"],
2666
+ "\\sinh^{-1}{?}": ["\\sinh^{-1}{%1}"],
2667
+ "\\cosh^{-1}{?}": ["\\cosh^{-1}{%1}"],
2668
+ "\\tanh^{-1}{?}": ["\\tanh^{-1}{%1}"],
2669
+ "\\coth^{-1}{?}": ["\\coth^{-1}{%1}"],
2670
+ "\\sech^{-1}{?}": ["\\sech^{-1}{%1}"],
2671
+ "\\csch^{-1}{?}": ["\\csch^{-1}{%1}"],
2672
+ "?<?": ["%1<%2"],
2673
+ "?\\nless?": ["%1\\nless %2"],
2674
+ "?\\le?": ["%1\\le %2"],
2675
+ "?>?": ["%1>%2"],
2676
+ "?\\ge?": ["%1\\ge %2"],
2677
+ "?\\ngtr?": ["%1\\ngtr %2"],
2678
+ "?=?": ["%1=%2"],
2679
+ "?\\ne?": ["%1\\ne %2"],
2680
+ "?\\approx?": ["%1\\approx %2"],
2681
+ "\\infty": ["\\infty"],
2682
+ "\\type{mixedNumber}": ["%1%2"],
2683
+ "?%": ["{%1}%"],
2684
+ "?!": ["{%1}!"],
2685
+ "\\frac{?}{?}": ["\\frac{%1}{%2}"],
2686
+ "\\abs{?}": ["\\abs{%1}"],
2687
+ "?\\degree": ["{%1}\\degree"],
2688
+ "\\type{fraction}^?": ["\\left(%1\\right)^{%2}"],
2689
+ "{-?}^?": ["\\left(%1\\right)^{%2}"],
2690
+ "?^?": ["{%1}^{%2}"],
2691
+ "\\sqrt{?}": ["\\sqrt{%1}"],
2692
+ "\\sqrt[?]{?}": ["\\sqrt[%2]{%1}"],
2693
+ "-?": ["-%1"],
2694
+ "?+{-?}": ["%1+\\left(%2\\right)"],
2695
+ "?+?": ["%1+%2"],
2696
+ "?-{-?}": ["%1-\\left(%2\\right)"],
2697
+ "?-?": ["%1-%2"],
2698
+ "?*{-?}": ["%1\\times\\left(%2\\right)"],
2699
+ "?*?": ["%1\\times %2"],
2700
+ "?\\cdot{-?}": ["%1\\cdot\\left(%2\\right)"],
2701
+ "?\\cdot?": ["%1\\cdot %2"],
2702
+ "?\\div?": ["%1\\div %2"],
2703
+ "?:?": ["%1:%2"],
2704
+ "?_?": ["%1_{%2}"],
2705
+ "\\left(?\\right)": ["\\left(%1\\right)"],
2706
+ "{\\type{numberPosNeg}}{\\type{numberPosNeg}}": ["(%1)(%2)"],
2707
+ "? ?": ["%1 %2"],
2708
+ "?,?": ["%1,%2"],
2709
+ "?": ["%1"]
2710
+ },
2711
+ allowInterval: !0,
2712
+ parsingIntegralExpr: !1,
2713
+ RHS: !1
2714
+ };
2715
+ //#endregion
2716
+ //#region ../../node_modules/@graffiticode/translatex/src/core.js
2717
+ (function(e) {
2718
+ function t(e, t) {
2719
+ return {
2720
+ op: e,
2721
+ args: t
2722
+ };
2723
+ }
2724
+ function n(e, t) {
2725
+ return t.length > 1 ? {
2726
+ op: e,
2727
+ args: t
2728
+ } : t[0];
2729
+ }
2730
+ let r = (e, t) => {
2731
+ let n = e.indexOf("{"), r = (n > 0 && e.slice(0, n) || e).trim();
2732
+ Y(t && t[r]);
2733
+ let i = n > 0 && e.slice(n);
2734
+ return r === "$fmt" ? { rawConfig: i } : i && JSON.parse(i) || {};
2735
+ };
2736
+ function i(e) {
2737
+ function i(e, n, r, i) {
2738
+ switch (Y(n.op && n.args, `Visitor.visit() op=${n.op} args = ${n.args}`), n.op) {
2739
+ case J.NUM:
2740
+ n = r.numeric(n, i);
2741
+ break;
2742
+ case J.ADD:
2743
+ case J.SUB:
2744
+ case J.PM:
2745
+ case J.BACKSLASH:
2746
+ case J.DIV:
2747
+ case J.FRAC:
2748
+ case J.BINOM:
2749
+ case J.LOG:
2750
+ case J.COLON:
2751
+ case J.FUNC:
2752
+ case J.TYPE:
2753
+ case J.SUBSCRIPT:
2754
+ n = n.args.length === 1 ? r.unary(n, i) : r.binary(n, i);
2755
+ break;
2756
+ case J.MUL:
2757
+ case J.TIMES:
2758
+ case J.COEFF:
2759
+ case J.CDOT:
2760
+ n = r.multiplicative(n, i);
2761
+ break;
2762
+ case J.POW:
2763
+ n = r.exponential(n, i);
2764
+ break;
2765
+ case J.VAR:
2766
+ n = r.variable(n, i);
2767
+ break;
2768
+ case J.SQRT:
2769
+ case J.SIN:
2770
+ case J.COS:
2771
+ case J.TAN:
2772
+ case J.SEC:
2773
+ case J.CSC:
2774
+ case J.COT:
2775
+ case J.ARCSIN:
2776
+ case J.ARCCOS:
2777
+ case J.ARCTAN:
2778
+ case J.ARCSEC:
2779
+ case J.ARCCSC:
2780
+ case J.ARCCOT:
2781
+ case J.SINH:
2782
+ case J.COSH:
2783
+ case J.TANH:
2784
+ case J.ARCSINH:
2785
+ case J.ARCCOSH:
2786
+ case J.ARCTANH:
2787
+ case J.ARCSECH:
2788
+ case J.ARCCSCH:
2789
+ case J.ARCCOTH:
2790
+ case J.SECH:
2791
+ case J.CSCH:
2792
+ case J.COTH:
2793
+ case J.PERCENT:
2794
+ case J.M:
2795
+ case J.ABS:
2796
+ case J.FACT:
2797
+ case J.FORALL:
2798
+ case J.EXISTS:
2799
+ case J.IN:
2800
+ case J.SUM:
2801
+ case J.LIM:
2802
+ case J.EXP:
2803
+ case J.TO:
2804
+ case J.DERIV:
2805
+ case J.INTEGRAL:
2806
+ case J.PROD:
2807
+ case J.CUP:
2808
+ case J.BIGCUP:
2809
+ case J.CAP:
2810
+ case J.BIGCAP:
2811
+ case J.PIPE:
2812
+ case J.ION:
2813
+ case J.OVERLINE:
2814
+ case J.OVERSET:
2815
+ case J.UNDERSET:
2816
+ case J.MATHBF:
2817
+ case J.TEXT:
2818
+ case J.NONE:
2819
+ case J.DEGREE:
2820
+ case J.DOT:
2821
+ case J.MATHFIELD:
2822
+ case J.SET:
2823
+ case J.NOT:
2824
+ case J.OPERATORNAME:
2825
+ n = r.unary(n, i);
2826
+ break;
2827
+ case J.COMMA:
2828
+ case J.MATRIX:
2829
+ case J.VEC:
2830
+ case J.ROW:
2831
+ case J.COL:
2832
+ case J.LIST:
2833
+ case J.ANGLEBRACKET:
2834
+ n = r.comma(n, i);
2835
+ break;
2836
+ case J.EQL:
2837
+ case J.LT:
2838
+ case J.LE:
2839
+ case J.GT:
2840
+ case J.GE:
2841
+ case J.NE:
2842
+ case J.NGTR:
2843
+ case J.NLESS:
2844
+ case J.NI:
2845
+ case J.SUBSETEQ:
2846
+ case J.SUPSETEQ:
2847
+ case J.SUBSET:
2848
+ case J.SUPSET:
2849
+ case J.NNI:
2850
+ case J.NSUBSETEQ:
2851
+ case J.NSUPSETEQ:
2852
+ case J.NSUBSET:
2853
+ case J.NSUPSET:
2854
+ case J.APPROX:
2855
+ case J.IMPLIES:
2856
+ case J.PERP:
2857
+ case J.PROPTO:
2858
+ case J.PARALLEL:
2859
+ case J.NPARALLEL:
2860
+ case J.SIM:
2861
+ case J.CONG:
2862
+ case J.CAPRIGHTARROW:
2863
+ case J.RIGHTARROW:
2864
+ case J.LEFTARROW:
2865
+ case J.LONGRIGHTARROW:
2866
+ case J.LONGLEFTARROW:
2867
+ case J.OVERRIGHTARROW:
2868
+ case J.OVERLEFTARROW:
2869
+ case J.CAPLEFTRIGHTARROW:
2870
+ case J.LEFTRIGHTARROW:
2871
+ case J.LONGLEFTRIGHTARROW:
2872
+ case J.OVERLEFTRIGHTARROW:
2873
+ n = r.equals(n, i);
2874
+ break;
2875
+ case J.PAREN:
2876
+ case J.BRACKET:
2877
+ case J.BRACE:
2878
+ case J.INTERVAL:
2879
+ case J.INTERVALOPEN:
2880
+ case J.INTERVALLEFTOPEN:
2881
+ case J.INTERVALRIGHTOPEN:
2882
+ n = r.paren(n);
2883
+ break;
2884
+ default: r.name !== "normalizeLiteral" && r.name !== "sort" && (n = t(J.VAR, [`INTERNAL ERROR Should not get here. Unhandled node operator ${n.op}`]));
2885
+ }
2886
+ return n;
2887
+ }
2888
+ function s(e, t) {
2889
+ if (!t) return "";
2890
+ let n = J.option(e, "words"), r;
2891
+ return n && (r = n[t.toLowerCase()]), r || (r = t, r.charAt(0) === "\\" && (r = r.substring(1))), r;
2892
+ }
2893
+ function c(e) {
2894
+ let t = [];
2895
+ switch (e.op) {
2896
+ case J.VAR:
2897
+ t.push({ code: e.args[0] });
2898
+ break;
2899
+ case J.MUL:
2900
+ {
2901
+ let n = "", r;
2902
+ e.args.forEach((e) => {
2903
+ e.op === J.VAR ? n += e.args[0] : e.op === J.NUM && (r = +e.args[0]);
2904
+ }), t.push({
2905
+ code: n,
2906
+ length: r
2907
+ });
2908
+ }
2909
+ break;
2910
+ case J.COMMA: e.args.forEach((e) => {
2911
+ t = t.concat(c(e));
2912
+ });
2913
+ }
2914
+ return t;
2915
+ }
2916
+ function l(e) {
2917
+ let [t, n] = e.split("[");
2918
+ return {
2919
+ name: t,
2920
+ arg: n && n.substring(0, n.indexOf("]")) || void 0
2921
+ };
2922
+ }
2923
+ function u(e, t) {
2924
+ return c(e).some((e) => {
2925
+ let n = e.code, r = e.length;
2926
+ switch (n) {
2927
+ case "integer":
2928
+ if (t.numberFormat === "integer" && (r === void 0 || r === t.args[0].length)) return !0;
2929
+ break;
2930
+ case "decimal":
2931
+ if (t.numberFormat === "decimal" && t.isRepeating) return r === void 0;
2932
+ if (t.numberFormat === "decimal" && (r === void 0 || r === 0 && t.args[0].indexOf(".") === -1 || r === t.args[0].substring(t.args[0].indexOf(".") + 1).length)) return !0;
2933
+ break;
2934
+ case "repeatingDecimal": return t.numberFormat === "decimal" && t.isRepeating ? (Y(!r, "The repeatingDecimal pattern does not take a length"), !0) : !1;
2935
+ case "number":
2936
+ if (t.numberFormat === "decimal" && t.isRepeating) return r === void 0;
2937
+ if (t.numberFormat === "integer" || t.numberFormat === "decimal") {
2938
+ let e = t.args[0].indexOf(".");
2939
+ if (r === void 0 || r === 0 && e === -1 || e >= 0 && r === t.args[0].substring(e + 1).length) return !0;
2940
+ }
2941
+ break;
2942
+ case "scientific":
2943
+ if (t.isScientific) {
2944
+ let e = t.args[0].args[0];
2945
+ if (r === void 0 || r === 0 && e.indexOf(".") === -1 || r === e.substring(e.indexOf(".") + 1).length) return !0;
2946
+ }
2947
+ break;
2948
+ case "fraction":
2949
+ if (t.isFraction || t.isMixedNumber) return !0;
2950
+ break;
2951
+ case "simpleFraction":
2952
+ case "nonMixedFraction":
2953
+ if (t.isFraction) return !0;
2954
+ break;
2955
+ case "mixedFraction":
2956
+ case "mixedNumber":
2957
+ if (t.isMixedNumber) return !0;
2958
+ break;
2959
+ case "fractionOrDecimal":
2960
+ if (t.isFraction || t.isMixedNumber || t.numberFormat === "decimal") return !0;
2961
+ break;
2962
+ default: Y(!1, Qe(2015, [n]));
2963
+ }
2964
+ return !1;
2965
+ });
2966
+ }
2967
+ function d(e, t) {
2968
+ return c(e).some((e) => {
2969
+ switch (e.code) {
2970
+ case "simpleSmallRowMatrix":
2971
+ case "smallRowMatrix": return t.op === J.MATRIX && t.m === 1 && t.n < 4;
2972
+ case "simpleSmallColumnMatrix":
2973
+ case "smallColumnMatrix": return t.op === J.MATRIX && t.m < 4 && t.n === 1;
2974
+ case "simpleSmallMatrix":
2975
+ case "smallMatrix": return t.op === J.MATRIX && t.m < 4 && t.n < 4;
2976
+ case "matrix": return t.op === J.MATRIX;
2977
+ case "row": return t.op === J.ROW;
2978
+ case "column": return t.op === J.COL;
2979
+ default: return !1;
2980
+ }
2981
+ });
2982
+ }
2983
+ function f(e, t) {
2984
+ let n = l(e), r = n.name, i = n.arg;
2985
+ switch (r) {
2986
+ case "polynomial":
2987
+ if (i) {
2988
+ if (i.indexOf(">") === 0) {
2989
+ let e = parseInt(i.substring(1), 10);
2990
+ return t.isPolynomial > e;
2991
+ }
2992
+ let e = parseInt(i, 10);
2993
+ return t.isPolynomial > e;
2994
+ }
2995
+ return t.isPolynomial;
2996
+ default: return !1;
2997
+ }
2998
+ }
2999
+ function p(e) {
3000
+ return e.op === J.NUM || e.op === J.VAR || typeof e == "string";
3001
+ }
3002
+ function m(e) {
3003
+ return Y(e.op === J.MATRIX || e.op === J.ROW || e.op === J.COL), e.args.every((e) => e.op === J.MATRIX || e.op === J.ROW || e.op === J.COL ? m(e) : p(e));
3004
+ }
3005
+ function h(e, t, n) {
3006
+ if (t.op === J.TYPE && t.args[0].op === J.VAR) {
3007
+ let r = t.args[0].args[0];
3008
+ switch (r = r.indexOf("[") > 0 && r.slice(0, r.indexOf("[")) || r, r) {
3009
+ case "number":
3010
+ case "integer":
3011
+ case "decimal":
3012
+ case "scientific":
3013
+ case "fraction":
3014
+ case "simpleFraction":
3015
+ case "mixedFraction":
3016
+ case "mixedNumber":
3017
+ case "fractionOrDecimal":
3018
+ case "repeatingDecimal": return u(t.args[0], n);
3019
+ case "variable": return n.op === J.VAR;
3020
+ case "simpleSmallRowMatrix":
3021
+ case "simpleSmallColumnMatrix":
3022
+ case "simpleSmallMatrix": return d(t.args[0], n) && m(n);
3023
+ case "smallRowMatrix":
3024
+ case "smallColumnMatrix":
3025
+ case "smallMatrix":
3026
+ case "matrix":
3027
+ case "row":
3028
+ case "column": return d(t.args[0], n);
3029
+ case "polynomial": return f(t.args[0].args[0], n);
3030
+ default: {
3031
+ let t = J.option(e, "types")[r];
3032
+ if (t) return Y(t instanceof Array), t.some((t) => g(e, [J.create(e, t)], n).length > 0);
3033
+ }
3034
+ }
3035
+ return !1;
3036
+ }
3037
+ if (t.op === J.COLON && t.args[0].op === J.VAR && t.args[0].args[0] === "?") {
3038
+ switch (Y(t.args[1].op === J.VAR), t.args[1].args[0]) {
3039
+ case "N": return n.op === J.NUM;
3040
+ case "V": return n.op === J.VAR;
3041
+ }
3042
+ return !1;
3043
+ }
3044
+ return t.op === J.VAR && t.args[0] === "?" || t.op === J.MATRIX && n.op === J.MATRIX;
3045
+ }
3046
+ function g(n, r, i) {
3047
+ return r.size === 0 || i === void 0 ? !1 : r.filter((r) => {
3048
+ if (r.op === void 0 || i.op === void 0) return !1;
3049
+ if (e.intern(r) === e.intern(i) || h(n, r, i)) return !0;
3050
+ if (r.op === i.op) {
3051
+ if (r.args.length === i.args.length) return r.args.every((e, t) => r.op === J.VAR ? e.toLowerCase() === i.args[t].toLowerCase() : g(n, [e], i.args[t]).length === 1);
3052
+ if (r.args.length < i.args.length) {
3053
+ let e = i.args.slice(1);
3054
+ if (r.args.length === 2) return g(n, [r.args[0]], i.args[0]).length > 0 && g(n, [r.args[1]], t(i.op, e)).length > 0;
3055
+ }
3056
+ }
3057
+ return !1;
3058
+ });
3059
+ }
3060
+ function _(e, n, r) {
3061
+ let i = e;
3062
+ return n.forEach((t, n) => {
3063
+ e = e.replace(RegExp(`%${n + 1}`, "g"), t.args[0]);
3064
+ }), n.length > 2 ? _(i, [t(J.VAR, [e])].concat(n.slice(2)), r) : e;
3065
+ }
3066
+ function v(e, n, i, a) {
3067
+ i ||= {}, a ||= {};
3068
+ let o = e.template;
3069
+ if (n.length === 0 && n.push(t(J.VAR, [""])), o && o.indexOf("%OP") >= 0 && i.op && (o = o.replace(/* @__PURE__ */ RegExp("%OP", "g"), i.op)), o && n) {
3070
+ o.indexOf("%%") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%%", "g"), n[0].args[0]));
3071
+ let t = o.indexOf("{"), s = (t > 0 && o.slice(0, t) || o).trim();
3072
+ if (a[s]) {
3073
+ let e = a[s].fn, t = e({
3074
+ config: r(o, a),
3075
+ env: i
3076
+ }), c = [];
3077
+ n.forEach((e) => {
3078
+ c.push(e.args[0]);
3079
+ }), o = t(c);
3080
+ }
3081
+ if (o.indexOf("%*") >= 0) {
3082
+ let e = "";
3083
+ n.forEach((t, r) => {
3084
+ e !== "" && (e += " "), r === n.length - 1 && (o = o.slice(0, 2 * o.indexOf("%*") + 2)), e += o.replace("%*", t.args[0]).replace("%M", t.m).replace("%N", t.n);
3085
+ }), o = e;
3086
+ }
3087
+ return o.indexOf("%IP") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%IP", "g"), i.ip)), o.indexOf("%FP0") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%FP0", "g"), i.fp)), o.indexOf("%FP") >= 0 && (o = o.replace(/* @__PURE__ */ RegExp("%FP", "g"), i.fp.split("").join(" "))), o.indexOf("%M") >= 0 && (Y(i.m), o = o.replace(/* @__PURE__ */ RegExp("%M", "g"), i.m)), o.indexOf("%N") >= 0 && (Y(i.n), o = o.replace(/* @__PURE__ */ RegExp("%N", "g"), i.n)), e.isBinary && n.length > 2 ? o = _(o, n, i) : n.forEach((e, t) => {
3088
+ o = o.replace(RegExp(`%${t + 1}`, "g"), e ? e.args[0] : "");
3089
+ }), {
3090
+ op: J.VAR,
3091
+ args: [o]
3092
+ };
3093
+ }
3094
+ return n[0];
3095
+ }
3096
+ function y(e, t, n) {
3097
+ let r = [];
3098
+ return n.forEach((e) => {
3099
+ r = r.concat(t[JSON.stringify(e)]);
3100
+ }), r.length === 0 && r.push({ template: "" }), r[0];
3101
+ }
3102
+ function b(e, t) {
3103
+ return Y(typeof t.template == "string"), t.template.indexOf("%%") >= 0 ? [e] : e.args;
3104
+ }
3105
+ function x(e) {
3106
+ if (e.args.length <= 2) return e;
3107
+ let t = e.args.pop();
3108
+ return n(e.op, [x(e), t]);
3109
+ }
3110
+ function S(e) {
3111
+ if (e.args.length <= 2) return e;
3112
+ let t = e.args.shift();
3113
+ return n(e.op, [t, S(e)]);
3114
+ }
3115
+ function C(e, n, r) {
3116
+ r instanceof Array && (r = r.length === 1 ? r[0] : o(e, r[1], r[0]));
3117
+ let c = r, l = Object.keys(r), u = [];
3118
+ return l.forEach((e) => {
3119
+ u.push(JSON.parse(e));
3120
+ }), !n || !n.args ? (Y(!1, "Should not get here. Illformed node."), 0) : i(e, n, {
3121
+ name: "translate",
3122
+ numeric(t) {
3123
+ let n = [{
3124
+ op: J.VAR,
3125
+ args: [s(e, t.args[0])]
3126
+ }], i = e.env || {};
3127
+ if (t.numberFormat === "decimal") {
3128
+ let e = t.args[0].split(".");
3129
+ i.ip = e[0], i.fp = e[1] || "0";
3130
+ }
3131
+ let a = g(e, u, t);
3132
+ return a.length === 0 ? t : v(y(e, r, a, 1), n, i, e.expanderBuilders);
3133
+ },
3134
+ binary(t) {
3135
+ t = t.op === J.SUBSCRIPT ? S(t) : x(t);
3136
+ let n = g(e, u, t);
3137
+ if (n.length === 0) return t;
3138
+ let i = y(e, r, n, t.args.length), o = a(i), s = b(t, i), l = [];
3139
+ return s.forEach((t, n) => {
3140
+ let r = J.option(e, "RHS", n > 0);
3141
+ l = l.concat(C(e, t, [c, o])), J.option(e, "RHS", r);
3142
+ }), i.isBinary = !0, v(i, l, {
3143
+ ...e.env,
3144
+ op: t.op
3145
+ }, e.expanderBuilders);
3146
+ },
3147
+ multiplicative(t) {
3148
+ t = x(t);
3149
+ let n = g(e, u, t);
3150
+ if (n.length === 0) return t;
3151
+ let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
3152
+ return s.forEach((t, n) => {
3153
+ let r = J.option(e, "RHS", n > 0);
3154
+ l = l.concat(C(e, t, [c, o])), J.option(e, "RHS", r);
3155
+ }), i.isBinary = !0, v(i, l, {
3156
+ ...e.env,
3157
+ op: t.op
3158
+ }, e.expanderBuilders);
3159
+ },
3160
+ unary(t) {
3161
+ let n = g(e, u, t);
3162
+ if (n.length === 0) return t;
3163
+ let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
3164
+ return s.forEach((t) => {
3165
+ l = l.concat(C(e, t, [c, o]));
3166
+ }), v(i, l, {
3167
+ ...e.env,
3168
+ op: t.op
3169
+ }, e.expanderBuilders);
3170
+ },
3171
+ exponential(t) {
3172
+ let n = g(e, u, t);
3173
+ if (n.length === 0) return t;
3174
+ let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
3175
+ return s.forEach((t) => {
3176
+ l = l.concat(C(e, t, [c, o]));
3177
+ }), v(i, l, e.env, e.expanderBuilders);
3178
+ },
3179
+ variable(n) {
3180
+ let i = g(e, u, n);
3181
+ if (i.length === 0) return n;
3182
+ let o = y(e, r, i, n.args.length), l = a(o, r), d = b(n, o), f = [];
3183
+ return f.push(t(J.VAR, [s(e, d.shift())])), d.forEach((t) => {
3184
+ f = f.concat(C(e, t, [c, l]));
3185
+ }), v(o, f, e.env, e.expanderBuilders);
3186
+ },
3187
+ comma(t) {
3188
+ let n = e.env || {};
3189
+ if (t.op === J.MATRIX || t.op === J.ROW || t.op === J.COL) {
3190
+ t.op === J.MATRIX ? (Y(t.args[0].op === J.ROW), Y(t.args[0].args[0].op === J.COL), t.m = n.m = t.args[0].args.length, t.n = n.n = t.args[0].args[0].args.length, t.args.forEach((e, t) => {
3191
+ e.m = t + 1;
3192
+ })) : t.op === J.ROW ? t.args.forEach((e, t) => {
3193
+ e.m = t + 1, e.n = void 0;
3194
+ }) : t.args.forEach((e, n) => {
3195
+ e.m = t.m, e.n = n + 1;
3196
+ });
3197
+ let i = g(e, u, t);
3198
+ if (i.length === 0) return t;
3199
+ let o = y(e, r, i, t.args.length), s = [], l = a(o, r);
3200
+ return b(t, o).forEach((t, n) => {
3201
+ s = s.concat(C(e, t, [c, l])), s[n].m = t.m, s[n].n = t.n;
3202
+ }), v(o, s, n, e.expanderBuilders);
3203
+ }
3204
+ let i = g(e, u, t);
3205
+ if (i.length === 0) return t;
3206
+ let o = y(e, r, i, t.args.length), s = a(o, r), l = b(t, o), d = [];
3207
+ return l.forEach((t) => {
3208
+ d = d.concat(C(e, t, [c, s]));
3209
+ }), o.isBinary = !0, v(o, d, n, e.expanderBuilders);
3210
+ },
3211
+ equals(t) {
3212
+ let n = g(e, u, t);
3213
+ if (n.length === 0) return t;
3214
+ let i = y(e, r, n, t.args.length), o = a(i, r), s = b(t, i), l = [];
3215
+ return s.forEach((t) => {
3216
+ l = l.concat(C(e, t, [c, o]));
3217
+ }), i.isBinary = !0, v(i, l, e.env, e.expanderBuilders);
3218
+ },
3219
+ paren(t) {
3220
+ let n = g(e, u, t);
3221
+ if (n.length === 0) return t;
3222
+ let i = y(e, r, n, 1), o = a(i, r), s = b(t, i), l = [];
3223
+ return s.forEach((t) => {
3224
+ l.push(C(e, t, [c, o]));
3225
+ }), v(i, l, e.env, e.expanderBuilders);
3226
+ }
3227
+ });
3228
+ }
3229
+ this.translate = C;
3230
+ }
3231
+ function a(e) {
3232
+ return e.rules;
3233
+ }
3234
+ function o(e, t, n) {
3235
+ let r = {};
3236
+ if (t) {
3237
+ if (t instanceof Array) {
3238
+ let n = {};
3239
+ t.some((t) => t.context ? (t.context && t.context.split(" ") || []).some((r) => e[r] ? (n = t.value, !0) : !1) : (n = t, !0)), t = n;
3240
+ }
3241
+ Object.keys(t).forEach((e) => {
3242
+ r[e] = t[e];
3243
+ });
3244
+ }
3245
+ let i = Object.keys(n), a;
3246
+ return i.forEach((e) => {
3247
+ Number.isNaN(parseInt(e, 10)) ? a = n : (a = n[e], e = Object.keys(a)[0]), r[e] || (r[e] = a[e]);
3248
+ }), r;
3249
+ }
3250
+ function s(e) {
3251
+ let t, n = e.indexOf("\\context");
3252
+ if (n >= 0) {
3253
+ e = e.slice(n + 8);
3254
+ let r = e.indexOf("}");
3255
+ t = e.slice(1, r), e = e.slice(r + 1);
3256
+ }
3257
+ return {
3258
+ context: t,
3259
+ template: e
3260
+ };
3261
+ }
3262
+ function c(e, t) {
3263
+ let n;
3264
+ if (t instanceof Array) Y(t.length === 1), n = c(e, t[0]);
3265
+ else if (typeof t == "string") n = s(t);
3266
+ else {
3267
+ let r = "", i = Object.keys(t);
3268
+ Y(i.length === 1);
3269
+ let a = i[0], o = t[a], s;
3270
+ o instanceof Array ? (s = [], o.forEach((t) => {
3271
+ t.options ? (r += t.options.RHS ? " RHS" : "", r += t.options.EndRoot ? " EndRoot" : "", r += t.options.NoParens ? " NoParens" : "", s.push({
3272
+ context: r,
3273
+ value: l(e, t.value)
3274
+ })) : s.push(l(e, t));
3275
+ })) : s = l(e, o), n = {
3276
+ template: a,
3277
+ rules: s
3278
+ };
3279
+ }
3280
+ return n;
3281
+ }
3282
+ function l(e, t) {
3283
+ let n = {};
3284
+ return Object.keys(t).forEach((r) => {
3285
+ let i = JSON.stringify(J.create(e, r)), a = c(e, t[r]);
3286
+ n[i] ? n[i].push(a) : n[i] = [a];
3287
+ }), n;
3288
+ }
3289
+ function u(t, n, r) {
3290
+ let a = new i(e), o = l(t, r);
3291
+ return a.translate(t, n, o);
3292
+ }
3293
+ function d(e) {
3294
+ let t = 0, n = "";
3295
+ for (; t < e.length; t++) switch (e.charAt(t)) {
3296
+ case " ":
3297
+ case " ":
3298
+ case "\n":
3299
+ if (n.length === 0 || n.charAt(n.length - 1) === " ") continue;
3300
+ n += " ";
3301
+ break;
3302
+ default: n += e.charAt(t);
3303
+ }
3304
+ for (; n.charAt(n.length - 1) === " ";) n = n.substring(0, n.length - 1);
3305
+ for (; n.lastIndexOf("baseline") !== -1 && n.lastIndexOf(" baseline") === n.length - 9;) n = n.substring(0, n.length - 9);
3306
+ return n;
3307
+ }
3308
+ J.fn.translate = function(e, n) {
3309
+ let r = u(n, e, J.option(n, "rules"));
3310
+ return (!r || r.op !== J.VAR) && (r = t(J.VAR, [""])), d(r.args[0]);
3311
+ }, J.option = function(e, t, n) {
3312
+ Y(e);
3313
+ let r = e && e[t];
3314
+ if (n !== void 0 && (J.options = e ||= {}, e[t] = n), r === void 0) switch (t) {
3315
+ case "field":
3316
+ r = "integer";
3317
+ break;
3318
+ case "decimalPlaces":
3319
+ r = 10;
3320
+ break;
3321
+ case "toleranceAbsolute":
3322
+ case "tolerancePercent":
3323
+ case "toleranceRange":
3324
+ case "setThousandsSeparator":
3325
+ case "setDecimalSeparator":
3326
+ case "dontExpandPowers":
3327
+ case "dontFactorDenominators":
3328
+ case "dontFactorTerms":
3329
+ case "dontConvertDecimalToFraction":
3330
+ case "strict":
3331
+ case "antiderivative":
3332
+ r = void 0;
3333
+ break;
3334
+ case "types":
3335
+ r = {};
3336
+ break;
3337
+ default: r = !1;
3338
+ }
3339
+ return r;
3340
+ };
3341
+ })(new Ze());
3342
+ var et = function() {
3343
+ X.reserveCodeRange(4e3, 4999, "core");
3344
+ let e = X.messages, t = X.message, n = X.assert;
3345
+ e[4001] = "No Math Core spec provided.", e[4002] = "No Math Core solution provided.", e[4003] = "No Math Core spec value provided.", e[4004] = "Invalid Math Core spec method '%1'.", e[4005] = "Operation taking too long.", e[4006] = "Invalid option name '%1'.", e[4007] = "Invalid option value '%2' for option '%1'.", e[4008] = "Internal error: %1";
3346
+ let r = {
3347
+ ROUND: {},
3348
+ SUM: {},
3349
+ MUL: {},
3350
+ IF: {},
3351
+ matrix: {},
3352
+ pmatrix: {},
3353
+ bmatrix: {},
3354
+ Bmatrix: {},
3355
+ vmatrix: {},
3356
+ Vmatrix: {},
3357
+ array: {},
3358
+ "\\alpha": { type: "var" },
3359
+ "\\beta": { type: "var" },
3360
+ "\\gamma": { type: "var" },
3361
+ "\\delta": { type: "var" },
3362
+ "\\epsilon": { type: "var" },
3363
+ "\\zeta": { type: "var" },
3364
+ "\\eta": { type: "var" },
3365
+ "\\theta": { type: "var" },
3366
+ "\\iota": { type: "var" },
3367
+ "\\kappa": { type: "var" },
3368
+ "\\lambda": { type: "var" },
3369
+ "\\mu": {
3370
+ type: "const",
3371
+ value: 10 ** -6
3372
+ },
3373
+ "\\nu": { type: "var" },
3374
+ "\\xi": { type: "var" },
3375
+ "\\pi": {
3376
+ type: "const",
3377
+ value: Math.PI
3378
+ },
3379
+ "\\rho": { type: "var" },
3380
+ "\\sigma": { type: "var" },
3381
+ "\\tau": { type: "var" },
3382
+ "\\upsilon": { type: "var" },
3383
+ "\\phi": { type: "var" },
3384
+ "\\chi": { type: "var" },
3385
+ "\\psi": { type: "var" },
3386
+ "\\omega": { type: "var" },
3387
+ "\\sin": { type: "var" },
3388
+ "\\cos": { type: "var" },
3389
+ "\\tan": { type: "var" },
3390
+ "\\sec": { type: "var" },
3391
+ "\\csc": { type: "var" },
3392
+ "\\cot": { type: "var" },
3393
+ "\\arcsin": { type: "var" },
3394
+ "\\arccos": { type: "var" },
3395
+ "\\arctan": { type: "var" },
3396
+ "\\arcsec": { type: "var" },
3397
+ "\\arccsc": { type: "var" },
3398
+ "\\arccot": { type: "var" },
3399
+ "\\sinh": { type: "var" },
3400
+ "\\cosh": { type: "var" },
3401
+ "\\tanh": { type: "var" },
3402
+ "\\sech": { type: "var" },
3403
+ "\\csch": { type: "var" },
3404
+ "\\coth": { type: "var" },
3405
+ "\\log": { type: "var" },
3406
+ "\\ln": { type: "var" },
3407
+ "\\lg": { type: "var" }
3408
+ };
3409
+ function i(e, r) {
3410
+ switch (e) {
3411
+ case "field":
3412
+ switch (r) {
3413
+ case void 0:
3414
+ case "integer":
3415
+ case "real":
3416
+ case "complex": break;
3417
+ default: n(!1, t(4007, [e, r]));
3418
+ }
3419
+ break;
3420
+ case "decimalPlaces":
3421
+ if (r === void 0 || +r >= 0 && +r <= 20) break;
3422
+ n(!1, t(4007, [e, r]));
3423
+ break;
3424
+ case "toleranceAbsolute":
3425
+ if (r === void 0 || +r >= 0 || typeof r == "string") break;
3426
+ n(!1, t(4007, [e, r]));
3427
+ break;
3428
+ case "tolerancePercent":
3429
+ if (r === void 0 || +r >= 0) break;
3430
+ n(!1, t(4007, [e, r]));
3431
+ break;
3432
+ case "toleranceRange":
3433
+ if (r === void 0 || r instanceof Array && r.length === 2) break;
3434
+ n(!1, t(4007, [e, r]));
3435
+ break;
3436
+ case "antiderivative":
3437
+ if (r === void 0 || typeof r == "string") break;
3438
+ n(!1, t(4007, [e, r]));
3439
+ break;
3440
+ case "RHS":
3441
+ case "NoParens":
3442
+ case "EndRoot":
3443
+ case "allowDecimal":
3444
+ case "allowInterval":
3445
+ case "dontExpandPowers":
3446
+ case "dontFactorDenominators":
3447
+ case "dontFactorTerms":
3448
+ case "dontConvertDecimalToFraction":
3449
+ case "dontSimplifyImaginary":
3450
+ case "ignoreOrder":
3451
+ case "inverseResult":
3452
+ case "requireThousandsSeparator":
3453
+ case "ignoreText":
3454
+ case "ignoreTrailingZeros":
3455
+ case "allowThousandsSeparator":
3456
+ case "compareSides":
3457
+ case "ignoreCoefficientOne":
3458
+ case "strict":
3459
+ case "integrationConstant":
3460
+ case "absoluteValue":
3461
+ case "parsingIntegralExpr":
3462
+ case "keepTextWhitespace":
3463
+ if (r === void 0 || typeof r == "boolean") break;
3464
+ n(!1, t(4007, [e, r]));
3465
+ break;
3466
+ case "setThousandsSeparator":
3467
+ if (r === void 0 || typeof r == "string" && r.length === 1 || r instanceof Array) break;
3468
+ n(!1, t(4007, [e, r]));
3469
+ break;
3470
+ case "setDecimalSeparator":
3471
+ if (r === void 0 || typeof r == "string" && r.length === 1 || r instanceof Array && r.length > 0 && r[0].length === 1) break;
3472
+ n(!1, t(4007, [e, JSON.stringify(r)]));
3473
+ break;
3474
+ case "words":
3475
+ case "rules":
3476
+ case "types":
3477
+ case "data":
3478
+ case "env":
3479
+ case "expanderBuilders":
3480
+ if (r === void 0 || typeof r == "object") break;
3481
+ n(!1, t(4007, [e, r]));
3482
+ break;
3483
+ default: n(!1, t(4006, [e]));
3484
+ }
3485
+ }
3486
+ function a(e) {
3487
+ e && Object.keys(e).forEach((t) => {
3488
+ i(t, e[t]);
3489
+ });
3490
+ }
3491
+ function o(e, t, n) {
3492
+ e ||= {}, e.rules || (e.words = $e.words, e.rules = $e.rules, e.types = $e.types);
3493
+ let r = {
3494
+ method: "translate",
3495
+ options: e
3496
+ };
3497
+ e.allowInterval = !0, d(r).evaluate(t, (e, t) => {
3498
+ n(e, t);
3499
+ });
3500
+ }
3501
+ let s = null;
3502
+ function c(e) {
3503
+ s = typeof e == "function" ? e : null;
3504
+ }
3505
+ function l(e) {
3506
+ s && s(e());
3507
+ }
3508
+ function u(e, t) {
3509
+ return e ||= {}, e.rules || (e.words = $e.words, e.rules = $e.rules, e.types = $e.types), e.expanderBuilders = t || {}, e.allowInterval = !0, function(t, n) {
3510
+ d({
3511
+ method: "translate",
3512
+ options: e
3513
+ }).evaluate(t, (e, t) => {
3514
+ n(e, t);
3515
+ });
3516
+ };
3517
+ }
3518
+ function d(e) {
3519
+ let i, o = e.method, s = e.value, c = J.options = e.options, u = c.words ? Object.fromEntries(Object.keys(c.words).flatMap((e) => [[e.toLowerCase(), { type: "var" }], [e.toUpperCase(), { type: "var" }]])) : {}, d;
3520
+ try {
3521
+ X.setLocation("spec"), a(c), J.pushEnv({
3522
+ ...r,
3523
+ ...u,
3524
+ ...c.env
3525
+ }), i = s === void 0 ? void 0 : J.create(c, s, "spec"), J.popEnv();
3526
+ } catch (e) {
3527
+ d = e;
3528
+ }
3529
+ return {
3530
+ evaluate: function(e, i) {
3531
+ try {
3532
+ if (d) throw d;
3533
+ X.setLocation("user"), n(e !== void 0, t(4002)), J.pushEnv({
3534
+ ...r,
3535
+ ...u,
3536
+ ...c.env
3537
+ });
3538
+ let a = J.create(c, e, "user");
3539
+ n(a, t(4008, ["invalid input"])), X.setLocation("spec");
3540
+ let s;
3541
+ switch (o) {
3542
+ case "translate":
3543
+ s = a.translate(c);
3544
+ break;
3545
+ default: n(!1, t(4004, [o]));
3546
+ }
3547
+ J.popEnv(), i([], s);
3548
+ } catch (e) {
3549
+ l(() => `ERROR evaluate() ${e.stack}`);
3550
+ let t = e.message;
3551
+ i([{
3552
+ result: null,
3553
+ errorCode: f(e),
3554
+ message: m(t),
3555
+ stack: e.stack,
3556
+ location: e.location,
3557
+ toString() {
3558
+ return `${this.errorCode}: (${this.location}) ${this.message}\n${this.stack}`;
3559
+ }
3560
+ }], "");
3561
+ }
3562
+ },
3563
+ model: i
3564
+ };
3565
+ function f(e) {
3566
+ return e && typeof e.errorCode == "number" ? e.errorCode : p(e && e.message);
3567
+ }
3568
+ function p(e) {
3569
+ e = typeof e == "string" && e || "";
3570
+ let t = +e.slice(0, e.indexOf(":"));
3571
+ return Number.isNaN(t) ? 0 : t;
3572
+ }
3573
+ function m(e) {
3574
+ return p(e) ? e.slice(e.indexOf(":") + 2) : e;
3575
+ }
3576
+ }
3577
+ return {
3578
+ translate: o,
3579
+ buildTranslator: u,
3580
+ setLogger: c
3581
+ };
3582
+ }();
3583
+ typeof window < "u" && (window.Core = et);
3584
+ //#endregion
3585
+ //#region ../../node_modules/@graffiticode/translatex/src/spreadsheetExpanders.js
3586
+ var tt = (e, t) => Array.from({ length: t.charCodeAt(0) - e.charCodeAt(0) + 1 }, (t, n) => String.fromCharCode(e.charCodeAt(0) + n)), nt = (e, t) => {
3587
+ let n = +e, r = +t;
3588
+ return Array.from({ length: r - n + 1 }, (e, t) => String(n + t));
3589
+ }, Z = (e) => {
3590
+ try {
3591
+ return new G(e) !== null;
3592
+ } catch {
3593
+ return !1;
3594
+ }
3595
+ }, rt = (e) => [e.slice(0, 1), e.slice(1)], it = (e) => e.toUpperCase() >= "A" && e.toUpperCase() <= "Z", at = (e) => /^-?\d+$/.test(e), ot = (e) => rt(e).reduce((e, t, n) => n === 0 && it(t) || at(t), !1), st = (e = ",") => (t = {}, n, r) => {
3596
+ if (r === 0) return { start: rt(n) };
3597
+ let i = t.start, a = rt(n), o = tt(i[0], a[0]), s = nt(i[1], a[1]);
3598
+ return o.flatMap((e) => s.map((t) => e.toUpperCase() + t)).filter((e) => e !== void 0).join(e);
3599
+ }, ct = (e) => e, lt = () => (e = [], t) => [...e, t.toUpperCase()], ut = (e) => {
3600
+ let t = {
3601
+ currency: "",
3602
+ thousandsSeparator: ",",
3603
+ decimalSeparator: ".",
3604
+ decimalPlaces: 0,
3605
+ prefix: "",
3606
+ suffix: "",
3607
+ showThousands: !1,
3608
+ accountingStyle: !1,
3609
+ isPercent: !1
3610
+ };
3611
+ e.startsWith("(") && e.endsWith(")") && (t.accountingStyle = !0, e = e.slice(1, -1));
3612
+ let n = [
3613
+ "$",
3614
+ "€",
3615
+ "¥",
3616
+ "£",
3617
+ "₹",
3618
+ "₽",
3619
+ "¢"
3620
+ ], r = e;
3621
+ n.some((e) => r.startsWith(e) ? (t.currency = e, t.prefix = e, r = r.slice(1), !0) : !1), t.currency || n.some((e) => r.includes(`_${e}`) ? (t.currency = e, t.suffix = e, r = r.replace(`_${e}`, ""), !0) : !1), r.includes("%") && (t.isPercent = !0, t.suffix += "%", r = r.replace(/%/g, "")), (r.includes("#,##0") || r.includes("#.##0") || r.includes("# ##0")) && (t.showThousands = !0, r.includes("#,##0.") ? (t.thousandsSeparator = ",", t.decimalSeparator = ".") : r.includes("#.##0,") ? (t.thousandsSeparator = ".", t.decimalSeparator = ",") : r.includes("# ##0,") ? (t.thousandsSeparator = " ", t.decimalSeparator = ",") : r.includes("# ##0.") || r.includes("# ##0") ? (t.thousandsSeparator = " ", t.decimalSeparator = ".") : r.includes("#.##0") && (t.thousandsSeparator = ".", t.decimalSeparator = ","));
3622
+ let i = r.match(/[.,]0+$/);
3623
+ return i && (t.decimalPlaces = i[0].length - 1), t;
3624
+ }, dt = (e, t) => {
3625
+ let n = Number(e);
3626
+ if (Number.isNaN(n)) return e;
3627
+ let { thousandsSeparator: r, decimalSeparator: i, decimalPlaces: a, prefix: o, suffix: s, showThousands: c, accountingStyle: l, isPercent: u } = t, d = u ? Number(new G(String(e)).times(100)) : n, f = d < 0, p = Math.abs(d).toFixed(a);
3628
+ if (i !== "." && (p = p.replace(".", i)), c) {
3629
+ let e = p.split(i), t = e[0], n = e[1] || "", a = t.replace(/\B(?=(\d{3})+(?!\d))/g, r);
3630
+ p = n ? `${a}${i}${n}` : a;
3631
+ }
3632
+ return p = `${o}${p}${s}`, l && f ? `(${p})` : f ? `-${p}` : p;
3633
+ }, ft = (e, t = 2) => dt(e, {
3634
+ currency: "$",
3635
+ thousandsSeparator: ",",
3636
+ decimalSeparator: ".",
3637
+ decimalPlaces: t,
3638
+ prefix: "$",
3639
+ suffix: "",
3640
+ showThousands: !0
3641
+ }), pt = (e) => {
3642
+ let t = [
3643
+ "m/",
3644
+ "d/",
3645
+ "y",
3646
+ "mmm",
3647
+ "mmmm",
3648
+ "ddd",
3649
+ "dddd"
3650
+ ], n = e.toLowerCase();
3651
+ return t.some((e) => n.includes(e));
3652
+ }, mt = (e) => {
3653
+ if (e instanceof Date) return Number.isNaN(e.getTime()) ? null : e;
3654
+ let t = Number(e);
3655
+ if (!Number.isNaN(t)) {
3656
+ if (t >= 0 && t < 2957004) {
3657
+ let e = Math.floor(t), n = new Date(Date.UTC(1904, 0, 1));
3658
+ return new Date(n.getTime() + e * 24 * 60 * 60 * 1e3);
3659
+ }
3660
+ if (t > 2957004) return new Date(t);
3661
+ }
3662
+ let n = new Date(e);
3663
+ return Number.isNaN(n.getTime()) ? null : n;
3664
+ }, ht = (e, t) => {
3665
+ if (!e || !(e instanceof Date) || Number.isNaN(e.getTime())) return String(e || "");
3666
+ let n = (e, t = 2) => String(e).padStart(t, "0"), r = {
3667
+ yyyy: String(e.getFullYear()),
3668
+ yy: n(e.getFullYear() % 100),
3669
+ mmmm: [
3670
+ "January",
3671
+ "February",
3672
+ "March",
3673
+ "April",
3674
+ "May",
3675
+ "June",
3676
+ "July",
3677
+ "August",
3678
+ "September",
3679
+ "October",
3680
+ "November",
3681
+ "December"
3682
+ ][e.getMonth()],
3683
+ mmm: [
3684
+ "Jan",
3685
+ "Feb",
3686
+ "Mar",
3687
+ "Apr",
3688
+ "May",
3689
+ "Jun",
3690
+ "Jul",
3691
+ "Aug",
3692
+ "Sep",
3693
+ "Oct",
3694
+ "Nov",
3695
+ "Dec"
3696
+ ][e.getMonth()],
3697
+ mm: n(e.getMonth() + 1),
3698
+ m: String(e.getMonth() + 1),
3699
+ dd: n(e.getDate()),
3700
+ d: String(e.getDate())
3701
+ }, i = "", a = 0;
3702
+ for (; a < t.length;) {
3703
+ let e = !1;
3704
+ Object.keys(r).sort((e, t) => t.length - e.length).some((n) => t.substring(a, a + n.length).toLowerCase() === n && (i += r[n], a += n.length, e = !0, !0)), e || (i += t[a], a++);
3705
+ }
3706
+ return i;
3707
+ }, gt = ({ env: e, args: t }) => {
3708
+ let n = t[1] || e.format || "", r;
3709
+ if (n.toLowerCase() === "currency") r = ft(t[0]);
3710
+ else if (n.includes("#") || n.includes("0")) {
3711
+ let e = ut(n);
3712
+ r = dt(t[0], e);
3713
+ } else if (pt(n)) {
3714
+ let e = mt(t[0]);
3715
+ r = e ? ht(e, n) : t[0];
3716
+ } else r = t[0];
3717
+ return r;
3718
+ }, Q = ({ env: e, str: t }) => ot(t) && e[t.toUpperCase()]?.val || t, _t = (e) => {
3719
+ if (e == null || e === "") return !1;
3720
+ if (typeof e == "string") {
3721
+ let t = e.trim();
3722
+ if (t === "" || t === "0" || t.toUpperCase() === "FALSE") return !1;
3723
+ }
3724
+ return typeof e == "number" || e instanceof G ? +e != 0 : !0;
3725
+ }, $ = {
3726
+ round: (e) => (t = "", n, r) => {
3727
+ let i = Q({
3728
+ env: e,
3729
+ str: n
3730
+ });
3731
+ if (Z(i)) {
3732
+ if (r === 0) return new G(i);
3733
+ if (r === 1) return new G(t).toDecimalPlaces(+i, G.ROUND_HALF_UP);
3734
+ }
3735
+ return t;
3736
+ },
3737
+ sum: (e) => (t = 0, n) => {
3738
+ let r = Q({
3739
+ env: e,
3740
+ str: n
3741
+ });
3742
+ return Z(r) ? new G(t).plus(new G(r)) : t;
3743
+ },
3744
+ minus: (e) => (t = "", n, r) => {
3745
+ let i = Q({
3746
+ env: e,
3747
+ str: n
3748
+ });
3749
+ return Z(i) ? r === 0 ? new G(i) : new G(t).minus(new G(i)) : t;
3750
+ },
3751
+ multiply: (e) => (t = 1, n) => {
3752
+ let r = Q({
3753
+ env: e,
3754
+ str: n
3755
+ });
3756
+ return Z(r) ? new G(t).times(new G(r)) : t;
3757
+ },
3758
+ mul: (e) => (t = 1, n) => {
3759
+ let r = Q({
3760
+ env: e,
3761
+ str: n
3762
+ });
3763
+ return Z(r) ? new G(t).times(new G(r)) : t;
3764
+ },
3765
+ divide: (e) => (t = "", n, r) => {
3766
+ let i = Q({
3767
+ env: e,
3768
+ str: n
3769
+ });
3770
+ return Z(i) ? r === 0 ? new G(i) : new G(t).dividedBy(new G(i)) : t;
3771
+ },
3772
+ normalize: lt,
3773
+ range: st,
3774
+ if: (e) => (t = null, n, r) => (n = Q({
3775
+ env: e,
3776
+ str: n
3777
+ }), r === 0 ? {
3778
+ condition: _t(n),
3779
+ trueValue: null,
3780
+ falseValue: null
3781
+ } : r === 1 ? {
3782
+ ...t,
3783
+ trueValue: n
3784
+ } : r === 2 ? t.condition ? t.trueValue : n : t),
3785
+ average: (e) => {
3786
+ let t = new G(0), n = 0;
3787
+ return (r, i) => (i = Q({
3788
+ env: e,
3789
+ str: i
3790
+ }), Z(i) && (t = t.plus(new G(i)), n++), n > 0 ? t.dividedBy(n) : new G(0));
3791
+ }
3792
+ }, vt = (e, t, n) => {
3793
+ let r = Q({
3794
+ env: e,
3795
+ str: t[0]
3796
+ }), i = Q({
3797
+ env: e,
3798
+ str: t[1]
3799
+ }), a;
3800
+ if (Z(r) && Z(i)) a = new G(r).comparedTo(new G(i));
3801
+ else {
3802
+ let e = String(r), t = String(i);
3803
+ a = e === t ? 0 : e < t ? -1 : 1;
3804
+ }
3805
+ return String(n(a));
3806
+ }, yt = (e) => ({
3807
+ type: "fn",
3808
+ fn: ({ env: t }) => ((n) => vt(t, n, e))
3809
+ }), bt = {
3810
+ $cell: {
3811
+ type: "fn",
3812
+ fn: ({ env: e }) => ((t) => e[t[1].toUpperCase()]?.val || "0")
3813
+ },
3814
+ $fmt: {
3815
+ type: "fn",
3816
+ fn: ({ config: e, env: t }) => ((n) => {
3817
+ if (e.rawConfig) {
3818
+ let r = e.rawConfig.slice(1, -1);
3819
+ if (r.includes("isNegative:true")) {
3820
+ let e = t.format?.formatString || t.format || "";
3821
+ n = [`-${n[0]}`, e];
3822
+ } else if (r.includes("isNegative:false")) {
3823
+ let e = t.format?.formatString || t.format || "";
3824
+ n = [n[0], e];
3825
+ } else {
3826
+ let e = r.indexOf(",");
3827
+ if (e >= 0) {
3828
+ let t = r.slice(0, e), i = r.slice(e + 1);
3829
+ t = t.replace("%1", n[0]), n = [t, i];
3830
+ }
3831
+ }
3832
+ } else if (n.length === 1) {
3833
+ let e = t.format?.formatString || t.format || "";
3834
+ n = [n[0], e];
3835
+ }
3836
+ return gt({
3837
+ env: t,
3838
+ args: n
3839
+ });
3840
+ })
3841
+ },
3842
+ $range: {
3843
+ type: "fn",
3844
+ fn: ({ config: e }) => ((t) => t.reduce($.range(e && e.sep === "list" ? "" : ","), void 0))
3845
+ },
3846
+ $add: {
3847
+ type: "fn",
3848
+ fn: ({ env: e }) => ((t) => `${t.reduce($.sum(e), void 0)}`)
3849
+ },
3850
+ $minus: {
3851
+ type: "fn",
3852
+ fn: ({ env: e }) => ((t) => (t.length === 1 && t.unshift("0"), `${t.reduce($.minus(e), void 0)}`))
3853
+ },
3854
+ $multiply: {
3855
+ type: "fn",
3856
+ fn: ({ env: e }) => ((t) => `${t.reduce($.multiply(e), void 0)}`)
3857
+ },
3858
+ $percent: {
3859
+ type: "fn",
3860
+ fn: ({ env: e }) => ((t) => (t.push("0.01"), `${t.reduce($.multiply(e), void 0)}`))
3861
+ },
3862
+ $divide: {
3863
+ type: "fn",
3864
+ fn: ({ env: e }) => ((t) => `${t.reduce($.divide(e), void 0)}`)
3865
+ },
3866
+ $gt: yt((e) => e > 0),
3867
+ $lt: yt((e) => e < 0),
3868
+ $ge: yt((e) => e >= 0),
3869
+ $le: yt((e) => e <= 0),
3870
+ $eq: yt((e) => e === 0),
3871
+ $ne: yt((e) => e !== 0),
3872
+ $argsep: {
3873
+ type: "fn",
3874
+ fn: () => ((e) => e.join(""))
3875
+ },
3876
+ $call: {
3877
+ type: "fn",
3878
+ fn: ({ env: e }) => ((t) => {
3879
+ let n = String(t[0]).toLowerCase(), r = String(t[1] === void 0 ? "" : t[1]).split(""), i = $[n];
3880
+ return i ? `${r.reduce(i(e), void 0)}` : `${t[0]}${r.join("")}`;
3881
+ })
3882
+ },
3883
+ $fn: {
3884
+ type: "fn",
3885
+ fn: ({ env: e }) => ((t) => `${t[1].split(",").reduce($[t[0].toLowerCase()](e), void 0)}`)
3886
+ },
3887
+ $normalize: {
3888
+ type: "fn",
3889
+ fn: ({ config: e, env: t }) => ((n) => `${n.reduce(ct($.normalize(t)), e?.acc)}`)
3890
+ }
3891
+ }, xt = (e) => {
3892
+ let t = String(e ?? "");
3893
+ return t.includes("") ? t.split("").join(", ") : null;
3894
+ }, St = et, Ct = { rules: {
3895
+ "??": ["%1%2"],
3896
+ "-\\type{number}": [{ "%1": { "\\type{number}": "$fmt{isNegative:true}" } }],
3897
+ "\\type{number}": ["$fmt{isNegative:false}"],
3898
+ "?": ["%1"]
3899
+ } }, wt = {
3900
+ types: {
3901
+ cellName: ["\\type{variable}\\type{integer}"],
3902
+ cellRange: ["\\type{cellName}:\\type{cellName}"],
3903
+ fn: [
3904
+ "average",
3905
+ "if",
3906
+ "mul",
3907
+ "power",
3908
+ "round",
3909
+ "sum"
3910
+ ]
3911
+ },
3912
+ rules: {
3913
+ "=\\type{cellName}": ["$cell"],
3914
+ "=?": [{ "%2": {
3915
+ "\\type{cellRange}": "%1:%2",
3916
+ "\\type{fn}(\\type{cellRange})": "$normalize",
3917
+ "?+?": "$normalize {\"acc\": [\"SUM\"]}",
3918
+ "?-?": "$normalize {\"acc\": [\"SUB\"]}",
3919
+ "?*?": "$normalize {\"acc\": [\"MUL\"]}",
3920
+ "?/?": "$normalize {\"acc\": [\"DIV\"]}",
3921
+ "?%": "$percent",
3922
+ "-?": "$minus"
3923
+ } }],
3924
+ "\\type{cellRange}": ["$range"],
3925
+ "\\type{cellName}": ["%1%2"],
3926
+ "\\type{fn}(\\type{cellRange})": ["%1(%2)"],
3927
+ "??": ["%1%2"],
3928
+ "?": ["%1"]
3929
+ }
3930
+ }, Tt = {
3931
+ UNKNOWN_FUNCTION: 4100,
3932
+ WRONG_ARITY: 4101,
3933
+ BAD_ARGUMENT: 4102,
3934
+ UNRESOLVED: 4103,
3935
+ DIVIDE_BY_ZERO: 4104
3936
+ }, Et = {
3937
+ [Tt.UNKNOWN_FUNCTION]: "#NAME!",
3938
+ [Tt.WRONG_ARITY]: "#N/A",
3939
+ [Tt.BAD_ARGUMENT]: "#VALUE!",
3940
+ [Tt.UNRESOLVED]: "#NAME!",
3941
+ [Tt.DIVIDE_BY_ZERO]: "#DIV/0!"
3942
+ };
3943
+ function Dt(e) {
3944
+ return Et[e] || null;
3945
+ }
3946
+ function Ot(e, t) {
3947
+ let n = /* @__PURE__ */ Error(`${e}: ${t}`);
3948
+ return n.errorCode = e, n;
3949
+ }
3950
+ function kt(e, t, n) {
3951
+ if (!Z(n)) throw Ot(Tt.BAD_ARGUMENT, `argument ${t + 1} of ${e} is not a number: ${JSON.stringify(String(n))}`);
3952
+ return new G(n);
3953
+ }
3954
+ var At = [
3955
+ {
3956
+ name: "SUM",
3957
+ minArgs: 1,
3958
+ maxArgs: Infinity,
3959
+ reduce: $.sum
3960
+ },
3961
+ {
3962
+ name: "AVERAGE",
3963
+ minArgs: 1,
3964
+ maxArgs: Infinity,
3965
+ reduce: $.average
3966
+ },
3967
+ {
3968
+ name: "MUL",
3969
+ minArgs: 1,
3970
+ maxArgs: Infinity,
3971
+ reduce: $.mul
3972
+ },
3973
+ {
3974
+ name: "ROUND",
3975
+ minArgs: 1,
3976
+ maxArgs: 2,
3977
+ reduce: $.round
3978
+ },
3979
+ {
3980
+ name: "IF",
3981
+ minArgs: 3,
3982
+ maxArgs: 3,
3983
+ reduce: $.if
3984
+ }
3985
+ ], jt = {
3986
+ "+": "SUM",
3987
+ "-": "MINUS",
3988
+ "*": "MULTIPLY",
3989
+ "/": "DIVIDE",
3990
+ "%": "PERCENT"
3991
+ }, Mt = [
3992
+ {
3993
+ name: "MINUS",
3994
+ minArgs: 1,
3995
+ maxArgs: Infinity,
3996
+ operatorOnly: !0,
3997
+ reduce: $.minus
3998
+ },
3999
+ {
4000
+ name: "MULTIPLY",
4001
+ minArgs: 1,
4002
+ maxArgs: Infinity,
4003
+ operatorOnly: !0,
4004
+ reduce: $.multiply
4005
+ },
4006
+ {
4007
+ name: "DIVIDE",
4008
+ minArgs: 1,
4009
+ maxArgs: Infinity,
4010
+ operatorOnly: !0,
4011
+ reduce: $.divide
4012
+ },
4013
+ {
4014
+ name: "PERCENT",
4015
+ minArgs: 1,
4016
+ maxArgs: Infinity,
4017
+ operatorOnly: !0,
4018
+ reduce: $.multiply
4019
+ }
4020
+ ], Nt = {
4021
+ getCellValue: (e, t) => Q({
4022
+ env: t,
4023
+ str: e
4024
+ }),
4025
+ isValidDecimal: Z,
4026
+ evaluateCondition: _t,
4027
+ toDecimal: kt,
4028
+ fail: (e, t) => {
4029
+ throw Ot(e, t);
4030
+ },
4031
+ Decimal: G
4032
+ }, Pt = { eval: {
4033
+ "=\\type{cellName}": ["$cell"],
4034
+ "=?": [{ "%2": {
4035
+ "\\type{fn}(\\type{args})": "$call",
4036
+ "\\type{fn}(?,?)": "$call",
4037
+ "\\type{fn}(?)": "$call",
4038
+ "?>=?": "$ge",
4039
+ "?<=?": "$le",
4040
+ "?!=?": "$ne",
4041
+ "?>?": "$gt",
4042
+ "?<?": "$lt",
4043
+ "?=?": "$eq",
4044
+ "?+?": "$add",
4045
+ "?-?": "$minus",
4046
+ "?*?": "$multiply",
4047
+ "?/?": "$divide",
4048
+ "?%": "$percent",
4049
+ "-?": "$minus"
4050
+ } }],
4051
+ "-?": ["-%1"],
4052
+ "\\type{cellRange}": ["$range{\"sep\":\"list\"}"],
4053
+ "\\type{args}": ["$argsep"],
4054
+ "\\type{cellName}": ["%1%2"],
4055
+ "\\type{fn}(\\type{cellRange})": ["%1(%2)"],
4056
+ "??": ["%1%2"],
4057
+ "?": ["%1"]
4058
+ } }, Ft = {
4059
+ args: ["\\type{cellName}:\\type{cellName}", "?,?"],
4060
+ cellName: ["\\type{variable}\\type{integer}"],
4061
+ cellRange: ["\\type{cellName}:\\type{cellName}"]
4062
+ };
4063
+ function It(e) {
4064
+ let t = /* @__PURE__ */ new Map();
4065
+ for (let n of [
4066
+ ...At,
4067
+ ...Mt,
4068
+ ...e || []
4069
+ ]) n && n.name && t.set(String(n.name).toUpperCase(), {
4070
+ minArgs: 1,
4071
+ maxArgs: Infinity,
4072
+ ...n,
4073
+ name: String(n.name).toUpperCase()
4074
+ });
4075
+ return t;
4076
+ }
4077
+ function Lt(e, t, n, r) {
4078
+ if (r && (t.length < e.minArgs || t.length > e.maxArgs)) {
4079
+ let n;
4080
+ throw n = e.maxArgs === Infinity ? `at least ${e.minArgs}` : e.minArgs === e.maxArgs ? `${e.minArgs}` : `${e.minArgs} to ${e.maxArgs}`, Ot(Tt.WRONG_ARITY, `${e.name} expects ${n} arguments, got ${t.length}`);
4081
+ }
4082
+ return e.apply ? String(e.apply({
4083
+ args: t,
4084
+ env: n,
4085
+ helpers: {
4086
+ ...Nt,
4087
+ getCellValue: (e) => Q({
4088
+ env: n,
4089
+ str: e
4090
+ })
4091
+ }
4092
+ })) : `${t.reduce(e.reduce(n), void 0)}`;
4093
+ }
4094
+ function Rt(e = {}) {
4095
+ let { functions: t = [], operators: n = jt, patterns: r = Pt, strict: i = !1 } = e, a = It(t), o = [...a.values()].filter((e) => !e.operatorOnly).map((e) => e.name.toLowerCase()).sort(), s = Object.fromEntries(o.map((e) => [e, e])), c = {
4096
+ ...Ft,
4097
+ fn: o
4098
+ }, l = (e, t, n) => {
4099
+ let r = a.get(String(e).toUpperCase());
4100
+ if (!r) {
4101
+ if (i) throw Ot(Tt.UNKNOWN_FUNCTION, `unknown function ${String(e).toUpperCase()}`);
4102
+ return `${e}${t.join("")}`;
4103
+ }
4104
+ return Lt(r, t, n, i);
4105
+ }, u = (e, t) => ({
4106
+ type: "fn",
4107
+ fn: ({ env: r }) => ((i) => {
4108
+ let a = t ? t([...i]) : [...i];
4109
+ return l(n[e], a, r);
4110
+ })
4111
+ });
4112
+ return {
4113
+ expanders: {
4114
+ ...bt,
4115
+ $call: {
4116
+ type: "fn",
4117
+ fn: ({ env: e }) => ((t) => l(t[0], String(t[1] === void 0 ? "" : t[1]).split(""), e))
4118
+ },
4119
+ $add: u("+"),
4120
+ $minus: u("-", (e) => e.length === 1 ? ["0", ...e] : e),
4121
+ $multiply: u("*"),
4122
+ $divide: u("/"),
4123
+ $percent: u("%", (e) => [...e, "0.01"])
4124
+ },
4125
+ rules: { evalRules: {
4126
+ words: s,
4127
+ types: c,
4128
+ rules: r.eval
4129
+ } },
4130
+ functions: [...a.values()],
4131
+ helpers: Nt,
4132
+ strict: i,
4133
+ checkResult(e) {
4134
+ let t = xt(e);
4135
+ return t ? Ot(Tt.UNRESOLVED, `unresolved expression: ${t}`) : null;
4136
+ }
4137
+ };
4138
+ }
4139
+ //#endregion
4140
+ //#region src/scoring/normalize.ts
4141
+ var zt = (e) => [
4142
+ "\"",
4143
+ "'",
4144
+ "`"
4145
+ ].includes(e), Bt = (e) => (typeof e != "string" && (e = e == null ? "" : String(e)), e && e.split("").reduce((e, t) => ({
4146
+ inString: zt(t) ? !e.inString : e.inString,
4147
+ text: e.text + (e.inString && t || t.toUpperCase())
4148
+ }), {
4149
+ inString: !1,
4150
+ text: ""
4151
+ }).text || e), Vt = (e) => {
4152
+ if (typeof e != "string" || e.indexOf("$") < 0) return e;
4153
+ let t = "", n = "";
4154
+ for (let r = 0; r < e.length; r++) {
4155
+ let i = e[r];
4156
+ if (n) i === n && (n = "");
4157
+ else if (zt(i)) n = i;
4158
+ else if (i === "$" && (/^[A-Za-z]+\$?[0-9]/.test(e.slice(r + 1)) || /[A-Za-z]/.test(e[r - 1] || "") && /[0-9]/.test(e[r + 1] || ""))) continue;
4159
+ t += i;
4160
+ }
4161
+ return t;
4162
+ }, Ht = (e) => {
4163
+ if (!e || typeof e != "string") return !1;
4164
+ let t = e.trim();
4165
+ return !isNaN(Number(t)) && !isNaN(parseFloat(t));
4166
+ }, Ut = (e) => {
4167
+ if (!e || typeof e != "string") return !1;
4168
+ let t = e.trim();
4169
+ return [
4170
+ /^\d{1,2}\/\d{1,2}\/\d{2,4}$/,
4171
+ /^\d{1,2}-\d{1,2}-\d{2,4}$/,
4172
+ /^\d{4}-\d{1,2}-\d{1,2}$/,
4173
+ /^\d{1,2}\/\d{1,2}$/,
4174
+ /^\d{1,2}-\d{1,2}$/
4175
+ ].some((e) => e.test(t)) && !isNaN(Date.parse(t));
4176
+ }, Wt = (e) => (typeof e != "string" && (e = e == null ? "" : String(e)), !e || e.length === 0 || e.indexOf("=") === 0 || e.trim().startsWith("\\text{") && e.trim().endsWith("}") || e.includes("\\") || Ht(e) || Ut(e) ? e : `\\text{${e}}`), Gt = (e) => {
4177
+ if (!e || typeof e != "string") return null;
4178
+ let t = e.trim();
4179
+ if (!t || /%\s+\S/.test(t) || /^[\d,.$€£¥₹₽-]+\s+[a-zA-Z]{4,}/.test(t)) return null;
4180
+ let n = t;
4181
+ [
4182
+ "$",
4183
+ "€",
4184
+ "£",
4185
+ "¥",
4186
+ "₹",
4187
+ "₽",
4188
+ "R$",
4189
+ "C$",
4190
+ "A$",
4191
+ "NZ$",
4192
+ "HK$",
4193
+ "S$"
4194
+ ].forEach((e) => {
4195
+ let n = e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4196
+ t = t.replace(new RegExp(n, "g"), "");
4197
+ });
4198
+ let r = t.includes("%");
4199
+ t = t.replace(/%/g, "");
4200
+ let i = /^\s*\([^)]+\)\s*$/.test(n) && /\d/.test(n);
4201
+ i && (t = t.replace(/[()]/g, "")), t = t.replace(/\s/g, "");
4202
+ let a = t.startsWith("-");
4203
+ a && (t = t.substring(1));
4204
+ let o = (t.match(/,/g) || []).length, s = (t.match(/\./g) || []).length, c = t.lastIndexOf(","), l = t.lastIndexOf("."), u;
4205
+ if (u = o === 0 && s === 0 || o === 0 && s === 1 ? t : o === 1 && s === 0 ? t.substring(c + 1).length === 3 && t.length > 4 ? t.replace(/,/g, "") : t.replace(",", ".") : c > l ? t.replace(/\./g, "").replace(",", ".") : t.replace(/,/g, ""), !Ht(u)) return null;
4206
+ let d = parseFloat(u);
4207
+ return (a || i) && (d = -Math.abs(d)), r && (d /= 100), d;
4208
+ }, Kt = (e) => {
4209
+ let t = new Date(1904, 0, 1);
4210
+ return Math.floor((e.getTime() - t.getTime()) / 864e5) + 1;
4211
+ }, qt = (e) => {
4212
+ if (!e || typeof e != "string") return null;
4213
+ let t = e.trim();
4214
+ if (!t) return null;
4215
+ let n = /* @__PURE__ */ new Date(), r = t.toLowerCase();
4216
+ if (r === "today") return Kt(new Date(n.getFullYear(), n.getMonth(), n.getDate()));
4217
+ if (r === "tomorrow") {
4218
+ let e = new Date(n);
4219
+ return e.setDate(n.getDate() + 1), Kt(new Date(e.getFullYear(), e.getMonth(), e.getDate()));
4220
+ }
4221
+ if (r === "yesterday") {
4222
+ let e = new Date(n);
4223
+ return e.setDate(n.getDate() - 1), Kt(new Date(e.getFullYear(), e.getMonth(), e.getDate()));
4224
+ }
4225
+ if (/^-?\d+(\.\d+)?$/.test(t) || /^[$€£¥₹₽]?\s*-?\d{1,3}([,.]?\d{3})*([,.]\d+)?$|^-?\d{1,3}([,.]?\d{3})*([,.]\d+)?\s*[$€£¥₹₽%]?$/.test(t)) return null;
4226
+ if (/^[\dA-Za-z\s/\-.,:T]+$/.test(t)) {
4227
+ let e = Date.parse(t);
4228
+ if (!isNaN(e)) return Kt(new Date(e));
4229
+ }
4230
+ let i = t.match(/^(\d{1,2})[/\-.](\d{1,2})[/\-.](\d{4})$/);
4231
+ if (i) {
4232
+ let e = parseInt(i[1], 10), t = parseInt(i[2], 10), n = parseInt(i[3], 10);
4233
+ if (e >= 1 && e <= 12 && t >= 1 && t <= 31) return Kt(new Date(n, e - 1, t));
4234
+ }
4235
+ let a = t.match(/^(\d{1,2})[/\-.](\d{1,2})[/\-.](\d{4})$/);
4236
+ if (a) {
4237
+ let e = parseInt(a[1], 10), t = parseInt(a[2], 10), n = parseInt(a[3], 10);
4238
+ if (t >= 1 && t <= 12 && e >= 1 && e <= 31 && e > 12) return Kt(new Date(n, t - 1, e));
4239
+ }
4240
+ let o = t.match(/^(\d{1,2})[/-](\d{1,2})$/);
4241
+ if (o) {
4242
+ let e = parseInt(o[1], 10), t = parseInt(o[2], 10);
4243
+ if (e >= 1 && e <= 12 && t >= 1 && t <= 31) return Kt(new Date(n.getFullYear(), e - 1, t));
4244
+ }
4245
+ let s = t.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);
4246
+ if (s) {
4247
+ let e = parseInt(s[1], 10), t = parseInt(s[2], 10), n = parseInt(s[3], 10);
4248
+ if (t >= 1 && t <= 12 && n >= 1 && n <= 31) return Kt(new Date(e, t - 1, n));
4249
+ }
4250
+ return null;
4251
+ }, Jt = Rt({ functions: [{
4252
+ name: "POWER",
4253
+ minArgs: 2,
4254
+ maxArgs: 2,
4255
+ apply: ({ args: e, helpers: t }) => {
4256
+ let [n, r] = e.map((e) => t.getCellValue(e));
4257
+ try {
4258
+ let e = t.toDecimal("POWER", 0, n).pow(t.toDecimal("POWER", 1, r));
4259
+ return e.isFinite() ? `${e}` : "#NUM!";
4260
+ } catch {
4261
+ return "#NUM!";
4262
+ }
4263
+ }
4264
+ }] }), Yt = Jt.expanders, Xt = Jt.rules.evalRules, Zt = 9e8, Qt = "EMPTY", $t = /[-+*/^%&]/, en = (e) => {
4265
+ let t = {}, n, r = 0;
4266
+ return typeof e != "string" || e.indexOf("\"") < 0 ? {
4267
+ text: e,
4268
+ env: t,
4269
+ error: n,
4270
+ decode: (e) => e
4271
+ } : {
4272
+ text: e.replace(/"((?:[^"]|"")*)"/g, (i, a, o) => {
4273
+ let s = a.replace(/""/g, "\""), c = e.slice(0, o).trimEnd().slice(-1), l = e.slice(o + i.length).trimStart().charAt(0);
4274
+ ($t.test(c) || $t.test(l)) && (s.trim() === "" || isNaN(Number(s))) && (n ??= `Text used as a number: ${i}`);
4275
+ let u = `Z${Zt + r++}`;
4276
+ return t[u] = {
4277
+ val: s === "" ? Qt : s,
4278
+ type: "text"
4279
+ }, u;
4280
+ }),
4281
+ env: t,
4282
+ error: n,
4283
+ decode: (e) => typeof e == "string" && e.indexOf(Qt) >= 0 ? e.split(Qt).join("") : e
4284
+ };
4285
+ }, tn = new Set(Xt.types.fn.map((e) => e.toUpperCase())), nn = (e) => e === "\"" || e === "'" || e === "`", rn = (e, t) => {
4286
+ let n = 0, r = !1;
4287
+ for (let i = t; i < e.length; i++) {
4288
+ let t = e[i];
4289
+ if (nn(t)) {
4290
+ r = !r;
4291
+ continue;
4292
+ }
4293
+ if (!r) {
4294
+ if (t === "(") n++;
4295
+ else if (t === ")" && --n === 0) return i;
4296
+ }
4297
+ }
4298
+ return -1;
4299
+ }, an = (e) => {
4300
+ if (e.indexOf("<>") < 0) return e;
4301
+ let t = "", n = "";
4302
+ for (let r = 0; r < e.length; r++) {
4303
+ let i = e[r];
4304
+ if (n) i === n && (n = "");
4305
+ else if (nn(i)) n = i;
4306
+ else if (i === "<" && e[r + 1] === ">") {
4307
+ t += "!=", r++;
4308
+ continue;
4309
+ }
4310
+ t += i;
4311
+ }
4312
+ return t;
4313
+ }, on = /[A-Z0-9_.:]/, sn = /[=(,<>+\-*/^&!]/, cn = (e, t) => {
4314
+ let n = t;
4315
+ for (; n >= 0 && e[n] === " ";) n--;
4316
+ for (; n >= 0 && e[n] === "%";) for (n--; n >= 0 && e[n] === " ";) n--;
4317
+ if (e[n] === ")") {
4318
+ let t = 0;
4319
+ for (; n >= 0; n--) if (e[n] === ")") t++;
4320
+ else if (e[n] === "(" && --t === 0) break;
4321
+ for (n--; n >= 0 && on.test(e[n]);) n--;
4322
+ } else if (nn(e[n])) {
4323
+ let t = e[n];
4324
+ for (n--; n >= 0 && e[n] !== t;) n--;
4325
+ n--;
4326
+ } else for (; n >= 0 && on.test(e[n]);) n--;
4327
+ let r = n + 1;
4328
+ for (;;) {
4329
+ let t = r - 1;
4330
+ for (; t >= 0 && e[t] === " ";) t--;
4331
+ if (t < 1 || e[t] !== "-" && e[t] !== "+") break;
4332
+ let n = t - 1;
4333
+ for (; n >= 0 && e[n] === " ";) n--;
4334
+ if (n >= 0 && !sn.test(e[n])) break;
4335
+ r = t;
4336
+ }
4337
+ return r;
4338
+ }, ln = (e, t) => {
4339
+ let n = t;
4340
+ for (; n < e.length && (e[n] === " " || e[n] === "-" || e[n] === "+");) n++;
4341
+ if (nn(e[n])) {
4342
+ let t = e[n];
4343
+ for (n++; n < e.length && e[n] !== t;) n++;
4344
+ n++;
4345
+ } else {
4346
+ for (; n < e.length && on.test(e[n]);) n++;
4347
+ let t = n;
4348
+ for (; t < e.length && e[t] === " ";) t++;
4349
+ if (e[t] === "(") {
4350
+ let r = rn(e, t);
4351
+ n = r < 0 ? e.length : r + 1;
4352
+ }
4353
+ }
4354
+ let r = n;
4355
+ for (; r < e.length && (e[r] === " " || e[r] === "%");) r++;
4356
+ return e[r - 1] === "%" ? r : n;
4357
+ }, un = (e) => {
4358
+ let t = "";
4359
+ for (let n = 0; n < e.length; n++) {
4360
+ let r = e[n];
4361
+ if (t) r === t && (t = "");
4362
+ else if (nn(r)) t = r;
4363
+ else if (r === "^") return n;
4364
+ }
4365
+ return -1;
4366
+ }, dn = (e) => {
4367
+ for (let t = un(e); t > 0; t = un(e)) {
4368
+ let n = cn(e, t - 1), r = ln(e, t + 1), i = e.slice(n, t).trim(), a = e.slice(t + 1, r).trim();
4369
+ if (!i || !a) break;
4370
+ e = `${e.slice(0, n)}POWER(${i},${a})${e.slice(r)}`;
4371
+ }
4372
+ return e;
4373
+ }, fn = (e) => {
4374
+ let t = dn(an(Bt(Vt(e))));
4375
+ if (!t || t.indexOf("=") !== 0 || !/[*/]/.test(t)) return t;
4376
+ let n = (e) => {
4377
+ for (; e < t.length && t[e] === " ";) e++;
4378
+ return t[e] || "";
4379
+ }, r = (e) => e === "*" || e === "/", i = /* @__PURE__ */ new Map(), a = "", o = !1, s = "";
4380
+ for (let e = 0; e < t.length; e++) {
4381
+ let c = t[e];
4382
+ if (nn(c)) {
4383
+ o = !o, a += c, s = c;
4384
+ continue;
4385
+ }
4386
+ if (o) {
4387
+ a += c;
4388
+ continue;
4389
+ }
4390
+ if (/[A-Z]/.test(c) && (s === "" || !/[A-Z0-9_]/.test(s))) {
4391
+ let o = e;
4392
+ for (; o < t.length && /[A-Z0-9_]/.test(t[o]);) o++;
4393
+ let c = o;
4394
+ for (; c < t.length && t[c] === " ";) c++;
4395
+ if (t[c] === "(" && tn.has(t.slice(e, o))) {
4396
+ let e = rn(t, c);
4397
+ e >= 0 && (r(s) || r(n(e + 1))) && (a += "(", i.set(e, (i.get(e) || 0) + 1));
4398
+ }
4399
+ }
4400
+ a += c, c === ")" && (a += ")".repeat(i.get(e) || 0)), c !== " " && (s = c);
4401
+ }
4402
+ return a;
4403
+ };
4404
+ //#endregion
4405
+ //#region src/scoring/sheets.ts
4406
+ function pn(e) {
4407
+ let t = e.indexOf("!");
4408
+ return t < 0 ? [void 0, e] : [e.slice(0, t), e.slice(t + 1)];
4409
+ }
4410
+ var mn = (e, t) => `${e}!${t}`;
4411
+ function hn(e, t) {
4412
+ return Object.keys(t || {}).reduce((n, r) => (n[mn(e, r)] = t[r], n), {});
4413
+ }
4414
+ function gn(e, t) {
4415
+ let n = {};
4416
+ for (let r of Object.keys(e || {})) {
4417
+ let [i, a] = pn(r);
4418
+ i === t && (n[a] = e[r]);
4419
+ }
4420
+ return n;
4421
+ }
4422
+ function _n(e, t) {
4423
+ let n = {};
4424
+ for (let e of t) n[e] = {};
4425
+ for (let r of Object.keys(e || {})) {
4426
+ let [i, a] = pn(r), o = i ?? t[0];
4427
+ n[o] || (n[o] = {}), n[o][a] = e[r];
4428
+ }
4429
+ return n;
4430
+ }
4431
+ //#endregion
4432
+ //#region src/scoring/score.ts
4433
+ var vn = () => ({
4434
+ normalized: /* @__PURE__ */ new Map(),
4435
+ expected: /* @__PURE__ */ new Map()
4436
+ }), yn = (e, t) => {
4437
+ if (typeof e == "number" || e == null) return [e];
4438
+ let n = String(e), r = t && t.get(n);
4439
+ if (r) return r;
4440
+ let i = [n];
4441
+ try {
4442
+ let e = {
4443
+ keepTextWhitespace: !0,
4444
+ ...wt
4445
+ };
4446
+ if (n && n.length > 0) {
4447
+ let t = n.indexOf("=") === 0 ? Bt(Vt(n)) : Wt(n);
4448
+ St.buildTranslator(e, Yt)(t, (e, t) => {
4449
+ e && e.length && console.error(e), i = n.indexOf("=") === 0 ? t.split(",") : [t];
4450
+ });
4451
+ }
4452
+ } catch (e) {
4453
+ console.log("parse error: " + e.stack);
4454
+ }
4455
+ return t && t.set(n, i), i;
4456
+ }, bn = (e, t, n) => {
4457
+ let r = yn(e, n), i = yn(t, n);
4458
+ return r.length === i.length && r.every((e, t) => e === i[t]);
4459
+ }, xn = (e, t, n, r) => n && r && n !== r ? !1 : e !== void 0 && e === t, Sn = (e, t, n) => {
4460
+ if (!e || !e.startsWith("=") || !t) return e;
4461
+ let r = n && n.expected.get(e);
4462
+ if (r !== void 0) return r;
4463
+ let i = n && n.env;
4464
+ if (!i) {
4465
+ i = {};
4466
+ for (let [e, n] of Object.entries(t)) i[e] = {
4467
+ ...n,
4468
+ val: n.val || n.text
4469
+ };
4470
+ n && (n.env = i);
4471
+ }
4472
+ let a = en(e);
4473
+ if (a.error) return n && n.expected.set(e, "#VALUE!"), "#VALUE!";
4474
+ let o = {
4475
+ keepTextWhitespace: !0,
4476
+ env: a.text === e ? i : {
4477
+ ...i,
4478
+ ...a.env
4479
+ },
4480
+ ...Xt
4481
+ }, s = fn(a.text), c = St.buildTranslator(o, Yt), l = e;
4482
+ return c(s, (e, t) => {
4483
+ (!e || !e.length) && (l = String(a.decode(t)));
4484
+ }), n && n.expected.set(e, l), l;
4485
+ }, Cn = ({ method: e, expected: t, points: n = 1 }, { val: r, formula: i, type: a } = {
4486
+ val: void 0,
4487
+ formula: void 0,
4488
+ type: void 0
4489
+ }, o = void 0, s = void 0) => {
4490
+ if (e === "value") {
4491
+ let e = t;
4492
+ typeof t == "string" && t.startsWith("=") && (e = Sn(t, o, s));
4493
+ let i = "text", c = e;
4494
+ if (e != null) {
4495
+ let t = String(e), n = qt(t);
4496
+ if (n) i = "date", c = String(n);
4497
+ else {
4498
+ let e = Gt(t);
4499
+ e !== null && (i = "number", c = String(e));
4500
+ }
4501
+ }
4502
+ if (xn(r, c, a, i)) return {
4503
+ points: n,
4504
+ isValid: !0
4505
+ };
4506
+ } else if (e === "formula" && bn(i, t, s && s.normalized)) return {
4507
+ points: n,
4508
+ isValid: !0
4509
+ };
4510
+ return {
4511
+ points: 0,
4512
+ isValid: !1
4513
+ };
4514
+ }, wn = (e) => e.text || e.val, Tn = (e) => e?.text || e?.attrs?.assess?.expected, En = ({ cells: e, primaryColumn: t }) => {
4515
+ let n = Object.keys(e).sort((e, t) => +e.slice(1) - t.slice(1)).map((e) => e.slice(0, 1) === t && e || null).filter((e) => e !== null).map((t) => wn(e[t]) || null), r = /* @__PURE__ */ new Set();
4516
+ return n.map((e) => r.has(e) ? null : (r.add(e), e)).filter((e) => e !== null);
4517
+ }, Dn = ({ cells: e, region: t }) => {
4518
+ let { primaryColumn: n, rows: r } = t, i = En({
4519
+ cells: e,
4520
+ primaryColumn: n
4521
+ }), a = new Map(r.map((e) => [Tn(e[n]), e]));
4522
+ return i.map((e) => e === null ? null : a.get(e) || null);
4523
+ }, On = ({ cells: e, region: t }) => {
4524
+ let n = t?.order === "actual" && Dn({
4525
+ cells: e,
4526
+ region: t
4527
+ }) || t?.rows || [];
4528
+ if (!t) throw Error("getCellsValidationFromRegionValidation() missing region value");
4529
+ return n.reduce((e, t, n) => (n = t?.id || n + 1, t && Object.keys(t).forEach((r) => t[r]?.assess && (e[r + n] = t[r])), e), {}) || {};
4530
+ }, kn = ({ cells: e, validation: t }) => {
4531
+ let n = t.regions || t.ranges;
4532
+ return [{
4533
+ region: n[Object.keys(n).find((e) => e)] || {},
4534
+ cells: e
4535
+ }];
4536
+ }, An = /* @__PURE__ */ new WeakMap(), jn = (e) => Object.values(e?.regions || e?.ranges || {}).some((e) => e?.order === "actual"), Mn = ({ cells: e, validation: t }) => {
4537
+ let n = () => kn({
4538
+ cells: e,
4539
+ validation: t
4540
+ }).map((e) => On(e))[0];
4541
+ if (!t || typeof t != "object") return n();
4542
+ let r = An.get(t);
4543
+ if (r || An.set(t, r = {}), !jn(t)) return r.plain === void 0 && (r.plain = n()), r.plain;
4544
+ if (!e || typeof e != "object") return n();
4545
+ r.byCells || (r.byCells = /* @__PURE__ */ new WeakMap());
4546
+ let i = r.byCells.get(e);
4547
+ return i === void 0 && r.byCells.set(e, i = n()), i;
4548
+ }, Nn = (e) => {
4549
+ let t = e?.sheets ? Object.keys(e.sheets) : null;
4550
+ return t && t.length ? t : null;
4551
+ }, Pn = (e, t, n) => {
4552
+ if (!e) return;
4553
+ let r = _n(e, n);
4554
+ return Object.keys(r[t] || {}).length ? r[t] : e;
4555
+ }, Fn = ({ cells: e, validation: t }) => {
4556
+ let n = Nn(t);
4557
+ if (!n) return Mn({
4558
+ cells: e,
4559
+ validation: t
4560
+ });
4561
+ let r = _n(e || {}, n);
4562
+ return n.reduce((e, n) => Object.assign(e, hn(n, Mn({
4563
+ cells: r[n],
4564
+ validation: t.sheets[n]
4565
+ }))), {});
4566
+ }, In = ({ cells: e, validation: t, interactionCells: n = void 0 }) => {
4567
+ let r = vn(), i = Nn(t);
4568
+ if (!i) return Ln(e, Mn({
4569
+ cells: e,
4570
+ validation: t
4571
+ }), n, r);
4572
+ let a = _n(e || {}, i);
4573
+ return i.reduce((e, o) => {
4574
+ let s = Mn({
4575
+ cells: a[o],
4576
+ validation: t.sheets[o]
4577
+ }), c = {
4578
+ normalized: r.normalized,
4579
+ expected: /* @__PURE__ */ new Map()
4580
+ }, l = Ln(a[o], s, Pn(n, o, i), c);
4581
+ return Object.assign(e, hn(o, l));
4582
+ }, {});
4583
+ };
4584
+ function Ln(e, t, n, r) {
4585
+ let i = { ...e };
4586
+ for (let e of Object.keys(t)) {
4587
+ let a = i[e];
4588
+ i[e] = a && {
4589
+ ...a,
4590
+ score: Cn(t[e].assess, a, n, r)
4591
+ } || void 0;
4592
+ }
4593
+ return i;
4594
+ }
4595
+ //#endregion
4596
+ export { St as C, Ct as S, Gt as _, hn as a, Wt as b, _n as c, Xt as d, Yt as f, qt as g, Ht as h, In as i, pn as l, Ut as m, Fn as n, mn as o, fn as p, Cn as r, gn as s, Sn as t, en as u, Vt as v, Dt as x, Bt as y };
4597
+
4598
+ //# sourceMappingURL=scoring-D1FbQ_qt.js.map