/* 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 _(.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);