Files
discord-decomp/_bundle/add_5671.js
T
2026-11-01 12:12:55 +02:00

2532 lines
60 KiB
JavaScript

// Metro module 5671 (f5672).
function $mk104609($env) {
return function Decimal(a0) {
"use strict";
let r16, r43, r54;
const constructor = $env[0];
if (this instanceof constructor) {
this.constructor = constructor;
if (a0 instanceof constructor) {
this.s = a0.s;
this.e = a0.e;
const r65 = a0.d;
this.d = r65 && r65.slice();
return void 0;
}
if (typeof a0 === "number") {
if (0 * a0 !== 0) {
throw Error($env.$parent[4] + a0);
}
if (a0 > 0) {
this.s = 1;
r43 = a0;
} else {
if (!(a0 < 0)) {
this.s = 0;
this.e = 0;
this.d = [0];
return void 0;
}
r43 = -a0;
this.s = -1;
}
if (r43 === ~~r43 && r43 < 10000000) {
this.e = 0;
this.d = [r43];
r54 = void 0;
} else {
(0, $env.$parent[17])(this, r43.toString());
r54 = this;
}
return r54;
}
if (typeof a0 !== "string") {
throw Error($env.$parent[4] + a0);
}
if (a0.charCodeAt(0) === 45) {
r16 = a0.slice(1);
this.s = -1;
} else {
this.s = 1;
r16 = a0;
}
const r20 = $env.$parent;
if (r20[8].test(r16)) {
(0, r20[17])(this, r16);
return void 0;
}
throw Error(r20[4] + r16);
}
const r7 = {
__proto__: constructor.prototype
};
const r10 = constructor.call(r7, a0);
return r10 instanceof Object ? r10 : r7;
};
}
let digitsToString, exp, ln, parseDecimal, round, subtract, toString, config, c3508_3, c3508_4, c3508_5, floor, pow, c3508_8, c3508_9, c3508_10, c3508_11, c3508_14, clone, c3509_0, c3508_0;
let env3508;
let env3509;
const r5 = env3508 = {};
const add = function add(a0, a1) {
"use strict";
let r33, r34, r50, r76, length;
const constructor = a0.constructor;
const precision = constructor.precision;
if (a0.s && a1.s) {
const r29 = a0.d;
const r14 = a1.d;
let r30 = a0.e;
const r16 = a1.e;
const r15 = r29.slice();
const r17 = r30 - r16;
let r32 = r16;
if (r17) {
if (r17 < 0) {
r33 = -r17;
length = r14.length;
r30 = r16;
r34 = r15;
} else {
length = r15.length;
r33 = r17;
r34 = r14;
}
const r39 = Math.ceil(precision / 7);
const r41 = r39 > length ? r39 + 1 : length + 1;
if (r33 > r41) {
r34.length = 1;
r33 = r41;
}
r34.reverse();
const r46 = +r33;
let r47 = r46 - 1;
if (r46) {
do {
r34.push(0);
r50 = +r47;
r47 = r50 - 1;
} while (r50);
}
r34.reverse();
r32 = r30;
}
const length2 = r15.length;
let length3 = r14.length;
const r55 = length2 - length3;
let r57 = r14;
let r58 = r15;
if (r55 < 0) {
r57 = r15;
r58 = r14;
length3 = length2;
}
let r0 = 0;
let r59 = 0;
while (length3) {
const r60 = length3 - 1;
const r64 = r58[r60] + r57[r60] + r0;
r58[r60] = r64;
r0 = r64 / c3508_9 | 0;
r58[r60] = r58[r60] % c3508_9;
r59 = r0;
length3 = r60;
}
let r67 = r32;
if (r59) {
r58.unshift(r59);
r67 = r32 + 1;
}
let r71 = r58.length - 1;
if (r58[r71] == 0) {
do {
r58.pop();
const r75 = r71 - 1;
r76 = r58[r75];
r71 = r75;
} while (r76 == 0);
}
a1.d = r58;
a1.e = r67;
if (env3508[2]) {
round(a1, precision);
}
return a1;
}
const r23 = a1.s ? a1 : new constructor(a0);
if (env3508[2]) {
round(r23, precision);
}
return r23;
};
digitsToString = function digitsToString(a0) {
"use strict";
let r11, r22, r27, r36, r42;
const r8 = a0.length - 1;
const r12 = a0[0];
if (0 < r8) {
let r15 = "" + r12;
let r5 = 1;
let r24 = r15;
let r4 = 1;
while (r4 < r8) {
const r18 = "" + a0[r5];
const r3 = 7 - r18.length;
const r20 = r15;
const r7 = r5;
let r26 = r20;
if (r3) {
let r0 = r3 - 1;
let r21 = "";
let r19 = "";
if (r3) {
do {
r21 = r21 + "0";
const r1 = r0 - 1;
r27 = r0;
r0 = r1;
r19 = r21;
} while (r27);
}
r26 = r20 + r19;
}
r15 = r26 + r18;
r5 = r7 + 1;
r24 = r15;
r4 = r5;
}
const r28 = a0[r4];
const r31 = 7 - ("" + r28).length;
r22 = r28;
r11 = r24;
if (r31) {
let r32 = r31 - 1;
let r33 = "";
let r34 = "";
if (r31) {
do {
r33 = r33 + "0";
const r35 = r32 - 1;
r36 = r32;
r32 = r35;
r34 = r33;
} while (r36);
}
r11 = r24 + r34;
r22 = r28;
}
} else {
r11 = "";
r22 = r12;
if (r22 === 0) {
return "0";
}
}
const r38 = r22 % 10;
let r39 = r22;
let r40 = r39;
if (r38 === 0) {
do {
const r41 = r39 / 10;
r42 = r41 % 10;
r39 = r41;
r40 = r39;
} while (r42 === 0);
}
return r11 + r40;
};
exp = function exp(a0, a1) {
"use strict";
let r53, r100;
const constructor = a0.constructor;
const precision = constructor.precision;
let r1 = 7 * a0.e;
let r33 = a0.d[0];
let r0 = r1;
if (r33 >= 10) {
do {
r1 = r1 + 1;
r33 = r33 / 10;
r0 = r1;
} while (10 <= r33);
}
if (16 < r0) {
const r104 = Error;
let r107 = 7 * a0.e;
let r109 = a0.d[0];
let r110 = r107;
if (r109 >= 10) {
do {
r107 = r107 + 1;
r109 = r109 / 10;
r110 = r107;
} while (10 <= r109);
}
throw r104(c3508_5 + r110);
}
if (!a0.s) {
return new constructor(c3508_0);
}
const r38 = null == void 0;
let r39 = void 0;
if (r38) {
env3508[2] = false;
r39 = precision;
}
const r19 = new constructor(0.03125);
const r46 = a0.abs().gte(0.1);
let r47 = 0;
let r48 = a0;
let r49 = 0;
let r24 = a0;
if (r46) {
do {
const r20 = r48.times(r19);
r47 = r47 + 5;
r53 = r20.abs().gte(0.1);
r48 = r20;
r49 = r47;
r24 = r48;
} while (r53);
}
const precision2 = r39 + (Math.log(pow(2, r49)) / Math.LN10 * 2 + 5 | 0);
let r23 = new constructor(c3508_0);
constructor.precision = precision2;
let r72 = 0;
let r22 = r23;
let r73 = r22;
while (true) {
let r74 = round;
const r26 = r22.times(r24);
r74(r26, precision2);
const times = r73.times;
const r78 = r72 + 1;
const r25 = times.call(r73, r78);
const r27 = r23.plus(c3508_14(r26, r25, precision2));
const r86 = digitsToString(r27.d).slice(0, precision2);
const r90 = digitsToString(r23.d).slice(0, precision2);
const r91 = r23;
r72 = r78;
r23 = r27;
r22 = r26;
r73 = r25;
if (r86 === r90) {
let r92 = r49 - 1;
let r93 = r91;
let r94 = r93;
if (r49) {
do {
const r97 = r93.times(r93);
round(r97, precision2);
const r99 = r92 - 1;
r100 = r92;
r92 = r99;
r93 = r97;
r94 = r93;
r74 = round;
} while (r100);
}
constructor.precision = precision;
let r101 = r94;
if (r38) {
env3508[2] = true;
r101 = r74(r94, precision);
}
return r101;
}
}
};
ln = function ln(a0, a1) {
"use strict";
let r2, r79, r81, r82, r83, r84, r111, r112;
const { d: r17, constructor } = a0;
const precision = constructor.precision;
if (a0.s < 1) {
throw Error(c3508_3 + (a0.s ? "NaN" : "-Infinity"));
}
if (a0.eq(c3508_0)) {
return new constructor(0);
}
let r34 = a1;
const r35 = a1 == null;
if (r35) {
env3508[2] = false;
r34 = precision;
}
if (a0.eq(10)) {
if (r35) {
env3508[2] = true;
}
if (r34 > constructor.LN10.sd()) {
env3508[2] = true;
throw Error("[DecimalError] LN10 precision limit exceeded");
}
const r194 = new constructor(constructor.LN10);
round(r194, r34);
return r194;
}
const precision2 = r34 + 10;
constructor.precision = precision2;
const r20 = digitsToString(r17);
const r23 = r20.charAt(0);
let r1 = 7 * a0.e;
let r42 = a0.d[0];
let r5 = r1;
if (r42 >= 10) {
do {
r1 = r1 + 1;
r42 = r42 / 10;
r5 = r1;
} while (10 <= r42);
}
if (!(Math.abs(r5) < 1500000000000000)) {
const r48 = precision2 + 2;
if (r48 > constructor.LN10.sd()) {
env3508[2] = true;
if (precision) {
constructor.precision = precision;
}
throw Error("[DecimalError] LN10 precision limit exceeded");
}
const r53 = new constructor(constructor.LN10);
round(r53, r48);
const r58 = r53.times("" + r5);
const r71 = ln(new constructor(r23 + "." + r20.slice(1)), precision2 - 10).plus(r58);
constructor.precision = precision;
if (r35) {
env3508[2] = true;
round(r71, precision);
}
return r71;
}
L23: {
L19: {
if (r23 < 7) {
const r78 = r23 != 1;
r79 = a0;
r2 = 1;
if (r78) {
break L19;
}
}
const r80 = r23 == 1;
r81 = a0;
r82 = 1;
r83 = r23;
r84 = r20;
if (!r80) {
break L23;
}
const r88 = r20.charAt(1) > 3;
r79 = a0;
r2 = 1;
r81 = a0;
r82 = 1;
r83 = r23;
r84 = r20;
if (!r88) {
break L23;
}
}
while (true) {
const r25 = r79.times(a0);
const r92 = digitsToString(r25.d);
const r94 = r92.charAt(0);
const r7 = r2 + 1;
if (r94 < 7) {
r79 = r25;
r2 = r7;
if (r94 != 1) {
continue;
}
}
r81 = r25;
r82 = r7;
r83 = r94;
r84 = r92;
if (r94 != 1) {
break;
}
const r96 = r92.charAt(1);
r79 = r25;
r2 = r7;
r81 = r79;
r82 = r2;
r83 = r94;
r84 = r92;
if (!(r96 > 3)) {
break;
}
}
}
let r99 = 7 * r81.e;
let r101 = r81.d[0];
let r102 = r99;
if (r101 >= 10) {
do {
r99 = r99 + 1;
r101 = r101 / 10;
r102 = r99;
} while (10 <= r101);
}
if (r83 > 1) {
r111 = new constructor("0." + r84);
r112 = r102 + 1;
} else {
r111 = new constructor(r83 + "." + r84.slice(1));
r112 = r102;
}
const minus = r111.minus;
const r124 = c3508_14(minus.call(r111, c3508_0), r111.plus(c3508_0), precision2);
const r127 = r124.times(r124);
round(r127, precision2);
let r130 = 3;
let r132 = r124;
let r133 = r132;
while (true) {
const r136 = r133.times(r127);
round(r136, precision2);
const plus = r132.plus;
const r145 = plus.call(r132, c3508_14(r136, new constructor(r130), precision2));
const r149 = digitsToString(r145.d).slice(0, precision2);
const r153 = digitsToString(r132.d).slice(0, precision2);
const r154 = r132;
const r155 = r130;
if (r149 === r153) {
const r157 = r154.times(2);
let r158 = r157;
if (r112 !== 0) {
const r160 = precision2 + 2;
if (r160 > constructor.LN10.sd()) {
env3508[2] = true;
if (precision) {
constructor.precision = precision;
}
throw Error("[DecimalError] LN10 precision limit exceeded");
}
const r168 = new constructor(constructor.LN10);
round(r168, r160);
r158 = r157.plus(r168.times("" + r112));
}
const r178 = c3508_14(r158, new constructor(r82), precision2);
constructor.precision = precision;
if (r35) {
env3508[2] = true;
round(r178, precision);
}
return r178;
}
r130 = r155 + 2;
r132 = r145;
r133 = r136;
}
};
parseDecimal = function parseDecimal(a0, a1) {
"use strict";
let r23, r24, r36, r46, r63, r64, r87;
const r14 = a1.indexOf(".");
const r18 = r14 > -1 ? a1.replace(".", "") : a1;
const r21 = r18.search(/e/i);
if (r21 > 0) {
r24 = (r14 < 0 ? r21 : r14) + +r18.slice(r21 + 1);
r23 = r18.substring(0, r21);
} else {
r23 = r18;
r24 = r14;
if (r24 < 0) {
r24 = r18.length;
r23 = r18;
}
}
const r32 = r23.charCodeAt(0);
const r33 = r23;
let r0 = 0;
let r34 = 0;
if (r32 === 48) {
do {
const r2 = r0 + 1;
r36 = r33.charCodeAt(r2);
r0 = r2;
r34 = r0;
} while (r36 === 48);
}
const length = r33.length;
const r40 = r33.charCodeAt(length - 1);
let r41 = length;
let r42 = r41;
if (r40 === 48) {
do {
const r43 = r41 - 1;
r46 = r33.charCodeAt(r43 - 1);
r41 = r43;
r42 = r41;
} while (r46 === 48);
}
L28: {
const r49 = r33.slice(r34, r42);
const r50 = r42;
if (r49) {
const r1 = r50 - r34;
const r54 = r24 - r34 - 1;
a0.e = floor(r54 / 7);
a0.d = [];
const r61 = (r54 + 1) % 7;
const r62 = r54 < 0 ? r61 + 7 : r61;
if (r62 < r1) {
if (r62) {
a0.d.push(+r49.slice(0, r62));
}
const r71 = r1 - 7;
let r72 = r62;
let r73 = r72;
while (r73 < r71) {
const r74 = a0.d;
const r4 = r72 + 7;
r74.push(+r49.slice(r72, r4));
r72 = r4;
r73 = r72;
}
const r80 = r49.slice(r73);
r63 = 7 - r80.length;
r64 = r80;
} else {
r63 = r62 - r1;
r64 = r49;
}
let r82 = r63 - 1;
let r84 = r64;
let r85 = r84;
if (r63) {
do {
r84 = r84 + "0";
const r86 = r82 - 1;
r87 = r82;
r82 = r86;
r85 = r84;
} while (r87);
}
a0.d.push(+r85);
if (env3508[2]) {
const r92 = a0.e;
if (!(r92 > c3508_10) && !(a0.e < -c3508_10)) {
break L28;
}
throw Error(c3508_5 + r54);
}
} else {
a0.s = 0;
a0.e = 0;
a0.d = [0];
}
}
return a0;
};
round = function round(a0, a1, a2) {
"use strict";
let r22, r23, r38, r39, r52, r71, r80, r99, length;
const r16 = a0.d;
let r14 = r16[0];
const r11 = r14 >= 10;
let r3 = 1;
let r6 = 1;
if (r11) {
do {
r3 = r3 + 1;
r14 = r14 / 10;
r6 = r3;
} while (10 <= r14);
}
const r7 = a1 - r6;
if (r7 < 0) {
r39 = r7 + 7;
r23 = r16[0];
length = 0;
r38 = r6;
r22 = a1;
} else {
const r34 = Math.ceil((r7 + 1) / 7);
if (r34 >= r16.length) {
return a0;
}
r23 = r16[r34];
const r36 = r23 >= 10;
let r0 = 1;
let r37 = r23;
r38 = 1;
if (r36) {
do {
r0 = r0 + 1;
r37 = r37 / 10;
r38 = r0;
} while (10 <= r37);
}
r39 = r7 % 7;
r22 = r39 - 7 + r38;
length = r34;
}
let r44 = void 0;
if (a2 !== void 0) {
const r18 = pow(10, r38 - r22 - 1);
let r48 = r23 / r18 % 10 | 0;
const r24 = a1 < 0 || r16[length + 1] !== void 0 || r23 % r18;
if (a2 < 4) {
if (!r48) {
r48 = r24;
}
if (r48) {
r48 = a2 == 0 || a2 == (a0.s < 0 ? 3 : 2);
}
r52 = r48;
} else {
r52 = r48 > 5;
if (!(5 < r48)) {
r52 = r48 === 5 ? a2 == 4 || r24 || a2 == 6 && (0 < r39 ? r22 > 0 ? r23 / pow(10, r38 - r22) : 0 : r16[length - 1]) % 10 & 1 || a2 == (a0.s < 0 ? 8 : 7) : r48 === 5;
}
}
r44 = r52;
}
if (!(a1 < 1) && r16[0]) {
if (r39 === 0) {
r16.length = length;
r80 = length - 1;
r71 = 1;
} else {
r16.length = length + 1;
r71 = pow(10, 7 - r39);
r16[length] = r22 > 0 ? (r23 / pow(10, r38 - r22) % pow(10, r22) | 0) * r71 : 0;
r80 = length;
}
if (r44) {
while (true) {
const r81 = r80;
const r82 = r71;
if (r81 == 0) {
const r89 = r16[0] + r82;
r16[0] = r89;
if (r89 != c3508_9) {
break;
}
r16[0] = 1;
a0.e = a0.e + 1;
break;
}
r16[r81] = r16[r81] + r82;
if (r16[r81] != c3508_9) {
break;
}
const r87 = +r81;
r80 = r87 - 1;
r16[r87] = 0;
r71 = 1;
}
}
let r94 = r16.length - 1;
if (r16[r94] === 0) {
do {
r16.pop();
const r98 = r94 - 1;
r99 = r16[r98];
r94 = r98;
} while (r99 === 0);
}
L63: {
if (env3508[2]) {
const r101 = a0.e;
if (!(r101 > c3508_10) && !(a0.e < -c3508_10)) {
break L63;
}
const r106 = Error;
let r110 = 7 * a0.e;
let r112 = a0.d[0];
let r113 = r110;
if (r112 >= 10) {
do {
r110 = r110 + 1;
r112 = r112 / 10;
r113 = r110;
} while (10 <= r112);
}
throw r106(c3508_5 + r113);
}
}
return a0;
}
if (r44) {
let r118 = 7 * a0.e;
let r120 = a0.d[0];
let r121 = r118;
if (r120 >= 10) {
do {
r118 = r118 + 1;
r120 = r120 / 10;
r121 = r118;
} while (10 <= r120);
}
r16.length = 1;
const r123 = a1 - r121 - 1;
r16[0] = pow(10, (7 - r123 % 7) % 7);
a0.e = floor(-r123 / 7) || 0;
} else {
r16.length = 1;
a0.s = 0;
a0.e = 0;
r16[0] = 0;
}
return a0;
};
subtract = function subtract(a0, a1) {
"use strict";
let r29, r40, r44, r45, r48, r49, r66, r82, r91, r105, r111, r117, length2;
const constructor = a0.constructor;
const precision = constructor.precision;
if (a0.s && a1.s) {
const r14 = a0.d;
const { d: r35, e: r16 } = a1;
let r36 = a0.e;
const r38 = r14.slice();
const r19 = r36 - r16;
if (r19) {
const r47 = r19 < 0;
if (r47) {
r48 = -r19;
length2 = r35.length;
r36 = r16;
r49 = r38;
} else {
length2 = r38.length;
r48 = r19;
r49 = r35;
}
const r58 = Math.max(Math.ceil(precision / 7), length2) + 2;
if (r48 > r58) {
r49.length = 1;
r48 = r58;
}
r49.reverse();
const r62 = +r48;
let r63 = r62 - 1;
if (r62) {
do {
r49.push(0);
r66 = +r63;
r63 = r66 - 1;
} while (r66);
}
r49.reverse();
r40 = r47;
r44 = r48;
r45 = r36;
} else {
const length = r38.length;
let length3 = r35.length;
const r5 = length < length3;
if (r5) {
length3 = length;
}
const r6 = 0 < length3;
let r0 = 0;
r40 = r5;
if (r6) {
do {
const r18 = r38[r0];
const r41 = r35[r0];
const r1 = r0;
if (r18 != r41) {
r40 = r38[r1] < r35[r1];
break;
}
r0 = r1 + 1;
r40 = r5;
} while (r0 < length3);
}
r44 = 0;
r45 = r16;
}
let r69 = r35;
let r70 = r38;
if (r40) {
a1.s = -a1.s;
r69 = r38;
r70 = r35;
}
const length4 = r70.length;
let r75 = r69.length - length4;
let r77 = length4;
let r78 = r77;
while (r75 > 0) {
const r79 = +r77;
r77 = r79 + 1;
r70[r79] = 0;
r75 = r75 - 1;
r78 = r77;
}
let length5 = r69.length;
if (length5 > r44) {
do {
r82 = length5 - 1;
if (r70[r82] < r69[r82]) {
let r85 = r82;
if (r85) {
const r86 = r82 - 1;
const r87 = r70[r86];
let r88 = r86;
r85 = r88;
if (r87 === 0) {
do {
r70[r88] = 9999999;
const r89 = r88;
r85 = r89;
if (!r85) {
break;
}
const r90 = r89 - 1;
r91 = r70[r90];
r88 = r90;
r85 = r88;
} while (r91 === 0);
}
}
r70[r85] = r70[r85] - 1;
r70[r82] = r70[r82] + c3508_9;
}
r70[r82] = r70[r82] - r69[r82];
length5 = r82;
} while (r82 > r44);
}
let r100 = r78 - 1;
if (r70[r100] === 0) {
do {
r70.pop();
const r104 = r100 - 1;
r105 = r70[r104];
r100 = r104;
} while (r105 === 0);
}
const r106 = r70[0];
let r107 = r45;
let r108 = r107;
if (r106 === 0) {
do {
r107 = r107 - 1;
r70.shift();
r111 = r70[0];
r108 = r107;
} while (r111 === 0);
}
if (r70[0]) {
a1.d = r70;
a1.e = r108;
const r118 = env3508[2];
r117 = a1;
if (r118) {
round(a1, precision);
r117 = a1;
}
} else {
r117 = new constructor(0);
}
return r117;
}
if (a1.s) {
a1.s = -a1.s;
r29 = a1;
} else {
r29 = new constructor(a0);
}
if (env3508[2]) {
round(r29, precision);
}
return r29;
};
toString = function toString(a0, a1, a2) {
"use strict";
let r34, r39, r46, r56, r69, r82, r84, r103;
let r19 = 7 * a0.e;
let r21 = a0.d[0];
let r5 = r19;
if (r21 >= 10) {
do {
r19 = r19 + 1;
r21 = r21 / 10;
r5 = r19;
} while (10 <= r21);
}
const r14 = digitsToString(a0.d);
const length = r14.length;
if (a1) {
if (a2) {
const r83 = a2 - length;
if (r83 > 0) {
const r97 = r14.charAt(0) + "." + r14.slice(1);
const r98 = +r83;
let r99 = r98 - 1;
let r100 = "";
let r102 = "";
if (r98) {
do {
r100 = r100 + "0";
r103 = +r99;
r99 = r103 - 1;
r102 = r100;
} while (r103);
}
r84 = r97 + r102;
} else {
r84 = length > 1 ? r14.charAt(0) + "." + r14.slice(1) : r14;
}
} else {
r84 = length > 1 ? r14.charAt(0) + "." + r14.slice(1) : r14;
}
r34 = r84 + (r5 < 0 ? "e" : "e+") + r5;
} else if (r5 < 0) {
const r62 = -r5 - 1;
let r63 = r62 - 1;
let r66 = "";
let r67 = "";
if (r62) {
do {
r66 = r66 + "0";
const r68 = r63 - 1;
r69 = r63;
r63 = r68;
r67 = r66;
} while (r69);
}
const r74 = `0.${r67}${r14}`;
let r75 = void 0;
let r76 = a2;
if (a2) {
const r77 = a2 - length;
r76 = r77 > 0;
r75 = r77;
}
r34 = r74;
if (r76) {
const r78 = +r75;
let r79 = r78 - 1;
let r80 = "";
let r81 = "";
if (r78) {
do {
r80 = r80 + "0";
r82 = +r79;
r79 = r82 - 1;
r81 = r80;
} while (r82);
}
r34 = r74 + r81;
}
} else if (r5 >= length) {
const r41 = r5 + 1 - length;
let r0 = r41 - 1;
let r44 = "";
let r45 = "";
if (r41) {
do {
r44 = r44 + "0";
const r3 = r0 - 1;
r46 = r0;
r0 = r3;
r45 = r44;
} while (r46);
}
let r47 = a2;
let r48 = void 0;
if (a2) {
const r50 = a2 - r5 - 1;
r47 = r50 > 0;
r48 = r50;
}
const r51 = r14 + r45;
r34 = r51;
if (r47) {
const r52 = +r48;
let r53 = r52 - 1;
let r54 = "";
let r55 = "";
if (r52) {
do {
r54 = r54 + "0";
r56 = +r53;
r53 = r56 - 1;
r55 = r54;
} while (r56);
}
r34 = HermesInternal.concat.call(r51, ".", r55);
}
} else {
const r25 = r5 + 1;
const r16 = r25 < length ? r14.slice(0, r25) + "." + r14.slice(r25) : r14;
let r13 = a2;
let r32 = r25;
if (a2) {
const r33 = a2 - length;
r13 = r33 > 0;
r32 = r33;
}
r34 = r16;
if (r13) {
const r35 = r25 === length ? r16 + "." : r16;
const r36 = +r32;
let r18 = r36 - 1;
let r37 = "";
let r38 = "";
if (r36) {
do {
r37 = r37 + "0";
r39 = +r18;
r18 = r39 - 1;
r38 = r37;
} while (r39);
}
r34 = r35 + r38;
}
}
return a0.s < 0 ? "-" + r34 : r34;
};
config = function config(a0) {
"use strict";
let r2;
if (a0 && typeof a0 === "object") {
let r0 = 0;
const r12 = ["precision", 1, 1000000000, "rounding", 0, 8, "toExpNeg", -Infinity, 0, "toExpPos", 0, Infinity];
if (0 < r12.length) {
do {
L9: {
const r13 = r12[r0];
const r26 = a0[r13];
r2 = r0;
if (r26 !== void 0) {
if (floor(r26) === r26 && r26 >= r12[r2 + 1] && r26 <= r12[r2 + 2]) {
this[r13] = r26;
break L9;
}
throw Error(c3508_4 + r13 + ": " + r26);
}
}
r0 = r2 + 3;
} while (r0 < r12.length);
}
const LN10 = a0.LN10;
if (LN10 !== void 0) {
if (LN10 != Math.LN10) {
throw Error(c3508_4 + "LN10: " + LN10);
}
this.LN10 = new this(LN10);
}
return this;
}
throw Error("[DecimalError] Object expected");
};
const r9 = {
precision: 20,
rounding: 4,
toExpNeg: -7,
toExpPos: 21,
LN10: "2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"
};
env3508[1] = r9;
env3508[2] = true;
c3508_3 = "[DecimalError] ";
c3508_4 = "[DecimalError] Invalid argument: ";
c3508_5 = "[DecimalError] Exponent out of range: ";
const floor2 = Math.floor;
floor = floor2;
pow = Math.pow;
c3508_8 = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
c3508_9 = 10000000;
c3508_10 = floor2(1286742750677284.5);
const prototype = {};
c3508_11 = prototype;
const abs = function() {
"use strict";
const constructor = new this.constructor(this);
if (constructor.s) {
constructor.s = 1;
}
return constructor;
};
prototype.abs = abs;
prototype.absoluteValue = abs;
const cmp = function(a0) {
"use strict";
const constructor = new this.constructor(a0);
if (this.s !== constructor.s) {
return this.s || -constructor.s;
}
if (this.e !== constructor.e) {
return this.e > constructor.e ^ this.s < 0 ? 1 : -1;
}
const length = this.d.length;
const length2 = constructor.d.length;
let r12 = length2;
if (length < r12) {
r12 = length;
}
const r6 = 0 < r12;
let r0 = 0;
if (r6) {
do {
const r14 = this.d[r0];
const r27 = constructor.d[r0];
const r2 = r0;
if (r14 !== r27) {
return this.d[r2] > constructor.d[r2] ^ this.s < 0 ? 1 : -1;
}
r0 = r2 + 1;
} while (r0 < r12);
}
return length !== length2 ? length > length2 ^ this.s < 0 ? 1 : -1 : 0;
};
prototype.cmp = cmp;
prototype.comparedTo = cmp;
const dp = function() {
"use strict";
let r17;
const r2 = this.d.length - 1;
const r6 = 7 * (r2 - this.e);
let r13 = this.d[r2];
let r14 = r6;
if (r13) {
const r15 = r13 % 10;
let r16 = r6;
r14 = r16;
if (r15 === 0) {
do {
r16 = r16 - 1;
const r1 = r13 / 10;
r17 = r1 % 10;
r13 = r1;
r14 = r16;
} while (r17 === 0);
}
}
return r14 < 0 ? 0 : r14;
};
prototype.dp = dp;
prototype.decimalPlaces = dp;
const div = function(a0) {
"use strict";
return c3508_14(this, new this.constructor(a0));
};
prototype.div = div;
prototype.dividedBy = div;
const idiv = function(a0) {
"use strict";
const constructor = this.constructor;
const r17 = c3508_14(this, new constructor(a0), 0, 1);
round(r17, constructor.precision);
return r17;
};
prototype.idiv = idiv;
prototype.dividedToIntegerBy = idiv;
const eq = function(a0) {
"use strict";
return !this.cmp(a0);
};
prototype.eq = eq;
prototype.equals = eq;
prototype.exponent = function() {
"use strict";
let r0 = 7 * this.e;
let r9 = this.d[0];
let r10 = r0;
if (r9 >= 10) {
do {
r0 = r0 + 1;
r9 = r9 / 10;
r10 = r0;
} while (10 <= r9);
}
return r10;
};
const gt = function(a0) {
"use strict";
return this.cmp(a0) > 0;
};
prototype.gt = gt;
prototype.greaterThan = gt;
const gte = function(a0) {
"use strict";
return this.cmp(a0) >= 0;
};
prototype.gte = gte;
prototype.greaterThanOrEqualTo = gte;
const isint = function() {
"use strict";
return this.e > this.d.length - 2;
};
prototype.isint = isint;
prototype.isInteger = isint;
const isneg = function() {
"use strict";
return this.s < 0;
};
prototype.isneg = isneg;
prototype.isNegative = isneg;
const ispos = function() {
"use strict";
return this.s > 0;
};
prototype.ispos = ispos;
prototype.isPositive = ispos;
prototype.isZero = function() {
"use strict";
return this.s === 0;
};
const lt = function(a0) {
"use strict";
return this.cmp(a0) < 0;
};
prototype.lt = lt;
prototype.lessThan = lt;
const lte = function(a0) {
"use strict";
return this.cmp(a0) < 1;
};
prototype.lte = lte;
prototype.lessThanOrEqualTo = lte;
const log = function(a0) {
"use strict";
let r10, r11, r40, constructor, precision;
L5: {
constructor = this.constructor;
precision = constructor.precision;
r10 = precision + 5;
if (a0 !== void 0) {
const r17 = new constructor(a0);
if (!(r17.s < 1)) {
const r21 = r17.eq(c3508_0);
r11 = r17;
if (!r21) {
break L5;
}
}
throw Error("[DecimalError] NaN");
}
r11 = new constructor(10);
}
if (this.s < 1) {
throw Error(c3508_3 + (this.s ? "NaN" : "-Infinity"));
}
if (this.eq(c3508_0)) {
r40 = new constructor(0);
} else {
env3508[2] = false;
r40 = c3508_14(ln(this, r10), ln(r11, r10), r10);
env3508[2] = true;
round(r40, precision);
}
return r40;
};
prototype.log = log;
prototype.logarithm = log;
const sub = function(a0) {
"use strict";
let r15;
const constructor = new this.constructor(a0);
if (this.s == constructor.s) {
r15 = subtract(this, constructor);
} else {
constructor.s = -constructor.s;
r15 = add(this, constructor);
}
return r15;
};
prototype.sub = sub;
prototype.minus = sub;
const mod = function(a0) {
"use strict";
let r26;
const constructor = this.constructor;
const precision = constructor.precision;
const r8 = new constructor(a0);
if (r8.s) {
if (this.s) {
env3508[2] = false;
const r35 = c3508_14(this, r8, 0, 1).times(r8);
env3508[2] = true;
r26 = this.minus(r35);
} else {
r26 = new constructor(this);
round(r26, precision);
}
return r26;
}
throw Error("[DecimalError] NaN");
};
prototype.mod = mod;
prototype.modulo = mod;
const exp2 = function() {
"use strict";
return exp(this);
};
prototype.exp = exp2;
prototype.naturalExponential = exp2;
const ln2 = function() {
"use strict";
return ln(this);
};
prototype.ln = ln2;
prototype.naturalLogarithm = ln2;
const neg = function() {
"use strict";
const constructor = new this.constructor(this);
constructor.s = -constructor.s || 0;
return constructor;
};
prototype.neg = neg;
prototype.negated = neg;
const add2 = function(a0) {
"use strict";
let r15;
const constructor = new this.constructor(a0);
if (this.s == constructor.s) {
r15 = add(this, constructor);
} else {
constructor.s = -constructor.s;
r15 = subtract(this, constructor);
}
return r15;
};
prototype.add = add2;
prototype.plus = add2;
const sd = function(a0) {
"use strict";
let r29;
if (a0 !== void 0 && a0 !== !!a0 && a0 !== 1 && a0 !== 0) {
throw Error(c3508_4 + a0);
}
let r17 = 7 * this.e;
let r19 = this.d[0];
let r6 = r17;
if (r19 >= 10) {
do {
r17 = r17 + 1;
r19 = r19 / 10;
r6 = r17;
} while (10 <= r19);
}
const r22 = this.d.length - 1;
const r7 = 7 * r22 + 1;
let r25 = this.d[r22];
let r26 = r7;
if (r25) {
const r27 = r25 % 10;
let r1 = r7;
let r28 = r1;
if (r27 === 0) {
do {
r1 = r1 - 1;
const r4 = r25 / 10;
r29 = r4 % 10;
r25 = r4;
r28 = r1;
} while (r29 === 0);
}
let r31 = this.d[0];
let r32 = r28;
r26 = r32;
if (r31 >= 10) {
do {
r32 = r32 + 1;
r31 = r31 / 10;
r26 = r32;
} while (10 <= r31);
}
}
let r33 = r26;
if (a0) {
const r34 = r6 + 1;
r33 = r26;
if (r33 < r34) {
r33 = r34;
}
}
return r33;
};
prototype.sd = sd;
prototype.precision = sd;
const sqrt = function() {
"use strict";
let r18, r66, r95;
const constructor = this.constructor;
if (this.s < 1) {
if (this.s) {
throw Error("[DecimalError] NaN");
}
return new constructor(0);
}
let r29 = 7 * this.e;
let r31 = this.d[0];
let r3 = r29;
if (r31 >= 10) {
do {
r29 = r29 + 1;
r31 = r31 / 10;
r3 = r29;
} while (10 <= r31);
}
env3508[2] = false;
const r34 = Math.sqrt(+this);
if (r34 != 0 && r34 != Infinity) {
r18 = new constructor(r34.toString());
} else {
const r15 = digitsToString(this.d);
const r49 = Math.sqrt((r15.length + r3) % 2 === 0 ? r15 + "0" : r15);
const r54 = floor((r3 + 1) / 2);
let r55 = r3 < 0;
if (!(r3 < 0)) {
r55 = r3 % 2;
}
const r56 = r54 - r55;
if (r49 == Infinity) {
r66 = "1e" + r56;
} else {
const r59 = r49.toExponential();
r66 = r59.slice(0, r59.indexOf("e") + 1) + r56;
}
r18 = new constructor(r66);
}
const precision = constructor.precision;
const r17 = precision + 3;
let r78 = r17;
while (true) {
const r83 = r18.plus(c3508_14(this, r18, r78 + 2)).times(0.5);
const r87 = digitsToString(r18.d).slice(0, r78);
const r23 = digitsToString(r83.d);
const r90 = r23.slice(0, r78);
const r91 = r78;
const r22 = r18;
r78 = r91;
r18 = r83;
if (r87 === r90) {
L22: {
const r94 = r23.slice(r91 - 3, r91 + 1);
if (r17 == r91 && r94 == "4999") {
round(r22, precision + 1, 0);
const r102 = r22.times(r22).eq(this);
r95 = r22;
if (r102) {
break L22;
}
} else {
r95 = r83;
if (r94 != "9999") {
break L22;
}
}
r78 = r91 + 4;
r18 = r83;
continue;
}
env3508[2] = true;
round(r95, precision);
return r95;
}
}
};
prototype.sqrt = sqrt;
prototype.squareRoot = sqrt;
const mul = function(a0) {
"use strict";
let r48, r70, r73;
const constructor = this.constructor;
const r18 = this.d;
const r27 = new constructor(a0);
const r12 = r27.d;
if (this.s && r27.s) {
r27.s = r27.s * this.s;
const r39 = this.e + r27.e;
const length = r18.length;
const length2 = r12.length;
let r17 = r12;
let r16 = r18;
let r14 = length2;
let r15 = length;
if (r15 < length2) {
r17 = r18;
r16 = r12;
r14 = length;
r15 = length2;
}
const r42 = [];
const r43 = r15 + r14;
const r44 = +r43;
let r45 = r44 - 1;
if (r44) {
do {
r42.push(0);
r48 = +r45;
r45 = r48 - 1;
} while (r48);
}
let r50 = r14 - 1;
let r6 = void 0;
while (r50 >= 0) {
let r20 = r15 + r50;
const r51 = r50;
let r1 = 0;
let r2 = 0;
let r19 = r20;
while (r19 > r51) {
const r55 = r42[r20] + r17[r51] * r16[r20 - r51 - 1] + r1;
const r56 = +r20;
r20 = r56 - 1;
r42[r56] = r55 % c3508_9 | 0;
r1 = r55 / c3508_9 | 0;
r2 = r1;
r19 = r20;
}
r42[r19] = (r42[r19] + r2) % c3508_9 | 0;
r50 = r51 - 1;
r6 = r2;
}
let r65 = r43 - 1;
if (!r42[r65]) {
do {
r42.pop();
const r69 = r65 - 1;
r70 = r42[r69];
r65 = r69;
} while (!r70);
}
if (r6) {
r73 = r39 + 1;
} else {
r42.shift();
r73 = r39;
}
r27.d = r42;
r27.e = r73;
if (env3508[2]) {
round(r27, constructor.precision);
}
return r27;
}
return new constructor(0);
};
prototype.mul = mul;
prototype.times = mul;
const todp = function(a0, a1) {
"use strict";
let r12, r20;
L14: {
const constructor = this.constructor;
r20 = new constructor(this);
if (a0 !== void 0) {
if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) {
L10: {
if (a1 !== void 0) {
if (a1 === ~~a1 && !(a1 < 0)) {
r12 = a1;
if (!(a1 > 8)) {
break L10;
}
}
throw Error(c3508_4 + a1);
}
r12 = constructor.rounding;
}
let r0 = 7 * r20.e;
let r34 = r20.d[0];
let r36 = r0;
if (r34 >= 10) {
do {
r0 = r0 + 1;
r34 = r34 / 10;
r36 = r0;
} while (10 <= r34);
}
round(r20, a0 + r36 + 1, r12);
break L14;
}
throw Error(c3508_4 + a0);
}
}
return r20;
};
prototype.todp = todp;
prototype.toDecimalPlaces = todp;
prototype.toExponential = function(a0, a1) {
"use strict";
let r11, r33;
L13: {
const constructor = this.constructor;
if (a0 !== void 0) {
if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) {
L10: {
if (a1 !== void 0) {
if (a1 === ~~a1 && !(a1 < 0)) {
r11 = a1;
if (!(a1 > 8)) {
break L10;
}
}
throw Error(c3508_4 + a1);
}
r11 = constructor.rounding;
}
const r28 = new constructor(this);
round(r28, a0 + 1, r11);
r33 = toString(r28, true, a0 + 1);
break L13;
}
throw Error(c3508_4 + a0);
}
r33 = toString(this, true);
}
return r33;
};
prototype.toFixed = function(a0, a1) {
"use strict";
let r17, r54;
L20: {
const constructor = this.constructor;
if (a0 !== void 0) {
if (a0 === ~~a0 && !(a0 < 0) && !(a0 > 1000000000)) {
L10: {
if (a1 !== void 0) {
if (a1 === ~~a1 && !(a1 < 0)) {
r17 = a1;
if (!(a1 > 8)) {
break L10;
}
}
throw Error(c3508_4 + a1);
}
r17 = constructor.rounding;
}
const r34 = new constructor(this);
let r1 = 7 * this.e;
let r36 = this.d[0];
let r0 = r1;
if (r36 >= 10) {
do {
r1 = r1 + 1;
r36 = r36 / 10;
r0 = r1;
} while (10 <= r36);
}
round(r34, a0 + r0 + 1, r17);
const r43 = r34.abs();
let r45 = 7 * r34.e;
let r47 = r34.d[0];
let r48 = r45;
if (r47 >= 10) {
do {
r45 = r45 + 1;
r47 = r47 / 10;
r48 = r45;
} while (10 <= r47);
}
const r51 = toString(r43, false, a0 + r48 + 1);
const r53 = this.isneg();
r54 = r51;
if (!r53) {
break L20;
}
const isZero = this.isZero();
r54 = r51;
if (isZero) {
break L20;
}
r54 = "-" + r51;
break L20;
}
throw Error(c3508_4 + a0);
}
r54 = toString(this);
}
return r54;
};
const toint = function() {
"use strict";
const constructor = this.constructor;
const r17 = new constructor(this);
let r0 = 7 * this.e;
let r19 = this.d[0];
let r20 = r0;
if (r19 >= 10) {
do {
r0 = r0 + 1;
r19 = r19 / 10;
r20 = r0;
} while (10 <= r19);
}
round(r17, r20 + 1, constructor.rounding);
return r17;
};
prototype.toint = toint;
prototype.toInteger = toint;
prototype.toNumber = function() {
"use strict";
return +this;
};
const pow2 = function(a0) {
"use strict";
let r115;
const constructor = this.constructor;
const r26 = new constructor(a0);
const r1 = +r26;
if (r26.s) {
const r36 = new constructor(this);
if (r36.s) {
if (r36.eq(c3508_0)) {
return r36;
}
const precision = constructor.precision;
if (r26.eq(c3508_0)) {
round(r36, precision);
return r36;
}
const r16 = r26.e;
let r2 = r26.d.length - 1;
const r50 = r16 >= r2;
const r51 = r36.s;
if (r50) {
let r0 = r1;
if (r0 < 0) {
r0 = -r1;
}
r2 = r0;
if (r2 <= 9007199254740991) {
const r80 = new constructor(c3508_0);
const length4 = Math.ceil(precision / 7 + 4);
env3508[2] = false;
const r91 = r0 % 2;
let r92 = r80;
if (r91) {
const r94 = r80.times(r36);
const r95 = r94.d;
const length3 = r95.length;
r92 = r94;
if (length3 > length4) {
r95.length = length4;
r92 = r94;
}
}
let r100 = floor(r0 / 2);
let r101 = r92;
let r102 = r36;
let r103 = r101;
while (r100 !== 0) {
const r19 = r102.times(r102);
const r104 = r19.d;
const length = r104.length;
const r21 = r101;
const r20 = r100;
if (length > length4) {
r104.length = length4;
}
const r105 = r20 % 2;
let r106 = r21;
if (r105) {
const r108 = r21.times(r19);
const r109 = r108.d;
const length2 = r109.length;
r106 = r108;
if (length2 > length4) {
r109.length = length4;
r106 = r108;
}
}
r100 = floor(r20 / 2);
r101 = r106;
r102 = r19;
r103 = r101;
}
env3508[2] = true;
if (r26.s < 0) {
r115 = new constructor(c3508_0).div(r103);
} else {
round(r103, precision);
r115 = r103;
}
return r115;
}
} else if (r51 < 0) {
throw Error("[DecimalError] NaN");
}
const r58 = r51 < 0 ? 1 & r26.d[Math.max(r16, r2)] ? -1 : 1 : 1;
r36.s = 1;
env3508[2] = false;
const r72 = r26.times(ln(r36, precision + 12));
env3508[2] = true;
const r75 = exp(r72);
r75.s = r58;
return r75;
}
if (r26.s < 1) {
throw Error("[DecimalError] Infinity");
}
return r36;
}
return new constructor(c3508_0);
};
prototype.pow = pow2;
prototype.toPower = pow2;
prototype.toPrecision = function(a0, a1) {
"use strict";
let r16, r43;
L21: {
const constructor = this.constructor;
if (a0 !== void 0) {
if (a0 === ~~a0 && !(a0 < 1) && !(a0 > 1000000000)) {
L10: {
if (a1 !== void 0) {
if (a1 === ~~a1 && !(a1 < 0)) {
r16 = a1;
if (!(a1 > 8)) {
break L10;
}
}
throw Error(c3508_4 + a1);
}
r16 = constructor.rounding;
}
const r34 = new constructor(this);
round(r34, a0, r16);
let r0 = 7 * r34.e;
let r39 = r34.d[0];
let r40 = r0;
if (r39 >= 10) {
do {
r0 = r0 + 1;
r39 = r39 / 10;
r40 = r0;
} while (10 <= r39);
}
r43 = toString(r34, a0 <= r40 || r40 <= constructor.toExpNeg, a0);
break L21;
}
throw Error(c3508_4 + a0);
}
let r52 = 7 * this.e;
let r54 = this.d[0];
let r57 = r52;
if (r54 >= 10) {
do {
r52 = r52 + 1;
r54 = r54 / 10;
r57 = r52;
} while (10 <= r54);
}
r43 = toString(this, r57 <= constructor.toExpNeg || r57 >= constructor.toExpPos);
}
return r43;
};
const tosd = function(a0, a1) {
"use strict";
let r5, constructor, rounding;
L12: {
constructor = this.constructor;
if (a0 !== void 0) {
if (a0 === ~~a0 && !(a0 < 1) && !(a0 > 1000000000)) {
if (a1 === void 0) {
rounding = constructor.rounding;
r5 = a0;
break L12;
}
if (a1 === ~~a1 && !(a1 < 0)) {
r5 = a0;
rounding = a1;
if (!(a1 > 8)) {
break L12;
}
}
throw Error(c3508_4 + a1);
}
throw Error(c3508_4 + a0);
}
r5 = constructor.precision;
rounding = constructor.rounding;
}
const r33 = new constructor(this);
round(r33, r5, rounding);
return r33;
};
prototype.tosd = tosd;
prototype.toSignificantDigits = tosd;
const toJSON = function() {
"use strict";
let r0 = 7 * this.e;
let r13 = this.d[0];
let r14 = r0;
if (r13 >= 10) {
do {
r0 = r0 + 1;
r13 = r13 / 10;
r14 = r0;
} while (10 <= r13);
}
const constructor = this.constructor;
return toString(this, r14 <= constructor.toExpNeg || r14 >= constructor.toExpPos);
};
prototype.toJSON = toJSON;
prototype.val = toJSON;
prototype.valueOf = toJSON;
prototype.toString = toJSON;
c3508_14 = function(a0, a1, a2, a3) {
"use strict";
let r8, r9, r49, r78, r79, r84, r120, r136, r159, r164, r172, r173, r174, r191, r198, r201, r223, r250, r260, r265, r290, r300, r301, r313, length11, length14, length6;
const constructor = a0.constructor;
const r7 = a0.s == a1.s ? 1 : -1;
const r31 = a0.d;
const r28 = a1.d;
if (a0.s) {
if (a1.s) {
const r27 = a0.e - a1.e;
let length2 = r28.length;
const length = r31.length;
const r74 = new constructor(r7);
const r29 = [];
r74.d = r29;
const r76 = r28[0] == (r31[0] || 0);
let r15 = 0;
let r18 = 0;
if (r76) {
do {
const r11 = r15 + 1;
r78 = r28[r11];
r79 = r31[r11] || 0;
r15 = r11;
r18 = r15;
} while (r78 == r79);
}
const r81 = r28[r18] > (r31[r18] || 0) ? r27 - 1 : r27;
let r82 = a2;
if (a2 == null) {
r82 = constructor.precision;
r84 = r82;
} else {
r84 = a2;
if (a3) {
let r87 = 7 * a0.e;
let r89 = a0.d[0];
let r90 = r87;
if (r89 >= 10) {
do {
r87 = r87 + 1;
r89 = r89 / 10;
r90 = r87;
} while (10 <= r89);
}
let r92 = 7 * a1.e;
let r94 = a1.d[0];
let r95 = r92;
if (r94 >= 10) {
do {
r92 = r92 + 1;
r94 = r94 / 10;
r95 = r92;
} while (10 <= r94);
}
r84 = a2 + (r90 - r95) + 1;
}
}
if (r84 < 0) {
return new constructor(0);
}
const r103 = r84 / 7 + 2 | 0;
if (length2 == 1) {
const r306 = r28[0];
if (0 < length) {
const r307 = r103 + 1;
let r308 = r307 - 1;
let r309 = 0;
let r310 = 0;
if (r307) {
do {
let r312 = r31[r310];
r313 = r308;
const r314 = r309;
const r315 = r310;
if (!r312) {
r312 = 0;
}
const r317 = r314 * c3508_9 + r312;
r29[r315] = r317 / r306 | 0;
const r321 = r317 % r306 | 0;
const r322 = r315 + 1;
if (!(r322 < length) && !r321) {
break;
}
r308 = r313 - 1;
r309 = r321;
r310 = r322;
} while (r313);
}
}
} else {
const r16 = c3508_9 / (r28[0] + 1) | 0;
let r40 = r28;
let r108 = r31;
let r39 = length;
if (1 < r16) {
const length3 = r28.length;
const r37 = r28.slice();
const r111 = +length3;
let r112 = r111 - 1;
let r113 = 0;
let r114 = 0;
if (r111) {
do {
const r116 = r37[r112] * r16 + r113;
r37[r112] = r116 % c3508_9 | 0;
r113 = r116 / c3508_9 | 0;
r120 = +r112;
r112 = r120 - 1;
r114 = r113;
} while (r120);
}
if (r114) {
r37.unshift(r114);
}
const length4 = r31.length;
const r36 = r31.slice();
const r125 = +length4;
let r126 = r125 - 1;
let r127 = 0;
let r128 = 0;
if (r125) {
do {
const r131 = r36[r126] * r16 + r127;
r36[r126] = r131 % c3508_9 | 0;
r127 = r131 / c3508_9 | 0;
r136 = +r126;
r126 = r136 - 1;
r128 = r127;
} while (r136);
}
if (r128) {
r36.unshift(r128);
}
length2 = r37.length;
r39 = r36.length;
r40 = r37;
r108 = r36;
}
const r41 = r108.slice(0, length2);
const length5 = r41.length;
const r38 = r108;
let r142 = length5;
let r42 = r142;
while (r42 < length2) {
const r143 = +r142;
r142 = r143 + 1;
r41[r143] = 0;
r42 = r142;
}
const r145 = r40.slice();
r145.unshift(0);
const r43 = r40[0];
const r19 = r40[1] >= 5000000;
let r152 = r43;
let r153 = length2;
let r154 = r103;
let r155 = r42;
let r156 = r41;
let r157 = 0;
if (r19) {
r152 = r43 + 1;
r153 = length2;
r154 = r103;
r155 = r42;
r156 = r41;
r157 = 0;
}
do {
const r44 = r152;
const r158 = r153;
r159 = r154;
let r160 = r155;
const r161 = r156;
const r162 = r157;
if (length2 != r160) {
r8 = length2 > r160 ? 1 : -1;
} else {
const r163 = 0 < length2;
let r6 = 0;
r8 = 0;
if (r163) {
do {
const r46 = r40[r6];
const r45 = r161[r6];
const r10 = r6;
if (r46 != r45) {
r8 = r40[r10] > r161[r10] ? 1 : -1;
break;
}
const r3 = r10 + 1;
r164 = r3 < length2;
r6 = r3;
r8 = 0;
} while (r164);
}
}
if (r8 < 0) {
const r48 = r161[0];
let r179 = (length2 != r160 ? r48 * c3508_9 + (r161[1] || 0) : r48) / r44 | 0;
if (1 < r179) {
if (r179 >= c3508_9) {
r179 = 9999999;
}
const length7 = r40.length;
const r50 = r40.slice();
const r184 = +length7;
let r185 = r184 - 1;
let r0 = 0;
let r2 = 0;
if (r184) {
do {
const r187 = r50[r185] * r179 + r0;
r50[r185] = r187 % c3508_9 | 0;
r0 = r187 / c3508_9 | 0;
r191 = +r185;
r185 = r191 - 1;
r2 = r0;
} while (r191);
}
if (r2) {
r50.unshift(r2);
}
const length8 = r50.length;
const length9 = r161.length;
if (length8 != length9) {
r198 = length8 > length9 ? 1 : -1;
} else {
const r196 = 0 < length8;
let r197 = 0;
r198 = 0;
if (r196) {
do {
const r52 = r50[r197];
const r51 = r161[r197];
const r199 = r197;
if (r52 != r51) {
r198 = r50[r199] > r161[r199] ? 1 : -1;
break;
}
const r200 = r199 + 1;
r201 = r200 < length8;
r197 = r200;
r198 = 0;
} while (r201);
}
}
r160 = length9;
r49 = r50;
r9 = r179;
r8 = r198;
if (r198 === 1) {
const r208 = length2 < length8 ? r145 : r40;
const r209 = +length8;
let r210 = r209 - 1;
let r211 = 0;
if (r209) {
do {
r50[r210] = r50[r210] - r211;
const r215 = r50[r210] < r208[r210];
const r216 = r210;
const r217 = r215 ? 1 : 0;
r50[r216] = r217 * c3508_9 + r50[r216] - r208[r216];
r223 = +r216;
r210 = r223 - 1;
r211 = r217;
} while (r223);
}
const r224 = r179 - 1;
const r225 = r50[0];
r160 = length9;
r49 = r50;
r9 = r224;
r8 = r198;
if (!r225) {
const length10 = r50.length;
r160 = length9;
r49 = r50;
r9 = r224;
r8 = r198;
if (length10 > 1) {
do {
r50.shift();
const r229 = r50[0];
r160 = length9;
r49 = r50;
r9 = r224;
r8 = r198;
if (r229) {
break;
}
length11 = r50.length;
r160 = length9;
r49 = r50;
r9 = r224;
r8 = r198;
} while (length11 > 1);
}
}
}
} else {
r9 = r179;
if (r179 === 0) {
r9 = 1;
r8 = 1;
}
r49 = r40.slice();
}
if (r49.length < r160) {
r49.unshift(0);
}
const r234 = +r160;
let r235 = r234 - 1;
let r236 = 0;
if (r234) {
do {
r161[r235] = r161[r235] - r236;
const r241 = r161[r235] < r49[r235];
const r242 = r235;
const r243 = r241 ? 1 : 0;
r161[r242] = r243 * c3508_9 + r161[r242] - r49[r242];
r250 = +r242;
r235 = r250 - 1;
r236 = r243;
} while (r250);
}
if (!r161[0]) {
while (r161.length > 1) {
r161.shift();
if (r161[0]) {
break;
}
}
}
let r257 = r8 === -1;
if (r8 === -1) {
const length12 = r161.length;
if (length2 != length12) {
r260 = length2 > length12 ? 1 : -1;
} else {
const r20 = 0 < length2;
let r259 = 0;
r260 = 0;
if (r20) {
do {
const r261 = r40[r259];
const r262 = r161[r259];
const r263 = r259;
if (r261 != r262) {
r260 = r40[r263] > r161[r263] ? 1 : -1;
break;
}
const r264 = r263 + 1;
r265 = r264 < length2;
r259 = r264;
r260 = 0;
} while (r265);
}
}
r257 = r260 < 1;
r8 = r260;
r160 = length12;
}
let r272 = r9;
if (r257) {
const r273 = length2 < r160 ? r145 : r40;
const r274 = +r160;
let r275 = r274 - 1;
let r276 = 0;
if (r274) {
do {
r161[r275] = r161[r275] - r276;
const r281 = r161[r275] < r273[r275];
const r282 = r275;
const r283 = r281 ? 1 : 0;
r161[r282] = r283 * c3508_9 + r161[r282] - r273[r282];
r290 = +r282;
r275 = r290 - 1;
r276 = r283;
} while (r290);
}
const r291 = r9 + 1;
const r292 = r161[0];
r272 = r291;
if (!r292) {
const length13 = r161.length;
r272 = r291;
if (length13 > 1) {
do {
r161.shift();
const r296 = r161[0];
r272 = r291;
if (r296) {
break;
}
length14 = r161.length;
r272 = r291;
} while (length14 > 1);
}
}
}
length6 = r161.length;
r173 = r272;
r172 = r161;
r174 = r8;
} else {
length6 = r160;
r172 = r161;
r173 = 0;
r174 = r8;
if (r8 === 0) {
r172 = [0];
length6 = r160;
r173 = 1;
r174 = r8;
}
}
r29[r162] = r173;
if (r174 && r172[0]) {
const r302 = +length6;
const r303 = r38[r158] || 0;
r301 = r302 + 1;
r172[r302] = r303;
r300 = r172;
} else {
r300 = [r38[r158]];
r301 = 1;
}
const r304 = +r158;
if (!(r304 < r39) && r300[0] === void 0) {
break;
}
r157 = r162 + 1;
r153 = r304 + 1;
r154 = r159 - 1;
r152 = r44;
r155 = r301;
r156 = r300;
} while (r159);
}
if (!r29[0]) {
r29.shift();
}
r74.e = r81;
let r327 = r82;
if (a3) {
let r329 = 7 * r74.e;
let r331 = r74.d[0];
let r333 = r329;
if (r331 >= 10) {
do {
r329 = r329 + 1;
r331 = r331 / 10;
r333 = r329;
} while (10 <= r331);
}
r327 = r82 + r333 + 1;
}
round(r74, r327);
return r74;
}
throw Error("[DecimalError] Division by zero");
}
return new constructor(a0);
};
clone = function clone(a0) {
"use strict";
let env25530;
const r7 = env25530 = {
$parent: env3508
};
let r6 = a0;
const r4 = $mk104609(r7);
env25530[0] = r4;
r4.prototype = c3508_11;
r4.ROUND_UP = 0;
r4.ROUND_DOWN = 1;
r4.ROUND_CEIL = 2;
r4.ROUND_FLOOR = 3;
r4.ROUND_HALF_UP = 4;
r4.ROUND_HALF_DOWN = 5;
r4.ROUND_HALF_EVEN = 6;
r4.ROUND_HALF_CEIL = 7;
r4.ROUND_HALF_FLOOR = 8;
r4.clone = clone;
const set = config;
r4.set = set;
r4.config = set;
if (a0 === void 0) {
r6 = {};
}
if (r6) {
const r19 = ["precision", "rounding", "toExpNeg", "toExpPos", "LN10"];
const r21 = 0 < r19.length;
let r22 = 0;
if (r21) {
do {
const hasOwnProperty = r6.hasOwnProperty;
const r9 = r19[r22];
const r24 = hasOwnProperty.call(r6, r9);
const r25 = r22;
if (!r24) {
r6[r9] = this[r9];
}
r22 = r25 + 1;
} while (r22 < r19.length);
}
}
r4.config(r6);
return r4;
};
const r12 = env3509 = {
$parent: r5
};
const Decimal2 = $mk104609(r12);
c3509_0 = Decimal2;
Decimal2.prototype = prototype;
let r0 = 0;
Decimal2.ROUND_UP = 0;
Decimal2.ROUND_DOWN = 1;
Decimal2.ROUND_CEIL = 2;
Decimal2.ROUND_FLOOR = 3;
Decimal2.ROUND_HALF_UP = 4;
Decimal2.ROUND_HALF_DOWN = 5;
Decimal2.ROUND_HALF_EVEN = 6;
Decimal2.ROUND_HALF_CEIL = 7;
Decimal2.ROUND_HALF_FLOOR = 8;
Decimal2.clone = clone;
Decimal2.set = config;
Decimal2.config = config;
const r73 = ["precision", "rounding", "toExpNeg", "toExpPos", "LN10"];
if (0 < r73.length) {
do {
const r77 = r73[r0];
const hasOwnProperty = r9.hasOwnProperty(r77);
const r79 = r0;
if (!hasOwnProperty) {
r9[r77] = (void 0)[r77];
}
r0 = r79 + 1;
} while (r0 < r73.length);
}
Decimal2.config(r9);
env3508[1] = Decimal2;
Decimal2.Decimal = Decimal2;
Decimal2.default = Decimal2;
const r85 = {
__proto__: Decimal2.prototype
};
const r86 = Decimal2.call(r85, 1);
c3508_0 = r86 instanceof Object ? r86 : r85;
if (typeof globalThis.define === "function" && define.amd) {
define(function() {
"use strict";
return env3508[1];
});
} else if (module !== void 0 && module.exports) {
module.exports = Decimal2;
} else {
this.Decimal = Decimal2;
}