/* bignumber.js v9.0.1 https://github.com/MikeMcl/bignumber.js/LICENCE.md */ !(function( e, ) { 'use strict'; var r, C = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, M = Math.ceil, G = Math.floor, k = '[BigNumber Error] ', F = k + 'Number primitive has more than 15 significant digits: ', q = 1e14, j = 14, $ = 9007199254740991, z = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], H = 1e7, V = 1e9; function W(e) { var r = 0 | e; return 0 < e || e === r ? r : r - 1; } function X(e) { for (var r, n, t = 1, i = e.length, o = e[0] + ''; t < i; ) { for (r = e[t++] + '', n = j - r.length; n--; r = '0' + r); o += r; } for (i = o.length; 48 === o.charCodeAt(--i); ); return o.slice(0, i + 1 || 1); } function Y(e, r) { var n, t, i = e.c, o = r.c, s = e.s, f = r.s, u = e.e, l = r.e; if (!s || !f) return null; if (((n = i && !i[0]), (t = o && !o[0]), n || t)) return n ? (t ? 0 : -f) : s; if (s != f) return s; if (((n = s < 0), (t = u == l), !i || !o)) return t ? 0 : !i ^ n ? 1 : -1; if (!t) return (l < u) ^ n ? 1 : -1; for (f = (u = i.length) < (l = o.length) ? u : l, s = 0; s < f; s++) if (i[s] != o[s]) return (i[s] > o[s]) ^ n ? 1 : -1; return u == l ? 0 : (l < u) ^ n ? 1 : -1; } function J(e, r, n, t) { if (e < r || n < e || e !== G(e)) throw Error( k + (t || 'Argument') + ('number' == typeof e ? e < r || n < e ? ' out of range: ' : ' not an integer: ' : ' not a primitive number: ') + String(e), ); } function Z(e) { var r = e.c.length - 1; return W(e.e / j) == r && e.c[r] % 2 != 0; } function K(e, r) { return ( (1 < e.length ? e.charAt(0) + '.' + e.slice(1) : e) + (r < 0 ? 'e' : 'e+') + r ); } function Q(e, r, n) { var t, i; if (r < 0) { for (i = n + '.'; ++r; i += n); e = i + e; } else if (++r > (t = e.length)) { for (i = n, r -= t; --r; i += n); e += i; } else r < t && (e = e.slice(0, r) + '.' + e.slice(r)); return e; } ((r = (function e(r) { var d, a, h, n, l, m, s, f, u, c, g, t = (_.prototype = { constructor: _, toString: null, valueOf: null }), w = new _(1), v = 20, N = 4, p = -7, O = 21, y = -1e7, b = 1e7, E = !1, o = 1, A = 0, S = { prefix: '', groupSize: 3, secondaryGroupSize: 0, groupSeparator: ',', decimalSeparator: '.', fractionGroupSize: 0, fractionGroupSeparator: ' ', suffix: '', }, R = '0123456789abcdefghijklmnopqrstuvwxyz'; function _(e, r) { var n, t, i, o, s, f, u, l, c = this; if (!(c instanceof _)) return new _(e, r); if (null == r) { if (e && !0 === e._isBigNumber) return ( (c.s = e.s), void (!e.c || e.e > b ? (c.c = c.e = null) : e.e < y ? (c.c = [(c.e = 0)]) : ((c.e = e.e), (c.c = e.c.slice()))) ); if ((f = 'number' == typeof e) && 0 * e == 0) { if (((c.s = 1 / e < 0 ? ((e = -e), -1) : 1), e === ~~e)) { for (o = 0, s = e; 10 <= s; s /= 10, o++); return void (b < o ? (c.c = c.e = null) : ((c.e = o), (c.c = [e]))); } l = String(e); } else { if (!C.test((l = String(e)))) return h(c, l, f); c.s = 45 == l.charCodeAt(0) ? ((l = l.slice(1)), -1) : 1; } -1 < (o = l.indexOf('.')) && (l = l.replace('.', '')), 0 < (s = l.search(/e/i)) ? (o < 0 && (o = s), (o += +l.slice(s + 1)), (l = l.substring(0, s))) : o < 0 && (o = l.length); } else { if ((J(r, 2, R.length, 'Base'), 10 == r)) return I((c = new _(e)), v + c.e + 1, N); if (((l = String(e)), (f = 'number' == typeof e))) { if (0 * e != 0) return h(c, l, f, r); if ( ((c.s = 1 / e < 0 ? ((l = l.slice(1)), -1) : 1), _.DEBUG && 15 < l.replace(/^0\.0*|\./, '').length) ) throw Error(F + e); } else c.s = 45 === l.charCodeAt(0) ? ((l = l.slice(1)), -1) : 1; for (n = R.slice(0, r), o = s = 0, u = l.length; s < u; s++) if (n.indexOf((t = l.charAt(s))) < 0) { if ('.' == t) { if (o < s) { o = u; continue; } } else if ( !i && ((l == l.toUpperCase() && (l = l.toLowerCase())) || (l == l.toLowerCase() && (l = l.toUpperCase()))) ) { (i = !0), (s = -1), (o = 0); continue; } return h(c, String(e), f, r); } (f = !1), -1 < (o = (l = a(l, r, 10, c.s)).indexOf('.')) ? (l = l.replace('.', '')) : (o = l.length); } for (s = 0; 48 === l.charCodeAt(s); s++); for (u = l.length; 48 === l.charCodeAt(--u); ); if ((l = l.slice(s, ++u))) { if (((u -= s), f && _.DEBUG && 15 < u && ($ < e || e !== G(e)))) throw Error(F + c.s * e); if ((o = o - s - 1) > b) c.c = c.e = null; else if (o < y) c.c = [(c.e = 0)]; else { if ( ((c.e = o), (c.c = []), (s = (o + 1) % j), o < 0 && (s += j), s < u) ) { for (s && c.c.push(+l.slice(0, s)), u -= j; s < u; ) c.c.push(+l.slice(s, (s += j))); s = j - (l = l.slice(s)).length; } else s -= u; for (; s--; l += '0'); c.c.push(+l); } } else c.c = [(c.e = 0)]; } function B(e, r, n, t) { for (var i, o, s = [0], f = 0, u = e.length; f < u; ) { for (o = s.length; o--; s[o] *= r); for (s[0] += t.indexOf(e.charAt(f++)), i = 0; i < s.length; i++) s[i] > n - 1 && (null == s[i + 1] && (s[i + 1] = 0), (s[i + 1] += (s[i] / n) | 0), (s[i] %= n)); } return s.reverse(); } function D(e, r, n) { var t, i, o, s, f = 0, u = e.length, l = r % H, c = (r / H) | 0; for (e = e.slice(); u--; ) (f = (((i = l * (o = e[u] % H) + ((t = c * o + (s = (e[u] / H) | 0) * l) % H) * H + f) / n) | 0) + ((t / H) | 0) + c * s), (e[u] = i % n); return f && (e = [f].concat(e)), e; } function P(e, r, n, t) { var i, o; if (n != t) o = t < n ? 1 : -1; else for (i = o = 0; i < n; i++) if (e[i] != r[i]) { o = e[i] > r[i] ? 1 : -1; break; } return o; } function x(e, r, n, t) { for (var i = 0; n--; ) (e[n] -= i), (i = e[n] < r[n] ? 1 : 0), (e[n] = i * t + e[n] - r[n]); for (; !e[0] && 1 < e.length; e.splice(0, 1)); } function i(e, r, n, t) { var i, o, s, f, u; if ((null == n ? (n = N) : J(n, 0, 8), !e.c)) return e.toString(); if (((i = e.c[0]), (s = e.e), null == r)) (u = X(e.c)), (u = 1 == t || (2 == t && (s <= p || O <= s)) ? K(u, s) : Q(u, s, '0')); else if ( ((o = (e = I(new _(e), r, n)).e), (f = (u = X(e.c)).length), 1 == t || (2 == t && (r <= o || o <= p))) ) { for (; f < r; u += '0', f++); u = K(u, o); } else if (((r -= s), (u = Q(u, o, '0')), f < o + 1)) { if (0 < --r) for (u += '.'; r--; u += '0'); } else if (0 < (r += o - f)) for (o + 1 == f && (u += '.'); r--; u += '0'); return e.s < 0 && i ? '-' + u : u; } function L(e, r) { for (var n, t = 1, i = new _(e[0]); t < e.length; t++) { if (!(n = new _(e[t])).s) { i = n; break; } r.call(i, n) && (i = n); } return i; } function U(e, r, n) { for (var t = 1, i = r.length; !r[--i]; r.pop()); for (i = r[0]; 10 <= i; i /= 10, t++); return ( (n = t + n * j - 1) > b ? (e.c = e.e = null) : n < y ? (e.c = [(e.e = 0)]) : ((e.e = n), (e.c = r)), e ); } function I(e, r, n, t) { var i, o, s, f, u, l, c, a = e.c, h = z; if (a) { e: { for (i = 1, f = a[0]; 10 <= f; f /= 10, i++); if ((o = r - i) < 0) (o += j), (s = r), (c = ((u = a[(l = 0)]) / h[i - s - 1]) % 10 | 0); else if ((l = M((o + 1) / j)) >= a.length) { if (!t) break e; for (; a.length <= l; a.push(0)); (u = c = 0), (s = (o %= j) - j + (i = 1)); } else { for (u = f = a[l], i = 1; 10 <= f; f /= 10, i++); c = (s = (o %= j) - j + i) < 0 ? 0 : (u / h[i - s - 1]) % 10 | 0; } if ( ((t = t || r < 0 || null != a[l + 1] || (s < 0 ? u : u % h[i - s - 1])), (t = n < 4 ? (c || t) && (0 == n || n == (e.s < 0 ? 3 : 2)) : 5 < c || (5 == c && (4 == n || t || (6 == n && (0 < o ? (0 < s ? u / h[i - s] : 0) : a[l - 1]) % 10 & 1) || n == (e.s < 0 ? 8 : 7)))), r < 1 || !a[0]) ) return ( (a.length = 0), t ? ((r -= e.e + 1), (a[0] = h[(j - (r % j)) % j]), (e.e = -r || 0)) : (a[0] = e.e = 0), e ); if ( (0 == o ? ((a.length = l), (f = 1), l--) : ((a.length = l + 1), (f = h[j - o]), (a[l] = 0 < s ? G((u / h[i - s]) % h[s]) * f : 0)), t) ) for (;;) { if (0 == l) { for (o = 1, s = a[0]; 10 <= s; s /= 10, o++); for (s = a[0] += f, f = 1; 10 <= s; s /= 10, f++); o != f && (e.e++, a[0] == q && (a[0] = 1)); break; } if (((a[l] += f), a[l] != q)) break; (a[l--] = 0), (f = 1); } for (o = a.length; 0 === a[--o]; a.pop()); } e.e > b ? (e.c = e.e = null) : e.e < y && (e.c = [(e.e = 0)]); } return e; } function T(e) { var r, n = e.e; return null === n ? e.toString() : ((r = X(e.c)), (r = n <= p || O <= n ? K(r, n) : Q(r, n, '0')), e.s < 0 ? '-' + r : r); } return ( (_.clone = e), (_.ROUND_UP = 0), (_.ROUND_DOWN = 1), (_.ROUND_CEIL = 2), (_.ROUND_FLOOR = 3), (_.ROUND_HALF_UP = 4), (_.ROUND_HALF_DOWN = 5), (_.ROUND_HALF_EVEN = 6), (_.ROUND_HALF_CEIL = 7), (_.ROUND_HALF_FLOOR = 8), (_.EUCLID = 9), (_.config = _.set = function(e) { var r, n; if (null != e) { if ('object' != typeof e) throw Error(k + 'Object expected: ' + e); if ( (e.hasOwnProperty((r = 'DECIMAL_PLACES')) && (J((n = e[r]), 0, V, r), (v = n)), e.hasOwnProperty((r = 'ROUNDING_MODE')) && (J((n = e[r]), 0, 8, r), (N = n)), e.hasOwnProperty((r = 'EXPONENTIAL_AT')) && ((n = e[r]) && n.pop ? (J(n[0], -V, 0, r), J(n[1], 0, V, r), (p = n[0]), (O = n[1])) : (J(n, -V, V, r), (p = -(O = n < 0 ? -n : n)))), e.hasOwnProperty((r = 'RANGE'))) ) if ((n = e[r]) && n.pop) J(n[0], -V, -1, r), J(n[1], 1, V, r), (y = n[0]), (b = n[1]); else { if ((J(n, -V, V, r), !n)) throw Error(k + r + ' cannot be zero: ' + n); y = -(b = n < 0 ? -n : n); } if (e.hasOwnProperty((r = 'CRYPTO'))) { if ((n = e[r]) !== !!n) throw Error(k + r + ' not true or false: ' + n); if (n) { if ( 'undefined' == typeof crypto || !crypto || (!crypto.getRandomValues && !crypto.randomBytes) ) throw ((E = !n), Error(k + 'crypto unavailable')); E = n; } else E = n; } if ( (e.hasOwnProperty((r = 'MODULO_MODE')) && (J((n = e[r]), 0, 9, r), (o = n)), e.hasOwnProperty((r = 'POW_PRECISION')) && (J((n = e[r]), 0, V, r), (A = n)), e.hasOwnProperty((r = 'FORMAT'))) ) { if ('object' != typeof (n = e[r])) throw Error(k + r + ' not an object: ' + n); S = n; } if (e.hasOwnProperty((r = 'ALPHABET'))) { if ( 'string' != typeof (n = e[r]) || /^.?$|[+\-.\s]|(.).*\1/.test(n) ) throw Error(k + r + ' invalid: ' + n); R = n; } } return { DECIMAL_PLACES: v, ROUNDING_MODE: N, EXPONENTIAL_AT: [p, O], RANGE: [y, b], CRYPTO: E, MODULO_MODE: o, POW_PRECISION: A, FORMAT: S, ALPHABET: R, }; }), (_.isBigNumber = function(e) { if (!e || !0 !== e._isBigNumber) return !1; if (!_.DEBUG) return !0; var r, n, t = e.c, i = e.e, o = e.s; e: if ('[object Array]' == {}.toString.call(t)) { if ((1 === o || -1 === o) && -V <= i && i <= V && i === G(i)) { if (0 === t[0]) { if (0 === i && 1 === t.length) return !0; break e; } if (((r = (i + 1) % j) < 1 && (r += j), String(t[0]).length == r)) { for (r = 0; r < t.length; r++) if ((n = t[r]) < 0 || q <= n || n !== G(n)) break e; if (0 !== n) return !0; } } } else if ( null === t && null === i && (null === o || 1 === o || -1 === o) ) return !0; throw Error(k + 'Invalid BigNumber: ' + e); }), (_.maximum = _.max = function() { return L(arguments, t.lt); }), (_.minimum = _.min = function() { return L(arguments, t.gt); }), (_.random = ((n = 9007199254740992), (l = (Math.random() * n) & 2097151 ? function() { return G(Math.random() * n); } : function() { return ( 8388608 * ((1073741824 * Math.random()) | 0) + ((8388608 * Math.random()) | 0) ); }), function(e) { var r, n, t, i, o, s = 0, f = [], u = new _(w); if ((null == e ? (e = v) : J(e, 0, V), (i = M(e / j)), E)) if (crypto.getRandomValues) { for ( r = crypto.getRandomValues(new Uint32Array((i *= 2))); s < i; ) 9e15 <= (o = 131072 * r[s] + (r[s + 1] >>> 11)) ? ((n = crypto.getRandomValues(new Uint32Array(2))), (r[s] = n[0]), (r[s + 1] = n[1])) : (f.push(o % 1e14), (s += 2)); s = i / 2; } else { if (!crypto.randomBytes) throw ((E = !1), Error(k + 'crypto unavailable')); for (r = crypto.randomBytes((i *= 7)); s < i; ) 9e15 <= (o = 281474976710656 * (31 & r[s]) + 1099511627776 * r[s + 1] + 4294967296 * r[s + 2] + 16777216 * r[s + 3] + (r[s + 4] << 16) + (r[s + 5] << 8) + r[s + 6]) ? crypto.randomBytes(7).copy(r, s) : (f.push(o % 1e14), (s += 7)); s = i / 7; } if (!E) for (; s < i; ) (o = l()) < 9e15 && (f[s++] = o % 1e14); for ( i = f[--s], e %= j, i && e && ((o = z[j - e]), (f[s] = G(i / o) * o)); 0 === f[s]; f.pop(), s-- ); if (s < 0) f = [(t = 0)]; else { for (t = -1; 0 === f[0]; f.splice(0, 1), t -= j); for (s = 1, o = f[0]; 10 <= o; o /= 10, s++); s < j && (t -= j - s); } return (u.e = t), (u.c = f), u; })), (_.sum = function() { for (var e = 1, r = arguments, n = new _(r[0]); e < r.length; ) n = n.plus(r[e++]); return n; }), (m = '0123456789'), (a = function(e, r, n, t, i) { var o, s, f, u, l, c, a, h, g = e.indexOf('.'), p = v, w = N; for ( 0 <= g && ((u = A), (A = 0), (e = e.replace('.', '')), (c = (h = new _(r)).pow(e.length - g)), (A = u), (h.c = B(Q(X(c.c), c.e, '0'), 10, n, m)), (h.e = h.c.length)), f = u = (a = B(e, r, n, i ? ((o = R), m) : ((o = m), R))).length; 0 == a[--u]; a.pop() ); if (!a[0]) return o.charAt(0); if ( (g < 0 ? --f : ((c.c = a), (c.e = f), (c.s = t), (a = (c = d(c, h, p, w, n)).c), (l = c.r), (f = c.e)), (g = a[(s = f + p + 1)]), (u = n / 2), (l = l || s < 0 || null != a[s + 1]), (l = w < 4 ? (null != g || l) && (0 == w || w == (c.s < 0 ? 3 : 2)) : u < g || (g == u && (4 == w || l || (6 == w && 1 & a[s - 1]) || w == (c.s < 0 ? 8 : 7)))), s < 1 || !a[0]) ) e = l ? Q(o.charAt(1), -p, o.charAt(0)) : o.charAt(0); else { if (((a.length = s), l)) for (--n; ++a[--s] > n; ) (a[s] = 0), s || (++f, (a = [1].concat(a))); for (u = a.length; !a[--u]; ); for (g = 0, e = ''; g <= u; e += o.charAt(a[g++])); e = Q(e, f, o.charAt(0)); } return e; }), (d = function(e, r, n, t, i) { var o, s, f, u, l, c, a, h, g, p, w, d, m, v, N, O, y, b = e.s == r.s ? 1 : -1, E = e.c, A = r.c; if (!(E && E[0] && A && A[0])) return new _( e.s && r.s && (E ? !A || E[0] != A[0] : A) ? (E && 0 == E[0]) || !A ? 0 * b : b / 0 : NaN, ); for ( g = (h = new _(b)).c = [], b = n + (s = e.e - r.e) + 1, i || ((i = q), (s = W(e.e / j) - W(r.e / j)), (b = (b / j) | 0)), f = 0; A[f] == (E[f] || 0); f++ ); if ((A[f] > (E[f] || 0) && s--, b < 0)) g.push(1), (u = !0); else { for ( v = E.length, O = A.length, b += 2, 1 < (l = G(i / (A[(f = 0)] + 1))) && ((A = D(A, l, i)), (E = D(E, l, i)), (O = A.length), (v = E.length)), m = O, w = (p = E.slice(0, O)).length; w < O; p[w++] = 0 ); (y = A.slice()), (y = [0].concat(y)), (N = A[0]), A[1] >= i / 2 && N++; do { if (((l = 0), (o = P(A, p, O, w)) < 0)) { if ( ((d = p[0]), O != w && (d = d * i + (p[1] || 0)), 1 < (l = G(d / N))) ) for ( i <= l && (l = i - 1), a = (c = D(A, l, i)).length, w = p.length; 1 == P(c, p, a, w); ) l--, x(c, O < a ? y : A, a, i), (a = c.length), (o = 1); else 0 == l && (o = l = 1), (a = (c = A.slice()).length); if ( (a < w && (c = [0].concat(c)), x(p, c, w, i), (w = p.length), -1 == o) ) for (; P(A, p, O, w) < 1; ) l++, x(p, O < w ? y : A, w, i), (w = p.length); } else 0 === o && (l++, (p = [0])); (g[f++] = l), p[0] ? (p[w++] = E[m] || 0) : ((p = [E[m]]), (w = 1)); } while ((m++ < v || null != p[0]) && b--); (u = null != p[0]), g[0] || g.splice(0, 1); } if (i == q) { for (f = 1, b = g[0]; 10 <= b; b /= 10, f++); I(h, n + (h.e = f + s * j - 1) + 1, t, u); } else (h.e = s), (h.r = +u); return h; }), (s = /^(-?)0([xbo])(?=\w[\w.]*$)/i), (f = /^([^.]+)\.$/), (u = /^\.([^.]+)$/), (c = /^-?(Infinity|NaN)$/), (g = /^\s*\+(?=[\w.])|^\s+|\s+$/g), (h = function(e, r, n, t) { var i, o = n ? r : r.replace(g, ''); if (c.test(o)) e.s = isNaN(o) ? null : o < 0 ? -1 : 1; else { if ( !n && ((o = o.replace(s, function(e, r, n) { return ( (i = 'x' == (n = n.toLowerCase()) ? 16 : 'b' == n ? 2 : 8), t && t != i ? e : r ); })), t && ((i = t), (o = o.replace(f, '$1').replace(u, '0.$1'))), r != o) ) return new _(o, i); if (_.DEBUG) throw Error( k + 'Not a' + (t ? ' base ' + t : '') + ' number: ' + r, ); e.s = null; } e.c = e.e = null; }), (t.absoluteValue = t.abs = function() { var e = new _(this); return e.s < 0 && (e.s = 1), e; }), (t.comparedTo = function(e, r) { return Y(this, new _(e, r)); }), (t.decimalPlaces = t.dp = function(e, r) { var n, t, i; if (null != e) return ( J(e, 0, V), null == r ? (r = N) : J(r, 0, 8), I(new _(this), e + this.e + 1, r) ); if (!(n = this.c)) return null; if (((t = ((i = n.length - 1) - W(this.e / j)) * j), (i = n[i]))) for (; i % 10 == 0; i /= 10, t--); return t < 0 && (t = 0), t; }), (t.dividedBy = t.div = function(e, r) { return d(this, new _(e, r), v, N); }), (t.dividedToIntegerBy = t.idiv = function(e, r) { return d(this, new _(e, r), 0, 1); }), (t.exponentiatedBy = t.pow = function(e, r) { var n, t, i, o, s, f, u, l, c = this; if ((e = new _(e)).c && !e.isInteger()) throw Error(k + 'Exponent not an integer: ' + T(e)); if ( (null != r && (r = new _(r)), (s = 14 < e.e), !c.c || !c.c[0] || (1 == c.c[0] && !c.e && 1 == c.c.length) || !e.c || !e.c[0]) ) return ( (l = new _(Math.pow(+T(c), s ? 2 - Z(e) : +T(e)))), r ? l.mod(r) : l ); if (((f = e.s < 0), r)) { if (r.c ? !r.c[0] : !r.s) return new _(NaN); (t = !f && c.isInteger() && r.isInteger()) && (c = c.mod(r)); } else { if ( 9 < e.e && (0 < c.e || c.e < -1 || (0 == c.e ? 1 < c.c[0] || (s && 24e7 <= c.c[1]) : c.c[0] < 8e13 || (s && c.c[0] <= 9999975e7))) ) return ( (o = c.s < 0 && Z(e) ? -0 : 0), -1 < c.e && (o = 1 / o), new _(f ? 1 / o : o) ); A && (o = M(A / j + 2)); } for ( u = s ? ((n = new _(0.5)), f && (e.s = 1), Z(e)) : (i = Math.abs(+T(e))) % 2, l = new _(w); ; ) { if (u) { if (!(l = l.times(c)).c) break; o ? l.c.length > o && (l.c.length = o) : t && (l = l.mod(r)); } if (i) { if (0 === (i = G(i / 2))) break; u = i % 2; } else if ((I((e = e.times(n)), e.e + 1, 1), 14 < e.e)) u = Z(e); else { if (0 == (i = +T(e))) break; u = i % 2; } (c = c.times(c)), o ? c.c && c.c.length > o && (c.c.length = o) : t && (c = c.mod(r)); } return t ? l : (f && (l = w.div(l)), r ? l.mod(r) : o ? I(l, A, N, void 0) : l); }), (t.integerValue = function(e) { var r = new _(this); return null == e ? (e = N) : J(e, 0, 8), I(r, r.e + 1, e); }), (t.isEqualTo = t.eq = function(e, r) { return 0 === Y(this, new _(e, r)); }), (t.isFinite = function() { return !!this.c; }), (t.isGreaterThan = t.gt = function(e, r) { return 0 < Y(this, new _(e, r)); }), (t.isGreaterThanOrEqualTo = t.gte = function(e, r) { return 1 === (r = Y(this, new _(e, r))) || 0 === r; }), (t.isInteger = function() { return !!this.c && W(this.e / j) > this.c.length - 2; }), (t.isLessThan = t.lt = function(e, r) { return Y(this, new _(e, r)) < 0; }), (t.isLessThanOrEqualTo = t.lte = function(e, r) { return -1 === (r = Y(this, new _(e, r))) || 0 === r; }), (t.isNaN = function() { return !this.s; }), (t.isNegative = function() { return this.s < 0; }), (t.isPositive = function() { return 0 < this.s; }), (t.isZero = function() { return !!this.c && 0 == this.c[0]; }), (t.minus = function(e, r) { var n, t, i, o, s = this, f = s.s; if (((r = (e = new _(e, r)).s), !f || !r)) return new _(NaN); if (f != r) return (e.s = -r), s.plus(e); var u = s.e / j, l = e.e / j, c = s.c, a = e.c; if (!u || !l) { if (!c || !a) return c ? ((e.s = -r), e) : new _(a ? s : NaN); if (!c[0] || !a[0]) return a[0] ? ((e.s = -r), e) : new _(c[0] ? s : 3 == N ? -0 : 0); } if (((u = W(u)), (l = W(l)), (c = c.slice()), (f = u - l))) { for ( (i = (o = f < 0) ? ((f = -f), c) : ((l = u), a)).reverse(), r = f; r--; i.push(0) ); i.reverse(); } else for ( t = (o = (f = c.length) < (r = a.length)) ? f : r, f = r = 0; r < t; r++ ) if (c[r] != a[r]) { o = c[r] < a[r]; break; } if ( (o && ((i = c), (c = a), (a = i), (e.s = -e.s)), 0 < (r = (t = a.length) - (n = c.length))) ) for (; r--; c[n++] = 0); for (r = q - 1; f < t; ) { if (c[--t] < a[t]) { for (n = t; n && !c[--n]; c[n] = r); --c[n], (c[t] += q); } c[t] -= a[t]; } for (; 0 == c[0]; c.splice(0, 1), --l); return c[0] ? U(e, c, l) : ((e.s = 3 == N ? -1 : 1), (e.c = [(e.e = 0)]), e); }), (t.modulo = t.mod = function(e, r) { var n, t, i = this; return ( (e = new _(e, r)), !i.c || !e.s || (e.c && !e.c[0]) ? new _(NaN) : !e.c || (i.c && !i.c[0]) ? new _(i) : (9 == o ? ((t = e.s), (e.s = 1), (n = d(i, e, 0, 3)), (e.s = t), (n.s *= t)) : (n = d(i, e, 0, o)), (e = i.minus(n.times(e))).c[0] || 1 != o || (e.s = i.s), e) ); }), (t.multipliedBy = t.times = function(e, r) { var n, t, i, o, s, f, u, l, c, a, h, g, p, w, d, m = this, v = m.c, N = (e = new _(e, r)).c; if (!(v && N && v[0] && N[0])) return ( !m.s || !e.s || (v && !v[0] && !N) || (N && !N[0] && !v) ? (e.c = e.e = e.s = null) : ((e.s *= m.s), v && N ? ((e.c = [0]), (e.e = 0)) : (e.c = e.e = null)), e ); for ( t = W(m.e / j) + W(e.e / j), e.s *= m.s, (u = v.length) < (a = N.length) && ((p = v), (v = N), (N = p), (i = u), (u = a), (a = i)), i = u + a, p = []; i--; p.push(0) ); for (w = q, d = H, i = a; 0 <= --i; ) { for ( n = 0, h = N[i] % d, g = (N[i] / d) | 0, o = i + (s = u); i < o; ) (n = (((l = h * (l = v[--s] % d) + ((f = g * l + (c = (v[s] / d) | 0) * h) % d) * d + p[o] + n) / w) | 0) + ((f / d) | 0) + g * c), (p[o--] = l % w); p[o] = n; } return n ? ++t : p.splice(0, 1), U(e, p, t); }), (t.negated = function() { var e = new _(this); return (e.s = -e.s || null), e; }), (t.plus = function(e, r) { var n, t = this, i = t.s; if (((r = (e = new _(e, r)).s), !i || !r)) return new _(NaN); if (i != r) return (e.s = -r), t.minus(e); var o = t.e / j, s = e.e / j, f = t.c, u = e.c; if (!o || !s) { if (!f || !u) return new _(i / 0); if (!f[0] || !u[0]) return u[0] ? e : new _(f[0] ? t : 0 * i); } if (((o = W(o)), (s = W(s)), (f = f.slice()), (i = o - s))) { for ( (n = 0 < i ? ((s = o), u) : ((i = -i), f)).reverse(); i--; n.push(0) ); n.reverse(); } for ( (i = f.length) - (r = u.length) < 0 && ((n = u), (u = f), (f = n), (r = i)), i = 0; r; ) (i = ((f[--r] = f[r] + u[r] + i) / q) | 0), (f[r] = q === f[r] ? 0 : f[r] % q); return i && ((f = [i].concat(f)), ++s), U(e, f, s); }), (t.precision = t.sd = function(e, r) { var n, t, i; if (null != e && e !== !!e) return ( J(e, 1, V), null == r ? (r = N) : J(r, 0, 8), I(new _(this), e, r) ); if (!(n = this.c)) return null; if (((t = (i = n.length - 1) * j + 1), (i = n[i]))) { for (; i % 10 == 0; i /= 10, t--); for (i = n[0]; 10 <= i; i /= 10, t++); } return e && this.e + 1 > t && (t = this.e + 1), t; }), (t.shiftedBy = function(e) { return J(e, -$, $), this.times('1e' + e); }), (t.squareRoot = t.sqrt = function() { var e, r, n, t, i, o = this, s = o.c, f = o.s, u = o.e, l = v + 4, c = new _('0.5'); if (1 !== f || !s || !s[0]) return new _(!f || (f < 0 && (!s || s[0])) ? NaN : s ? o : 1 / 0); if ( (n = 0 == (f = Math.sqrt(+T(o))) || f == 1 / 0 ? (((r = X(s)).length + u) % 2 == 0 && (r += '0'), (f = Math.sqrt(+r)), (u = W((u + 1) / 2) - (u < 0 || u % 2)), new _( (r = f == 1 / 0 ? '5e' + u : (r = f.toExponential()).slice(0, r.indexOf('e') + 1) + u), )) : new _(f + '')).c[0] ) for ((f = (u = n.e) + l) < 3 && (f = 0); ; ) if ( ((i = n), (n = c.times(i.plus(d(o, i, l, 1)))), X(i.c).slice(0, f) === (r = X(n.c)).slice(0, f)) ) { if ( (n.e < u && --f, '9999' != (r = r.slice(f - 3, f + 1)) && (t || '4999' != r)) ) { (+r && (+r.slice(1) || '5' != r.charAt(0))) || (I(n, n.e + v + 2, 1), (e = !n.times(n).eq(o))); break; } if (!t && (I(i, i.e + v + 2, 0), i.times(i).eq(o))) { n = i; break; } (l += 4), (f += 4), (t = 1); } return I(n, n.e + v + 1, N, e); }), (t.toExponential = function(e, r) { return null != e && (J(e, 0, V), e++), i(this, e, r, 1); }), (t.toFixed = function(e, r) { return null != e && (J(e, 0, V), (e = e + this.e + 1)), i(this, e, r); }), (t.toFormat = function(e, r, n) { var t; if (null == n) null != e && r && 'object' == typeof r ? ((n = r), (r = null)) : e && 'object' == typeof e ? ((n = e), (e = r = null)) : (n = S); else if ('object' != typeof n) throw Error(k + 'Argument not an object: ' + n); if (((t = this.toFixed(e, r)), this.c)) { var i, o = t.split('.'), s = +n.groupSize, f = +n.secondaryGroupSize, u = n.groupSeparator || '', l = o[0], c = o[1], a = this.s < 0, h = a ? l.slice(1) : l, g = h.length; if ((f && ((i = s), (s = f), (g -= f = i)), 0 < s && 0 < g)) { for (i = g % s || s, l = h.substr(0, i); i < g; i += s) l += u + h.substr(i, s); 0 < f && (l += u + h.slice(i)), a && (l = '-' + l); } t = c ? l + (n.decimalSeparator || '') + ((f = +n.fractionGroupSize) ? c.replace( new RegExp('\\d{' + f + '}\\B', 'g'), '$&' + (n.fractionGroupSeparator || ''), ) : c) : l; } return (n.prefix || '') + t + (n.suffix || ''); }), (t.toFraction = function(e) { var r, n, t, i, o, s, f, u, l, c, a, h, g = this, p = g.c; if ( null != e && ((!(f = new _(e)).isInteger() && (f.c || 1 !== f.s)) || f.lt(w)) ) throw Error( k + 'Argument ' + (f.isInteger() ? 'out of range: ' : 'not an integer: ') + T(f), ); if (!p) return new _(g); for ( r = new _(w), l = n = new _(w), t = u = new _(w), h = X(p), o = r.e = h.length - g.e - 1, r.c[0] = z[(s = o % j) < 0 ? j + s : s], e = !e || 0 < f.comparedTo(r) ? (0 < o ? r : l) : f, s = b, b = 1 / 0, f = new _(h), u.c[0] = 0; (c = d(f, r, 0, 1)), 1 != (i = n.plus(c.times(t))).comparedTo(e); ) (n = t), (t = i), (l = u.plus(c.times((i = l)))), (u = i), (r = f.minus(c.times((i = r)))), (f = i); return ( (i = d(e.minus(n), t, 0, 1)), (u = u.plus(i.times(l))), (n = n.plus(i.times(t))), (u.s = l.s = g.s), (a = d(l, t, (o *= 2), N) .minus(g) .abs() .comparedTo( d(u, n, o, N) .minus(g) .abs(), ) < 1 ? [l, t] : [u, n]), (b = s), a ); }), (t.toNumber = function() { return +T(this); }), (t.toPrecision = function(e, r) { return null != e && J(e, 1, V), i(this, e, r, 2); }), (t.toString = function(e) { var r, n = this, t = n.s, i = n.e; return ( null === i ? t ? ((r = 'Infinity'), t < 0 && (r = '-' + r)) : (r = 'NaN') : ((r = null == e ? i <= p || O <= i ? K(X(n.c), i) : Q(X(n.c), i, '0') : 10 === e ? Q(X((n = I(new _(n), v + i + 1, N)).c), n.e, '0') : (J(e, 2, R.length, 'Base'), a(Q(X(n.c), i, '0'), 10, e, t, !0))), t < 0 && n.c[0] && (r = '-' + r)), r ); }), (t.valueOf = t.toJSON = function() { return T(this); }), (t._isBigNumber = !0), null != r && _.set(r), _ ); })()).default = r.BigNumber = r), 'function' == typeof define && define.amd ? define(function() { return r; }) : 'undefined' != typeof module && module.exports ? (module.exports = r) : ((e = e || ('undefined' != typeof self && self ? self : window)).BigNumber = r); })(this);