{"version":3,"file":"4653.a3aae2f2b77bf43a75d7.entry.js","mappings":"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,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE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","sources":["webpack://superset/./node_modules/bignumber.js/bignumber.js","webpack://superset/./node_modules/fetch-retry/dist/fetch-retry.umd.js","webpack://superset/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://superset/./node_modules/jed/jed.js","webpack://superset/./node_modules/json-bigint/index.js","webpack://superset/./node_modules/json-bigint/lib/parse.js","webpack://superset/./node_modules/json-bigint/lib/stringify.js","webpack://superset/./node_modules/object-assign/index.js","webpack://superset/./node_modules/parse-ms/index.js","webpack://superset/./node_modules/pretty-ms/index.js","webpack://superset/./node_modules/react-is/cjs/react-is.production.min.js","webpack://superset/./node_modules/react-is/index.js","webpack://superset/./node_modules/rison/js/rison.js","webpack://superset/./packages/superset-ui-core/node_modules/whatwg-fetch/fetch.js","webpack://superset/./node_modules/stylis/src/Enum.js","webpack://superset/./node_modules/stylis/src/Prefixer.js","webpack://superset/./node_modules/stylis/src/Middleware.js","webpack://superset/./node_modules/stylis/src/Parser.js","webpack://superset/./node_modules/stylis/src/Serializer.js","webpack://superset/./node_modules/stylis/src/Tokenizer.js","webpack://superset/./node_modules/stylis/src/Utility.js"],"sourcesContent":[";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.0.0\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2019 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\n var BigNumber,\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\n function 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\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) {\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 only one character,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.$|[+-.\\s]|(.).*\\1/.test(v)) {\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 = '1e' + 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) {\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 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fetchRetry = factory());\n})(this, (function () { 'use strict';\n\n var fetchRetry = function (fetch, defaults) {\n defaults = defaults || {};\n if (typeof fetch !== 'function') {\n throw new ArgumentError('fetch must be a function');\n }\n\n if (typeof defaults !== 'object') {\n throw new ArgumentError('defaults must be an object');\n }\n\n if (defaults.retries !== undefined && !isPositiveInteger(defaults.retries)) {\n throw new ArgumentError('retries must be a positive integer');\n }\n\n if (defaults.retryDelay !== undefined && !isPositiveInteger(defaults.retryDelay) && typeof defaults.retryDelay !== 'function') {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n\n if (defaults.retryOn !== undefined && !Array.isArray(defaults.retryOn) && typeof defaults.retryOn !== 'function') {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n\n var baseDefaults = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [],\n };\n\n defaults = Object.assign(baseDefaults, defaults);\n\n return function fetchRetry(input, init) {\n var retries = defaults.retries;\n var retryDelay = defaults.retryDelay;\n var retryOn = defaults.retryOn;\n\n if (init && init.retries !== undefined) {\n if (isPositiveInteger(init.retries)) {\n retries = init.retries;\n } else {\n throw new ArgumentError('retries must be a positive integer');\n }\n }\n\n if (init && init.retryDelay !== undefined) {\n if (isPositiveInteger(init.retryDelay) || (typeof init.retryDelay === 'function')) {\n retryDelay = init.retryDelay;\n } else {\n throw new ArgumentError('retryDelay must be a positive integer or a function returning a positive integer');\n }\n }\n\n if (init && init.retryOn) {\n if (Array.isArray(init.retryOn) || (typeof init.retryOn === 'function')) {\n retryOn = init.retryOn;\n } else {\n throw new ArgumentError('retryOn property expects an array or function');\n }\n }\n\n // eslint-disable-next-line no-undef\n return new Promise(function (resolve, reject) {\n var wrappedFetch = function (attempt) {\n // As of node 18, this is no longer needed since node comes with native support for fetch:\n /* istanbul ignore next */\n var _input =\n typeof Request !== 'undefined' && input instanceof Request\n ? input.clone()\n : input;\n fetch(_input, init)\n .then(function (response) {\n if (Array.isArray(retryOn) && retryOn.indexOf(response.status) === -1) {\n resolve(response);\n } else if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n return Promise.resolve(retryOn(attempt, null, response))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }).catch(reject);\n } catch (error) {\n reject(error);\n }\n } else {\n if (attempt < retries) {\n retry(attempt, null, response);\n } else {\n resolve(response);\n }\n }\n })\n .catch(function (error) {\n if (typeof retryOn === 'function') {\n try {\n // eslint-disable-next-line no-undef\n Promise.resolve(retryOn(attempt, error, null))\n .then(function (retryOnResponse) {\n if(retryOnResponse) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n })\n .catch(function(error) {\n reject(error);\n });\n } catch(error) {\n reject(error);\n }\n } else if (attempt < retries) {\n retry(attempt, error, null);\n } else {\n reject(error);\n }\n });\n };\n\n function retry(attempt, error, response) {\n var delay = (typeof retryDelay === 'function') ?\n retryDelay(attempt, error, response) : retryDelay;\n setTimeout(function () {\n wrappedFetch(++attempt);\n }, delay);\n }\n\n wrappedFetch(0);\n });\n };\n };\n\n function isPositiveInteger(value) {\n return Number.isInteger(value) && value >= 0;\n }\n\n function ArgumentError(message) {\n this.name = 'ArgumentError';\n this.message = message;\n }\n\n return fetchRetry;\n\n}));\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * @preserve jed.js https://github.com/SlexAxton/Jed\n */\n/*\n-----------\nA gettext compatible i18n library for modern JavaScript Applications\n\nby Alex Sexton - AlexSexton [at] gmail - @SlexAxton\n\nMIT License\n\nA jQuery Foundation project - requires CLA to contribute -\nhttps://contribute.jquery.org/CLA/\n\n\n\nJed offers the entire applicable GNU gettext spec'd set of\nfunctions, but also offers some nicer wrappers around them.\nThe api for gettext was written for a language with no function\noverloading, so Jed allows a little more of that.\n\nMany thanks to Joshua I. Miller - unrtst@cpan.org - who wrote\ngettext.js back in 2008. I was able to vet a lot of my ideas\nagainst his. I also made sure Jed passed against his tests\nin order to offer easy upgrades -- jsgettext.berlios.de\n*/\n(function (root, undef) {\n\n // Set up some underscore-style functions, if you already have\n // underscore, feel free to delete this section, and use it\n // directly, however, the amount of functions used doesn't\n // warrant having underscore as a full dependency.\n // Underscore 1.3.0 was used to port and is licensed\n // under the MIT License by Jeremy Ashkenas.\n var ArrayProto = Array.prototype,\n ObjProto = Object.prototype,\n slice = ArrayProto.slice,\n hasOwnProp = ObjProto.hasOwnProperty,\n nativeForEach = ArrayProto.forEach,\n breaker = {};\n\n // We're not using the OOP style _ so we don't need the\n // extra level of indirection. This still means that you\n // sub out for real `_` though.\n var _ = {\n forEach : function( obj, iterator, context ) {\n var i, l, key;\n if ( obj === null ) {\n return;\n }\n\n if ( nativeForEach && obj.forEach === nativeForEach ) {\n obj.forEach( iterator, context );\n }\n else if ( obj.length === +obj.length ) {\n for ( i = 0, l = obj.length; i < l; i++ ) {\n if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) {\n return;\n }\n }\n }\n else {\n for ( key in obj) {\n if ( hasOwnProp.call( obj, key ) ) {\n if ( iterator.call (context, obj[key], key, obj ) === breaker ) {\n return;\n }\n }\n }\n }\n },\n extend : function( obj ) {\n this.forEach( slice.call( arguments, 1 ), function ( source ) {\n for ( var prop in source ) {\n obj[prop] = source[prop];\n }\n });\n return obj;\n }\n };\n // END Miniature underscore impl\n\n // Jed is a constructor function\n var Jed = function ( options ) {\n // Some minimal defaults\n this.defaults = {\n \"locale_data\" : {\n \"messages\" : {\n \"\" : {\n \"domain\" : \"messages\",\n \"lang\" : \"en\",\n \"plural_forms\" : \"nplurals=2; plural=(n != 1);\"\n }\n // There are no default keys, though\n }\n },\n // The default domain if one is missing\n \"domain\" : \"messages\",\n // enable debug mode to log untranslated strings to the console\n \"debug\" : false\n };\n\n // Mix in the sent options with the default options\n this.options = _.extend( {}, this.defaults, options );\n this.textdomain( this.options.domain );\n\n if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) {\n throw new Error('Text domain set to non-existent domain: `' + options.domain + '`');\n }\n };\n\n // The gettext spec sets this character as the default\n // delimiter for context lookups.\n // e.g.: context\\u0004key\n // If your translation company uses something different,\n // just change this at any time and it will use that instead.\n Jed.context_delimiter = String.fromCharCode( 4 );\n\n function getPluralFormFunc ( plural_form_string ) {\n return Jed.PF.compile( plural_form_string || \"nplurals=2; plural=(n != 1);\");\n }\n\n function Chain( key, i18n ){\n this._key = key;\n this._i18n = i18n;\n }\n\n // Create a chainable api for adding args prettily\n _.extend( Chain.prototype, {\n onDomain : function ( domain ) {\n this._domain = domain;\n return this;\n },\n withContext : function ( context ) {\n this._context = context;\n return this;\n },\n ifPlural : function ( num, pkey ) {\n this._val = num;\n this._pkey = pkey;\n return this;\n },\n fetch : function ( sArr ) {\n if ( {}.toString.call( sArr ) != '[object Array]' ) {\n sArr = [].slice.call(arguments, 0);\n }\n return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )(\n this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val),\n sArr\n );\n }\n });\n\n // Add functions to the Jed prototype.\n // These will be the functions on the object that's returned\n // from creating a `new Jed()`\n // These seem redundant, but they gzip pretty well.\n _.extend( Jed.prototype, {\n // The sexier api start point\n translate : function ( key ) {\n return new Chain( key, this );\n },\n\n textdomain : function ( domain ) {\n if ( ! domain ) {\n return this._textdomain;\n }\n this._textdomain = domain;\n },\n\n gettext : function ( key ) {\n return this.dcnpgettext.call( this, undef, undef, key );\n },\n\n dgettext : function ( domain, key ) {\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n dcgettext : function ( domain , key /*, category */ ) {\n // Ignores the category anyways\n return this.dcnpgettext.call( this, domain, undef, key );\n },\n\n ngettext : function ( skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, undef, skey, pkey, val );\n },\n\n dngettext : function ( domain, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n dcngettext : function ( domain, skey, pkey, val/*, category */) {\n return this.dcnpgettext.call( this, domain, undef, skey, pkey, val );\n },\n\n pgettext : function ( context, key ) {\n return this.dcnpgettext.call( this, undef, context, key );\n },\n\n dpgettext : function ( domain, context, key ) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n dcpgettext : function ( domain, context, key/*, category */) {\n return this.dcnpgettext.call( this, domain, context, key );\n },\n\n npgettext : function ( context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, undef, context, skey, pkey, val );\n },\n\n dnpgettext : function ( domain, context, skey, pkey, val ) {\n return this.dcnpgettext.call( this, domain, context, skey, pkey, val );\n },\n\n // The most fully qualified gettext function. It has every option.\n // Since it has every option, we can use it from every other method.\n // This is the bread and butter.\n // Technically there should be one more argument in this function for 'Category',\n // but since we never use it, we might as well not waste the bytes to define it.\n dcnpgettext : function ( domain, context, singular_key, plural_key, val ) {\n // Set some defaults\n\n plural_key = plural_key || singular_key;\n\n // Use the global domain default if one\n // isn't explicitly passed in\n domain = domain || this._textdomain;\n\n var fallback;\n\n // Handle special cases\n\n // No options found\n if ( ! this.options ) {\n // There's likely something wrong, but we'll return the correct key for english\n // We do this by instantiating a brand new Jed instance with the default set\n // for everything that could be broken.\n fallback = new Jed();\n return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val );\n }\n\n // No translation data provided\n if ( ! this.options.locale_data ) {\n throw new Error('No locale data provided.');\n }\n\n if ( ! this.options.locale_data[ domain ] ) {\n throw new Error('Domain `' + domain + '` was not found.');\n }\n\n if ( ! this.options.locale_data[ domain ][ \"\" ] ) {\n throw new Error('No locale meta information provided.');\n }\n\n // Make sure we have a truthy key. Otherwise we might start looking\n // into the empty string key, which is the options for the locale\n // data.\n if ( ! singular_key ) {\n throw new Error('No translation key found.');\n }\n\n var key = context ? context + Jed.context_delimiter + singular_key : singular_key,\n locale_data = this.options.locale_data,\n dict = locale_data[ domain ],\n defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[\"\"],\n pluralForms = dict[\"\"].plural_forms || dict[\"\"][\"Plural-Forms\"] || dict[\"\"][\"plural-forms\"] || defaultConf.plural_forms || defaultConf[\"Plural-Forms\"] || defaultConf[\"plural-forms\"],\n val_list,\n res;\n\n var val_idx;\n if (val === undefined) {\n // No value passed in; assume singular key lookup.\n val_idx = 0;\n\n } else {\n // Value has been passed in; use plural-forms calculations.\n\n // Handle invalid numbers, but try casting strings for good measure\n if ( typeof val != 'number' ) {\n val = parseInt( val, 10 );\n\n if ( isNaN( val ) ) {\n throw new Error('The number that was passed in is not a number.');\n }\n }\n\n val_idx = getPluralFormFunc(pluralForms)(val);\n }\n\n // Throw an error if a domain isn't found\n if ( ! dict ) {\n throw new Error('No domain named `' + domain + '` could be found.');\n }\n\n val_list = dict[ key ];\n\n // If there is no match, then revert back to\n // english style singular/plural with the keys passed in.\n if ( ! val_list || val_idx > val_list.length ) {\n if (this.options.missing_key_callback) {\n this.options.missing_key_callback(key, domain);\n }\n res = [ singular_key, plural_key ];\n\n // collect untranslated strings\n if (this.options.debug===true) {\n console.log(res[ getPluralFormFunc(pluralForms)( val ) ]);\n }\n return res[ getPluralFormFunc()( val ) ];\n }\n\n res = val_list[ val_idx ];\n\n // This includes empty strings on purpose\n if ( ! res ) {\n res = [ singular_key, plural_key ];\n return res[ getPluralFormFunc()( val ) ];\n }\n return res;\n }\n });\n\n\n // We add in sprintf capabilities for post translation value interolation\n // This is not internally used, so you can remove it if you have this\n // available somewhere else, or want to use a different system.\n\n // We _slightly_ modify the normal sprintf behavior to more gracefully handle\n // undefined values.\n\n /**\n sprintf() for JavaScript 0.7-beta1\n http://www.diveintojavascript.com/projects/javascript-sprintf\n\n Copyright (c) Alexandru Marasteanu \n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of sprintf() for JavaScript nor the\n names of its contributors may be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n var sprintf = (function() {\n function get_type(variable) {\n return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();\n }\n function str_repeat(input, multiplier) {\n for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}\n return output.join('');\n }\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw(sprintf('[sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n }\n else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));\n }\n\n // Jed EDIT\n if ( typeof arg == 'undefined' || arg === null ) {\n arg = '';\n }\n // Jed EDIT\n\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw('[sprintf] huh?');\n }\n }\n }\n else {\n throw('[sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw('[sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw('[sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n })();\n\n var vsprintf = function(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n };\n\n Jed.parse_plural = function ( plural_forms, n ) {\n plural_forms = plural_forms.replace(/n/g, n);\n return Jed.parse_expression(plural_forms);\n };\n\n Jed.sprintf = function ( fmt, args ) {\n if ( {}.toString.call( args ) == '[object Array]' ) {\n return vsprintf( fmt, [].slice.call(args) );\n }\n return sprintf.apply(this, [].slice.call(arguments) );\n };\n\n Jed.prototype.sprintf = function () {\n return Jed.sprintf.apply(this, arguments);\n };\n // END sprintf Implementation\n\n // Start the Plural forms section\n // This is a full plural form expression parser. It is used to avoid\n // running 'eval' or 'new Function' directly against the plural\n // forms.\n //\n // This can be important if you get translations done through a 3rd\n // party vendor. I encourage you to use this instead, however, I\n // also will provide a 'precompiler' that you can use at build time\n // to output valid/safe function representations of the plural form\n // expressions. This means you can build this code out for the most\n // part.\n Jed.PF = {};\n\n Jed.PF.parse = function ( p ) {\n var plural_str = Jed.PF.extractPluralExpr( p );\n return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str);\n };\n\n Jed.PF.compile = function ( p ) {\n // Handle trues and falses as 0 and 1\n function imply( val ) {\n return (val === true ? 1 : val ? val : 0);\n }\n\n var ast = Jed.PF.parse( p );\n return function ( n ) {\n return imply( Jed.PF.interpreter( ast )( n ) );\n };\n };\n\n Jed.PF.interpreter = function ( ast ) {\n return function ( n ) {\n var res;\n switch ( ast.type ) {\n case 'GROUP':\n return Jed.PF.interpreter( ast.expr )( n );\n case 'TERNARY':\n if ( Jed.PF.interpreter( ast.expr )( n ) ) {\n return Jed.PF.interpreter( ast.truthy )( n );\n }\n return Jed.PF.interpreter( ast.falsey )( n );\n case 'OR':\n return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n );\n case 'AND':\n return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n );\n case 'LT':\n return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n );\n case 'GT':\n return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n );\n case 'LTE':\n return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n );\n case 'GTE':\n return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n );\n case 'EQ':\n return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n );\n case 'NEQ':\n return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n );\n case 'MOD':\n return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n );\n case 'VAR':\n return n;\n case 'NUM':\n return ast.val;\n default:\n throw new Error(\"Invalid Token found.\");\n }\n };\n };\n\n Jed.PF.extractPluralExpr = function ( p ) {\n // trim first\n p = p.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\n if (! /;\\s*$/.test(p)) {\n p = p.concat(';');\n }\n\n var nplurals_re = /nplurals\\=(\\d+);/,\n plural_re = /plural\\=(.*);/,\n nplurals_matches = p.match( nplurals_re ),\n res = {},\n plural_matches;\n\n // Find the nplurals number\n if ( nplurals_matches.length > 1 ) {\n res.nplurals = nplurals_matches[1];\n }\n else {\n throw new Error('nplurals not found in plural_forms string: ' + p );\n }\n\n // remove that data to get to the formula\n p = p.replace( nplurals_re, \"\" );\n plural_matches = p.match( plural_re );\n\n if (!( plural_matches && plural_matches.length > 1 ) ) {\n throw new Error('`plural` expression not found: ' + p);\n }\n return plural_matches[ 1 ];\n };\n\n /* Jison generated parser */\n Jed.PF.parser = (function(){\n\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"expressions\":3,\"e\":4,\"EOF\":5,\"?\":6,\":\":7,\"||\":8,\"&&\":9,\"<\":10,\"<=\":11,\">\":12,\">=\":13,\"!=\":14,\"==\":15,\"%\":16,\"(\":17,\")\":18,\"n\":19,\"NUMBER\":20,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",5:\"EOF\",6:\"?\",7:\":\",8:\"||\",9:\"&&\",10:\"<\",11:\"<=\",12:\">\",13:\">=\",14:\"!=\",15:\"==\",16:\"%\",17:\"(\",18:\")\",19:\"n\",20:\"NUMBER\"},\nproductions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],\nperformAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1: return { type : 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] };\nbreak;\ncase 3:this.$ = { type: \"OR\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 4:this.$ = { type: \"AND\", left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] };\nbreak;\ncase 12:this.$ = { type: 'GROUP', expr: $$[$0-1] };\nbreak;\ncase 13:this.$ = { type: 'VAR' };\nbreak;\ncase 14:this.$ = { type: 'NUM', val: Number(yytext) };\nbreak;\n}\n},\ntable: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],\ndefaultActions: {6:[2,1]},\nparseError: function parseError(str, hash) {\n throw new Error(str);\n},\nparse: function parse(input) {\n var self = this,\n stack = [0],\n vstack = [null], // semantic value stack\n lstack = [], // location stack\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n\n //this.reductionCount = this.shiftCount = 0;\n\n this.lexer.setInput(input);\n this.lexer.yy = this.yy;\n this.yy.lexer = this.lexer;\n if (typeof this.lexer.yylloc == 'undefined')\n this.lexer.yylloc = {};\n var yyloc = this.lexer.yylloc;\n lstack.push(yyloc);\n\n if (typeof this.yy.parseError === 'function')\n this.parseError = this.yy.parseError;\n\n function popStack (n) {\n stack.length = stack.length - 2*n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n function lex() {\n var token;\n token = self.lexer.lex() || 1; // $end = 1\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n\n var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected;\n while (true) {\n // retreive state number from top of stack\n state = stack[stack.length-1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol == null)\n symbol = lex();\n // read action for current state and first input\n action = table[state] && table[state][symbol];\n }\n\n // handle parse error\n _handle_error:\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n\n if (!recovering) {\n // Report error\n expected = [];\n for (p in table[state]) if (this.terminals_[p] && p > 2) {\n expected.push(\"'\"+this.terminals_[p]+\"'\");\n }\n var errStr = '';\n if (this.lexer.showPosition) {\n errStr = 'Parse error on line '+(yylineno+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+expected.join(', ') + \", got '\" + this.terminals_[symbol]+ \"'\";\n } else {\n errStr = 'Parse error on line '+(yylineno+1)+\": Unexpected \" +\n (symbol == 1 /*EOF*/ ? \"end of input\" :\n (\"'\"+(this.terminals_[symbol] || symbol)+\"'\"));\n }\n this.parseError(errStr,\n {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});\n }\n\n // just recovered from another error\n if (recovering == 3) {\n if (symbol == EOF) {\n throw new Error(errStr || 'Parsing halted.');\n }\n\n // discard current lookahead and grab another\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n symbol = lex();\n }\n\n // try to recover from error\n while (1) {\n // check for error recovery rule in this state\n if ((TERROR.toString()) in table[state]) {\n break;\n }\n if (state == 0) {\n throw new Error(errStr || 'Parsing halted.');\n }\n popStack(1);\n state = stack[stack.length-1];\n }\n\n preErrorSymbol = symbol; // save the lookahead token\n symbol = TERROR; // insert generic error symbol as new lookahead\n state = stack[stack.length-1];\n action = table[state] && table[state][TERROR];\n recovering = 3; // allow 3 real symbols to be shifted before reporting a new error\n }\n\n // this shouldn't happen, unless resolve defaults are off\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);\n }\n\n switch (action[0]) {\n\n case 1: // shift\n //this.shiftCount++;\n\n stack.push(symbol);\n vstack.push(this.lexer.yytext);\n lstack.push(this.lexer.yylloc);\n stack.push(action[1]); // push state\n symbol = null;\n if (!preErrorSymbol) { // normal execution/no error\n yyleng = this.lexer.yyleng;\n yytext = this.lexer.yytext;\n yylineno = this.lexer.yylineno;\n yyloc = this.lexer.yylloc;\n if (recovering > 0)\n recovering--;\n } else { // error just occurred, resume old lookahead f/ before error\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n\n case 2: // reduce\n //this.reductionCount++;\n\n len = this.productions_[action[1]][1];\n\n // perform semantic action\n yyval.$ = vstack[vstack.length-len]; // default to $$ = $1\n // default location, uses first token for firsts, last for lasts\n yyval._$ = {\n first_line: lstack[lstack.length-(len||1)].first_line,\n last_line: lstack[lstack.length-1].last_line,\n first_column: lstack[lstack.length-(len||1)].first_column,\n last_column: lstack[lstack.length-1].last_column\n };\n r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n // pop off stack\n if (len) {\n stack = stack.slice(0,-1*len*2);\n vstack = vstack.slice(0, -1*len);\n lstack = lstack.slice(0, -1*len);\n }\n\n stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce)\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[stack[stack.length-2]][stack[stack.length-1]];\n stack.push(newState);\n break;\n\n case 3: // accept\n return true;\n }\n\n }\n\n return true;\n}};/* Jison generated lexer */\nvar lexer = (function(){\n\nvar lexer = ({EOF:1,\nparseError:function parseError(str, hash) {\n if (this.yy.parseError) {\n this.yy.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\nsetInput:function (input) {\n this._input = input;\n this._more = this._less = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0};\n return this;\n },\ninput:function () {\n var ch = this._input[0];\n this.yytext+=ch;\n this.yyleng++;\n this.match+=ch;\n this.matched+=ch;\n var lines = ch.match(/\\n/);\n if (lines) this.yylineno++;\n this._input = this._input.slice(1);\n return ch;\n },\nunput:function (ch) {\n this._input = ch + this._input;\n return this;\n },\nmore:function () {\n this._more = true;\n return this;\n },\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\\n/g, \"\");\n },\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c+\"^\";\n },\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) this.done = true;\n\n var token,\n match,\n col,\n lines;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i=0;i < rules.length; i++) {\n match = this._input.match(this.rules[rules[i]]);\n if (match) {\n lines = match[0].match(/\\n.*/g);\n if (lines) this.yylineno += lines.length;\n this.yylloc = {first_line: this.yylloc.last_line,\n last_line: this.yylineno+1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length}\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n this._more = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]);\n if (token) return token;\n else return;\n }\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\\n'+this.showPosition(),\n {text: \"\", token: null, line: this.yylineno});\n }\n },\nlex:function lex() {\n var r = this.next();\n if (typeof r !== 'undefined') {\n return r;\n } else {\n return this.lex();\n }\n },\nbegin:function begin(condition) {\n this.conditionStack.push(condition);\n },\npopState:function popState() {\n return this.conditionStack.pop();\n },\n_currentRules:function _currentRules() {\n return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;\n },\ntopState:function () {\n return this.conditionStack[this.conditionStack.length-2];\n },\npushState:function begin(condition) {\n this.begin(condition);\n }});\nlexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\n\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* skip whitespace */\nbreak;\ncase 1:return 20\nbreak;\ncase 2:return 19\nbreak;\ncase 3:return 8\nbreak;\ncase 4:return 9\nbreak;\ncase 5:return 6\nbreak;\ncase 6:return 7\nbreak;\ncase 7:return 11\nbreak;\ncase 8:return 13\nbreak;\ncase 9:return 10\nbreak;\ncase 10:return 12\nbreak;\ncase 11:return 14\nbreak;\ncase 12:return 15\nbreak;\ncase 13:return 16\nbreak;\ncase 14:return 17\nbreak;\ncase 15:return 18\nbreak;\ncase 16:return 5\nbreak;\ncase 17:return 'INVALID'\nbreak;\n}\n};\nlexer.rules = [/^\\s+/,/^[0-9]+(\\.[0-9]+)?\\b/,/^n\\b/,/^\\|\\|/,/^&&/,/^\\?/,/^:/,/^<=/,/^>=/,/^/,/^!=/,/^==/,/^%/,/^\\(/,/^\\)/,/^$/,/^./];\nlexer.conditions = {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],\"inclusive\":true}};return lexer;})()\nparser.lexer = lexer;\nreturn parser;\n})();\n// End parser\n\n // Handle node, amd, and global systems\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = Jed;\n }\n exports.Jed = Jed;\n }\n else {\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Jed;\n });\n }\n // Leak a global regardless of module system\n root['Jed'] = Jed;\n }\n\n})(this);\n","var json_stringify = require('./lib/stringify.js').stringify;\nvar json_parse = require('./lib/parse.js');\n\nmodule.exports = function(options) {\n return {\n parse: json_parse(options),\n stringify: json_stringify\n }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n","var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n json_parse.js\n 2012-06-20\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n This file creates a json_parse function.\n During create you can (optionally) specify some behavioural switches\n\n require('json-bigint')(options)\n\n The optional options parameter holds switches that drive certain\n aspects of the parsing process:\n * options.strict = true will warn about duplicate-key usage in the json.\n The default (strict = false) will silently ignore those and overwrite\n values for keys that are in duplicate use.\n\n The resulting function follows this signature:\n json_parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = json_parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n 'use strict';\n\n // This is a function that can parse a JSON text, producing a JavaScript\n // data structure. It is a simple, recursive descent parser. It does not use\n // eval or regular expressions, so it can be used as a model for implementing\n // a JSON parser in other languages.\n\n // We are defining the function inside of another function to avoid creating\n // global variables.\n\n // Default options one can override by passing options to the parse()\n var _options = {\n strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n alwaysParseAsBig: false, // toggles whether all numbers should be Big\n useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n protoAction: 'error',\n constructorAction: 'error',\n };\n\n // If there are options, then use them to override the default _options\n if (options !== undefined && options !== null) {\n if (options.strict === true) {\n _options.strict = true;\n }\n if (options.storeAsString === true) {\n _options.storeAsString = true;\n }\n _options.alwaysParseAsBig =\n options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n _options.useNativeBigInt =\n options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n if (typeof options.constructorAction !== 'undefined') {\n if (\n options.constructorAction === 'error' ||\n options.constructorAction === 'ignore' ||\n options.constructorAction === 'preserve'\n ) {\n _options.constructorAction = options.constructorAction;\n } else {\n throw new Error(\n `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n );\n }\n }\n\n if (typeof options.protoAction !== 'undefined') {\n if (\n options.protoAction === 'error' ||\n options.protoAction === 'ignore' ||\n options.protoAction === 'preserve'\n ) {\n _options.protoAction = options.protoAction;\n } else {\n throw new Error(\n `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n );\n }\n }\n }\n\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n },\n text,\n error = function (m) {\n // Call error when something is wrong.\n\n throw {\n name: 'SyntaxError',\n message: m,\n at: at,\n text: text,\n };\n },\n next = function (c) {\n // If a c parameter is provided, verify that it matches the current character.\n\n if (c && c !== ch) {\n error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n }\n\n // Get the next character. When there are no more characters,\n // return the empty string.\n\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function () {\n // Parse a number value.\n\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n if (BigNumber == null) BigNumber = require('bignumber.js');\n //if (number > 9007199254740992 || number < -9007199254740992)\n // Bignumber has stricter check: everything with length > 15 digits disallowed\n if (string.length > 15)\n return _options.storeAsString\n ? string\n : _options.useNativeBigInt\n ? BigInt(string)\n : new BigNumber(string);\n else\n return !_options.alwaysParseAsBig\n ? number\n : _options.useNativeBigInt\n ? BigInt(number)\n : new BigNumber(number);\n }\n },\n string = function () {\n // Parse a string value.\n\n var hex,\n i,\n string = '',\n uffff;\n\n // When parsing for string values, we must look for \" and \\ characters.\n\n if (ch === '\"') {\n var startAt = at;\n while (next()) {\n if (ch === '\"') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n return string;\n }\n if (ch === '\\\\') {\n if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n startAt = at;\n }\n }\n }\n error('Bad string');\n },\n white = function () {\n // Skip whitespace.\n\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function () {\n // true, false, or null.\n\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error(\"Unexpected '\" + ch + \"'\");\n },\n value, // Place holder for the value function.\n array = function () {\n // Parse an array value.\n\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function () {\n // Parse an object value.\n\n var key,\n object = Object.create(null);\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (\n _options.strict === true &&\n Object.hasOwnProperty.call(object, key)\n ) {\n error('Duplicate key \"' + key + '\"');\n }\n\n if (suspectProtoRx.test(key) === true) {\n if (_options.protoAction === 'error') {\n error('Object contains forbidden prototype property');\n } else if (_options.protoAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else if (suspectConstructorRx.test(key) === true) {\n if (_options.constructorAction === 'error') {\n error('Object contains forbidden constructor property');\n } else if (_options.constructorAction === 'ignore') {\n value();\n } else {\n object[key] = value();\n }\n } else {\n object[key] = value();\n }\n\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function () {\n // Parse a JSON value. It could be an object, an array, a string, a number,\n // or a word.\n\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the above\n // functions and variables.\n\n return function (source, reviver) {\n var result;\n\n text = source + '';\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n // If there is a reviver function, we recursively walk the new structure,\n // passing each name/value pair to the reviver function for possible\n // transformation, starting with a temporary root object that holds the result\n // in an empty key. If there is not a reviver function, we simply return the\n // result.\n\n return typeof reviver === 'function'\n ? (function walk(holder, key) {\n var k,\n v,\n value = holder[key];\n if (value && typeof value === 'object') {\n Object.keys(value).forEach(function (k) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n });\n }\n return reviver.call(holder, key, value);\n })({ '': result }, '')\n : result;\n };\n};\n\nmodule.exports = json_parse;\n","var BigNumber = require('bignumber.js');\n\n/*\n json2.js\n 2013-05-26\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key],\n isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n if (isBigNumber) {\n return value;\n } else {\n return quote(value);\n }\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n Object.keys(value).forEach(function(k) {\n var v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n });\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n}());\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\nmodule.exports = milliseconds => {\n\tif (typeof milliseconds !== 'number') {\n\t\tthrow new TypeError('Expected a number');\n\t}\n\n\tconst roundTowardsZero = milliseconds > 0 ? Math.floor : Math.ceil;\n\n\treturn {\n\t\tdays: roundTowardsZero(milliseconds / 86400000),\n\t\thours: roundTowardsZero(milliseconds / 3600000) % 24,\n\t\tminutes: roundTowardsZero(milliseconds / 60000) % 60,\n\t\tseconds: roundTowardsZero(milliseconds / 1000) % 60,\n\t\tmilliseconds: roundTowardsZero(milliseconds) % 1000,\n\t\tmicroseconds: roundTowardsZero(milliseconds * 1000) % 1000,\n\t\tnanoseconds: roundTowardsZero(milliseconds * 1e6) % 1000\n\t};\n};\n","'use strict';\nconst parseMilliseconds = require('parse-ms');\n\nconst pluralize = (word, count) => count === 1 ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.0000001;\n\nmodule.exports = (milliseconds, options = {}) => {\n\tif (!Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number');\n\t}\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tconst result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif ((result.length === 0 || !options.colonNotation) && value === 0 && !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString = (valueString || value || '0').toString();\n\t\tlet prefix;\n\t\tlet suffix;\n\t\tif (options.colonNotation) {\n\t\t\tprefix = result.length > 0 ? ':' : '';\n\t\t\tsuffix = '';\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tprefix = '';\n\t\t\tsuffix = options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(prefix + valueString + suffix);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\n\tadd(Math.trunc(parsed.days / 365), 'year', 'y');\n\tadd(parsed.days % 365, 'day', 'd');\n\tadd(parsed.hours, 'hour', 'h');\n\tadd(parsed.minutes, 'minute', 'm');\n\n\tif (\n\t\toptions.separateMilliseconds ||\n\t\toptions.formatSubMilliseconds ||\n\t\t(!options.colonNotation && milliseconds < 1000)\n\t) {\n\t\tadd(parsed.seconds, 'second', 's');\n\t\tif (options.formatSubMilliseconds) {\n\t\t\tadd(parsed.milliseconds, 'millisecond', 'ms');\n\t\t\tadd(parsed.microseconds, 'microsecond', 'µs');\n\t\t\tadd(parsed.nanoseconds, 'nanosecond', 'ns');\n\t\t} else {\n\t\t\tconst millisecondsAndBelow =\n\t\t\t\tparsed.milliseconds +\n\t\t\t\t(parsed.microseconds / 1000) +\n\t\t\t\t(parsed.nanoseconds / 1e6);\n\n\t\t\tconst millisecondsDecimalDigits =\n\t\t\t\ttypeof options.millisecondsDecimalDigits === 'number' ?\n\t\t\t\t\toptions.millisecondsDecimalDigits :\n\t\t\t\t\t0;\n\n\t\t\tconst roundedMiliseconds = millisecondsAndBelow >= 1 ?\n\t\t\t\tMath.round(millisecondsAndBelow) :\n\t\t\t\tMath.ceil(millisecondsAndBelow);\n\n\t\t\tconst millisecondsString = millisecondsDecimalDigits ?\n\t\t\t\tmillisecondsAndBelow.toFixed(millisecondsDecimalDigits) :\n\t\t\t\troundedMiliseconds;\n\n\t\t\tadd(\n\t\t\t\tNumber.parseFloat(millisecondsString, 10),\n\t\t\t\t'millisecond',\n\t\t\t\t'ms',\n\t\t\t\tmillisecondsString\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst seconds = (milliseconds / 1000) % 60;\n\t\tconst secondsDecimalDigits =\n\t\t\ttypeof options.secondsDecimalDigits === 'number' ?\n\t\t\t\toptions.secondsDecimalDigits :\n\t\t\t\t1;\n\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\tconst secondsString = options.keepDecimalsOnWholeSeconds ?\n\t\t\tsecondsFixed :\n\t\t\tsecondsFixed.replace(/\\.0+$/, '');\n\t\tadd(Number.parseFloat(secondsString, 10), 'second', 's', secondsString);\n\t}\n\n\tif (result.length === 0) {\n\t\treturn '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tif (options.compact) {\n\t\treturn result[0];\n\t}\n\n\tif (typeof options.unitCount === 'number') {\n\t\tconst separator = options.colonNotation ? '' : ' ';\n\t\treturn result.slice(0, Math.max(options.unitCount, 1)).join(separator);\n\t}\n\n\treturn options.colonNotation ? result.join('') : result.join(' ');\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// Uses CommonJS, AMD or browser globals to create a module.\n// Based on: https://github.com/umdjs/umd/blob/master/commonjsStrict.js\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n factory((root.rison = {}));\n }\n}(this, function (exports) {\nvar rison = exports;\n\n//////////////////////////////////////////////////\n//\n// the stringifier is based on\n// http://json.org/json.js as of 2006-04-28 from json.org\n// the parser is based on \n// http://osteele.com/sources/openlaszlo/json\n//\n\nif (typeof rison == 'undefined')\n window.rison = {};\n\n/**\n * rules for an uri encoder that is more tolerant than encodeURIComponent\n *\n * encodeURIComponent passes ~!*()-_.'\n *\n * we also allow ,:@$/\n *\n */\nrison.uri_ok = { // ok in url paths and in form query args\n '~': true, '!': true, '*': true, '(': true, ')': true,\n '-': true, '_': true, '.': true, ',': true,\n ':': true, '@': true, '$': true,\n \"'\": true, '/': true\n};\n\n/*\n * we divide the uri-safe glyphs into three sets\n * - used by rison ' ! : ( ) ,\n * - not common in strings, reserved * @ $ & ; =\n *\n * we define as anything that's not forbidden\n */\n\n/**\n * punctuation characters that are legal inside ids.\n */\n// this var isn't actually used\n//rison.idchar_punctuation = \"_-./~\"; \n\n(function () {\n var l = [];\n for (var hi = 0; hi < 16; hi++) {\n for (var lo = 0; lo < 16; lo++) {\n if (hi+lo == 0) continue;\n var c = String.fromCharCode(hi*16 + lo);\n if (! /\\w|[-_.\\/~]/.test(c))\n l.push('\\\\u00' + hi.toString(16) + lo.toString(16));\n }\n }\n /**\n * characters that are illegal inside ids.\n * and classes are illegal in ids.\n *\n */\n rison.not_idchar = l.join('')\n //idcrx = new RegExp('[' + rison.not_idchar + ']');\n //console.log('NOT', (idcrx.test(' ')) );\n})();\n//rison.not_idchar = \" \\t\\r\\n\\\"<>[]{}'!=:(),*@$;&\";\nrison.not_idchar = \" '!:(),*@$\";\n\n\n/**\n * characters that are illegal as the start of an id\n * this is so ids can't look like numbers.\n */\nrison.not_idstart = \"-0123456789\";\n\n\n(function () {\n var idrx = '[^' + rison.not_idstart + rison.not_idchar + \n '][^' + rison.not_idchar + ']*';\n\n rison.id_ok = new RegExp('^' + idrx + '$');\n\n // regexp to find the end of an id when parsing\n // g flag on the regexp is necessary for iterative regexp.exec()\n rison.next_id = new RegExp(idrx, 'g');\n})();\n\n/**\n * this is like encodeURIComponent() but quotes fewer characters.\n *\n * @see rison.uri_ok\n *\n * encodeURIComponent passes ~!*()-_.'\n * rison.quote also passes ,:@$/\n * and quotes \" \" as \"+\" instead of \"%20\"\n */\nrison.quote = function(x) {\n if (/^[-A-Za-z0-9~!*()_.',:@$\\/]*$/.test(x))\n return x;\n\n return encodeURIComponent(x)\n .replace('%2C', ',', 'g')\n .replace('%3A', ':', 'g')\n .replace('%40', '@', 'g')\n .replace('%24', '$', 'g')\n .replace('%2F', '/', 'g')\n .replace('%20', '+', 'g');\n};\n\n\n//\n// based on json.js 2006-04-28 from json.org\n// license: http://www.json.org/license.html\n//\n// hacked by nix for use in uris.\n//\n\n(function () {\n var sq = { // url-ok but quoted in strings\n \"'\": true, '!': true\n },\n s = {\n array: function (x) {\n var a = ['!('], b, f, i, l = x.length, v;\n for (i = 0; i < l; i += 1) {\n v = x[i];\n f = s[typeof v];\n if (f) {\n v = f(v);\n if (typeof v == 'string') {\n if (b) {\n a[a.length] = ',';\n }\n a[a.length] = v;\n b = true;\n }\n }\n }\n a[a.length] = ')';\n return a.join('');\n },\n 'boolean': function (x) {\n if (x)\n return '!t';\n return '!f'\n },\n 'null': function (x) {\n return \"!n\";\n },\n number: function (x) {\n if (!isFinite(x))\n return '!n';\n // strip '+' out of exponent, '-' is ok though\n return String(x).replace(/\\+/,'');\n },\n object: function (x) {\n if (x) {\n if (x instanceof Array) {\n return s.array(x);\n }\n // WILL: will this work on non-Firefox browsers?\n if (typeof x.__prototype__ === 'object' && typeof x.__prototype__.encode_rison !== 'undefined')\n return x.encode_rison();\n\n var a = ['('], b, f, i, v, ki, ks=[];\n for (i in x)\n ks[ks.length] = i;\n ks.sort();\n for (ki = 0; ki < ks.length; ki++) {\n i = ks[ki];\n v = x[i];\n f = s[typeof v];\n if (f) {\n v = f(v);\n if (typeof v == 'string') {\n if (b) {\n a[a.length] = ',';\n }\n a.push(s.string(i), ':', v);\n b = true;\n }\n }\n }\n a[a.length] = ')';\n return a.join('');\n }\n return '!n';\n },\n string: function (x) {\n if (x == '')\n return \"''\";\n\n if (rison.id_ok.test(x))\n return x;\n\n x = x.replace(/(['!])/g, function(a, b) {\n if (sq[b]) return '!'+b;\n return b;\n });\n return \"'\" + x + \"'\";\n },\n undefined: function (x) {\n throw new Error(\"rison can't encode the undefined value\");\n }\n };\n\n\n /**\n * rison-encode a javascript structure\n *\n * implemementation based on Douglas Crockford's json.js:\n * http://json.org/json.js as of 2006-04-28 from json.org\n *\n */\n rison.encode = function (v) {\n return s[typeof v](v);\n };\n\n /**\n * rison-encode a javascript object without surrounding parens\n *\n */\n rison.encode_object = function (v) {\n if (typeof v != 'object' || v === null || v instanceof Array)\n throw new Error(\"rison.encode_object expects an object argument\");\n var r = s[typeof v](v);\n return r.substring(1, r.length-1);\n };\n\n /**\n * rison-encode a javascript array without surrounding parens\n *\n */\n rison.encode_array = function (v) {\n if (!(v instanceof Array))\n throw new Error(\"rison.encode_array expects an array argument\");\n var r = s[typeof v](v);\n return r.substring(2, r.length-1);\n };\n\n /**\n * rison-encode and uri-encode a javascript structure\n *\n */\n rison.encode_uri = function (v) {\n return rison.quote(s[typeof v](v));\n };\n\n})();\n\n\n\n\n//\n// based on openlaszlo-json and hacked by nix for use in uris.\n//\n// Author: Oliver Steele\n// Copyright: Copyright 2006 Oliver Steele. All rights reserved.\n// Homepage: http://osteele.com/sources/openlaszlo/json\n// License: MIT License.\n// Version: 1.0\n\n\n/**\n * parse a rison string into a javascript structure.\n *\n * this is the simplest decoder entry point.\n *\n * based on Oliver Steele's OpenLaszlo-JSON\n * http://osteele.com/sources/openlaszlo/json\n */\nrison.decode = function(r) {\n var errcb = function(e) { throw Error('rison decoder error: ' + e); };\n var p = new rison.parser(errcb);\n return p.parse(r);\n};\n\n/**\n * parse an o-rison string into a javascript structure.\n *\n * this simply adds parentheses around the string before parsing.\n */\nrison.decode_object = function(r) {\n return rison.decode('('+r+')');\n};\n\n/**\n * parse an a-rison string into a javascript structure.\n *\n * this simply adds array markup around the string before parsing.\n */\nrison.decode_array = function(r) {\n return rison.decode('!('+r+')');\n};\n\n\n/**\n * construct a new parser object for reuse.\n *\n * @constructor\n * @class A Rison parser class. You should probably \n * use rison.decode instead. \n * @see rison.decode\n */\nrison.parser = function (errcb) {\n this.errorHandler = errcb;\n};\n\n/**\n * a string containing acceptable whitespace characters.\n * by default the rison decoder tolerates no whitespace.\n * to accept whitespace set rison.parser.WHITESPACE = \" \\t\\n\\r\\f\";\n */\nrison.parser.WHITESPACE = \"\";\n\n// expose this as-is?\nrison.parser.prototype.setOptions = function (options) {\n if (options['errorHandler'])\n this.errorHandler = options.errorHandler;\n};\n\n/**\n * parse a rison string into a javascript structure.\n */\nrison.parser.prototype.parse = function (str) {\n this.string = str;\n this.index = 0;\n this.message = null;\n var value = this.readValue();\n if (!this.message && this.next())\n value = this.error(\"unable to parse string as rison: '\" + rison.encode(str) + \"'\");\n if (this.message && this.errorHandler)\n this.errorHandler(this.message, this.index);\n return value;\n};\n\nrison.parser.prototype.error = function (message) {\n if (typeof(console) != 'undefined')\n console.log('rison parser error: ', message);\n this.message = message;\n return undefined;\n}\n \nrison.parser.prototype.readValue = function () {\n var c = this.next();\n var fn = c && this.table[c];\n\n if (fn)\n return fn.apply(this);\n\n // fell through table, parse as an id\n\n var s = this.string;\n var i = this.index-1;\n\n // Regexp.lastIndex may not work right in IE before 5.5?\n // g flag on the regexp is also necessary\n rison.next_id.lastIndex = i;\n var m = rison.next_id.exec(s);\n\n // console.log('matched id', i, r.lastIndex);\n\n if (m.length > 0) {\n var id = m[0];\n this.index = i+id.length;\n return id; // a string\n }\n\n if (c) return this.error(\"invalid character: '\" + c + \"'\");\n return this.error(\"empty expression\");\n}\n\nrison.parser.parse_array = function (parser) {\n var ar = [];\n var c;\n while ((c = parser.next()) != ')') {\n if (!c) return parser.error(\"unmatched '!('\");\n if (ar.length) {\n if (c != ',')\n parser.error(\"missing ','\");\n } else if (c == ',') {\n return parser.error(\"extra ','\");\n } else\n --parser.index;\n var n = parser.readValue();\n if (typeof n == \"undefined\") return undefined;\n ar.push(n);\n }\n return ar;\n};\n\nrison.parser.bangs = {\n t: true,\n f: false,\n n: null,\n '(': rison.parser.parse_array\n}\n\nrison.parser.prototype.table = {\n '!': function () {\n var s = this.string;\n var c = s.charAt(this.index++);\n if (!c) return this.error('\"!\" at end of input');\n var x = rison.parser.bangs[c];\n if (typeof(x) == 'function') {\n return x.call(null, this);\n } else if (typeof(x) == 'undefined') {\n return this.error('unknown literal: \"!' + c + '\"');\n }\n return x;\n },\n '(': function () {\n var o = {};\n var c;\n var count = 0;\n while ((c = this.next()) != ')') {\n if (count) {\n if (c != ',')\n this.error(\"missing ','\");\n } else if (c == ',') {\n return this.error(\"extra ','\");\n } else\n --this.index;\n var k = this.readValue();\n if (typeof k == \"undefined\") return undefined;\n if (this.next() != ':') return this.error(\"missing ':'\");\n var v = this.readValue();\n if (typeof v == \"undefined\") return undefined;\n o[k] = v;\n count++;\n }\n return o;\n },\n \"'\": function () {\n var s = this.string;\n var i = this.index;\n var start = i;\n var segments = [];\n var c;\n while ((c = s.charAt(i++)) != \"'\") {\n //if (i == s.length) return this.error('unmatched \"\\'\"');\n if (!c) return this.error('unmatched \"\\'\"');\n if (c == '!') {\n if (start < i-1)\n segments.push(s.slice(start, i-1));\n c = s.charAt(i++);\n if (\"!'\".indexOf(c) >= 0) {\n segments.push(c);\n } else {\n return this.error('invalid string escape: \"!'+c+'\"');\n }\n start = i;\n }\n }\n if (start < i-1)\n segments.push(s.slice(start, i-1));\n this.index = i;\n return segments.length == 1 ? segments[0] : segments.join('');\n },\n // Also any digit. The statement that follows this table\n // definition fills in the digits.\n '-': function () {\n var s = this.string;\n var i = this.index;\n var start = i-1;\n var state = 'int';\n var permittedSigns = '-';\n var transitions = {\n 'int+.': 'frac',\n 'int+e': 'exp',\n 'frac+e': 'exp'\n };\n do {\n var c = s.charAt(i++);\n if (!c) break;\n if ('0' <= c && c <= '9') continue;\n if (permittedSigns.indexOf(c) >= 0) {\n permittedSigns = '';\n continue;\n }\n state = transitions[state+'+'+c.toLowerCase()];\n if (state == 'exp') permittedSigns = '-';\n } while (state);\n this.index = --i;\n s = s.slice(start, i)\n if (s == '-') return this.error(\"invalid number\");\n return Number(s);\n }\n};\n// copy table['-'] to each of table[i] | i <- '0'..'9':\n(function (table) {\n for (var i = 0; i <= 9; i++)\n table[String(i)] = table['-'];\n})(rison.parser.prototype.table);\n\n// return the next non-whitespace character, or undefined\nrison.parser.prototype.next = function () {\n var s = this.string;\n var i = this.index;\n do {\n if (i == s.length) return undefined;\n var c = s.charAt(i++);\n } while (rison.parser.WHITESPACE.indexOf(c) >= 0);\n this.index = i;\n return c;\n};\n\n// End of UMD module wrapper\n}));\n","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.ok = false\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n"],"names":["globalObject","BigNumber","isNumeric","mathceil","Math","ceil","mathfloor","floor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","bitFloor","n","i","coeffToString","a","s","z","j","length","r","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","clone","configObject","div","convertBase","parseNumeric","pow2_53","random53bitInt","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","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","v","alphabet","caseChanged","isNum","this","_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","pows10","out","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","modulo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","negated","precision","shiftedBy","squareRoot","sqrt","rep","toFixed","toFormat","split","g1","g2","intPart","fractionPart","isNeg","intDigits","substr","RegExp","toFraction","md","d0","d1","d2","exp","n0","n1","toNumber","toPrecision","toJSON","module","exports","isPositiveInteger","value","Number","ArgumentError","message","fetch","defaults","undefined","retries","retryDelay","retryOn","Array","isArray","Object","assign","input","init","Promise","resolve","reject","wrappedFetch","attempt","_input","Request","then","response","status","retryOnResponse","retry","catch","error","delay","setTimeout","factory","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","key","descriptor","root","undef","ArrayProto","ObjProto","hasOwnProp","nativeForEach","forEach","breaker","_","iterator","context","extend","source","prop","Jed","options","textdomain","domain","locale_data","getPluralFormFunc","plural_form_string","PF","compile","Chain","i18n","_key","_i18n","context_delimiter","fromCharCode","onDomain","_domain","withContext","_context","ifPlural","num","pkey","_val","_pkey","sArr","sprintf","dcnpgettext","translate","_textdomain","gettext","dgettext","dcgettext","ngettext","skey","val","dngettext","dcngettext","pgettext","dpgettext","dcpgettext","npgettext","dnpgettext","singular_key","plural_key","fallback","val_list","res","val_idx","dict","defaultConf","messages","pluralForms","plural_forms","parseInt","missing_key_callback","debug","console","log","parser","get_type","variable","str_repeat","multiplier","output","join","str_format","cache","parse","parse_tree","argv","arg","match","pad","pad_character","pad_length","cursor","tree_length","node_type","parseFloat","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","parse_plural","parse_expression","unshift","apply","vsprintf","plural_str","extractPluralExpr","ast","interpreter","expr","truthy","falsey","left","right","plural_matches","nplurals_re","nplurals_matches","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","table","defaultActions","parseError","hash","self","stack","vstack","lstack","recovering","lexer","setInput","yylloc","yyloc","lex","token","symbol","preErrorSymbol","state","action","newState","expected","yyval","errStr","showPosition","text","line","loc","first_line","last_line","first_column","last_column","EOF","_more","_less","done","matched","conditionStack","ch","unput","pastInput","past","upcomingInput","next","pre","lines","rules","_currentRules","matches","begin","condition","popState","conditions","topState","pushState","yy_","$avoiding_name_collisions","YY_START","json_stringify","json_parse","stringify","suspectProtoRx","suspectConstructorRx","_options","strict","storeAsString","alwaysParseAsBig","useNativeBigInt","protoAction","constructorAction","at","escapee","f","number","string","BigInt","hex","uffff","startAt","white","object","create","array","word","reviver","result","walk","holder","JSON","gap","indent","escapable","meta","quote","lastIndex","partial","mind","replacer","space","propIsEnumerable","propertyIsEnumerable","test1","test2","map","test3","letter","err","shouldUseNative","target","from","symbols","to","TypeError","toObject","milliseconds","roundTowardsZero","days","hours","minutes","seconds","microseconds","nanoseconds","parseMilliseconds","colonNotation","compact","formatSubMilliseconds","separateMilliseconds","verbose","secondsDecimalDigits","millisecondsDecimalDigits","add","long","short","valueString","wholeDigits","includes","minLength","repeat","parsed","trunc","millisecondsAndBelow","roundedMiliseconds","millisecondsString","secondsFixed","decimalDigits","flooredInterimValue","floorDecimals","secondsString","keepDecimalsOnWholeSeconds","unitCount","separator","Symbol","for","g","h","w","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","sq","idrx","rison","window","uri_ok","hi","lo","not_idchar","not_idstart","id_ok","next_id","encodeURIComponent","__prototype__","encode_rison","ki","ks","sort","encode","encode_object","encode_array","encode_uri","decode","decode_object","decode_array","errcb","errorHandler","WHITESPACE","setOptions","index","readValue","fn","parse_array","ar","bangs","o","count","start","segments","permittedSigns","transitions","globalThis","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","items","shift","Headers","headers","append","header","consumed","body","_noBody","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","rejected","arrayBuffer","byteOffset","encoding","readAsText","chars","readArrayBufferAsText","formData","json","oldValue","has","callback","thisArg","values","entries","methods","upcased","url","credentials","mode","signal","AbortController","referrer","reParamSearch","Date","getTime","form","trim","bytes","decodeURIComponent","Response","bodyInit","RangeError","ok","statusText","redirectStatuses","redirect","location","DOMException","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","parts","warn","responseURL","responseText","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","names","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","children","some","element","props","middleware","collection","rulesheet","return","prefixer","parent","rule","rulesets","pseudo","points","declarations","offset","atrule","property","previous","scanning","ampersand","character","reference","characters","comment","declaration","ruleset","post","size","serialize","column","position","node","char","prev","peek","caret","end","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","charat","pattern","replacement","indexof","strlen","sizeof","combine"],"sourceRoot":""}