@breezystack/lamejs
Version:
Pure JavaScript MP3 Encoder
1,403 lines • 260 kB
JavaScript
var fa = {};
function Xa(w) {
return new Int8Array(w);
}
function ma(w) {
return new Int16Array(w);
}
function ba(w) {
return new Int32Array(w);
}
function ca(w) {
return new Float32Array(w);
}
function Ya(w) {
return new Float64Array(w);
}
function Sa(w) {
if (w.length == 1)
return ca(w[0]);
var Z = w[0];
w = w.slice(1);
for (var X = [], z = 0; z < Z; z++)
X.push(Sa(w));
return X;
}
function da(w) {
if (w.length == 1)
return ba(w[0]);
var Z = w[0];
w = w.slice(1);
for (var X = [], z = 0; z < Z; z++)
X.push(da(w));
return X;
}
function Aa(w) {
if (w.length == 1)
return ma(w[0]);
var Z = w[0];
w = w.slice(1);
for (var X = [], z = 0; z < Z; z++)
X.push(Aa(w));
return X;
}
function Ra(w) {
if (w.length == 1)
return new Array(w[0]);
var Z = w[0];
w = w.slice(1);
for (var X = [], z = 0; z < Z; z++)
X.push(Ra(w));
return X;
}
var xa = {};
xa.fill = function(w, Z, X, z) {
if (arguments.length == 2)
for (var u0 = 0; u0 < w.length; u0++)
w[u0] = arguments[1];
else
for (var u0 = Z; u0 < X; u0++)
w[u0] = z;
};
var W1 = {};
W1.arraycopy = function(w, Z, X, z, u0) {
for (var W = Z + u0; Z < W; )
X[z++] = w[Z++];
};
W1.out = {};
W1.out.println = function(w) {
console.log(w);
};
W1.out.printf = function() {
console.log.apply(console, arguments);
};
var se = {};
se.SQRT2 = 1.4142135623730951;
se.FAST_LOG10 = function(w) {
return Math.log10(w);
};
se.FAST_LOG10_X = function(w, Z) {
return Math.log10(w) * Z;
};
function B1(w) {
this.ordinal = w;
}
B1.short_block_allowed = new B1(0);
B1.short_block_coupled = new B1(1);
B1.short_block_dispensed = new B1(2);
B1.short_block_forced = new B1(3);
var Ma = {};
Ma.MAX_VALUE = 34028235e31;
function u1(w) {
this.ordinal = w;
}
u1.vbr_off = new u1(0);
u1.vbr_mt = new u1(1);
u1.vbr_rh = new u1(2);
u1.vbr_abr = new u1(3);
u1.vbr_mtrh = new u1(4);
u1.vbr_default = u1.vbr_mtrh;
var qa = function(w) {
}, Q0 = {
System: W1,
VbrMode: u1,
Float: Ma,
ShortBlock: B1,
Util: se,
Arrays: xa,
new_array_n: Ra,
new_byte: Xa,
new_double: Ya,
new_float: ca,
new_float_n: Sa,
new_int: ba,
new_int_n: da,
new_short: ma,
new_short_n: Aa,
assert: qa
}, ce, De;
function Da() {
if (De)
return ce;
De = 1;
var w = Q0, Z = w.System, X = w.Util, z = w.Arrays, u0 = w.new_float, W = t1();
function Q() {
var D = [
-0.1482523854003001,
32.308141959636465,
296.40344946382766,
883.1344870032432,
11113.947376231741,
1057.2713659324597,
305.7402417275812,
30.825928907280012,
/* 15 */
3.8533188138216365,
59.42900443849514,
709.5899960123345,
5281.91112291017,
-5829.66483675846,
-817.6293103748613,
-76.91656988279972,
-4.594269939176596,
0.9063471690191471,
0.1960342806591213,
-0.15466694054279598,
34.324387823855965,
301.8067566458425,
817.599602898885,
11573.795901679885,
1181.2520595540152,
321.59731579894424,
31.232021761053772,
/* 14 */
3.7107095756221318,
53.650946155329365,
684.167428119626,
5224.56624370173,
-6366.391851890084,
-908.9766368219582,
-89.83068876699639,
-5.411397422890401,
0.8206787908286602,
0.3901806440322567,
-0.16070888947830023,
36.147034243915876,
304.11815768187864,
732.7429163887613,
11989.60988270091,
1300.012278487897,
335.28490093152146,
31.48816102859945,
/* 13 */
3.373875931311736,
47.232241542899175,
652.7371796173471,
5132.414255594984,
-6909.087078780055,
-1001.9990371107289,
-103.62185754286375,
-6.104916304710272,
0.7416505462720353,
0.5805693545089249,
-0.16636367662261495,
37.751650073343995,
303.01103387567713,
627.9747488785183,
12358.763425278165,
1412.2779918482834,
346.7496836825721,
31.598286663170416,
/* 12 */
3.1598635433980946,
40.57878626349686,
616.1671130880391,
5007.833007176154,
-7454.040671756168,
-1095.7960341867115,
-118.24411666465777,
-6.818469345853504,
0.6681786379192989,
0.7653668647301797,
-0.1716176790982088,
39.11551877123304,
298.3413246578966,
503.5259106886539,
12679.589408408976,
1516.5821921214542,
355.9850766329023,
31.395241710249053,
/* 11 */
2.9164211881972335,
33.79716964664243,
574.8943997801362,
4853.234992253242,
-7997.57021486075,
-1189.7624067269965,
-133.6444792601766,
-7.7202770609839915,
0.5993769336819237,
0.9427934736519954,
-0.17645823955292173,
40.21879108166477,
289.9982036694474,
359.3226160751053,
12950.259102786438,
1612.1013903507662,
362.85067106591504,
31.045922092242872,
/* 10 */
2.822222032597987,
26.988862316190684,
529.8996541764288,
4671.371946949588,
-8535.899136645805,
-1282.5898586244496,
-149.58553632943463,
-8.643494270763135,
0.5345111359507916,
1.111140466039205,
-0.36174739330527045,
41.04429910497807,
277.5463268268618,
195.6386023135583,
13169.43812144731,
1697.6433561479398,
367.40983966190305,
30.557037410382826,
/* 9 */
2.531473372857427,
20.070154905927314,
481.50208566532336,
4464.970341588308,
-9065.36882077239,
-1373.62841526722,
-166.1660487028118,
-9.58289321133207,
0.4729647758913199,
1.268786568327291,
-0.36970682634889585,
41.393213350082036,
261.2935935556502,
12.935476055240873,
13336.131683328815,
1772.508612059496,
369.76534388639965,
29.751323653701338,
2.4023193045459172,
13.304795348228817,
430.5615775526625,
4237.0568611071185,
-9581.931701634761,
-1461.6913552409758,
-183.12733958476446,
-10.718010163869403,
0.41421356237309503,
/* tan(PI/8) */
1.414213562373095,
-0.37677560326535325,
41.619486213528496,
241.05423794991074,
-187.94665032361226,
13450.063605744153,
1836.153896465782,
369.4908799925761,
29.001847876923147,
/* 7 */
2.0714759319987186,
6.779591200894186,
377.7767837205709,
3990.386575512536,
-10081.709459700915,
-1545.947424837898,
-200.3762958015653,
-11.864482073055006,
0.3578057213145241,
1.546020906725474,
-0.3829366947518991,
41.1516456456653,
216.47684307105183,
-406.1569483347166,
13511.136535077321,
1887.8076599260432,
367.3025214564151,
28.136213436723654,
/* 6 */
1.913880671464418,
0.3829366947518991,
323.85365704338597,
3728.1472257487526,
-10561.233882199509,
-1625.2025997821418,
-217.62525175416,
-13.015432208941645,
0.3033466836073424,
1.66293922460509,
-0.5822628872992417,
40.35639251440489,
188.20071124269245,
-640.2706748618148,
13519.21490106562,
1927.6022433578062,
362.8197642637487,
26.968821921868447,
/* 5 */
1.7463817695935329,
-5.62650678237171,
269.3016715297017,
3453.386536448852,
-11016.145278780888,
-1698.6569643425091,
-234.7658734267683,
-14.16351421663124,
0.2504869601913055,
1.76384252869671,
-0.5887180101749253,
39.23429103868072,
155.76096234403798,
-889.2492977967378,
13475.470561874661,
1955.0535223723712,
356.4450994756727,
25.894952980042156,
/* 4 */
1.5695032905781554,
-11.181939564328772,
214.80884394039484,
3169.1640829158237,
-11443.321309975563,
-1765.1588461316153,
-251.68908574481912,
-15.49755935939164,
0.198912367379658,
1.847759065022573,
-0.7912582233652842,
37.39369355329111,
119.699486012458,
-1151.0956593239027,
13380.446257078214,
1970.3952110853447,
348.01959814116185,
24.731487364283044,
/* 3 */
1.3850130831637748,
-16.421408865300393,
161.05030052864092,
2878.3322807850063,
-11838.991423510031,
-1823.985884688674,
-268.2854986386903,
-16.81724543849939,
0.1483359875383474,
1.913880671464418,
-0.7960642926861912,
35.2322109610459,
80.01928065061526,
-1424.0212633405113,
13235.794061869668,
1973.804052543835,
337.9908651258184,
23.289159354463873,
1.3934255946442087,
-21.099669467133474,
108.48348407242611,
2583.700758091299,
-12199.726194855148,
-1874.2780658979746,
-284.2467154529415,
-18.11369784385905,
0.09849140335716425,
1.961570560806461,
-0.998795456205172,
32.56307803611191,
36.958364584370486,
-1706.075448829146,
13043.287458812016,
1965.3831106103316,
326.43182772364605,
22.175018750622293,
1.198638339011324,
-25.371248002043963,
57.53505923036915,
2288.41886619975,
-12522.674544337233,
-1914.8400385312243,
-299.26241273417224,
-19.37805630698734,
0.04912684976946725,
1.990369453344394,
0.035780907 * X.SQRT2 * 0.5 / 2384e-9,
0.017876148 * X.SQRT2 * 0.5 / 2384e-9,
3134727e-9 * X.SQRT2 * 0.5 / 2384e-9,
2457142e-9 * X.SQRT2 * 0.5 / 2384e-9,
971317e-9 * X.SQRT2 * 0.5 / 2384e-9,
218868e-9 * X.SQRT2 * 0.5 / 2384e-9,
101566e-9 * X.SQRT2 * 0.5 / 2384e-9,
13828e-9 * X.SQRT2 * 0.5 / 2384e-9,
12804.797818791945,
1945.5515939597317,
313.4244966442953,
20.801593959731544,
1995.1556208053692,
9.000838926174497,
-29.20218120805369
/* 2.384e-06/2.384e-06 */
], g = 12, f0 = 36, A = [
[
2382191739347913e-28,
6423305872147834e-28,
9400849094049688e-28,
1122435026096556e-27,
1183840321267481e-27,
1122435026096556e-27,
940084909404969e-27,
6423305872147839e-28,
2382191739347918e-28,
5456116108943412e-27,
4878985199565852e-27,
4240448995017367e-27,
3559909094758252e-27,
2858043359288075e-27,
2156177623817898e-27,
1475637723558783e-27,
8371015190102974e-28,
2599706096327376e-28,
-5456116108943412e-27,
-4878985199565852e-27,
-4240448995017367e-27,
-3559909094758252e-27,
-2858043359288076e-27,
-2156177623817898e-27,
-1475637723558783e-27,
-8371015190102975e-28,
-2599706096327376e-28,
-2382191739347923e-28,
-6423305872147843e-28,
-9400849094049696e-28,
-1122435026096556e-27,
-1183840321267481e-27,
-1122435026096556e-27,
-9400849094049694e-28,
-642330587214784e-27,
-2382191739347918e-28
],
[
2382191739347913e-28,
6423305872147834e-28,
9400849094049688e-28,
1122435026096556e-27,
1183840321267481e-27,
1122435026096556e-27,
9400849094049688e-28,
6423305872147841e-28,
2382191739347918e-28,
5456116108943413e-27,
4878985199565852e-27,
4240448995017367e-27,
3559909094758253e-27,
2858043359288075e-27,
2156177623817898e-27,
1475637723558782e-27,
8371015190102975e-28,
2599706096327376e-28,
-5461314069809755e-27,
-4921085770524055e-27,
-4343405037091838e-27,
-3732668368707687e-27,
-3093523840190885e-27,
-2430835727329465e-27,
-1734679010007751e-27,
-974825365660928e-27,
-2797435120168326e-28,
0,
0,
0,
0,
0,
0,
-2283748241799531e-28,
-4037858874020686e-28,
-2146547464825323e-28
],
[
0.1316524975873958,
/* win[SHORT_TYPE] */
0.414213562373095,
0.7673269879789602,
1.091308501069271,
/* tantab_l */
1.303225372841206,
1.56968557711749,
1.920982126971166,
2.414213562373094,
3.171594802363212,
4.510708503662055,
7.595754112725146,
22.90376554843115,
0.984807753012208,
/* cx */
0.6427876096865394,
0.3420201433256688,
0.9396926207859084,
-0.1736481776669303,
-0.7660444431189779,
0.8660254037844387,
0.5,
-0.5144957554275265,
/* ca */
-0.4717319685649723,
-0.3133774542039019,
-0.1819131996109812,
-0.09457419252642064,
-0.04096558288530405,
-0.01419856857247115,
-0.003699974673760037,
0.8574929257125442,
/* cs */
0.8817419973177052,
0.9496286491027329,
0.9833145924917901,
0.9955178160675857,
0.9991605581781475,
0.999899195244447,
0.9999931550702802
],
[
0,
0,
0,
0,
0,
0,
2283748241799531e-28,
4037858874020686e-28,
2146547464825323e-28,
5461314069809755e-27,
4921085770524055e-27,
4343405037091838e-27,
3732668368707687e-27,
3093523840190885e-27,
2430835727329466e-27,
1734679010007751e-27,
974825365660928e-27,
2797435120168326e-28,
-5456116108943413e-27,
-4878985199565852e-27,
-4240448995017367e-27,
-3559909094758253e-27,
-2858043359288075e-27,
-2156177623817898e-27,
-1475637723558782e-27,
-8371015190102975e-28,
-2599706096327376e-28,
-2382191739347913e-28,
-6423305872147834e-28,
-9400849094049688e-28,
-1122435026096556e-27,
-1183840321267481e-27,
-1122435026096556e-27,
-9400849094049688e-28,
-6423305872147841e-28,
-2382191739347918e-28
]
], m = A[W.SHORT_TYPE], O = A[W.SHORT_TYPE], s0 = A[W.SHORT_TYPE], K = A[W.SHORT_TYPE], t0 = [
0,
1,
16,
17,
8,
9,
24,
25,
4,
5,
20,
21,
12,
13,
28,
29,
2,
3,
18,
19,
10,
11,
26,
27,
6,
7,
22,
23,
14,
15,
30,
31
];
function U(u, d, e) {
for (var l = 10, M = d + 238 - 14 - 286, p = -15; p < 0; p++) {
var H, B, I;
H = D[l + -10], B = u[M + -224] * H, I = u[d + 224] * H, H = D[l + -9], B += u[M + -160] * H, I += u[d + 160] * H, H = D[l + -8], B += u[M + -96] * H, I += u[d + 96] * H, H = D[l + -7], B += u[M + -32] * H, I += u[d + 32] * H, H = D[l + -6], B += u[M + 32] * H, I += u[d + -32] * H, H = D[l + -5], B += u[M + 96] * H, I += u[d + -96] * H, H = D[l + -4], B += u[M + 160] * H, I += u[d + -160] * H, H = D[l + -3], B += u[M + 224] * H, I += u[d + -224] * H, H = D[l + -2], B += u[d + -256] * H, I -= u[M + 256] * H, H = D[l + -1], B += u[d + -192] * H, I -= u[M + 192] * H, H = D[l + 0], B += u[d + -128] * H, I -= u[M + 128] * H, H = D[l + 1], B += u[d + -64] * H, I -= u[M + 64] * H, H = D[l + 2], B += u[d + 0] * H, I -= u[M + 0] * H, H = D[l + 3], B += u[d + 64] * H, I -= u[M + -64] * H, H = D[l + 4], B += u[d + 128] * H, I -= u[M + -128] * H, H = D[l + 5], B += u[d + 192] * H, I -= u[M + -192] * H, B *= D[l + 6], H = I - B, e[30 + p * 2] = I + B, e[31 + p * 2] = D[l + 7] * H, l += 18, d--, M++;
}
{
var B, I, v0, b;
I = u[d + -16] * D[l + -10], B = u[d + -32] * D[l + -2], I += (u[d + -48] - u[d + 16]) * D[l + -9], B += u[d + -96] * D[l + -1], I += (u[d + -80] + u[d + 48]) * D[l + -8], B += u[d + -160] * D[l + 0], I += (u[d + -112] - u[d + 80]) * D[l + -7], B += u[d + -224] * D[l + 1], I += (u[d + -144] + u[d + 112]) * D[l + -6], B -= u[d + 32] * D[l + 2], I += (u[d + -176] - u[d + 144]) * D[l + -5], B -= u[d + 96] * D[l + 3], I += (u[d + -208] + u[d + 176]) * D[l + -4], B -= u[d + 160] * D[l + 4], I += (u[d + -240] - u[d + 208]) * D[l + -3], B -= u[d + 224], v0 = B - I, b = B + I, I = e[14], B = e[15] - I, e[31] = b + I, e[30] = v0 + B, e[15] = v0 - B, e[14] = b - I;
}
{
var a;
a = e[28] - e[0], e[0] += e[28], e[28] = a * D[l + -2 * 18 + 7], a = e[29] - e[1], e[1] += e[29], e[29] = a * D[l + -2 * 18 + 7], a = e[26] - e[2], e[2] += e[26], e[26] = a * D[l + -4 * 18 + 7], a = e[27] - e[3], e[3] += e[27], e[27] = a * D[l + -4 * 18 + 7], a = e[24] - e[4], e[4] += e[24], e[24] = a * D[l + -6 * 18 + 7], a = e[25] - e[5], e[5] += e[25], e[25] = a * D[l + -6 * 18 + 7], a = e[22] - e[6], e[6] += e[22], e[22] = a * X.SQRT2, a = e[23] - e[7], e[7] += e[23], e[23] = a * X.SQRT2 - e[7], e[7] -= e[6], e[22] -= e[7], e[23] -= e[22], a = e[6], e[6] = e[31] - a, e[31] = e[31] + a, a = e[7], e[7] = e[30] - a, e[30] = e[30] + a, a = e[22], e[22] = e[15] - a, e[15] = e[15] + a, a = e[23], e[23] = e[14] - a, e[14] = e[14] + a, a = e[20] - e[8], e[8] += e[20], e[20] = a * D[l + -10 * 18 + 7], a = e[21] - e[9], e[9] += e[21], e[21] = a * D[l + -10 * 18 + 7], a = e[18] - e[10], e[10] += e[18], e[18] = a * D[l + -12 * 18 + 7], a = e[19] - e[11], e[11] += e[19], e[19] = a * D[l + -12 * 18 + 7], a = e[16] - e[12], e[12] += e[16], e[16] = a * D[l + -14 * 18 + 7], a = e[17] - e[13], e[13] += e[17], e[17] = a * D[l + -14 * 18 + 7], a = -e[20] + e[24], e[20] += e[24], e[24] = a * D[l + -12 * 18 + 7], a = -e[21] + e[25], e[21] += e[25], e[25] = a * D[l + -12 * 18 + 7], a = e[4] - e[8], e[4] += e[8], e[8] = a * D[l + -12 * 18 + 7], a = e[5] - e[9], e[5] += e[9], e[9] = a * D[l + -12 * 18 + 7], a = e[0] - e[12], e[0] += e[12], e[12] = a * D[l + -4 * 18 + 7], a = e[1] - e[13], e[1] += e[13], e[13] = a * D[l + -4 * 18 + 7], a = e[16] - e[28], e[16] += e[28], e[28] = a * D[l + -4 * 18 + 7], a = -e[17] + e[29], e[17] += e[29], e[29] = a * D[l + -4 * 18 + 7], a = X.SQRT2 * (e[2] - e[10]), e[2] += e[10], e[10] = a, a = X.SQRT2 * (e[3] - e[11]), e[3] += e[11], e[11] = a, a = X.SQRT2 * (-e[18] + e[26]), e[18] += e[26], e[26] = a - e[18], a = X.SQRT2 * (-e[19] + e[27]), e[19] += e[27], e[27] = a - e[19], a = e[2], e[19] -= e[3], e[3] -= a, e[2] = e[31] - a, e[31] += a, a = e[3], e[11] -= e[19], e[18] -= a, e[3] = e[30] - a, e[30] += a, a = e[18], e[27] -= e[11], e[19] -= a, e[18] = e[15] - a, e[15] += a, a = e[19], e[10] -= a, e[19] = e[14] - a, e[14] += a, a = e[10], e[11] -= a, e[10] = e[23] - a, e[23] += a, a = e[11], e[26] -= a, e[11] = e[22] - a, e[22] += a, a = e[26], e[27] -= a, e[26] = e[7] - a, e[7] += a, a = e[27], e[27] = e[6] - a, e[6] += a, a = X.SQRT2 * (e[0] - e[4]), e[0] += e[4], e[4] = a, a = X.SQRT2 * (e[1] - e[5]), e[1] += e[5], e[5] = a, a = X.SQRT2 * (e[16] - e[20]), e[16] += e[20], e[20] = a, a = X.SQRT2 * (e[17] - e[21]), e[17] += e[21], e[21] = a, a = -X.SQRT2 * (e[8] - e[12]), e[8] += e[12], e[12] = a - e[8], a = -X.SQRT2 * (e[9] - e[13]), e[9] += e[13], e[13] = a - e[9], a = -X.SQRT2 * (e[25] - e[29]), e[25] += e[29], e[29] = a - e[25], a = -X.SQRT2 * (e[24] + e[28]), e[24] -= e[28], e[28] = a - e[24], a = e[24] - e[16], e[24] = a, a = e[20] - a, e[20] = a, a = e[28] - a, e[28] = a, a = e[25] - e[17], e[25] = a, a = e[21] - a, e[21] = a, a = e[29] - a, e[29] = a, a = e[17] - e[1], e[17] = a, a = e[9] - a, e[9] = a, a = e[25] - a, e[25] = a, a = e[5] - a, e[5] = a, a = e[21] - a, e[21] = a, a = e[13] - a, e[13] = a, a = e[29] - a, e[29] = a, a = e[1] - e[0], e[1] = a, a = e[16] - a, e[16] = a, a = e[17] - a, e[17] = a, a = e[8] - a, e[8] = a, a = e[9] - a, e[9] = a, a = e[24] - a, e[24] = a, a = e[25] - a, e[25] = a, a = e[4] - a, e[4] = a, a = e[5] - a, e[5] = a, a = e[20] - a, e[20] = a, a = e[21] - a, e[21] = a, a = e[12] - a, e[12] = a, a = e[13] - a, e[13] = a, a = e[28] - a, e[28] = a, a = e[29] - a, e[29] = a, a = e[0], e[0] += e[31], e[31] -= a, a = e[1], e[1] += e[30], e[30] -= a, a = e[16], e[16] += e[15], e[15] -= a, a = e[17], e[17] += e[14], e[14] -= a, a = e[8], e[8] += e[23], e[23] -= a, a = e[9], e[9] += e[22], e[22] -= a, a = e[24], e[24] += e[7], e[7] -= a, a = e[25], e[25] += e[6], e[6] -= a, a = e[4], e[4] += e[27], e[27] -= a, a = e[5], e[5] += e[26], e[26] -= a, a = e[20], e[20] += e[11], e[11] -= a, a = e[21], e[21] += e[10], e[10] -= a, a = e[12], e[12] += e[19], e[19] -= a, a = e[13], e[13] += e[18], e[18] -= a, a = e[28], e[28] += e[3], e[3] -= a, a = e[29], e[29] += e[2], e[2] -= a;
}
}
function R(u, d) {
for (var e = 0; e < 3; e++) {
var l, M, p, H, B, I;
H = u[d + 2 * 3] * A[W.SHORT_TYPE][0] - u[d + 5 * 3], l = u[d + 0 * 3] * A[W.SHORT_TYPE][2] - u[d + 3 * 3], M = H + l, p = H - l, H = u[d + 5 * 3] * A[W.SHORT_TYPE][0] + u[d + 2 * 3], l = u[d + 3 * 3] * A[W.SHORT_TYPE][2] + u[d + 0 * 3], B = H + l, I = -H + l, l = (u[d + 1 * 3] * A[W.SHORT_TYPE][1] - u[d + 4 * 3]) * 2069978111953089e-26, H = (u[d + 4 * 3] * A[W.SHORT_TYPE][1] + u[d + 1 * 3]) * 2069978111953089e-26, u[d + 3 * 0] = M * 190752519173728e-25 + l, u[d + 3 * 5] = -B * 190752519173728e-25 + H, p = p * 0.8660254037844387 * 1907525191737281e-26, B = B * 0.5 * 1907525191737281e-26 + H, u[d + 3 * 1] = p - B, u[d + 3 * 2] = p + B, M = M * 0.5 * 1907525191737281e-26 - l, I = I * 0.8660254037844387 * 1907525191737281e-26, u[d + 3 * 3] = M + I, u[d + 3 * 4] = M - I, d++;
}
}
function o(u, d, e) {
var l, M;
{
var p, H, B, I, v0, b, a, S;
p = e[17] - e[9], B = e[15] - e[11], I = e[14] - e[12], v0 = e[0] + e[8], b = e[1] + e[7], a = e[2] + e[6], S = e[3] + e[5], u[d + 17] = v0 + a - S - (b - e[4]), M = (v0 + a - S) * O[12 + 7] + (b - e[4]), l = (p - B - I) * O[12 + 6], u[d + 5] = l + M, u[d + 6] = l - M, H = (e[16] - e[10]) * O[12 + 6], b = b * O[12 + 7] + e[4], l = p * O[12 + 0] + H + B * O[12 + 1] + I * O[12 + 2], M = -v0 * O[12 + 4] + b - a * O[12 + 5] + S * O[12 + 3], u[d + 1] = l + M, u[d + 2] = l - M, l = p * O[12 + 1] - H - B * O[12 + 2] + I * O[12 + 0], M = -v0 * O[12 + 5] + b - a * O[12 + 3] + S * O[12 + 4], u[d + 9] = l + M, u[d + 10] = l - M, l = p * O[12 + 2] - H + B * O[12 + 0] - I * O[12 + 1], M = v0 * O[12 + 3] - b + a * O[12 + 4] - S * O[12 + 5], u[d + 13] = l + M, u[d + 14] = l - M;
}
{
var L, V, N, P, E, i, s, r;
L = e[8] - e[0], N = e[6] - e[2], P = e[5] - e[3], E = e[17] + e[9], i = e[16] + e[10], s = e[15] + e[11], r = e[14] + e[12], u[d + 0] = E + s + r + (i + e[13]), l = (E + s + r) * O[12 + 7] - (i + e[13]), M = (L - N + P) * O[12 + 6], u[d + 11] = l + M, u[d + 12] = l - M, V = (e[7] - e[1]) * O[12 + 6], i = e[13] - i * O[12 + 7], l = E * O[12 + 3] - i + s * O[12 + 4] + r * O[12 + 5], M = L * O[12 + 2] + V + N * O[12 + 0] + P * O[12 + 1], u[d + 3] = l + M, u[d + 4] = l - M, l = -E * O[12 + 5] + i - s * O[12 + 3] - r * O[12 + 4], M = L * O[12 + 1] + V - N * O[12 + 2] - P * O[12 + 0], u[d + 7] = l + M, u[d + 8] = l - M, l = -E * O[12 + 4] + i - s * O[12 + 5] - r * O[12 + 3], M = L * O[12 + 0] - V + N * O[12 + 1] - P * O[12 + 2], u[d + 15] = l + M, u[d + 16] = l - M;
}
}
this.mdct_sub48 = function(u, d, e) {
for (var l = d, M = 286, p = 0; p < u.channels_out; p++) {
for (var H = 0; H < u.mode_gr; H++) {
for (var B, I = u.l3_side.tt[H][p], v0 = I.xr, b = 0, a = u.sb_sample[p][1 - H], S = 0, L = 0; L < 18 / 2; L++)
for (U(l, M, a[S]), U(l, M + 32, a[S + 1]), S += 2, M += 64, B = 1; B < 32; B += 2)
a[S - 1][B] *= -1;
for (B = 0; B < 32; B++, b += 18) {
var V = I.block_type, N = u.sb_sample[p][H], P = u.sb_sample[p][1 - H];
if (I.mixed_block_flag != 0 && B < 2 && (V = 0), u.amp_filter[B] < 1e-12)
z.fill(
v0,
b + 0,
b + 18,
0
);
else {
if (u.amp_filter[B] < 1)
for (var L = 0; L < 18; L++)
P[L][t0[B]] *= u.amp_filter[B];
if (V == W.SHORT_TYPE) {
for (var L = -g / 4; L < 0; L++) {
var E = A[W.SHORT_TYPE][L + 3];
v0[b + L * 3 + 9] = N[9 + L][t0[B]] * E - N[8 - L][t0[B]], v0[b + L * 3 + 18] = N[14 - L][t0[B]] * E + N[15 + L][t0[B]], v0[b + L * 3 + 10] = N[15 + L][t0[B]] * E - N[14 - L][t0[B]], v0[b + L * 3 + 19] = P[2 - L][t0[B]] * E + P[3 + L][t0[B]], v0[b + L * 3 + 11] = P[3 + L][t0[B]] * E - P[2 - L][t0[B]], v0[b + L * 3 + 20] = P[8 - L][t0[B]] * E + P[9 + L][t0[B]];
}
R(v0, b);
} else {
for (var i = u0(18), L = -f0 / 4; L < 0; L++) {
var s, r;
s = A[V][L + 27] * P[L + 9][t0[B]] + A[V][L + 36] * P[8 - L][t0[B]], r = A[V][L + 9] * N[L + 9][t0[B]] - A[V][L + 18] * N[8 - L][t0[B]], i[L + 9] = s - r * m[3 + L + 9], i[L + 18] = s * m[3 + L + 9] + r;
}
o(v0, b, i);
}
}
if (V != W.SHORT_TYPE && B != 0)
for (var L = 7; L >= 0; --L) {
var n, f;
n = v0[b + L] * s0[20 + L] + v0[b + -1 - L] * K[28 + L], f = v0[b + L] * K[28 + L] - v0[b + -1 - L] * s0[20 + L], v0[b + -1 - L] = n, v0[b + L] = f;
}
}
}
if (l = e, M = 286, u.mode_gr == 1)
for (var Y = 0; Y < 18; Y++)
Z.arraycopy(
u.sb_sample[p][1][Y],
0,
u.sb_sample[p][0][Y],
0,
32
);
}
};
}
return ce = Q, ce;
}
var Se, Ge;
function Ea() {
if (Ge)
return Se;
Ge = 1;
var w = t1(), Z = Q0, X = Z.System, z = Z.new_float, u0 = Z.new_float_n;
function W() {
this.l = z(w.SBMAX_l), this.s = u0([w.SBMAX_s, 3]);
var Q = this;
this.assign = function(D) {
X.arraycopy(D.l, 0, Q.l, 0, w.SBMAX_l);
for (var g = 0; g < w.SBMAX_s; g++)
for (var f0 = 0; f0 < 3; f0++)
Q.s[g][f0] = D.s[g][f0];
};
}
return Se = W, Se;
}
var de, $e;
function Ga() {
if ($e)
return de;
$e = 1;
var w = Ea();
function Z() {
this.thm = new w(), this.en = new w();
}
return de = Z, de;
}
function R1(w) {
var Z = w;
this.ordinal = function() {
return Z;
};
}
R1.STEREO = new R1(0);
R1.JOINT_STEREO = new R1(1);
R1.DUAL_CHANNEL = new R1(2);
R1.MONO = new R1(3);
R1.NOT_SET = new R1(4);
var j1 = R1, Ae, Pe;
function t1() {
if (Pe)
return Ae;
Pe = 1;
var w = Q0, Z = w.System, X = w.VbrMode, z = w.new_array_n, u0 = w.new_float, W = w.new_float_n, Q = w.new_int, D = w.assert;
g.ENCDELAY = 576, g.POSTDELAY = 1152, g.MDCTDELAY = 48, g.FFTOFFSET = 224 + g.MDCTDELAY, g.DECDELAY = 528, g.SBLIMIT = 32, g.CBANDS = 64, g.SBPSY_l = 21, g.SBPSY_s = 12, g.SBMAX_l = 22, g.SBMAX_s = 13, g.PSFB21 = 6, g.PSFB12 = 6, g.BLKSIZE = 1024, g.HBLKSIZE = g.BLKSIZE / 2 + 1, g.BLKSIZE_s = 256, g.HBLKSIZE_s = g.BLKSIZE_s / 2 + 1, g.NORM_TYPE = 0, g.START_TYPE = 1, g.SHORT_TYPE = 2, g.STOP_TYPE = 3, g.MPG_MD_LR_LR = 0, g.MPG_MD_LR_I = 1, g.MPG_MD_MS_LR = 2, g.MPG_MD_MS_I = 3, g.fircoef = [
-0.0207887 * 5,
-0.0378413 * 5,
-0.0432472 * 5,
-0.031183 * 5,
779609e-23 * 5,
0.0467745 * 5,
0.10091 * 5,
0.151365 * 5,
0.187098 * 5
];
function g() {
var f0 = Da(), A = Ga(), m = j1, O = g.FFTOFFSET, s0 = g.MPG_MD_MS_LR, K = null;
this.psy = null;
var t0 = null, U = null, R = null;
this.setModules = function(l, M, p, H) {
K = l, this.psy = M, t0 = M, U = H, R = p;
};
var o = new f0();
function u(l) {
var M, p;
if (l.ATH.useAdjust == 0) {
l.ATH.adjust = 1;
return;
}
if (p = l.loudness_sq[0][0], M = l.loudness_sq[1][0], l.channels_out == 2 ? (p += l.loudness_sq[0][1], M += l.loudness_sq[1][1]) : (p += p, M += M), l.mode_gr == 2 && (p = Math.max(p, M)), p *= 0.5, p *= l.ATH.aaSensitivityP, p > 0.03125)
l.ATH.adjust >= 1 ? l.ATH.adjust = 1 : l.ATH.adjust < l.ATH.adjustLimit && (l.ATH.adjust = l.ATH.adjustLimit), l.ATH.adjustLimit = 1;
else {
var H = 31.98 * p + 625e-6;
l.ATH.adjust >= H ? (l.ATH.adjust *= H * 0.075 + 0.925, l.ATH.adjust < H && (l.ATH.adjust = H)) : l.ATH.adjustLimit >= H ? l.ATH.adjust = H : l.ATH.adjust < l.ATH.adjustLimit && (l.ATH.adjust = l.ATH.adjustLimit), l.ATH.adjustLimit = H;
}
}
function d(l) {
var M, p;
for (D(0 <= l.bitrate_index && l.bitrate_index < 16), D(0 <= l.mode_ext && l.mode_ext < 4), l.bitrate_stereoMode_Hist[l.bitrate_index][4]++, l.bitrate_stereoMode_Hist[15][4]++, l.channels_out == 2 && (l.bitrate_stereoMode_Hist[l.bitrate_index][l.mode_ext]++, l.bitrate_stereoMode_Hist[15][l.mode_ext]++), M = 0; M < l.mode_gr; ++M)
for (p = 0; p < l.channels_out; ++p) {
var H = l.l3_side.tt[M][p].block_type | 0;
l.l3_side.tt[M][p].mixed_block_flag != 0 && (H = 4), l.bitrate_blockType_Hist[l.bitrate_index][H]++, l.bitrate_blockType_Hist[l.bitrate_index][5]++, l.bitrate_blockType_Hist[15][H]++, l.bitrate_blockType_Hist[15][5]++;
}
}
function e(l, M) {
var p = l.internal_flags, H, B;
if (p.lame_encode_frame_init == 0) {
var I, v0, b = u0(2014), a = u0(286 + 1152 + 576);
for (p.lame_encode_frame_init = 1, I = 0, v0 = 0; I < 286 + 576 * (1 + p.mode_gr); ++I)
I < 576 * p.mode_gr ? (b[I] = 0, p.channels_out == 2 && (a[I] = 0)) : (b[I] = M[0][v0], p.channels_out == 2 && (a[I] = M[1][v0]), ++v0);
for (B = 0; B < p.mode_gr; B++)
for (H = 0; H < p.channels_out; H++)
p.l3_side.tt[B][H].block_type = g.SHORT_TYPE;
o.mdct_sub48(p, b, a), D(576 >= g.FFTOFFSET), D(p.mf_size >= g.BLKSIZE + l.framesize - g.FFTOFFSET), D(p.mf_size >= 512 + l.framesize - 32);
}
}
this.lame_encode_mp3_frame = function(l, M, p, H, B, I) {
var v0, b = z([2, 2]);
b[0][0] = new A(), b[0][1] = new A(), b[1][0] = new A(), b[1][1] = new A();
var a = z([2, 2]);
a[0][0] = new A(), a[0][1] = new A(), a[1][0] = new A(), a[1][1] = new A();
var S, L = [null, null], V = l.internal_flags, N = W([2, 4]), P = [0.5, 0.5], E = [[0, 0], [0, 0]], i = [[0, 0], [0, 0]], s, r, n;
if (L[0] = M, L[1] = p, V.lame_encode_frame_init == 0 && e(l, L), V.padding = 0, (V.slot_lag -= V.frac_SpF) < 0 && (V.slot_lag += l.out_samplerate, V.padding = 1), V.psymodel != 0) {
var f, Y = [null, null], J = 0, T = Q(2);
for (n = 0; n < V.mode_gr; n++) {
for (r = 0; r < V.channels_out; r++)
Y[r] = L[r], J = 576 + n * 576 - g.FFTOFFSET;
if (l.VBR == X.vbr_mtrh || l.VBR == X.vbr_mt ? f = t0.L3psycho_anal_vbr(
l,
Y,
J,
n,
b,
a,
E[n],
i[n],
N[n],
T
) : f = t0.L3psycho_anal_ns(
l,
Y,
J,
n,
b,
a,
E[n],
i[n],
N[n],
T
), f != 0)
return -4;
for (l.mode == m.JOINT_STEREO && (P[n] = N[n][2] + N[n][3], P[n] > 0 && (P[n] = N[n][3] / P[n])), r = 0; r < V.channels_out; r++) {
var q = V.l3_side.tt[n][r];
q.block_type = T[r], q.mixed_block_flag = 0;
}
}
} else
for (n = 0; n < V.mode_gr; n++)
for (r = 0; r < V.channels_out; r++)
V.l3_side.tt[n][r].block_type = g.NORM_TYPE, V.l3_side.tt[n][r].mixed_block_flag = 0, i[n][r] = E[n][r] = 700;
if (u(V), o.mdct_sub48(V, L[0], L[1]), V.mode_ext = g.MPG_MD_LR_LR, l.force_ms)
V.mode_ext = g.MPG_MD_MS_LR;
else if (l.mode == m.JOINT_STEREO) {
var i0 = 0, h0 = 0;
for (n = 0; n < V.mode_gr; n++)
for (r = 0; r < V.channels_out; r++)
i0 += i[n][r], h0 += E[n][r];
if (i0 <= 1 * h0) {
var d0 = V.l3_side.tt[0], M0 = V.l3_side.tt[V.mode_gr - 1];
d0[0].block_type == d0[1].block_type && M0[0].block_type == M0[1].block_type && (V.mode_ext = g.MPG_MD_MS_LR);
}
}
if (V.mode_ext == s0 ? (S = a, s = i) : (S = b, s = E), l.analysis && V.pinfo != null)
for (n = 0; n < V.mode_gr; n++)
for (r = 0; r < V.channels_out; r++)
V.pinfo.ms_ratio[n] = V.ms_ratio[n], V.pinfo.ms_ener_ratio[n] = P[n], V.pinfo.blocktype[n][r] = V.l3_side.tt[n][r].block_type, V.pinfo.pe[n][r] = s[n][r], Z.arraycopy(
V.l3_side.tt[n][r].xr,
0,
V.pinfo.xr[n][r],
0,
576
), V.mode_ext == s0 && (V.pinfo.ers[n][r] = V.pinfo.ers[n][r + 2], Z.arraycopy(
V.pinfo.energy[n][r + 2],
0,
V.pinfo.energy[n][r],
0,
V.pinfo.energy[n][r].length
));
if (l.VBR == X.vbr_off || l.VBR == X.vbr_abr) {
var R0, A0;
for (R0 = 0; R0 < 18; R0++)
V.nsPsy.pefirbuf[R0] = V.nsPsy.pefirbuf[R0 + 1];
for (A0 = 0, n = 0; n < V.mode_gr; n++)
for (r = 0; r < V.channels_out; r++)
A0 += s[n][r];
for (V.nsPsy.pefirbuf[18] = A0, A0 = V.nsPsy.pefirbuf[9], R0 = 0; R0 < 9; R0++)
A0 += (V.nsPsy.pefirbuf[R0] + V.nsPsy.pefirbuf[18 - R0]) * g.fircoef[R0];
for (A0 = 670 * 5 * V.mode_gr * V.channels_out / A0, n = 0; n < V.mode_gr; n++)
for (r = 0; r < V.channels_out; r++)
s[n][r] *= A0;
}
if (V.iteration_loop.iteration_loop(l, s, P, S), K.format_bitstream(l), v0 = K.copy_buffer(V, H, B, I, 1), l.bWriteVbrTag && U.addVbrFrame(l), l.analysis && V.pinfo != null) {
for (r = 0; r < V.channels_out; r++) {
var w0;
for (w0 = 0; w0 < O; w0++)
V.pinfo.pcmdata[r][w0] = V.pinfo.pcmdata[r][w0 + l.framesize];
for (w0 = O; w0 < 1600; w0++)
V.pinfo.pcmdata[r][w0] = L[r][w0 - O];
}
R.set_frame_pinfo(l, S);
}
return d(V), v0;
};
}
return Ae = g, Ae;
}
var Ba = Q0, Ze = Ba.Util, Ke = Ba.new_float, J0 = t1();
function $a() {
var w = Ke(J0.BLKSIZE), Z = Ke(J0.BLKSIZE_s / 2), X = [
0.9238795325112867,
0.3826834323650898,
0.9951847266721969,
0.0980171403295606,
0.9996988186962042,
0.02454122852291229,
0.9999811752826011,
0.006135884649154475
];
function z(W, Q, D) {
var g = 0, f0, A, m;
D <<= 1;
var O = Q + D;
f0 = 4;
do {
var s0, K, t0, U, R, o, u;
u = f0 >> 1, U = f0, R = f0 << 1, o = R + U, f0 = R << 1, A = Q, m = A + u;
do {
var d, e, l, M;
e = W[A + 0] - W[A + U], d = W[A + 0] + W[A + U], M = W[A + R] - W[A + o], l = W[A + R] + W[A + o], W[A + R] = d - l, W[A + 0] = d + l, W[A + o] = e - M, W[A + U] = e + M, e = W[m + 0] - W[m + U], d = W[m + 0] + W[m + U], M = Ze.SQRT2 * W[m + o], l = Ze.SQRT2 * W[m + R], W[m + R] = d - l, W[m + 0] = d + l, W[m + o] = e - M, W[m + U] = e + M, m += f0, A += f0;
} while (A < O);
for (K = X[g + 0], s0 = X[g + 1], t0 = 1; t0 < u; t0++) {
var p, H;
p = 1 - 2 * s0 * s0, H = 2 * s0 * K, A = Q + t0, m = Q + U - t0;
do {
var B, I, v0, d, e, b, l, a, M, S;
I = H * W[A + U] - p * W[m + U], B = p * W[A + U] + H * W[m + U], e = W[A + 0] - B, d = W[A + 0] + B, b = W[m + 0] - I, v0 = W[m + 0] + I, I = H * W[A + o] - p * W[m + o], B = p * W[A + o] + H * W[m + o], M = W[A + R] - B, l = W[A + R] + B, S = W[m + R] - I, a = W[m + R] + I, I = s0 * l - K * S, B = K * l + s0 * S, W[A + R] = d - B, W[A + 0] = d + B, W[m + o] = b - I, W[m + U] = b + I, I = K * a - s0 * M, B = s0 * a + K * M, W[m + R] = v0 - B, W[m + 0] = v0 + B, W[A + o] = e - I, W[A + U] = e + I, m += f0, A += f0;
} while (A < O);
p = K, K = p * X[g + 0] - s0 * X[g + 1], s0 = p * X[g + 1] + s0 * X[g + 0];
}
g += 2;
} while (f0 < D);
}
var u0 = [
0,
128,
64,
192,
32,
160,
96,
224,
16,
144,
80,
208,
48,
176,
112,
240,
8,
136,
72,
200,
40,
168,
104,
232,
24,
152,
88,
216,
56,
184,
120,
248,
4,
132,
68,
196,
36,
164,
100,
228,
20,
148,
84,
212,
52,
180,
116,
244,
12,
140,
76,
204,
44,
172,
108,
236,
28,
156,
92,
220,
60,
188,
124,
252,
2,
130,
66,
194,
34,
162,
98,
226,
18,
146,
82,
210,
50,
178,
114,
242,
10,
138,
74,
202,
42,
170,
106,
234,
26,
154,
90,
218,
58,
186,
122,
250,
6,
134,
70,
198,
38,
166,
102,
230,
22,
150,
86,
214,
54,
182,
118,
246,
14,
142,
78,
206,
46,
174,
110,
238,
30,
158,
94,
222,
62,
190,
126,
254
];
this.fft_short = function(W, Q, D, g, f0) {
for (var A = 0; A < 3; A++) {
var m = J0.BLKSIZE_s / 2, O = 65535 & 576 / 3 * (A + 1), s0 = J0.BLKSIZE_s / 8 - 1;
do {
var K, t0, U, R, o, u = u0[s0 << 2] & 255;
K = Z[u] * g[D][f0 + u + O], o = Z[127 - u] * g[D][f0 + u + O + 128], t0 = K - o, K = K + o, U = Z[u + 64] * g[D][f0 + u + O + 64], o = Z[63 - u] * g[D][f0 + u + O + 192], R = U - o, U = U + o, m -= 4, Q[A][m + 0] = K + U, Q[A][m + 2] = K - U, Q[A][m + 1] = t0 + R, Q[A][m + 3] = t0 - R, K = Z[u + 1] * g[D][f0 + u + O + 1], o = Z[126 - u] * g[D][f0 + u + O + 129], t0 = K - o, K = K + o, U = Z[u + 65] * g[D][f0 + u + O + 65], o = Z[62 - u] * g[D][f0 + u + O + 193], R = U - o, U = U + o, Q[A][m + J0.BLKSIZE_s / 2 + 0] = K + U, Q[A][m + J0.BLKSIZE_s / 2 + 2] = K - U, Q[A][m + J0.BLKSIZE_s / 2 + 1] = t0 + R, Q[A][m + J0.BLKSIZE_s / 2 + 3] = t0 - R;
} while (--s0 >= 0);
z(Q[A], m, J0.BLKSIZE_s / 2);
}
}, this.fft_long = function(W, Q, D, g, f0) {
var A = J0.BLKSIZE / 8 - 1, m = J0.BLKSIZE / 2;
do {
var O, s0, K, t0, U, R = u0[A] & 255;
O = w[R] * g[D][f0 + R], U = w[R + 512] * g[D][f0 + R + 512], s0 = O - U, O = O + U, K = w[R + 256] * g[D][f0 + R + 256], U = w[R + 768] * g[D][f0 + R + 768], t0 = K - U, K = K + U, m -= 4, Q[m + 0] = O + K, Q[m + 2] = O - K, Q[m + 1] = s0 + t0, Q[m + 3] = s0 - t0, O = w[R + 1] * g[D][f0 + R + 1], U = w[R + 513] * g[D][f0 + R + 513], s0 = O - U, O = O + U, K = w[R + 257] * g[D][f0 + R + 257], U = w[R + 769] * g[D][f0 + R + 769], t0 = K - U, K = K + U, Q[m + J0.BLKSIZE / 2 + 0] = O + K, Q[m + J0.BLKSIZE / 2 + 2] = O - K, Q[m + J0.BLKSIZE / 2 + 1] = s0 + t0, Q[m + J0.BLKSIZE / 2 + 3] = s0 - t0;
} while (--A >= 0);
z(Q, m, J0.BLKSIZE / 2);
}, this.init_fft = function(W) {
for (var Q = 0; Q < J0.BLKSIZE; Q++)
w[Q] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (Q + 0.5) / J0.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (Q + 0.5) / J0.BLKSIZE);
for (var Q = 0; Q < J0.BLKSIZE_s / 2; Q++)
Z[Q] = 0.5 * (1 - Math.cos(2 * Math.PI * (Q + 0.5) / J0.BLKSIZE_s));
};
}
var Pa = $a, T1 = Q0, C1 = T1.VbrMode, Ue = T1.Float, F1 = T1.ShortBlock, n1 = T1.Util, Za = T1.Arrays, g0 = T1.new_float, m1 = T1.new_float_n, L1 = T1.new_int, C0 = T1.assert, Ka = Pa, r0 = t1();
function Ua() {
var w = j1, Z = new Ka(), X = 2.302585092994046, z = 2, u0 = 16, W = 2, Q = 16, D = 0.34, g = 1 / (14752 * 14752) / (r0.BLKSIZE / 2), f0 = 0.01, A = 0.8, m = 0.6, O = 0.3, s0 = 3.5, K = 21, t0 = 0.2302585093;
function U(v) {
return v;
}
function R(v, h) {
for (var x = 0, y = 0; y < r0.BLKSIZE / 2; ++y)
x += v[y] * h.ATH.eql_w[y];
return x *= g, x;
}
function o(v, h, x, y, k, c, C, G, F, e0, $) {
var a0 = v.internal_flags;
if (F < 2)
Z.fft_long(a0, y[k], F, e0, $), Z.fft_short(a0, c[C], F, e0, $);
else if (F == 2) {
for (var m0 = r0.BLKSIZE - 1; m0 >= 0; --m0) {
var N0 = y[k + 0][m0], n0 = y[k + 1][m0];
y[k + 0][m0] = (N0 + n0) * n1.SQRT2 * 0.5, y[k + 1][m0] = (N0 - n0) * n1.SQRT2 * 0.5;
}
for (var L0 = 2; L0 >= 0; --L0)
for (var m0 = r0.BLKSIZE_s - 1; m0 >= 0; --m0) {
var N0 = c[C + 0][L0][m0], n0 = c[C + 1][L0][m0];
c[C + 0][L0][m0] = (N0 + n0) * n1.SQRT2 * 0.5, c[C + 1][L0][m0] = (N0 - n0) * n1.SQRT2 * 0.5;
}
}
h[0] = y[k + 0][0], h[0] *= h[0];
for (var m0 = r0.BLKSIZE / 2 - 1; m0 >= 0; --m0) {
var j = y[k + 0][r0.BLKSIZE / 2 - m0], x0 = y[k + 0][r0.BLKSIZE / 2 + m0];
h[r0.BLKSIZE / 2 - m0] = (j * j + x0 * x0) * 0.5;
}
for (var L0 = 2; L0 >= 0; --L0) {
x[L0][0] = c[C + 0][L0][0], x[L0][0] *= x[L0][0];
for (var m0 = r0.BLKSIZE_s / 2 - 1; m0 >= 0; --m0) {
var j = c[C + 0][L0][r0.BLKSIZE_s / 2 - m0], x0 = c[C + 0][L0][r0.BLKSIZE_s / 2 + m0];
x[L0][r0.BLKSIZE_s / 2 - m0] = (j * j + x0 * x0) * 0.5;
}
}
{
for (var k0 = 0, m0 = 11; m0 < r0.HBLKSIZE; m0++)
k0 += h[m0];
a0.tot_ener[F] = k0;
}
if (v.analysis) {
for (var m0 = 0; m0 < r0.HBLKSIZE; m0++)
a0.pinfo.energy[G][F][m0] = a0.pinfo.energy_save[F][m0], a0.pinfo.energy_save[F][m0] = h[m0];
a0.pinfo.pe[G][F] = a0.pe[F];
}
v.athaa_loudapprox == 2 && F < 2 && (a0.loudness_sq[G][F] = a0.loudness_sq_save[F], a0.loudness_sq_save[F] = R(h, a0));
}
var u = 8, d = 23, e = 15, l, M, p, H = [
1,
0.79433,
0.63096,
0.63096,
0.63096,
0.63096,
0.63096,
0.25119,
0.11749
];
function B() {
l = Math.pow(10, (u + 1) / 16), M = Math.pow(10, (d + 1) / 16), p = Math.pow(10, e / 10);
}
var I = [
3.3246 * 3.3246,
3.23837 * 3.23837,
3.15437 * 3.15437,
3.00412 * 3.00412,
2.86103 * 2.86103,
2.65407 * 2.65407,
2.46209 * 2.46209,
2.284 * 2.284,
2.11879 * 2.11879,
1.96552 * 1.96552,
1.82335 * 1.82335,
1.69146 * 1.69146,
1.56911 * 1.56911,
1.46658 * 1.46658,
1.37074 * 1.37074,
1.31036 * 1.31036,
1.25264 * 1.25264,
1.20648 * 1.20648,
1.16203 * 1.16203,
1.12765 * 1.12765,
1.09428 * 1.09428,
1.0659 * 1.0659,
1.03826 * 1.03826,
1.01895 * 1.01895,
1
], v0 = [
1.33352 * 1.33352,
1.35879 * 1.35879,
1.38454 * 1.38454,
1.39497 * 1.39497,
1.40548 * 1.40548,
1.3537 * 1.3537,
1.30382 * 1.30382,
1.22321 * 1.22321,
1.14758 * 1.14758,
1
], b = [
2.35364 * 2.35364,
2.29259 * 2.29259,
2.23313 * 2.23313,
2.12675 * 2.12675,
2.02545 * 2.02545,
1.87894 * 1.87894,
1.74303 * 1.74303,
1.61695 * 1.61695,
1.49999 * 1.49999,
1.39148 * 1.39148,
1.29083 * 1.29083,
1.19746 * 1.19746,
1.11084 * 1.11084,
1.03826 * 1.03826
];
function a(v, h, x, y, k, c) {
var C;
if (h > v)
if (h < v * M)
C = h / v;
else
return v + h;
else {
if (v >= h * M)
return v + h;
C = v / h;
}
if (v += h, y + 3 <= 3 + 3) {
if (C >= l)
return v;
var G = 0 | n1.FAST_LOG10_X(C, 16);
return v * v0[G];
}
var G = 0 | n1.FAST_LOG10_X(C, 16);
if (c != 0 ? h = k.ATH.cb_s[x] * k.ATH.adjust : h = k.ATH.cb_l[x] * k.ATH.adjust, v < p * h) {
if (v > h) {
var F, e0;
return F = 1, G <= 13 && (F = b[G]), e0 = n1.FAST_LOG10_X(v / h, 10 / 15), v * ((I[G] - F) * e0 + F);
}
return G > 13 ? v : v * b[G];
}
return v * I[G];
}
var S = [
1.33352 * 1.33352,
1.35879 * 1.35879,
1.38454 * 1.38454,
1.39497 * 1.39497,
1.40548 * 1.40548,
1.3537 * 1.3537,
1.30382 * 1.30382,
1.22321 * 1.22321,
1.14758 * 1.14758,
1
];
function L(v, h, x) {
var y;
if (v < 0 && (v = 0), h < 0 && (h = 0), v <= 0)
return h;
if (h <= 0)
return v;
if (h > v ? y = h / v : y = v / h, -2 <= x && x <= 2) {
if (y >= l)
return v + h;
var k = 0 | n1.FAST_LOG10_X(y, 16);
return (v + h) * S[k];
}
return y < M ? v + h : (v < h && (v = h), v);
}
function V(v, h) {
var x = v.internal_flags;
if (x.channels_out > 1) {
for (var y = 0; y < r0.SBMAX_l; y++) {
var k = x.thm[0].l[y], c = x.thm[1].l[y];
x.thm[0].l[y] += c * h, x.thm[1].l[y] += k * h;
}
for (var y = 0; y < r0.SBMAX_s; y++)
for (var C = 0; C < 3; C++) {
var k = x.thm[0].s[y][C], c = x.thm[1].s[y][C];
x.thm[0].s[y][C] += c * h, x.thm[1].s[y][C] += k * h;
}
}
}
function N(v) {
for (var h = 0; h < r0.SBMAX_l; h++)
if (!(v.thm[0].l[h] > 1.58 * v.thm[1].l[h] || v.thm[1].l[h] > 1.58 * v.thm[0].l[h])) {
var x = v.mld_l[h] * v.en[3].l[h], y = Math.max(
v.thm[2].l[h],
Math.min(v.thm[3].l[h], x)
);
x = v.mld_l[h] * v.en[2].l[h];
var k = Math.max(
v.thm[3].l[h],
Math.min(v.thm[2].l[h], x)
);
v.thm[2].l[h] = y, v.thm[3].l[h] = k;
}
for (var h = 0; h < r0.SBMAX_s; h++)
for (var c = 0; c < 3; c++)
if (!(v.thm[0].s[h][c] > 1.58 * v.thm[1].s[h][c] || v.thm[1].s[h][c] > 1.58 * v.thm[0].s[h][c])) {
var x = v.mld_s[h] * v.en[3].s[h][c], y = Math.max(
v.thm[2].s[h][c],
Math.min(v.thm[3].s[h][c], x)
);
x = v.mld_s[h] * v.en[2].s[h][c];
var k = Math.max(
v.thm[3].s[h][c],
Math.min(v.thm[2].s[h][c], x)
);
v.thm[2].s[h][c] = y, v.thm[3].s[h][c] = k;
}
}
function P(v, h, x) {
var y = h, k = Math.pow(10, x);
h *= 2, y *= 2;
for (var c = 0; c < r0.SBMAX_l; c++) {
var C, G, F, e0;
if (e0 = v.ATH.cb_l[v.bm_l[c]] * k, C = Math.min(
Math.max(v.thm[0].l[c], e0),
Math.max(v.thm[1].l[c], e0)
), G = Math.max(v.thm[2].l[c], e0), F = Math.max(v.thm[3].l[c], e0), C * h < G + F) {
var $ = C * y / (G + F);
G *= $, F *= $;
}
v.thm[2].l[c] = Math.min(G, v.thm[2].l[c]), v.thm[3].l[c] = Math.min(F, v.thm[3].l[c]);
}
k *= r0.BLKSIZE_s / r0.BLKSIZE;
for (var c = 0; c < r0.SBMAX_s; c++)
for (var a0 = 0; a0 < 3; a0++) {
var C, G, F, e0;
if (e0 = v.ATH.cb_s[v.bm_s[c]] * k, C = Math.min(
Math.max(v.thm[0].s[c][a0], e0),
Math.max(v.thm[1].s[c][a0], e0)
), G = Math.max(v.thm[2].s[c][a0], e0), F = Math.max(v.thm[3].s[c][a0], e0), C * h < G + F) {
var $ = C * h / (G + F);
G *= $, F *= $;
}
v.thm[2].s[c][a0] = Math.min(
v.thm[2].s[c][a0],
G
), v.thm[3].s[c][a0] = Math.min(
v.thm[3].s[c][a0],
F
);
}
}
function E(v, h, x, y, k) {
var c, C, G = 0, F = 0;
for (c = C = 0; c < r0.SBMAX_s; ++C, ++c) {
for (var e0 = v.bo_s[c], $ = v.npart_s, a0 = e0 < $ ? e0 : $; C < a0; )
C0(h[C] >= 0), C0(x[C] >= 0), G += h[C], F += x[C], C++;
if (v.en[y].s[c][k] = G, v.thm[y].s[c][k] = F, C >= $) {
++c;
break;
}
C0(h[C] >= 0), C0(x[C] >= 0);
{
var m0 = v.PSY.bo_s_weight[c], N0 = 1 - m0;
G = m0 * h[C], F = m0 * x[C], v.en[y].s[c][k] += G, v.thm[y].s[c][k] += F, G = N0 * h[C], F = N0 * x[C];
}
}
for (; c < r0.SBMAX_s; ++c)
v.en[y].s[c][k] = 0, v.thm[y].s[c][k] = 0;
}
function i(v, h, x, y) {
var k, c, C = 0, G = 0;
for (k = c = 0; k < r0.SBMAX_l; ++c, ++k) {
for (var F = v.bo_l[k], e0 = v.npart_l, $ = F < e0 ? F : e0; c < $; )
C0(h[c] >= 0), C0(x[c] >= 0), C += h[c], G += x[c], c++;
if (v.en[y].l[k] = C, v.thm[y].l[k] = G, c >= e0) {
++k;
break;
}
C0(h[c] >= 0), C0(x[c] >= 0);
{
var a0 = v.PSY.bo_l_weight[k], m0 = 1 - a0;
C = a0 * h[c], G = a0 * x[c], v.en[y].l[k] += C, v.thm[y].l[k] += G, C = m0 * h[c], G = m0 * x[c];
}
}
for (; k < r0.SBMAX_l; ++k)
v.en[y].l[k] = 0, v.thm[y].l[k] = 0;
}
function s(v, h, x, y, k, c) {
var C = v.internal_flags, G, F;
for (F = G = 0; F < C.npart_s; ++F) {
for (var e0 = 0, $ = C.numlines_s[F], a0 = 0; a0 < $; ++a0, ++G) {
var m0 = h[c][G];
e0 += m0;
}
x[F] = e0;
}
for (C0(F == C.npart_s), G = F = 0; F < C.npart_s; F++) {
var N0 = C.s3ind_s[F][0], n0 = C.s3_ss[G++] * x[N0];
for (++N0; N0 <= C.s3ind_s[F][1]; )
n0 += C.s3_ss[G] * x[N0], ++G, ++N0;
{
var L0 = W * C.nb_s1[k][F];
y[F] = Math.min(n0, L0);
}
if (C.blocktype_old[k & 1] == r0.SHORT_TYPE) {
var L0 = Q * C.nb_s2[k][F], j = y[F];
y[F] = Math.min(L0, j);
}
C.nb_s2[k][F] = C.nb_s1[k][F], C.nb_s1[k][F] = n0, C0(y[F] >= 0);
}
for (; F <= r0.CBANDS; ++F)
x[F] = 0, y[F] = 0;
}
function r(v, h, x, y) {
var k = v.internal_flags;
v.short_blocks == F1.short_block_coupled && !(h[0] != 0 && h[1] != 0) && (h[0] = h[1] = 0);
for (var c = 0; c < k.channels_out; c++)
y[c] = r0.NORM_TYPE, v.short_blocks == F1.short_block_dispensed && (h[c] = 1), v.short_blocks == F1.short_block_forced && (h[c] = 0), h[c] != 0 ? (C0(k.blocktype_old[c] != r0.START_TYPE), k.blocktype_old[c] == r0.SHORT_TYPE && (y[c] = r0.STOP_TYPE)) : (y[c] = r0.SHORT_TYPE, k.blocktype_old[c] == r0.NORM_TYPE && (k.blocktype_old[c] = r0.START_TYPE), k.blocktype_old[c] == r0.STOP_TYPE && (k.blocktype_old[c] = r0.SHORT_TYPE)), x[c] = k