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