{"version":3,"file":"static/chunks/794-63810538620e1f2d.js","mappings":"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","sources":["webpack://_N_E/./node_modules/bignumber.js/bignumber.mjs","webpack://_N_E/"],"sourcesContent":["/*\r\n * bignumber.js v9.1.0\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) t = yc, yc = xc, xc = t, b = a;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) i = g1, g1 = g2, g2 = i, len -= i;\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n"],"names":["isNumeric","mathceil","Math","ceil","mathfloor","floor","bignumberError","tooManyDigits","POWS_TEN","bitFloor","n","i","coeffToString","a","s","z","j","length","r","LOG_BASE","charCodeAt","slice","compare","x","y","b","xc","c","yc","k","e","l","intCheck","min","max","name","Error","String","isOdd","toExponential","str","charAt","toFixedPoint","len","zs","BigNumber","clone","configObject","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","div","convertBase","parseNumeric","P","prototype","constructor","toString","valueOf","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","prefix","groupSize","secondaryGroupSize","groupSeparator","decimalSeparator","fractionGroupSize","fractionGroupSeparator","suffix","ALPHABET","alphabetHasNormalDecimalDigits","v","alphabet","caseChanged","isNum","_isBigNumber","test","indexOf","replace","search","substring","round","DEBUG","toUpperCase","toLowerCase","push","format","rm","id","c0","ne","maxOrMin","args","method","m","call","normalise","pop","sd","d","ni","rd","out","pows10","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","config","set","obj","p","hasOwnProperty","crypto","getRandomValues","randomBytes","EXPONENTIAL_AT","RANGE","isBigNumber","maximum","arguments","lt","minimum","gt","random","dp","rand","Uint32Array","copy","splice","sum","plus","decimal","toBaseOut","baseIn","baseOut","arrL","arr","reverse","sign","callerIsToString","pow","concat","multiply","base","temp","xlo","xhi","carry","klo","khi","aL","bL","cmp","subtract","more","prod","prodL","q","qc","rem","remL","rem0","xi","xL","yc0","yL","yz","NaN","isNaN","p1","p2","absoluteValue","abs","comparedTo","decimalPlaces","dividedBy","dividedToIntegerBy","idiv","exponentiatedBy","half","isModExp","nIsBig","nIsNeg","nIsOdd","isInteger","mod","times","integerValue","isEqualTo","eq","isFinite","isGreaterThan","isGreaterThanOrEqualTo","gte","isLessThan","isLessThanOrEqualTo","lte","isNegative","isPositive","isZero","minus","t","xLTy","xe","ye","BASE","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","split","g1","g2","intPart","fractionPart","isNeg","intDigits","substr","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","Symbol","toStringTag","for","__webpack_exports__","Z"],"sourceRoot":""}