UNPKG

sheetxl

Version:

SheetXL - Command line tool

930 lines 248 kB
/** * @license sheetxl - SheetXL - Command line tool - v0.7.26 * * (C) 2025-present SheetXL Inc. & Michael T. Ford * License: The license can be found at https://www.sheetxl.com/license. */ import { l as n, n as t, m as e, e as r, t as o, a as u, p as a } from "../cli.js"; import "chalk"; import "fs"; import "path"; import "commander"; var i, l = {}; var s, f = (i || (i = 1, s = function(n2) { n2.version = "1.0.2"; var t2 = Math; function e2(n3, t3) { for (var e3 = 0, r3 = 0; e3 < n3.length; ++e3) r3 = t3 * r3 + n3[e3]; return r3; } function r2(n3, t3, e3, r3, o3) { if (0 === t3) return e3; if (1 === t3) return r3; for (var u3 = 2 / n3, a3 = r3, i3 = 1; i3 < t3; ++i3) a3 = r3 * i3 * u3 + o3 * e3, e3 = r3, r3 = a3; return a3; } function o2(n3, t3, e3, o3, u3) { return function(e4, a3) { if (o3) { if (0 === e4) return 1 == o3 ? -1 / 0 : 1 / 0; if (e4 < 0) return NaN; } return 0 === a3 ? n3(e4) : 1 === a3 ? t3(e4) : a3 < 0 ? NaN : r2(e4, a3 |= 0, n3(e4), t3(e4), u3); }; } var u2, a2, i2, l2, s2 = (function() { var n3 = 0.636619772, o3 = [57568490574, -13362590354, 6516196407e-1, -1121442418e-2, 77392.33017, -184.9052456].reverse(), u3 = [57568490411, 1029532985, 9494680718e-3, 59272.64853, 267.8532712, 1].reverse(), a3 = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), i3 = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934935152e-16].reverse(); function l3(r3) { var l4 = 0, s4 = 0, f4 = 0, c4 = r3 * r3; if (r3 < 8) l4 = (s4 = e2(o3, c4)) / (f4 = e2(u3, c4)); else { var m4 = r3 - 0.785398164; s4 = e2(a3, c4 = 64 / c4), f4 = e2(i3, c4), l4 = t2.sqrt(n3 / r3) * (t2.cos(m4) * s4 - t2.sin(m4) * f4 * 8 / r3); } return l4; } var s3 = [72362614232, -7895059235, 2423968531e-1, -2972611439e-3, 15704.4826, -30.16036606].reverse(), f3 = [144725228442, 2300535178, 1858330474e-2, 99447.43394, 376.9991397, 1].reverse(), c3 = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m3 = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse(); function p2(r3) { var o4 = 0, u4 = 0, a4 = 0, i4 = r3 * r3, l4 = t2.abs(r3) - 2.356194491; return Math.abs(r3) < 8 ? o4 = (u4 = r3 * e2(s3, i4)) / (a4 = e2(f3, i4)) : (u4 = e2(c3, i4 = 64 / i4), a4 = e2(m3, i4), o4 = t2.sqrt(n3 / t2.abs(r3)) * (t2.cos(l4) * u4 - t2.sin(l4) * a4 * 8 / t2.abs(r3)), r3 < 0 && (o4 = -o4)), o4; } return function n4(e3, o4) { if (o4 = Math.round(o4), !isFinite(e3)) return isNaN(e3) ? e3 : 0; if (o4 < 0) return (o4 % 2 ? -1 : 1) * n4(e3, -o4); if (e3 < 0) return (o4 % 2 ? -1 : 1) * n4(-e3, o4); if (0 === o4) return l3(e3); if (1 === o4) return p2(e3); if (0 === e3) return 0; var u4 = 0; if (e3 > o4) u4 = r2(e3, o4, l3(e3), p2(e3), -1); else { for (var a4 = false, i4 = 0, s4 = 0, f4 = 1, c4 = 0, m4 = 2 / e3, h2 = 2 * t2.floor((o4 + t2.floor(t2.sqrt(40 * o4))) / 2); h2 > 0; h2--) c4 = h2 * m4 * f4 - i4, i4 = f4, f4 = c4, t2.abs(f4) > 1e10 && (f4 *= 1e-10, i4 *= 1e-10, u4 *= 1e-10, s4 *= 1e-10), a4 && (s4 += f4), a4 = !a4, h2 == o4 && (u4 = i4); u4 /= s4 = 2 * s4 - f4; } return u4; }; })(), f2 = (function() { var n3 = 0.636619772, r3 = [-2957821389, 7062834065, -5123598036e-1, 1087988129e-2, -86327.92757, 228.4622733].reverse(), u3 = [40076544269, 7452499648e-1, 7189466438e-3, 47447.2647, 226.1030244, 1].reverse(), a3 = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), i3 = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934945152e-16].reverse(), l3 = [-4900604943e3, 127527439e4, -51534381390, 7349264551e-1, -4237922726e-3, 8511.937935].reverse(), f3 = [249958057e5, 424441966400, 3733650367, 2245904002e-2, 102042.605, 354.9632885, 1].reverse(), c3 = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m3 = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse(); return o2(function(o3) { var l4 = 0, f4 = 0, c4 = 0, m4 = o3 * o3, p2 = o3 - 0.785398164; return o3 < 8 ? l4 = (f4 = e2(r3, m4)) / (c4 = e2(u3, m4)) + n3 * s2(o3, 0) * t2.log(o3) : (f4 = e2(a3, m4 = 64 / m4), c4 = e2(i3, m4), l4 = t2.sqrt(n3 / o3) * (t2.sin(p2) * f4 + t2.cos(p2) * c4 * 8 / o3)), l4; }, function(r4) { var o3 = 0, u4 = 0, a4 = 0, i4 = r4 * r4, p2 = r4 - 2.356194491; return r4 < 8 ? o3 = (u4 = r4 * e2(l3, i4)) / (a4 = e2(f3, i4)) + n3 * (s2(r4, 1) * t2.log(r4) - 1 / r4) : (u4 = e2(c3, i4 = 64 / i4), a4 = e2(m3, i4), o3 = t2.sqrt(n3 / r4) * (t2.sin(p2) * u4 + t2.cos(p2) * a4 * 8 / r4)), o3; }, 0, 1, -1); })(), c2 = (u2 = [1, 3.5156229, 3.0899424, 1.2067492, 0.2659732, 0.0360768, 45813e-7].reverse(), a2 = [0.39894228, 0.01328592, 225319e-8, -157565e-8, 916281e-8, -0.02057706, 0.02635537, -0.01647633, 392377e-8].reverse(), i2 = [0.5, 0.87890594, 0.51498869, 0.15084934, 0.02658733, 301532e-8, 32411e-8].reverse(), l2 = [0.39894228, -0.03988024, -362018e-8, 163801e-8, -0.01031555, 0.02282967, -0.02895312, 0.01787654, -420059e-8].reverse(), function n3(r3, o3) { if (0 === (o3 = Math.round(o3))) return (function(n4) { return n4 <= 3.75 ? e2(u2, n4 * n4 / 14.0625) : t2.exp(t2.abs(n4)) / t2.sqrt(t2.abs(n4)) * e2(a2, 3.75 / t2.abs(n4)); })(r3); if (1 === o3) return (function(n4) { return n4 < 3.75 ? n4 * e2(i2, n4 * n4 / 14.0625) : (n4 < 0 ? -1 : 1) * t2.exp(t2.abs(n4)) / t2.sqrt(t2.abs(n4)) * e2(l2, 3.75 / t2.abs(n4)); })(r3); if (o3 < 0) return NaN; if (0 === t2.abs(r3)) return 0; if (r3 == 1 / 0) return 1 / 0; var s3, f3 = 0, c3 = 2 / t2.abs(r3), m3 = 0, p2 = 1, h2 = 0; for (s3 = 2 * t2.round((o3 + t2.round(t2.sqrt(40 * o3))) / 2); s3 > 0; s3--) h2 = s3 * c3 * p2 + m3, m3 = p2, p2 = h2, t2.abs(p2) > 1e10 && (p2 *= 1e-10, m3 *= 1e-10, f3 *= 1e-10), s3 == o3 && (f3 = m3); return f3 *= n3(r3, 0) / p2, r3 < 0 && o3 % 2 ? -f3 : f3; }), m2 = (function() { var n3 = [-0.57721566, 0.4227842, 0.23069756, 0.0348859, 262698e-8, 1075e-7, 74e-7].reverse(), r3 = [1.25331414, -0.07832358, 0.02189568, -0.01062446, 587872e-8, -25154e-7, 53208e-8].reverse(), u3 = [1, 0.15443144, -0.67278579, -0.18156897, -0.01919402, -110404e-8, -4686e-8].reverse(), a3 = [1.25331414, 0.23498619, -0.0365562, 0.01504268, -780353e-8, 325614e-8, -68245e-8].reverse(); return o2(function(o3) { return o3 <= 2 ? -t2.log(o3 / 2) * c2(o3, 0) + e2(n3, o3 * o3 / 4) : t2.exp(-o3) / t2.sqrt(o3) * e2(r3, 2 / o3); }, function(n4) { return n4 <= 2 ? t2.log(n4 / 2) * c2(n4, 1) + 1 / n4 * e2(u3, n4 * n4 / 4) : t2.exp(-n4) / t2.sqrt(n4) * e2(a3, 2 / n4); }, 0, 2, 1); })(); n2.besselj = s2, n2.bessely = f2, n2.besseli = c2, n2.besselk = m2; }, "undefined" == typeof DO_NOT_EXPORT_BESSEL ? s(l) : s({})), l); const c = n(f); var m, p = { exports: {} }; var h, g = (m || (m = 1, p.exports = (h = (function(n2, t2) { var e2 = Array.prototype.concat, r2 = Array.prototype.slice, o2 = Object.prototype.toString; function u2(t3, e3) { var r3 = t3 > e3 ? t3 : e3; return n2.pow(10, 17 - ~~(n2.log(r3 > 0 ? r3 : -r3) * n2.LOG10E)); } var a2 = Array.isArray || function(n3) { return "[object Array]" === o2.call(n3); }; function i2(n3) { return "[object Function]" === o2.call(n3); } function l2(n3) { return "number" == typeof n3 && n3 - n3 === 0; } function s2(n3) { return e2.apply([], n3); } function f2() { return new f2._init(arguments); } function c2() { return 0; } function m2() { return 1; } function p2(n3, t3) { return n3 === t3 ? 1 : 0; } f2.fn = f2.prototype, f2._init = function(n3) { if (a2(n3[0])) if (a2(n3[0][0])) { i2(n3[1]) && (n3[0] = f2.map(n3[0], n3[1])); for (var t3 = 0; t3 < n3[0].length; t3++) this[t3] = n3[0][t3]; this.length = n3[0].length; } else this[0] = i2(n3[1]) ? f2.map(n3[0], n3[1]) : n3[0], this.length = 1; else if (l2(n3[0])) this[0] = f2.seq.apply(null, n3), this.length = 1; else { if (n3[0] instanceof f2) return f2(n3[0].toArray()); this[0] = [], this.length = 1; } return this; }, f2._init.prototype = f2.prototype, f2._init.constructor = f2, f2.utils = { calcRdx: u2, isArray: a2, isFunction: i2, isNumber: l2, toVector: s2 }, f2._random_fn = n2.random, f2.setRandom = function(n3) { if ("function" != typeof n3) throw new TypeError("fn is not a function"); f2._random_fn = n3; }, f2.extend = function(n3) { var t3, e3; if (1 === arguments.length) { for (e3 in n3) f2[e3] = n3[e3]; return this; } for (t3 = 1; t3 < arguments.length; t3++) for (e3 in arguments[t3]) n3[e3] = arguments[t3][e3]; return n3; }, f2.rows = function(n3) { return n3.length || 1; }, f2.cols = function(n3) { return n3[0].length || 1; }, f2.dimensions = function(n3) { return { rows: f2.rows(n3), cols: f2.cols(n3) }; }, f2.row = function(n3, t3) { return a2(t3) ? t3.map(function(t4) { return f2.row(n3, t4); }) : n3[t3]; }, f2.rowa = function(n3, t3) { return f2.row(n3, t3); }, f2.col = function(n3, t3) { if (a2(t3)) { var e3 = f2.arange(n3.length).map(function() { return new Array(t3.length); }); return t3.forEach(function(t4, r4) { f2.arange(n3.length).forEach(function(o4) { e3[o4][r4] = n3[o4][t4]; }); }), e3; } for (var r3 = new Array(n3.length), o3 = 0; o3 < n3.length; o3++) r3[o3] = [n3[o3][t3]]; return r3; }, f2.cola = function(n3, t3) { return f2.col(n3, t3).map(function(n4) { return n4[0]; }); }, f2.diag = function(n3) { for (var t3 = f2.rows(n3), e3 = new Array(t3), r3 = 0; r3 < t3; r3++) e3[r3] = [n3[r3][r3]]; return e3; }, f2.antidiag = function(n3) { for (var t3 = f2.rows(n3) - 1, e3 = new Array(t3), r3 = 0; t3 >= 0; t3--, r3++) e3[r3] = [n3[r3][t3]]; return e3; }, f2.transpose = function(n3) { var t3, e3, r3, o3, u3, i3 = []; for (a2(n3[0]) || (n3 = [n3]), e3 = n3.length, r3 = n3[0].length, u3 = 0; u3 < r3; u3++) { for (t3 = new Array(e3), o3 = 0; o3 < e3; o3++) t3[o3] = n3[o3][u3]; i3.push(t3); } return 1 === i3.length ? i3[0] : i3; }, f2.map = function(n3, t3, e3) { var r3, o3, u3, i3, l3; for (a2(n3[0]) || (n3 = [n3]), o3 = n3.length, u3 = n3[0].length, i3 = e3 ? n3 : new Array(o3), r3 = 0; r3 < o3; r3++) for (i3[r3] || (i3[r3] = new Array(u3)), l3 = 0; l3 < u3; l3++) i3[r3][l3] = t3(n3[r3][l3], r3, l3); return 1 === i3.length ? i3[0] : i3; }, f2.cumreduce = function(n3, t3, e3) { var r3, o3, u3, i3, l3; for (a2(n3[0]) || (n3 = [n3]), o3 = n3.length, u3 = n3[0].length, i3 = e3 ? n3 : new Array(o3), r3 = 0; r3 < o3; r3++) for (i3[r3] || (i3[r3] = new Array(u3)), u3 > 0 && (i3[r3][0] = n3[r3][0]), l3 = 1; l3 < u3; l3++) i3[r3][l3] = t3(i3[r3][l3 - 1], n3[r3][l3]); return 1 === i3.length ? i3[0] : i3; }, f2.alter = function(n3, t3) { return f2.map(n3, t3, true); }, f2.create = function(n3, t3, e3) { var r3, o3, u3 = new Array(n3); for (i2(t3) && (e3 = t3, t3 = n3), r3 = 0; r3 < n3; r3++) for (u3[r3] = new Array(t3), o3 = 0; o3 < t3; o3++) u3[r3][o3] = e3(r3, o3); return u3; }, f2.zeros = function(n3, t3) { return l2(t3) || (t3 = n3), f2.create(n3, t3, c2); }, f2.ones = function(n3, t3) { return l2(t3) || (t3 = n3), f2.create(n3, t3, m2); }, f2.rand = function(n3, t3) { return l2(t3) || (t3 = n3), f2.create(n3, t3, f2._random_fn); }, f2.identity = function(n3, t3) { return l2(t3) || (t3 = n3), f2.create(n3, t3, p2); }, f2.symmetric = function(n3) { var t3, e3, r3 = n3.length; if (n3.length !== n3[0].length) return false; for (t3 = 0; t3 < r3; t3++) for (e3 = 0; e3 < r3; e3++) if (n3[e3][t3] !== n3[t3][e3]) return false; return true; }, f2.clear = function(n3) { return f2.alter(n3, c2); }, f2.seq = function(n3, t3, e3, r3) { i2(r3) || (r3 = false); var o3, a3 = [], l3 = u2(n3, t3), s3 = (t3 * l3 - n3 * l3) / ((e3 - 1) * l3), f3 = n3; for (o3 = 0; f3 <= t3 && o3 < e3; f3 = (n3 * l3 + s3 * l3 * ++o3) / l3) a3.push(r3 ? r3(f3, o3) : f3); return a3; }, f2.arange = function(n3, e3, r3) { var o3, u3 = []; if (r3 = r3 || 1, e3 === t2 && (e3 = n3, n3 = 0), n3 === e3 || 0 === r3) return []; if (n3 < e3 && r3 < 0) return []; if (n3 > e3 && r3 > 0) return []; if (r3 > 0) for (o3 = n3; o3 < e3; o3 += r3) u3.push(o3); else for (o3 = n3; o3 > e3; o3 += r3) u3.push(o3); return u3; }, f2.slice = /* @__PURE__ */ (function() { function n3(n4, e4, r3, o3) { var u3, a3 = [], i3 = n4.length; if (e4 === t2 && r3 === t2 && o3 === t2) return f2.copy(n4); if (o3 = o3 || 1, (e4 = (e4 = e4 || 0) >= 0 ? e4 : i3 + e4) === (r3 = (r3 = r3 || n4.length) >= 0 ? r3 : i3 + r3) || 0 === o3) return []; if (e4 < r3 && o3 < 0) return []; if (e4 > r3 && o3 > 0) return []; if (o3 > 0) for (u3 = e4; u3 < r3; u3 += o3) a3.push(n4[u3]); else for (u3 = e4; u3 > r3; u3 += o3) a3.push(n4[u3]); return a3; } function e3(t3, e4) { var r3, o3; return l2((e4 = e4 || {}).row) ? l2(e4.col) ? t3[e4.row][e4.col] : n3(f2.rowa(t3, e4.row), (r3 = e4.col || {}).start, r3.end, r3.step) : l2(e4.col) ? n3(f2.cola(t3, e4.col), (o3 = e4.row || {}).start, o3.end, o3.step) : (o3 = e4.row || {}, r3 = e4.col || {}, n3(t3, o3.start, o3.end, o3.step).map(function(t4) { return n3(t4, r3.start, r3.end, r3.step); })); } return e3; })(), f2.sliceAssign = function(e3, r3, o3) { var u3, a3; if (l2(r3.row)) { if (l2(r3.col)) return e3[r3.row][r3.col] = o3; r3.col = r3.col || {}, r3.col.start = r3.col.start || 0, r3.col.end = r3.col.end || e3[0].length, r3.col.step = r3.col.step || 1, u3 = f2.arange(r3.col.start, n2.min(e3.length, r3.col.end), r3.col.step); var i3 = r3.row; return u3.forEach(function(n3, t3) { e3[i3][n3] = o3[t3]; }), e3; } if (l2(r3.col)) { r3.row = r3.row || {}, r3.row.start = r3.row.start || 0, r3.row.end = r3.row.end || e3.length, r3.row.step = r3.row.step || 1, a3 = f2.arange(r3.row.start, n2.min(e3[0].length, r3.row.end), r3.row.step); var s3 = r3.col; return a3.forEach(function(n3, t3) { e3[n3][s3] = o3[t3]; }), e3; } return o3[0].length === t2 && (o3 = [o3]), r3.row.start = r3.row.start || 0, r3.row.end = r3.row.end || e3.length, r3.row.step = r3.row.step || 1, r3.col.start = r3.col.start || 0, r3.col.end = r3.col.end || e3[0].length, r3.col.step = r3.col.step || 1, a3 = f2.arange(r3.row.start, n2.min(e3.length, r3.row.end), r3.row.step), u3 = f2.arange(r3.col.start, n2.min(e3[0].length, r3.col.end), r3.col.step), a3.forEach(function(n3, t3) { u3.forEach(function(r4, u4) { e3[n3][r4] = o3[t3][u4]; }); }), e3; }, f2.diagonal = function(n3) { var t3 = f2.zeros(n3.length, n3.length); return n3.forEach(function(n4, e3) { t3[e3][e3] = n4; }), t3; }, f2.copy = function(n3) { return n3.map(function(n4) { return l2(n4) ? n4 : n4.map(function(n5) { return n5; }); }); }; var h2 = f2.prototype; return h2.length = 0, h2.push = Array.prototype.push, h2.sort = Array.prototype.sort, h2.splice = Array.prototype.splice, h2.slice = Array.prototype.slice, h2.toArray = function() { return this.length > 1 ? r2.call(this) : r2.call(this)[0]; }, h2.map = function(n3, t3) { return f2(f2.map(this, n3, t3)); }, h2.cumreduce = function(n3, t3) { return f2(f2.cumreduce(this, n3, t3)); }, h2.alter = function(n3) { return f2.alter(this, n3), this; }, (function(n3) { for (var t3 = 0; t3 < n3.length; t3++) (function(n4) { h2[n4] = function(t4) { var e3, r3 = this; return t4 ? (setTimeout(function() { t4.call(r3, h2[n4].call(r3)); }), this) : (e3 = f2[n4](this), a2(e3) ? f2(e3) : e3); }; })(n3[t3]); })("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")), (function(n3) { for (var t3 = 0; t3 < n3.length; t3++) (function(n4) { h2[n4] = function(t4, e3) { var r3 = this; return e3 ? (setTimeout(function() { e3.call(r3, h2[n4].call(r3, t4)); }), this) : f2(f2[n4](this, t4)); }; })(n3[t3]); })("row col".split(" ")), (function(n3) { for (var t3 = 0; t3 < n3.length; t3++) (function(n4) { h2[n4] = function() { return f2(f2[n4].apply(null, arguments)); }; })(n3[t3]); })("create zeros ones rand identity".split(" ")), f2; })(Math), (function(n2, t2) { var e2 = n2.utils.isFunction; function r2(n3, t3) { return n3 - t3; } function o2(n3, e3, r3) { return t2.max(e3, t2.min(n3, r3)); } n2.sum = function(n3) { for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3]; return t3; }, n2.sumsqrd = function(n3) { for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3] * n3[e3]; return t3; }, n2.sumsqerr = function(t3) { for (var e3, r3 = n2.mean(t3), o3 = 0, u3 = t3.length; --u3 >= 0; ) o3 += (e3 = t3[u3] - r3) * e3; return o3; }, n2.sumrow = function(n3) { for (var t3 = 0, e3 = n3.length; --e3 >= 0; ) t3 += n3[e3]; return t3; }, n2.product = function(n3) { for (var t3 = 1, e3 = n3.length; --e3 >= 0; ) t3 *= n3[e3]; return t3; }, n2.min = function(n3) { for (var t3 = n3[0], e3 = 0; ++e3 < n3.length; ) n3[e3] < t3 && (t3 = n3[e3]); return t3; }, n2.max = function(n3) { for (var t3 = n3[0], e3 = 0; ++e3 < n3.length; ) n3[e3] > t3 && (t3 = n3[e3]); return t3; }, n2.unique = function(n3) { for (var t3 = {}, e3 = [], r3 = 0; r3 < n3.length; r3++) t3[n3[r3]] || (t3[n3[r3]] = true, e3.push(n3[r3])); return e3; }, n2.mean = function(t3) { return n2.sum(t3) / t3.length; }, n2.meansqerr = function(t3) { return n2.sumsqerr(t3) / t3.length; }, n2.geomean = function(e3) { var r3 = e3.map(t2.log), o3 = n2.mean(r3); return t2.exp(o3); }, n2.median = function(n3) { var t3 = n3.length, e3 = n3.slice().sort(r2); return 1 & t3 ? e3[t3 / 2 | 0] : (e3[t3 / 2 - 1] + e3[t3 / 2]) / 2; }, n2.cumsum = function(t3) { return n2.cumreduce(t3, function(n3, t4) { return n3 + t4; }); }, n2.cumprod = function(t3) { return n2.cumreduce(t3, function(n3, t4) { return n3 * t4; }); }, n2.diff = function(n3) { var t3, e3 = [], r3 = n3.length; for (t3 = 1; t3 < r3; t3++) e3.push(n3[t3] - n3[t3 - 1]); return e3; }, n2.rank = function(n3) { var t3, e3 = [], o3 = {}; for (t3 = 0; t3 < n3.length; t3++) o3[l2 = n3[t3]] ? o3[l2]++ : (o3[l2] = 1, e3.push(l2)); var u3 = e3.sort(r2), a2 = {}, i2 = 1; for (t3 = 0; t3 < u3.length; t3++) { var l2, s2 = o3[l2 = u3[t3]], f2 = (i2 + (i2 + s2 - 1)) / 2; a2[l2] = f2, i2 += s2; } return n3.map(function(n4) { return a2[n4]; }); }, n2.mode = function(n3) { var t3, e3 = n3.length, o3 = n3.slice().sort(r2), u3 = 1, a2 = 0, i2 = 0, l2 = []; for (t3 = 0; t3 < e3; t3++) o3[t3] === o3[t3 + 1] ? u3++ : (u3 > a2 ? (l2 = [o3[t3]], a2 = u3, i2 = 0) : u3 === a2 && (l2.push(o3[t3]), i2++), u3 = 1); return 0 === i2 ? l2[0] : l2; }, n2.range = function(t3) { return n2.max(t3) - n2.min(t3); }, n2.variance = function(t3, e3) { return n2.sumsqerr(t3) / (t3.length - (e3 ? 1 : 0)); }, n2.pooledvariance = function(t3) { var e3 = t3.reduce(function(t4, e4) { return t4 + n2.sumsqerr(e4); }, 0), r3 = t3.reduce(function(n3, t4) { return n3 + t4.length; }, 0); return e3 / (r3 - t3.length); }, n2.deviation = function(t3) { for (var e3 = n2.mean(t3), r3 = t3.length, o3 = new Array(r3), u3 = 0; u3 < r3; u3++) o3[u3] = t3[u3] - e3; return o3; }, n2.stdev = function(e3, r3) { return t2.sqrt(n2.variance(e3, r3)); }, n2.pooledstdev = function(e3) { return t2.sqrt(n2.pooledvariance(e3)); }, n2.meandev = function(e3) { for (var r3 = n2.mean(e3), o3 = [], u3 = e3.length - 1; u3 >= 0; u3--) o3.push(t2.abs(e3[u3] - r3)); return n2.mean(o3); }, n2.meddev = function(e3) { for (var r3 = n2.median(e3), o3 = [], u3 = e3.length - 1; u3 >= 0; u3--) o3.push(t2.abs(e3[u3] - r3)); return n2.median(o3); }, n2.coeffvar = function(t3) { return n2.stdev(t3) / n2.mean(t3); }, n2.quartiles = function(n3) { var e3 = n3.length, o3 = n3.slice().sort(r2); return [o3[t2.round(e3 / 4) - 1], o3[t2.round(e3 / 2) - 1], o3[t2.round(3 * e3 / 4) - 1]]; }, n2.quantiles = function(n3, e3, u3, a2) { var i2, l2, s2, f2, c2, m2 = n3.slice().sort(r2), p2 = [e3.length], h2 = n3.length; for (void 0 === u3 && (u3 = 3 / 8), void 0 === a2 && (a2 = 3 / 8), i2 = 0; i2 < e3.length; i2++) s2 = h2 * (l2 = e3[i2]) + (u3 + l2 * (1 - u3 - a2)), f2 = t2.floor(o2(s2, 1, h2 - 1)), c2 = o2(s2 - f2, 0, 1), p2[i2] = (1 - c2) * m2[f2 - 1] + c2 * m2[f2]; return p2; }, n2.percentile = function(n3, t3, e3) { var o3 = n3.slice().sort(r2), u3 = t3 * (o3.length + (e3 ? 1 : -1)) + (e3 ? 0 : 1), a2 = parseInt(u3), i2 = u3 - a2; return a2 + 1 < o3.length ? o3[a2 - 1] + i2 * (o3[a2] - o3[a2 - 1]) : o3[a2 - 1]; }, n2.percentileOfScore = function(n3, t3, e3) { var r3, o3, u3 = 0, a2 = n3.length, i2 = false; for ("strict" === e3 && (i2 = true), o3 = 0; o3 < a2; o3++) r3 = n3[o3], (i2 && r3 < t3 || !i2 && r3 <= t3) && u3++; return u3 / a2; }, n2.histogram = function(e3, r3) { r3 = r3 || 4; var o3, u3 = n2.min(e3), a2 = (n2.max(e3) - u3) / r3, i2 = e3.length, l2 = []; for (o3 = 0; o3 < r3; o3++) l2[o3] = 0; for (o3 = 0; o3 < i2; o3++) l2[t2.min(t2.floor((e3[o3] - u3) / a2), r3 - 1)] += 1; return l2; }, n2.covariance = function(t3, e3) { var r3, o3 = n2.mean(t3), u3 = n2.mean(e3), a2 = t3.length, i2 = new Array(a2); for (r3 = 0; r3 < a2; r3++) i2[r3] = (t3[r3] - o3) * (e3[r3] - u3); return n2.sum(i2) / (a2 - 1); }, n2.corrcoeff = function(t3, e3) { return n2.covariance(t3, e3) / n2.stdev(t3, 1) / n2.stdev(e3, 1); }, n2.spearmancoeff = function(t3, e3) { return t3 = n2.rank(t3), e3 = n2.rank(e3), n2.corrcoeff(t3, e3); }, n2.stanMoment = function(e3, r3) { for (var o3 = n2.mean(e3), u3 = n2.stdev(e3), a2 = e3.length, i2 = 0, l2 = 0; l2 < a2; l2++) i2 += t2.pow((e3[l2] - o3) / u3, r3); return i2 / e3.length; }, n2.skewness = function(t3) { return n2.stanMoment(t3, 3); }, n2.kurtosis = function(t3) { return n2.stanMoment(t3, 4) - 3; }; var u2 = n2.prototype; !(function(t3) { for (var r3 = 0; r3 < t3.length; r3++) (function(t4) { u2[t4] = function(r4, o3) { var a2 = [], i2 = 0, l2 = this; if (e2(r4) && (o3 = r4, r4 = false), o3) return setTimeout(function() { o3.call(l2, u2[t4].call(l2, r4)); }), this; if (this.length > 1) { for (l2 = true === r4 ? this : this.transpose(); i2 < l2.length; i2++) a2[i2] = n2[t4](l2[i2]); return a2; } return n2[t4](this[0], r4); }; })(t3[r3]); })("cumsum cumprod".split(" ")), (function(t3) { for (var r3 = 0; r3 < t3.length; r3++) (function(t4) { u2[t4] = function(r4, o3) { var a2 = [], i2 = 0, l2 = this; if (e2(r4) && (o3 = r4, r4 = false), o3) return setTimeout(function() { o3.call(l2, u2[t4].call(l2, r4)); }), this; if (this.length > 1) { for ("sumrow" !== t4 && (l2 = true === r4 ? this : this.transpose()); i2 < l2.length; i2++) a2[i2] = n2[t4](l2[i2]); return true === r4 ? n2[t4](n2.utils.toVector(a2)) : a2; } return n2[t4](this[0], r4); }; })(t3[r3]); })("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")), (function(t3) { for (var r3 = 0; r3 < t3.length; r3++) (function(t4) { u2[t4] = function() { var r4, o3 = [], a2 = 0, i2 = this, l2 = Array.prototype.slice.call(arguments); if (e2(l2[l2.length - 1])) { r4 = l2[l2.length - 1]; var s2 = l2.slice(0, l2.length - 1); return setTimeout(function() { r4.call(i2, u2[t4].apply(i2, s2)); }), this; } r4 = void 0; var f2 = function(e3) { return n2[t4].apply(i2, [e3].concat(l2)); }; if (this.length > 1) { for (i2 = i2.transpose(); a2 < i2.length; a2++) o3[a2] = f2(i2[a2]); return o3; } return f2(this[0]); }; })(t3[r3]); })("quantiles percentileOfScore".split(" ")); })(h, Math), (function(n2, t2) { n2.gammaln = function(n3) { var e2, r2, o2, u2 = 0, a2 = [76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.001208650973866179, -5395239384953e-18], i2 = 1.000000000190015; for (o2 = (r2 = e2 = n3) + 5.5, o2 -= (e2 + 0.5) * t2.log(o2); u2 < 6; u2++) i2 += a2[u2] / ++r2; return t2.log(2.5066282746310007 * i2 / e2) - o2; }, n2.loggam = function(n3) { var e2, r2, o2, u2, a2, i2, l2, s2 = [0.08333333333333333, -0.002777777777777778, 7936507936507937e-19, -5952380952380952e-19, 8417508417508418e-19, -0.001917526917526918, 0.00641025641025641, -0.02955065359477124, 0.1796443723688307, -1.3924322169059]; if (e2 = n3, l2 = 0, 1 == n3 || 2 == n3) return 0; for (n3 <= 7 && (e2 = n3 + (l2 = t2.floor(7 - n3))), r2 = 1 / (e2 * e2), o2 = 2 * t2.PI, a2 = s2[9], i2 = 8; i2 >= 0; i2--) a2 *= r2, a2 += s2[i2]; if (u2 = a2 / e2 + 0.5 * t2.log(o2) + (e2 - 0.5) * t2.log(e2) - e2, n3 <= 7) for (i2 = 1; i2 <= l2; i2++) u2 -= t2.log(e2 - 1), e2 -= 1; return u2; }, n2.gammafn = function(n3) { var e2, r2, o2, u2, a2 = [-1.716185138865495, 24.76565080557592, -379.80425647094563, 629.3311553128184, 866.9662027904133, -31451.272968848367, -36144.413418691176, 66456.14382024054], i2 = [-30.8402300119739, 315.35062697960416, -1015.1563674902192, -3107.771671572311, 22538.11842098015, 4755.846277527881, -134659.9598649693, -115132.2596755535], l2 = false, s2 = 0, f2 = 0, c2 = 0, m2 = n3; if (n3 > 171.6243769536076) return 1 / 0; if (m2 <= 0) { if (!(u2 = m2 % 1 + 36e-17)) return 1 / 0; l2 = (1 & m2 ? -1 : 1) * t2.PI / t2.sin(t2.PI * u2), m2 = 1 - m2; } for (o2 = m2, r2 = m2 < 1 ? m2++ : (m2 -= s2 = (0 | m2) - 1) - 1, e2 = 0; e2 < 8; ++e2) c2 = (c2 + a2[e2]) * r2, f2 = f2 * r2 + i2[e2]; if (u2 = c2 / f2 + 1, o2 < m2) u2 /= o2; else if (o2 > m2) for (e2 = 0; e2 < s2; ++e2) u2 *= m2, m2++; return l2 && (u2 = l2 / u2), u2; }, n2.gammap = function(t3, e2) { return n2.lowRegGamma(t3, e2) * n2.gammafn(t3); }, n2.lowRegGamma = function(e2, r2) { var o2, u2 = n2.gammaln(e2), a2 = e2, i2 = 1 / e2, l2 = i2, s2 = r2 + 1 - e2, f2 = 1 / 1e-30, c2 = 1 / s2, m2 = c2, p2 = 1, h2 = -~(8.5 * t2.log(e2 >= 1 ? e2 : 1 / e2) + 0.4 * e2 + 17); if (r2 < 0 || e2 <= 0) return NaN; if (r2 < e2 + 1) { for (; p2 <= h2; p2++) i2 += l2 *= r2 / ++a2; return i2 * t2.exp(-r2 + e2 * t2.log(r2) - u2); } for (; p2 <= h2; p2++) m2 *= (c2 = 1 / (c2 = (o2 = -p2 * (p2 - e2)) * c2 + (s2 += 2))) * (f2 = s2 + o2 / f2); return 1 - m2 * t2.exp(-r2 + e2 * t2.log(r2) - u2); }, n2.factorialln = function(t3) { return t3 < 0 ? NaN : n2.gammaln(t3 + 1); }, n2.factorial = function(t3) { return t3 < 0 ? NaN : n2.gammafn(t3 + 1); }, n2.combination = function(e2, r2) { return e2 > 170 || r2 > 170 ? t2.exp(n2.combinationln(e2, r2)) : n2.factorial(e2) / n2.factorial(r2) / n2.factorial(e2 - r2); }, n2.combinationln = function(t3, e2) { return n2.factorialln(t3) - n2.factorialln(e2) - n2.factorialln(t3 - e2); }, n2.permutation = function(t3, e2) { return n2.factorial(t3) / n2.factorial(t3 - e2); }, n2.betafn = function(e2, r2) { if (!(e2 <= 0 || r2 <= 0)) return e2 + r2 > 170 ? t2.exp(n2.betaln(e2, r2)) : n2.gammafn(e2) * n2.gammafn(r2) / n2.gammafn(e2 + r2); }, n2.betaln = function(t3, e2) { return n2.gammaln(t3) + n2.gammaln(e2) - n2.gammaln(t3 + e2); }, n2.betacf = function(n3, e2, r2) { var o2, u2, a2, i2, l2 = 1e-30, s2 = 1, f2 = e2 + r2, c2 = e2 + 1, m2 = e2 - 1, p2 = 1, h2 = 1 - f2 * n3 / c2; for (t2.abs(h2) < l2 && (h2 = l2), i2 = h2 = 1 / h2; s2 <= 100 && (h2 = 1 + (u2 = s2 * (r2 - s2) * n3 / ((m2 + (o2 = 2 * s2)) * (e2 + o2))) * h2, t2.abs(h2) < l2 && (h2 = l2), p2 = 1 + u2 / p2, t2.abs(p2) < l2 && (p2 = l2), i2 *= (h2 = 1 / h2) * p2, h2 = 1 + (u2 = -(e2 + s2) * (f2 + s2) * n3 / ((e2 + o2) * (c2 + o2))) * h2, t2.abs(h2) < l2 && (h2 = l2), p2 = 1 + u2 / p2, t2.abs(p2) < l2 && (p2 = l2), i2 *= a2 = (h2 = 1 / h2) * p2, !(t2.abs(a2 - 1) < 3e-7)); s2++) ; return i2; }, n2.gammapinv = function(e2, r2) { var o2, u2, a2, i2, l2, s2, f2 = 0, c2 = r2 - 1, m2 = 1e-8, p2 = n2.gammaln(r2); if (e2 >= 1) return t2.max(100, r2 + 100 * t2.sqrt(r2)); if (e2 <= 0) return 0; for (r2 > 1 ? (l2 = t2.log(c2), s2 = t2.exp(c2 * (l2 - 1) - p2), i2 = e2 < 0.5 ? e2 : 1 - e2, o2 = (2.30753 + 0.27061 * (u2 = t2.sqrt(-2 * t2.log(i2)))) / (1 + u2 * (0.99229 + 0.04481 * u2)) - u2, e2 < 0.5 && (o2 = -o2), o2 = t2.max(1e-3, r2 * t2.pow(1 - 1 / (9 * r2) - o2 / (3 * t2.sqrt(r2)), 3))) : o2 = e2 < (u2 = 1 - r2 * (0.253 + 0.12 * r2)) ? t2.pow(e2 / u2, 1 / r2) : 1 - t2.log(1 - (e2 - u2) / (1 - u2)); f2 < 12; f2++) { if (o2 <= 0) return 0; if ((o2 -= u2 = (a2 = (n2.lowRegGamma(r2, o2) - e2) / (u2 = r2 > 1 ? s2 * t2.exp(-(o2 - c2) + c2 * (t2.log(o2) - l2)) : t2.exp(-o2 + c2 * t2.log(o2) - p2))) / (1 - 0.5 * t2.min(1, a2 * ((r2 - 1) / o2 - 1)))) <= 0 && (o2 = 0.5 * (o2 + u2)), t2.abs(u2) < m2 * o2) break; } return o2; }, n2.erf = function(n3) { var e2, r2, o2, u2, a2 = [-1.3026537197817094, 0.6419697923564902, 0.019476473204185836, -0.00956151478680863, -946595344482036e-18, 366839497852761e-18, 42523324806907e-18, -20278578112534e-18, -1624290004647e-18, 130365583558e-17, 15626441722e-18, -85238095915e-18, 6529054439e-18, 5059343495e-18, -991364156e-18, -227365122e-18, 96467911e-18, 2394038e-18, -6886027e-18, 894487e-18, 313092e-18, -112708e-18, 381e-18, 7106e-18, -1523e-18, -94e-18, 121e-18, -28e-18], i2 = a2.length - 1, l2 = false, s2 = 0, f2 = 0; for (n3 < 0 && (n3 = -n3, l2 = true), r2 = 4 * (e2 = 2 / (2 + n3)) - 2; i2 > 0; i2--) o2 = s2, s2 = r2 * s2 - f2 + a2[i2], f2 = o2; return u2 = e2 * t2.exp(-n3 * n3 + 0.5 * (a2[0] + r2 * s2) - f2), l2 ? u2 - 1 : 1 - u2; }, n2.erfc = function(t3) { return 1 - n2.erf(t3); }, n2.erfcinv = function(e2) { var r2, o2, u2, a2, i2 = 0; if (e2 >= 2) return -100; if (e2 <= 0) return 100; for (a2 = e2 < 1 ? e2 : 2 - e2, r2 = -0.70711 * ((2.30753 + 0.27061 * (u2 = t2.sqrt(-2 * t2.log(a2 / 2)))) / (1 + u2 * (0.99229 + 0.04481 * u2)) - u2); i2 < 2; i2++) r2 += (o2 = n2.erfc(r2) - a2) / (1.1283791670955126 * t2.exp(-r2 * r2) - r2 * o2); return e2 < 1 ? r2 : -r2; }, n2.ibetainv = function(e2, r2, o2) { var u2, a2, i2, l2, s2, f2, c2, m2, p2, h2, g2 = 1e-8, d2 = r2 - 1, N2 = o2 - 1, b2 = 0; if (e2 <= 0) return 0; if (e2 >= 1) return 1; for (r2 >= 1 && o2 >= 1 ? (i2 = e2 < 0.5 ? e2 : 1 - e2, f2 = (2.30753 + 0.27061 * (l2 = t2.sqrt(-2 * t2.log(i2)))) / (1 + l2 * (0.99229 + 0.04481 * l2)) - l2, e2 < 0.5 && (f2 = -f2), c2 = (f2 * f2 - 3) / 6, m2 = 2 / (1 / (2 * r2 - 1) + 1 / (2 * o2 - 1)), p2 = f2 * t2.sqrt(c2 + m2) / m2 - (1 / (2 * o2 - 1) - 1 / (2 * r2 - 1)) * (c2 + 5 / 6 - 2 / (3 * m2)), f2 = r2 / (r2 + o2 * t2.exp(2 * p2))) : (u2 = t2.log(r2 / (r2 + o2)), a2 = t2.log(o2 / (r2 + o2)), f2 = e2 < (l2 = t2.exp(r2 * u2) / r2) / (p2 = l2 + (s2 = t2.exp(o2 * a2) / o2)) ? t2.pow(r2 * p2 * e2, 1 / r2) : 1 - t2.pow(o2 * p2 * (1 - e2), 1 / o2)), h2 = -n2.gammaln(r2) - n2.gammaln(o2) + n2.gammaln(r2 + o2); b2 < 10; b2++) { if (0 === f2 || 1 === f2) return f2; if ((f2 -= l2 = (s2 = (n2.ibeta(f2, r2, o2) - e2) / (l2 = t2.exp(d2 * t2.log(f2) + N2 * t2.log(1 - f2) + h2))) / (1 - 0.5 * t2.min(1, s2 * (d2 / f2 - N2 / (1 - f2))))) <= 0 && (f2 = 0.5 * (f2 + l2)), f2 >= 1 && (f2 = 0.5 * (f2 + l2 + 1)), t2.abs(l2) < g2 * f2 && b2 > 0) break; } return f2; }, n2.ibeta = function(e2, r2, o2) { var u2 = 0 === e2 || 1 === e2 ? 0 : t2.exp(n2.gammaln(r2 + o2) - n2.gammaln(r2) - n2.gammaln(o2) + r2 * t2.log(e2) + o2 * t2.log(1 - e2)); return !(e2 < 0 || e2 > 1) && (e2 < (r2 + 1) / (r2 + o2 + 2) ? u2 * n2.betacf(e2, r2, o2) / r2 : 1 - u2 * n2.betacf(1 - e2, o2, r2) / o2); }, n2.randn = function(e2, r2) { var o2, u2, a2, i2, l2; if (r2 || (r2 = e2), e2) return n2.create(e2, r2, function() { return n2.randn(); }); do { o2 = n2._random_fn(), u2 = 1.7156 * (n2._random_fn() - 0.5), l2 = (a2 = o2 - 0.449871) * a2 + (i2 = t2.abs(u2) + 0.386595) * (0.196 * i2 - 0.25472 * a2); } while (l2 > 0.27597 && (l2 > 0.27846 || u2 * u2 > -4 * t2.log(o2) * o2 * o2)); return u2 / o2; }, n2.randg = function(e2, r2, o2) { var u2, a2, i2, l2, s2, f2, c2 = e2; if (o2 || (o2 = r2), e2 || (e2 = 1), r2) return (f2 = n2.zeros(r2, o2)).alter(function() { return n2.randg(e2); }), f2; e2 < 1 && (e2 += 1), u2 = e2 - 1 / 3, a2 = 1 / t2.sqrt(9 * u2); do { do { l2 = 1 + a2 * (s2 = n2.randn()); } while (l2 <= 0); l2 *= l2 * l2, i2 = n2._random_fn(); } while (i2 > 1 - 0.331 * t2.pow(s2, 4) && t2.log(i2) > 0.5 * s2 * s2 + u2 * (1 - l2 + t2.log(l2))); if (e2 == c2) return u2 * l2; do { i2 = n2._random_fn(); } while (0 === i2); return t2.pow(i2, 1 / c2) * u2 * l2; }, (function(t3) { for (var e2 = 0; e2 < t3.length; e2++) (function(t4) { n2.fn[t4] = function() { return n2(n2.map(this, function(e3) { return n2[t4](e3); })); }; })(t3[e2]); })("gammaln gammafn factorial factorialln".split(" ")), (function(t3) { for (var e2 = 0; e2 < t3.length; e2++) (function(t4) { n2.fn[t4] = function() { return n2(n2[t4].apply(null, arguments)); }; })(t3[e2]); })("randn".split(" ")); })(h, Math), (function(n2, t2) { function e2(n3, e3, r3, o3) { for (var u3, a2 = 0, i2 = 1, l2 = 1, s2 = 1, f2 = 0, c2 = 0; t2.abs((l2 - c2) / l2) > o3; ) c2 = l2, i2 = s2 + (u3 = -(e3 + f2) * (e3 + r3 + f2) * n3 / (e3 + 2 * f2) / (e3 + 2 * f2 + 1)) * i2, l2 = (a2 = l2 + u3 * a2) + (u3 = (f2 += 1) * (r3 - f2) * n3 / (e3 + 2 * f2 - 1) / (e3 + 2 * f2)) * l2, a2 /= s2 = i2 + u3 * s2, i2 /= s2, l2 /= s2, s2 = 1; return l2 / e3; } function r2(n3) { return n3 / t2.abs(n3); } function o2(e3, r3, o3) { var u3 = 12, a2 = 6, i2 = -30, l2 = -50, s2 = 60, f2 = 8, c2 = 3, m2 = 2, p2 = 3, h2 = [0.9815606342467192, 0.9041172563704749, 0.7699026741943047, 0.5873179542866175, 0.3678314989981802, 0.1252334085114689], g2 = [0.04717533638651183, 0.10693932599531843, 0.16007832854334622, 0.20316742672306592, 0.2334925365383548, 0.24914704581340277], d2 = 0.5 * e3; if (d2 >= f2) return 1; var N2, b2 = 2 * n2.normal.cdf(d2, 0, 1, 1, 0) - 1; b2 = b2 >= t2.exp(l2 / o3) ? t2.pow(b2, o3) : 0; for (var E2 = d2, I2 = (f2 - d2) / (N2 = e3 > c2 ? m2 : p2), T2 = E2 + I2, M2 = 0, S2 = o3 - 1, A2 = 1; A2 <= N2; A2++) { for (var v2 = 0, R2 = 0.5 * (T2 + E2), y2 = 0.5 * (T2 - E2), w2 = 1; w2 <= u3; w2++) { var C2, O2 = R2 + y2 * (a2 < w2 ? h2[(C2 = u3 - w2 + 1) - 1] : -h2[(C2 = w2) - 1]), D2 = O2 * O2; if (D2 > s2) break; var _2 = 2 * n2.normal.cdf(O2, 0, 1, 1, 0) * 0.5 - 2 * n2.normal.cdf(O2, e3, 1, 1, 0) * 0.5; _2 >= t2.exp(i2 / S2) && (v2 += _2 = g2[C2 - 1] * t2.exp(-0.5 * D2) * t2.pow(_2, S2)); } M2 += v2 *= 2 * y2 * o3 / t2.sqrt(2 * t2.PI), E2 = T2, T2 += I2; } return (b2 += M2) <= t2.exp(i2 / r3) ? 0 : (b2 = t2.pow(b2, r3)) >= 1 ? 1 : b2; } function u2(n3, e3, r3) { var o3 = 0.322232421088, u3 = 0.099348462606, a2 = -1, i2 = 0.588581570495, l2 = -0.342242088547, s2 = 0.531103462366, f2 = -0.204231210125, c2 = 0.10353775285, m2 = -453642210148e-16, p2 = 0.0038560700634, h2 = 0.8832, g2 = 0.2368, d2 = 1.208, N2 = 1.4142, b2 = 120, E2 = 0.5 - 0.5 * n3, I2 = t2.sqrt(t2.log(1 / (E2 * E2))), T2 = I2 + ((((I2 * m2 + f2) * I2 + l2) * I2 + a2) * I2 + o3) / ((((I2 * p2 + c2) * I2 + s2) * I2 + i2) * I2 + u3); r3 < b2 && (T2 += (T2 * T2 * T2 + T2) / r3 / 4); var M2 = h2 - g2 * T2; return r3 < b2 && (M2 += -1.214 / r3 + d2 * T2 / r3), T2 * (M2 * t2.log(e3 - 1) + N2); } !(function(t3) { for (var e3 = 0; e3 < t3.length; e3++) (function(t4) { n2[t4] = function n3(t5, e4, r3) { return this instanceof n3 ? (this._a = t5, this._b = e4, this._c = r3, this) : new n3(t5, e4, r3); }, n2.fn[t4] = function(e4, r3, o3) { var u3 = n2[t4](e4, r3, o3); return u3.data = this, u3; }, n2[t4].prototype.sample = function(e4) { var r3 = this._a, o3 = this._b, u3 = this._c; return e4 ? n2.alter(e4, function() { return n2[t4].sample(r3, o3, u3); }) : n2[t4].sample(r3, o3, u3); }, (function(e4) { for (var r3 = 0; r3 < e4.length; r3++) (function(e5) { n2[t4].prototype[e5] = function(r4) { var o3 = this._a, u3 = this._b, a2 = this._c; return r4 || 0 === r4 || (r4 = this.data), "number" != typeof r4 ? n2.fn.map.call(r4, function(r5) { return n2[t4][e5](r5, o3, u3, a2); }) : n2[t4][e5](r4, o3, u3, a2); }; })(e4[r3]); })("pdf cdf inv".split(" ")), (function(e4) { for (var r3 = 0; r3 < e4.length; r3++) (function(e5) { n2[t4].prototype[e5] = function() { return n2[t4][e5](this._a, this._b, this._c); }; })(e4[r3]); })("mean median mode variance".split(" ")); })(t3[e3]); })("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")), n2.extend(n2.beta, { pdf: function(e3, r3, o3) { return e3 > 1 || e3 < 0 ? 0 : 1 == r3 && 1 == o3 ? 1 : r3 < 512 && o3 < 512 ? t2.pow(e3, r3 - 1) * t2.pow(1 - e3, o3 - 1) / n2.betafn(r3, o3) : t2.exp((r3 - 1) * t2.log(e3) + (o3 - 1) * t2.log(1 - e3) - n2.betaln(r3, o3)); }, cdf: function(t3, e3, r3) { return t3 > 1 || t3 < 0 ? 1 * (t3 > 1) : n2.ibeta(t3, e3, r3); }, inv: function(t3, e3, r3) { return n2.ibetainv(t3, e3, r3); }, mean: function(n3, t3) { return n3 / (n3 + t3); }, median: function(t3, e3) { return n2.ibetainv(0.5, t3, e3); }, mode: function(n3, t3) { return (n3 - 1) / (n3 + t3 - 2); }, sample: function(t3, e3) { var r3 = n2.randg(t3); return r3 / (r3 + n2.randg(e3)); }, variance: function(n3, e3) { return n3 * e3 / (t2.pow(n3 + e3, 2) * (n3 + e3 + 1)); } }), n2.extend(n2.centralF, { pdf: function(e3, r3, o3) { var u3; return e3 < 0 ? 0 : r3 <= 2 ? 0 === e3 && r3 < 2 ? 1 / 0 : 0 === e3 && 2 === r3 ? 1 : 1 / n2.betafn(r3 / 2, o3 / 2) * t2.pow(r3 / o3, r3 / 2) * t2.pow(e3, r3 / 2 - 1) * t2.pow(1 + r3 / o3 * e3, -(r3 + o3) / 2) : (u3 = r3 * e3 / (o3 + e3 * r3), r3 * (o3 / (o3 + e3 * r3)) / 2 * n2.binomial.pdf((r3 - 2) / 2, (r3 + o3 - 2) / 2, u3)); }, cdf: function(t3, e3, r3) { return t3 < 0 ? 0 : n2.ibeta(e3 * t3 / (e3 * t3 + r3), e3 / 2, r3 / 2); }, inv: function(t3, e3, r3) { return r3 / (e3 * (1 / n2.ibetainv(t3, e3 / 2, r3 / 2) - 1)); }, mean: function(n3, t3) { return t3 > 2 ? t3 / (t3 - 2) : void 0; }, mode: function(n3, t3) { return n3 > 2 ? t3 * (n3 - 2) / (n3 * (t3 + 2)) : void 0; }, sample: function(t3, e3) { return 2 * n2.randg(t3 / 2) / t3 / (2 * n2.randg(e3 / 2) / e3); }, variance: function(n3, t3) { if (!(t3 <= 4)) return 2 * t3 * t3 * (n3 + t3 - 2) / (n3 * (t3 - 2) * (t3 - 2) * (t3 - 4)); } }), n2.extend(n2.cauchy, { pdf: function(n3, e3, r3) { return r3 < 0 ? 0 : r3 / (t2.pow(n3 - e3, 2) + t2.pow(r3, 2)) / t2.PI; }, cdf: function(n3, e3, r3) { return t2.atan((n3 - e3) / r3) / t2.PI + 0.5; }, inv: function(n3, e3, r3) { return e3 + r3 * t2.tan(t2.PI * (n3 - 0.5)); }, median: function(n3) { return n3; }, mode: function(n3) { return n3; }, sample: function(e3, r3) { return n2.randn() * t2.sqrt(1 / (2 * n2.randg(0.5))) * r3 + e3; } }), n2.extend(n2.chisquare, { pdf: function(e3, r3) { return e3 < 0 ? 0 : 0 === e3 && 2 === r3 ? 0.5 : t2.exp((r3 / 2 - 1) * t2.log(e3) - e3 / 2 - r3 / 2 * t2.log(2) - n2.gammaln(r3 / 2)); }, cdf: function(t3, e3) { return t3 < 0 ? 0 : n2.lowRegGamma(e3 / 2, t3 / 2); }, inv: function(t3, e3) { return 2 * n2.gammapinv(t3, 0.5 * e3); }, mean: function(n3) { return n3; }, median: function(n3) { return n3 * t2.pow(1 - 2 / (9 * n3), 3); }, mode: function(n3) { return n3 - 2 > 0 ? n3 - 2 : 0; }, sample: function(t3) { return 2 * n2.randg(t3 / 2); }, variance: function(n3) { return 2 * n3; } }), n2.extend(n2.exponential, { pdf: function(n3, e3) { return n3 < 0 ? 0 : e3 * t2.exp(-e3 * n3); }, cdf: function(n3, e3) { return n3 < 0 ? 0 : 1 - t2.exp(-e3 * n3); }, inv: function(n3, e3) { return -t2.log(1 - n3) / e3; }, mean: function(n3) { return 1 / n3; }, median: function(n3) { return 1 / n3 * t2.log(2); }, mode: function() { return 0; }, sample: function(e3) { return -1 / e3 * t2.log(n2._random_fn()); }, variance: function(n3) { return t2.pow(n3, -2); } }), n2.extend(n2.gamma, { pdf: function(e3, r3, o3) { return e3 < 0 ? 0 : 0 === e3 && 1 === r3 ? 1 / o3 : t2.exp((r3 - 1) * t2.log(e3) - e3 / o3 - n2.gammaln(r3) - r3 * t2.log(o3)); }, cdf: function(t3, e3, r3) { return t3 < 0 ? 0 : n2.lowRegGamma(e3, t3 / r3); }, inv: function(t3, e3, r3) { return n2.gammapinv(t3, e3) * r3; }, mean: function(n3, t3) { return n3 * t3; }, mode: function(n3, t3) { if (n3 > 1) return (n3 - 1) * t3; }, sample: function(t3, e3) { return n2.randg(t3) * e3; }, variance: function(n3, t3) { return n3 * t3 * t3; } }), n2.extend(n2.invgamma, { pdf: function(e3, r3, o3) { return e3 <= 0 ? 0 : t2.exp(-(r3 + 1) * t2.log(e3) - o3 / e3 - n2.gammaln(r3) + r3 * t2.log(o3)); }, cdf: function(t3, e3, r3) { return t3 <= 0 ? 0 : 1 - n2.lowRegGamma(e3, r3 / t3); }, inv: function(t3, e3, r3) { return r3 / n2.gammapinv(1 - t3, e3); }, mean: function(n3, t3) { return n3 > 1 ? t3 / (n3 - 1) : void 0; }, mode: function(n3, t3) { return t3 / (n3 + 1); }, sample: function(t3, e3) { return e3 / n2.randg(t3); }, variance: function(n3, t3) { if (!(n3 <= 2)) return t3 * t3 / ((n3 - 1) * (n3 - 1) * (n3 - 2)); } }), n2.extend(n2.kumaraswamy, { pdf: function(n3, e3, r3) { return 0 === n3 && 1 === e3 ? r3 : 1 === n3 && 1 === r3 ? e3 : t2.exp(t2.log(e3) + t2.log(r3) + (e3 - 1) * t2.log(n3) + (r3 - 1) * t2.log(1 - t2.pow(n3, e3))); }, cdf: function(n3, e3, r3) { return n3 < 0 ? 0 : n3 > 1 ? 1 : 1 - t2.pow(1 - t2.pow(n3, e3), r3); }, inv: function(n3, e3, r3) { return t2.pow(1 - t2.pow(1 - n3, 1 / r3), 1 / e3); }, mean: function(t3, e3) { return e3 * n2.gammafn(1 + 1 / t3) * n2.gammafn(e3) / n2.gammafn(1 + 1 / t3 + e3); }, median: function(n3, e3) { return t2.pow(1 - t2.pow(2, -1 / e3), 1 / n3); }, mode: function(n3, e3) { if (n3 >= 1 && e3 >= 1 && 1 !== n3 && 1 !== e3) return t2.pow((n3 - 1) / (n3 * e3 - 1), 1 / n3); }, variance: function() { throw new Error("variance not yet implemented"); } }), n2.extend(n2.lognormal, { pdf: function(n3, e3, r3) { return n3 <= 0 ? 0 : t2.exp(-t2.log(n3) - 0.5 * t2.log(2 * t2.PI) - t2.log(r3) - t2.pow(t2.log(n3) - e3, 2) / (2 * r3 * r3)); }, cdf: function(e3, r3, o3) { return e3 < 0 ? 0 : 0.5 + 0.5 * n2.erf((t2.log(e3) - r3) / t2.sqrt(2 * o3 * o3)); }, inv: function(e3, r3, o3) { return t2.exp(-1.4142135623730951 * o3 * n2.erfcinv(2 * e3) + r3); }, mean: function(n3, e3) { return t2.exp(n3 + e3 * e3 / 2); }, median: function(n3) { return t2.exp(n3); }, mode: function(n3, e3) { return t2.exp(n3 - e3 * e3); }, sample: function(e3, r3) { return t2.exp(n2.randn() * r3 + e3); }, variance: function(n3, e3) { return (t2.exp(e3 * e3) - 1) * t2.exp(2 * n3 + e3 * e3); } }), n2.extend(n2.noncentralt, { pdf: function(e3, r3, o3) { var u3 = 1e-14; return t2.abs(o3) < u3 ? n2.studentt.pdf(e3, r3) : t2.abs(e3) < u3 ? t2.exp(n2.gammaln((r3 + 1) / 2) - o3 * o3 / 2 - 0.5 * t2.log(t2.PI * r3) - n2.gammaln(r3 / 2)) : r3 / e3 * (n2.noncentralt.cdf(e3 * t2.sqrt(1 + 2 / r3), r3 + 2, o3) - n2.noncentralt.cdf(e3, r3, o3)); }, cdf: function(e3, r3, o3) { var u3 = 1e-14, a2 = 200; if (t2.abs(o3) < u3) return n2.studentt.cdf(e3, r3); var i2 = false; e3 < 0 && (i2 = true, o3 = -o3); for (var l2 = n2.normal.cdf(-o3, 0, 1), s2 = u3 + 1, f2 = s2, c2 = e3 * e3 / (e3 * e3 + r3), m2 = 0, p2 = t2.exp(-o3 * o3 / 2), h2 = t2.exp(-o3 * o3 / 2 - 0.5 * t2.log(2) - n2.gammaln(1.5)) * o3; m2 < a2 || f2 > u3 || s2 > u3; ) f2 = s2, m2 > 0 && (p2 *= o3 * o3 / (2 * m2), h2 *= o3 * o3 / (2 * (m2 + 0.5))), l2 += 0.5 * (s2 = p2 * n2.beta.cdf(c2, m2 + 0.5, r3 / 2) + h2 * n2.beta.cdf(c2, m2 + 1, r3 / 2)), m2++; return i2 ? 1 - l2 : l2; } }), n2.extend(n2.normal, { pdf: function(n3, e3, r3) { return t2.exp(-0.5 * t2.log(2 * t2.PI) - t2.log(r3) - t2.pow(n3 - e3, 2) / (2 * r3 * r3)); }, cdf: function(e3, r3, o3) { return 0.5 * (1 + n2.erf((e3 - r3) / t2.sqrt(2 * o3 * o3))); }, inv: function(t3, e3, r3) { return -1.4142135623730951 * r3 * n2.erfcinv(2 * t3) + e3; }, mean: function(n3) { return n3; }, median: function(n3) { return n3; }, mode: function(n3) { return n3; }, sample: function(t3, e3) { return n2.randn() * e3 + t3; }, variance: function(n3, t3) { return t3 * t3; } }), n2.extend(n2.pareto, { pdf: function(n3, e3, r3) { return n3 < e3 ? 0 : r3 * t2.pow(e3, r3) / t2.pow(n3, r3 + 1); }, cdf: function(n3, e3, r3) { return n3 < e3 ? 0 : 1 - t2.pow(e3 / n3, r3); }, inv: function(n3, e3, r3) { return e3 / t2.pow(1 - n3, 1 / r3); }, mean: function(n3, e3) { if (!(e3 <= 1)) return e3 * t2.pow(n3, e3) / (e3 - 1); }, median: function(n3, e3) { return n3 * (e3 * t2.SQRT2); }, mode: function(n3) { return n3; }, variance: function(n3, e3) { if (!(e3 <= 2)) return n3 * n3 * e3 / (t2.pow(e3 - 1, 2) * (e3 - 2)); } }), n2.extend(n2.studentt, { pdf: function(e3, r3) { return r3 = r3 > 1e100 ? 1e100 : r3, 1 / (t2.sqrt(r3) * n2.betafn(0.5, r3 / 2)) * t2.pow(1 + e3 * e3 / r3, -(r3 + 1) / 2); }, cdf: function(e3, r3) { var o3 = r3 / 2; return n2.ibeta((e3 + t2.sqrt(e3 * e3 + r3)) / (2 * t2.sqrt(e3 * e3 + r3)), o3, o3); }, inv: function(e3, r3) { var o3 = n2.ibetainv(2 * t2.min(e3, 1 - e3), 0.5 * r3, 0.5); return o3 = t2.sqrt(r3 * (1 - o3) / o3), e3 > 0.5 ? o3 : -o3; }, mean: function(n3) { return n3 > 1 ? 0 : void 0; }, median: function() { return 0; }, mode: function() { return 0; }, sample: function(e3) { return n2.randn() * t2.sqrt(e3 / (2 * n2.randg(e3 / 2))); }, variance: function(n3) { return n3 > 2 ? n3 / (n3 - 2) : n3 > 1 ? 1 / 0 : void 0; } }), n2.extend(n2.weibull, { pdf: function(n3, e3, r3) { return n3 < 0 || e3 < 0 || r3 < 0 ? 0 : r3 / e3 * t2.pow(n3 / e3, r3 - 1) * t2.exp(-t2.pow(n3 / e3, r3)); }, cdf: function(n3, e3, r3) { return n3 < 0 ? 0 : 1 - t2.exp(-t2.pow(n3 / e3, r3)); }, inv: function(n3, e3, r3) { return e3 * t2.pow(-t2.log(1 - n3), 1 / r3); }, mean: function(t3, e3) { return t3 * n2.gammafn(1 + 1 / e3); }, median: function(n3, e3) { return n3 * t2.pow(t2.log(2), 1 / e3); }, mode: function(n3, e3) { return e3 <= 1 ? 0 : n3 * t2.pow((e3 - 1) / e3, 1 / e3); }, sample: function(e3, r3) { return e3 * t2.pow(-t2.log(n2._random_fn()), 1 / r3); }, variance: function(e3, r3) { return e3 * e3 * n2.gammafn(1 + 2 / r3) - t2.pow(n2.weibull.mean(e3, r3), 2); } }), n2.extend(n2.uniform, { pdf: function(n3, t3, e3) { return n3 < t3 || n3 > e3 ? 0 : 1 / (e3 - t3); }, cdf: function(n3, t3, e3) { return n3 < t3 ? 0 : n3 < e3 ? (n3 - t3) / (e3 - t3) : 1; }, inv: function(n3, t3, e3) { return t3 + n3 * (e3 - t3); }, mean: function(n3, t3) { return 0.5 * (n3 + t3); }, median: function(t3, e3) { return n2.mean(t3, e3); }, mode: function() { throw new Error("mode is not yet implemented"); }, sample: function(t3, e3) { return t3 / 2 + e3 / 2 + (e3 / 2 - t3 / 2) * (2 * n2._random_fn() - 1); }, variance: function(n3, e3) { return t2.pow(e3 - n3, 2) / 12; } }), n2.extend(n2.binomial, { pdf: function(e3, r3, o3) { return 0 === o3 || 1 === o3 ? r3 * o3 === e3 ? 1 : 0 : n2.combination(r3, e3) * t2.pow(o3, e3) * t2.pow(1 - o3, r3 - e3); }, cdf: function(r3, o3, u3) { var a2, i2 = 1e-10; if (r3 < 0) return 0; if (r3 >= o3) return 1; if (u3 < 0 || u3 > 1 || o3 <= 0) return NaN; var l2 = u3, s2 = (r3 = t2.floor(r3)) + 1, f2 = o3 - r3, c2 = s2 + f2, m2 = t2.exp(n2.gammaln(c2) - n2.gammaln(f2) - n2.gammaln(s2) + s2 * t2.log(l2) + f2 * t2.log(1 - l2)); return a2 = l2 < (s2 + 1) / (c2 + 2) ? m2 * e2(l2, s2, f2, i2) : 1 - m2 * e2(1 - l2, f2, s2, i2), t2.round(1 / i2 * (1 - a2)) / (1 / i2); } }), n2.extend(n2.negbin, { pdf: function(e3, r3, o3) { return e3 === e3 >>> 0 && (e3 < 0 ? 0 : n2.combination(e3 + r3 - 1, r3 - 1) * t2.pow(1 - o3, e3) * t2.pow(o3, r3)); }, cdf: function(t3, e3, r3) { var o3 = 0, u3 = 0; if (t3 < 0) return 0; for (; u3 <= t3; u3++) o3 += n2.negbin.pdf(u3, e3, r3); return o3; } }), n2.exte