simple-javascript-obf 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.github/workflows/node.js.yml +31 -0
  2. package/LICENSE +21 -0
  3. package/README.md +92 -0
  4. package/THIRD_PARTY_NOTICES.md +82 -0
  5. package/bin/js-obf +228 -0
  6. package/bin/obf.sh +257 -0
  7. package/package.json +26 -0
  8. package/src/index.js +106 -0
  9. package/src/options.js +128 -0
  10. package/src/pipeline.js +56 -0
  11. package/src/plugins/antiHook.js +123 -0
  12. package/src/plugins/controlFlowFlatten.js +203 -0
  13. package/src/plugins/deadCode.js +82 -0
  14. package/src/plugins/encodeMembers.js +44 -0
  15. package/src/plugins/entry.js +31 -0
  16. package/src/plugins/rename.js +100 -0
  17. package/src/plugins/stringEncode.js +494 -0
  18. package/src/plugins/vm/ast-utils.js +58 -0
  19. package/src/plugins/vm/compiler.js +113 -0
  20. package/src/plugins/vm/constants.js +72 -0
  21. package/src/plugins/vm/emit.js +916 -0
  22. package/src/plugins/vm/encoding.js +252 -0
  23. package/src/plugins/vm/index.js +366 -0
  24. package/src/plugins/vm/mapping.js +24 -0
  25. package/src/plugins/vm/normalize.js +692 -0
  26. package/src/plugins/vm/runtime.js +1145 -0
  27. package/src/plugins/vm.js +1 -0
  28. package/src/utils/names.js +55 -0
  29. package/src/utils/reserved.js +57 -0
  30. package/src/utils/rng.js +55 -0
  31. package/src/utils/stream.js +97 -0
  32. package/src/utils/string.js +13 -0
  33. package/test/bench-runner.js +78 -0
  34. package/test/benchmark-source.js +35 -0
  35. package/test/benchmark-vm.js +160 -0
  36. package/test/dist/bench.obf.js +1 -0
  37. package/test/dist/bench.original.js +35 -0
  38. package/test/dist/bench.vm.js +1 -0
  39. package/test/dist/sample-input.obf.js +1 -0
  40. package/test/dist/sample-input.vm.js +1 -0
  41. package/test/generate-obf.js +38 -0
  42. package/test/obf-smoke.js +129 -0
  43. package/test/sample-input.js +23 -0
@@ -0,0 +1 @@
1
+ module.exports = require("./vm/index");
@@ -0,0 +1,55 @@
1
+ const { DEFAULT_RESERVED } = require("./reserved");
2
+
3
+ const LOWER_CHARS = "abcdefghijklmnopqrstuvwxyz";
4
+ const UPPER_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
5
+ const MIX_CHARS = `${LOWER_CHARS}${UPPER_CHARS}`;
6
+
7
+ function pickChar(chars, rng, fallbackSeed) {
8
+ if (rng) {
9
+ return chars[rng.int(0, chars.length - 1)];
10
+ }
11
+ return chars[fallbackSeed % chars.length];
12
+ }
13
+
14
+ function buildSuffix(rng, seed) {
15
+ const chars = [
16
+ pickChar(LOWER_CHARS, rng, seed + 1),
17
+ pickChar(UPPER_CHARS, rng, seed + 2),
18
+ pickChar(MIX_CHARS, rng, seed + 3),
19
+ ];
20
+ if (rng) {
21
+ rng.shuffle(chars);
22
+ } else if (seed % 2 === 0) {
23
+ [chars[0], chars[1]] = [chars[1], chars[0]];
24
+ }
25
+ return chars.join("");
26
+ }
27
+
28
+ class NameGenerator {
29
+ constructor({ reserved = DEFAULT_RESERVED, rng } = {}) {
30
+ this.reserved = new Set(reserved);
31
+ this.rng = rng;
32
+ this.index = 0;
33
+ }
34
+
35
+ next() {
36
+ while (true) {
37
+ const currentIndex = this.index;
38
+ const hexPart = currentIndex.toString(16);
39
+ const suffix = buildSuffix(this.rng, currentIndex * 31);
40
+ const name = `_0x${hexPart}${suffix}`;
41
+ this.index += 1;
42
+ if (!this.reserved.has(name)) {
43
+ return name;
44
+ }
45
+ }
46
+ }
47
+
48
+ reserve(name) {
49
+ this.reserved.add(name);
50
+ }
51
+ }
52
+
53
+ module.exports = {
54
+ NameGenerator,
55
+ };
@@ -0,0 +1,57 @@
1
+ const DEFAULT_RESERVED = [
2
+ "arguments",
3
+ "eval",
4
+ "undefined",
5
+ "NaN",
6
+ "Infinity",
7
+ "await",
8
+ "break",
9
+ "case",
10
+ "catch",
11
+ "class",
12
+ "const",
13
+ "continue",
14
+ "debugger",
15
+ "default",
16
+ "delete",
17
+ "do",
18
+ "else",
19
+ "enum",
20
+ "export",
21
+ "extends",
22
+ "false",
23
+ "finally",
24
+ "for",
25
+ "function",
26
+ "if",
27
+ "implements",
28
+ "import",
29
+ "in",
30
+ "instanceof",
31
+ "interface",
32
+ "let",
33
+ "new",
34
+ "null",
35
+ "package",
36
+ "private",
37
+ "protected",
38
+ "public",
39
+ "return",
40
+ "static",
41
+ "super",
42
+ "switch",
43
+ "this",
44
+ "throw",
45
+ "true",
46
+ "try",
47
+ "typeof",
48
+ "var",
49
+ "void",
50
+ "while",
51
+ "with",
52
+ "yield",
53
+ ];
54
+
55
+ module.exports = {
56
+ DEFAULT_RESERVED,
57
+ };
@@ -0,0 +1,55 @@
1
+ function hashSeed(seed) {
2
+ if (typeof seed === "number") {
3
+ return seed >>> 0;
4
+ }
5
+ const str = String(seed);
6
+ let h = 2166136261;
7
+ for (let i = 0; i < str.length; i += 1) {
8
+ h ^= str.charCodeAt(i);
9
+ h = Math.imul(h, 16777619);
10
+ }
11
+ return h >>> 0;
12
+ }
13
+
14
+ class RNG {
15
+ constructor(seed) {
16
+ this.state = hashSeed(seed || Date.now());
17
+ }
18
+
19
+ next() {
20
+ let x = this.state;
21
+ x ^= x << 13;
22
+ x ^= x >>> 17;
23
+ x ^= x << 5;
24
+ this.state = x >>> 0;
25
+ return this.state / 0xffffffff;
26
+ }
27
+
28
+ int(min, max) {
29
+ if (max === undefined) {
30
+ return Math.floor(this.next() * min);
31
+ }
32
+ return min + Math.floor(this.next() * (max - min + 1));
33
+ }
34
+
35
+ bool(prob = 0.5) {
36
+ return this.next() < prob;
37
+ }
38
+
39
+ pick(arr) {
40
+ return arr[this.int(0, arr.length - 1)];
41
+ }
42
+
43
+ shuffle(arr) {
44
+ for (let i = arr.length - 1; i > 0; i -= 1) {
45
+ const j = this.int(0, i);
46
+ [arr[i], arr[j]] = [arr[j], arr[i]];
47
+ }
48
+ return arr;
49
+ }
50
+ }
51
+
52
+ module.exports = {
53
+ RNG,
54
+ hashSeed,
55
+ };
@@ -0,0 +1,97 @@
1
+ function rotl(value, shift) {
2
+ return ((value << shift) | (value >>> (32 - shift))) >>> 0;
3
+ }
4
+
5
+ function rotr(value, shift) {
6
+ return ((value >>> shift) | (value << (32 - shift))) >>> 0;
7
+ }
8
+
9
+ function deriveParams(keyBytes) {
10
+ const key = Uint8Array.from(keyBytes);
11
+ const len = key.length || 1;
12
+ const pick = (idx) => key[idx % len] & 255;
13
+ const variant = pick(0) & 1;
14
+ const r0 = (pick(1) % 7) + 3;
15
+ const r1 = (pick(2) % 7) + 5;
16
+ const r2 = (pick(3) % 7) + 3;
17
+ const r3 = (pick(4) % 7) + 5;
18
+ let s0 =
19
+ ((pick(5) << 24) | (pick(6) << 16) | (pick(7) << 8) | pick(8)) >>> 0;
20
+ let s1 =
21
+ ((pick(9) << 24) | (pick(10) << 16) | (pick(11) << 8) | pick(12)) >>> 0;
22
+ s0 ^= (len << 24) >>> 0;
23
+ s1 ^= (len << 16) >>> 0;
24
+ for (let i = 0; i < len; i += 1) {
25
+ const v = (pick(i) + i * 17) & 255;
26
+ const fold = ((v << (i & 7)) | (v >>> (8 - (i & 7)))) & 255;
27
+ s0 = (s0 + fold) >>> 0;
28
+ s0 = rotl(s0, r0);
29
+ s1 = (s1 + (s0 ^ (v << r2))) >>> 0;
30
+ s1 = rotr(s1, r1);
31
+ }
32
+ return {
33
+ key,
34
+ variant,
35
+ r0,
36
+ r1,
37
+ r2,
38
+ r3,
39
+ s0,
40
+ s1,
41
+ };
42
+ }
43
+
44
+ function createStream(keyBytes) {
45
+ const params = deriveParams(keyBytes);
46
+ const { key, variant, r0, r1, r2, r3 } = params;
47
+ let x = params.s0 >>> 0;
48
+ let y = params.s1 >>> 0;
49
+ let idx = 0;
50
+ const len = key.length || 1;
51
+ return (byte) => {
52
+ const k = key[idx % len];
53
+ let out;
54
+ if (variant === 0) {
55
+ x = (x + (y ^ (k + idx + 1))) >>> 0;
56
+ x = rotl(x, r0);
57
+ y = (y + (k ^ (x & 255))) >>> 0;
58
+ y = rotr(y, r1);
59
+ out = (x ^ y ^ (x >>> 7)) & 255;
60
+ } else {
61
+ y = (y + k + (x & 255)) >>> 0;
62
+ y = rotl(y, r2);
63
+ x = (x + (y ^ (k << 8))) >>> 0;
64
+ x = rotr(x, r3);
65
+ out = (x + y + (x >>> 11)) & 255;
66
+ }
67
+ idx += 1;
68
+ return byte ^ out;
69
+ };
70
+ }
71
+
72
+ function streamXor(bytes, keyBytes) {
73
+ const next = createStream(keyBytes);
74
+ const out = Uint8Array.from(bytes);
75
+ for (let i = 0; i < out.length; i += 1) {
76
+ out[i] = next(out[i]);
77
+ }
78
+ return out;
79
+ }
80
+
81
+ function concatKeys(...parts) {
82
+ const total = parts.reduce((sum, part) => sum + (part ? part.length : 0), 0);
83
+ const out = new Uint8Array(total);
84
+ let offset = 0;
85
+ for (const part of parts) {
86
+ if (!part || !part.length) continue;
87
+ out.set(part, offset);
88
+ offset += part.length;
89
+ }
90
+ return out;
91
+ }
92
+
93
+ module.exports = {
94
+ createStream,
95
+ streamXor,
96
+ concatKeys,
97
+ };
@@ -0,0 +1,13 @@
1
+ const { TextEncoder } = require("util");
2
+ const { streamXor } = require("./stream");
3
+
4
+ function encodeString(value, keyBytes) {
5
+ const encoder = new TextEncoder();
6
+ const bytes = encoder.encode(value);
7
+ const encrypted = streamXor(bytes, keyBytes);
8
+ return Buffer.from(encrypted).toString("base64");
9
+ }
10
+
11
+ module.exports = {
12
+ encodeString,
13
+ };
@@ -0,0 +1,78 @@
1
+ const fs = require("fs");
2
+ const vm = require("vm");
3
+
4
+ function readCode(filePath) {
5
+ return fs.readFileSync(filePath, "utf8");
6
+ }
7
+
8
+ function formatError(err) {
9
+ return err && err.stack ? err.stack : String(err);
10
+ }
11
+
12
+ function runBenchmark(code, iterations) {
13
+ const context = {
14
+ console: { log() {}, info() {}, warn() {}, error() {} },
15
+ Buffer,
16
+ TextDecoder,
17
+ Uint8Array,
18
+ };
19
+ context.globalThis = context;
20
+ vm.createContext(context);
21
+ vm.runInContext(code, context);
22
+
23
+ if (typeof context.bench !== "function") {
24
+ throw new Error("bench function not found in benchmark code");
25
+ }
26
+
27
+ const warmup = Math.max(1, Math.floor(iterations / 10));
28
+ for (let i = 0; i < 2; i++) {
29
+ context.bench(warmup);
30
+ }
31
+
32
+ if (global.gc) {
33
+ global.gc();
34
+ }
35
+
36
+ const startMem = process.memoryUsage();
37
+ const startCpu = process.cpuUsage();
38
+ const startWall = process.hrtime.bigint();
39
+ const result = context.bench(iterations);
40
+ const endWall = process.hrtime.bigint();
41
+ const cpu = process.cpuUsage(startCpu);
42
+ const endMem = process.memoryUsage();
43
+
44
+ const wallSec = Number(endWall - startWall) / 1e9;
45
+ const cpuSec = (cpu.user + cpu.system) / 1e6;
46
+ const rssMb = endMem.rss / 1024 / 1024;
47
+ const heapUsedMb = endMem.heapUsed / 1024 / 1024;
48
+ const heapDeltaMb = (endMem.heapUsed - startMem.heapUsed) / 1024 / 1024;
49
+
50
+ return {
51
+ wallSec,
52
+ cpuSec,
53
+ rssMb,
54
+ heapUsedMb,
55
+ heapDeltaMb,
56
+ result,
57
+ };
58
+ }
59
+
60
+ function main() {
61
+ const codePath = process.argv[2];
62
+ const iterations = Number(process.argv[3] || 20000);
63
+
64
+ if (!codePath) {
65
+ throw new Error("missing benchmark code path");
66
+ }
67
+
68
+ const code = readCode(codePath);
69
+ const metrics = runBenchmark(code, iterations);
70
+ process.stdout.write(`${JSON.stringify(metrics)}\n`);
71
+ }
72
+
73
+ try {
74
+ main();
75
+ } catch (err) {
76
+ process.stderr.write(`${formatError(err)}\n`);
77
+ process.exit(1);
78
+ }
@@ -0,0 +1,35 @@
1
+ function work(n) {
2
+ var x = n % 97;
3
+ for (var i = 0; i < 20; i++) {
4
+ x = (x * 3 + i) % 97;
5
+ if (x % 2 === 0) {
6
+ x += i;
7
+ } else {
8
+ x -= i;
9
+ }
10
+ switch (x % 3) {
11
+ case 0:
12
+ x += 7;
13
+ break;
14
+ case 1:
15
+ x += 11;
16
+ break;
17
+ default:
18
+ x += 13;
19
+ }
20
+ if (x > 1000) {
21
+ x = x % 97;
22
+ }
23
+ }
24
+ return x;
25
+ }
26
+
27
+ function bench(iterations) {
28
+ var total = 0;
29
+ for (var i = 0; i < iterations; i++) {
30
+ total += work(i);
31
+ }
32
+ return total;
33
+ }
34
+
35
+ globalThis.bench = bench;
@@ -0,0 +1,160 @@
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+ const { spawnSync } = require("child_process");
4
+ const { obfuscate } = require("../src");
5
+
6
+ const DEFAULT_ITERATIONS = 20000;
7
+ const DEFAULT_PRESET = "high";
8
+ const DEFAULT_SEED = "bench-seed";
9
+
10
+ function parseArgs(argv) {
11
+ const options = {
12
+ iterations: DEFAULT_ITERATIONS,
13
+ preset: DEFAULT_PRESET,
14
+ seed: DEFAULT_SEED,
15
+ };
16
+
17
+ for (let i = 0; i < argv.length; i++) {
18
+ const arg = argv[i];
19
+ if (arg === "--iterations" || arg === "-n") {
20
+ options.iterations = Number(argv[i + 1]);
21
+ i++;
22
+ continue;
23
+ }
24
+ if (arg === "--preset") {
25
+ options.preset = argv[i + 1] || DEFAULT_PRESET;
26
+ i++;
27
+ continue;
28
+ }
29
+ if (arg === "--seed") {
30
+ options.seed = argv[i + 1] || DEFAULT_SEED;
31
+ i++;
32
+ continue;
33
+ }
34
+ }
35
+
36
+ if (!Number.isFinite(options.iterations) || options.iterations <= 0) {
37
+ options.iterations = DEFAULT_ITERATIONS;
38
+ }
39
+
40
+ return options;
41
+ }
42
+
43
+ function ensureDir(dirPath) {
44
+ fs.mkdirSync(dirPath, { recursive: true });
45
+ }
46
+
47
+ function writeFile(filePath, content) {
48
+ fs.writeFileSync(filePath, content, "utf8");
49
+ }
50
+
51
+ function runBenchmark(label, runnerPath, codePath, iterations) {
52
+ const result = spawnSync(
53
+ process.execPath,
54
+ ["--expose-gc", runnerPath, codePath, String(iterations)],
55
+ { encoding: "utf8" }
56
+ );
57
+
58
+ if (result.error) {
59
+ throw result.error;
60
+ }
61
+ if (result.status !== 0) {
62
+ const message = result.stderr || result.stdout || "benchmark failed";
63
+ throw new Error(`[${label}] ${message.trim()}`);
64
+ }
65
+
66
+ const stdout = result.stdout.trim();
67
+ return JSON.parse(stdout);
68
+ }
69
+
70
+ function ratio(value, base) {
71
+ if (!base) {
72
+ return "n/a";
73
+ }
74
+ return `${(value / base).toFixed(2)}x`;
75
+ }
76
+
77
+ function formatNum(value, digits = 3) {
78
+ return Number(value).toFixed(digits);
79
+ }
80
+
81
+ async function main() {
82
+ const options = parseArgs(process.argv.slice(2));
83
+ const benchSourcePath = path.join(__dirname, "benchmark-source.js");
84
+ const outDir = path.join(__dirname, "dist");
85
+ const runnerPath = path.join(__dirname, "bench-runner.js");
86
+
87
+ ensureDir(outDir);
88
+
89
+ const source = fs.readFileSync(benchSourcePath, "utf8");
90
+ const originalPath = path.join(outDir, "bench.original.js");
91
+ writeFile(originalPath, source);
92
+
93
+ const obf = await obfuscate(source, {
94
+ preset: options.preset,
95
+ seed: options.seed,
96
+ filename: "benchmark-source.js",
97
+ });
98
+ const obfPath = path.join(outDir, "bench.obf.js");
99
+ writeFile(obfPath, obf.code);
100
+
101
+ const obfVm = await obfuscate(source, {
102
+ preset: options.preset,
103
+ seed: options.seed,
104
+ filename: "benchmark-source.js",
105
+ vm: { enabled: true, include: ["work", "bench"] },
106
+ });
107
+ const vmPath = path.join(outDir, "bench.vm.js");
108
+ writeFile(vmPath, obfVm.code);
109
+
110
+ const baseline = runBenchmark(
111
+ "original",
112
+ runnerPath,
113
+ originalPath,
114
+ options.iterations
115
+ );
116
+ const noVm = runBenchmark("obf-no-vm", runnerPath, obfPath, options.iterations);
117
+ const withVm = runBenchmark("obf-vm", runnerPath, vmPath, options.iterations);
118
+
119
+ const rows = [
120
+ {
121
+ variant: "original",
122
+ wallSec: formatNum(baseline.wallSec),
123
+ cpuSec: formatNum(baseline.cpuSec),
124
+ rssMb: formatNum(baseline.rssMb, 1),
125
+ heapUsedMb: formatNum(baseline.heapUsedMb, 1),
126
+ wallRatio: "1.00x",
127
+ cpuRatio: "1.00x",
128
+ rssRatio: "1.00x",
129
+ },
130
+ {
131
+ variant: "obf-no-vm",
132
+ wallSec: formatNum(noVm.wallSec),
133
+ cpuSec: formatNum(noVm.cpuSec),
134
+ rssMb: formatNum(noVm.rssMb, 1),
135
+ heapUsedMb: formatNum(noVm.heapUsedMb, 1),
136
+ wallRatio: ratio(noVm.wallSec, baseline.wallSec),
137
+ cpuRatio: ratio(noVm.cpuSec, baseline.cpuSec),
138
+ rssRatio: ratio(noVm.rssMb, baseline.rssMb),
139
+ },
140
+ {
141
+ variant: "obf-vm",
142
+ wallSec: formatNum(withVm.wallSec),
143
+ cpuSec: formatNum(withVm.cpuSec),
144
+ rssMb: formatNum(withVm.rssMb, 1),
145
+ heapUsedMb: formatNum(withVm.heapUsedMb, 1),
146
+ wallRatio: ratio(withVm.wallSec, baseline.wallSec),
147
+ cpuRatio: ratio(withVm.cpuSec, baseline.cpuSec),
148
+ rssRatio: ratio(withVm.rssMb, baseline.rssMb),
149
+ },
150
+ ];
151
+
152
+ console.log(`preset: ${options.preset}, iterations: ${options.iterations}`);
153
+ console.table(rows);
154
+ console.log("note: rss/heap are end-of-run samples, not peak.");
155
+ }
156
+
157
+ main().catch((err) => {
158
+ process.stderr.write(`${err && err.stack ? err.stack : err}\n`);
159
+ process.exit(1);
160
+ });
@@ -0,0 +1 @@
1
+ function work(e){const a=[2,0,1];let r=1;for(;-1!==r;)switch(a[r]){case 1:for(var c=0;c<20;c++){switch((s=(3*s+c)%97)%2==0?s+=c:s-=c,s%3){case 0:s+=7;break;case 1:s+=11;break;default:s+=13}s>1e3&&(s%=97)}r=0;break;case 2:return s;case 0:var s=e%97;r=2;break;default:r=-1}}function bench(e){const a=[2,0,1];let r=1;for(;-1!==r;)switch(a[r]){case 0:var c=0;r=2;break;case 2:return c;case 1:for(var s=0;s<e;s++)c+=work(s);r=0;break;default:r=-1}}globalThis.bench=bench;
@@ -0,0 +1,35 @@
1
+ function work(n) {
2
+ var x = n % 97;
3
+ for (var i = 0; i < 20; i++) {
4
+ x = (x * 3 + i) % 97;
5
+ if (x % 2 === 0) {
6
+ x += i;
7
+ } else {
8
+ x -= i;
9
+ }
10
+ switch (x % 3) {
11
+ case 0:
12
+ x += 7;
13
+ break;
14
+ case 1:
15
+ x += 11;
16
+ break;
17
+ default:
18
+ x += 13;
19
+ }
20
+ if (x > 1000) {
21
+ x = x % 97;
22
+ }
23
+ }
24
+ return x;
25
+ }
26
+
27
+ function bench(iterations) {
28
+ var total = 0;
29
+ for (var i = 0; i < iterations; i++) {
30
+ total += work(i);
31
+ }
32
+ return total;
33
+ }
34
+
35
+ globalThis.bench = bench;
@@ -0,0 +1 @@
1
+ const _0x27jaD=[[[152,137,140,175,171,176,185,182,239,143,152,169,239,135,235,189,151,136,182,186,237,234,151,178,181,226,133,172,183,236,133,244,230,240,236,174,143,173,140,180,144,138,185,183,236,236,145,140,147,140,133,143,180,189,136,135,239,186,135,177,168,178,190,186,146,237,181,190,166,236,239,155,234,183,179,137,133,183],[158,156,167,145,239,146,138,226,172,184,244,238,156,181,174,177,136,184,233,187,185,239,166,153,177,136,155,237,232,151,154,236,139,137,232,170,186,169,158,137,244,142,171,136,156,141,156,173,189,183,240,237,236,134,188,239,189,134,231,150,168,170,168,141,153,177,187,239,183,136,149,140,236,146,171,150,190,181,236,168,185,180,155,235,231,143,151,136,152,186,230,136,139,142,244,178,140,157,230,133,181,230,232,190,143,143,236,178,181,230,148,237,231,190,170,233,239,189,181,170,145,226,179,139,230,190,232,146,184,145,147,139,156,143,226,151,144,188,165,240,174,137,233,137,177,148,189,180,240,235,170,172,235,143,177,180,133,142,188,239,146,226,244,230,152,150,154,190,144,150,185,155,151,235,232,186,186,169,238,166,240,167,171,153,180,182,233,186,165,176,157,237,165,190,152,236,152,180,234,133,139,142,181,244,183,137,188,239,167,226,237,244,190,166,238,167,178,134,181,136,140,150,237,232,143,154,155,177,235,188,146,178,240,190,236,177,173,180,234,142,244,167,182,181,176,176,237,187,235,167,189,174,186,188,143,169,169,172,239,167,182,235,183,151,169,230,236,186,173,142,167,238,177,190,149,136,186,134,156,154,136,134,182,175,177,150,166,144,177,173,232,135,177,170,226,156,156,172,233,151,177,179,233,142,177,169,240,155,144,176,171,136,239,190,155,244,178,133,230,180,180,181,148,139,182,179,238,150,239,230,169,238,244,231,175,139,235,178,167,142,165,166]],[78,342],[77,125,125,101,21,81,57,109,217,85,225,105,157,125,333,105,361,97,285,89,297,81,461,105],223,77],_0x28hqX=[[[114,83,106,86,87,10,110,110,79,105,126,72,0,82,67,85,112,127,14,123,15,86,9,86,4,78,84,115,72,110,72,92,127,84,92,72,83,12,125,83,79,95,22,72,67,85,114,118,115,8,122,1,11,112,1,118,77,85,72,111,99,97,65,91,0,105,87,105,108,119,88,111,110,22,9,8,13,118,92,79,18,9,10,104,74,87,88,96,10,76,10,105,12,84,88,77,116,11,22,123,79,74,95,85,79,4,99,106,73,83,116,86,64,104,113,65,118,93,116,94,112,104,106,85,82,12,1,95,77,119,109,75,14,112,9,93,126,111,22,82,1,115,97,18,122,9,118,4,81,113,106,109,77,18,109,125,10,13,109,118,91,124,14,116,11,87,83,72,15,120,72,80,116,111,123,99,79,11,10,76,13,105,83,99,64,96,75,93,112,9,114,105,11,112,78,127,80,111,64,110,85,81,111,81,64,116,94,119,116,124,111,85,73,99,114,0,9,4,79,8,113,111,84,122,87,75,114,18,8,95,10,115,15,82,79,112,124,126,79,115,15,72,87,64,77,94,15,80,87],[65,116,15,67,95,87,97,105,88,84,108,95,83,109,108,10,96,124,67,95,104,119,92,113,83,85,85,4,14,22,88,76,22,109,115,125,126,22,88,120,109,117,125,8,10,83,86,73,65,126,79,117,11,67,75,72,127,14,94,77,1,91,114,8,127,67,85,113,127,77,94,115,109,110,78,79,86,87,13,1,90,109,126,125,13,75,85,90,10,14,78,9,113,13,112,81,105],[15,8,86,104,77,64,125,111,10,13,79,12,118,93,14,4,84,116,124,82,83,4,88,10,80,126,9,12,78,99,87,76,64,80,92,109,116,65,114,118,92,86]],[249,97,42],[111,79,79,95,63,71,23,119,255,115,195,75,191,99,179,91,383,115,323,123,303,79,271,75],57,111],_0x29UjO=[[[144,159,215,226,233,212,130,231,222,194,149,204,159,201,220,251,148,232,200,223,235,249,200,247,232,245,157,225,155,226,159,249,197,157,224,220,134,213,157,229,232,216,130,220,245,251,245,218,212,195,193,215,226,154,230,233,218,255,159,193,130,251,235,244,197,229,223,192,156,201,253,222,158,232,158,159,231,251,230,206,152,225,148,192,199,144,224,255,244,249,247,201,238,192,215,224,144,159,207,196,153,218,203,212,233,153,234,252,130,199,158,224,152,195,253,204,217,216,221,206,203,249,221,238,152,200,234,159,252,148,249,148,248,249,144,219,220,221,232,130,134,235,227,193,130,152,149,198,156,226,199,224,149,251,254,196,228,203,222,202,234,249,230,231,193,234,250,197,153,148,203,156,156,235,215,149,236,234,158,227,148,234,233,130,196,226,134,212,220,198,236,149,228,233,234,223,130,250,199,238,216,223,249,203,130,153],[195,193,224,215,130,158,157,222,253,194,192,130,231,220,203,158,232,250,154,213,194,229,252,222,250,204,253,251,218,157,158,250,239,192,247,236,227,200,130,159,216,229,217,229,194,217,239,253,216,251,234,229,219,195,130,198,232,202,144,198],[197,252,195,228,229],[203,233,148,195,203,157,245,238,231,130,193,196,253,232,195,195,213,218,236,192,236,195,252,222,197,212,144,223,195,245,217,154,197,201,199,207,201,134,192,252,230,204,149,230,238,157,224,202,227,225,159,215,223,220,235,154,202,217,149,207,202,154,153,229,192,231,250,236,202,236,249,238,193,199,247,202,197,149,206,207,220,155,152,158,218,239,238,215,234,156,247,249,215,155,144,251,239,192,233,226,200,235,213,230,254,130,235,234,249,215,216,234,195,232,198,223,197,206,157,144,206,213,247,157,216,155,202,220,196,201,197,227,200]],[206,60,5,133],[199,195,195,255,251,231,155,247,75,211,103,231,7,243,51,211,463,255,391,211,403,231,435,231],173,199],_0x2aUHu=[[[54,79,120,77,113,65,82,67,90,127,94,87,94,42,33,86,81,76,94,127,92,80,33,95,119,92,47,114,122,75,76,114,82,87,84,87,95,79,47,117,112,46,90,46,33,86,47,86,97,114,107,108,92,42,94,84,45,123,115,114,44,88,108,108,64,112],[113,91,47,109,119,83,77,33,78,95,125,115,41,32,54,95,125,36,67,82,111,78,86,74,92,87,93,40,120,124,47,123,127,111,95,99,86,117,104,95,99,113,33,110,42,73,94,42,99,115,88,117,74,110,40,42,33,65,111,50,72,73,117,90,92,122,46,109,45,85,72,85,111,122,120,114,107,111,47,124,124,111,50,76,108,122,118,45,93,114,93,50,99,65,99,42,114,125,82,79,94,93,42,118,118,118,113,126,75,125,126,94,109,64,47,54,94,32,65,47,99,116,127,111,40,125,93,93,94,80,105,83],[41,126,45,108,111,36,93,116,33,120,94,41,78,110,41,85,115,50,47,97,46,111,40,97,75,72,106,65,78,78,47,84,42,67,93,44,46,118,81,90,33,93,44,42,115,72,116,36,47,82,122,42,88,112,96,109,90,45,92,86,54,114,127,54,111,106,93,43,99,122,106,78,78,124,109,36,119,95,93,40,120,124,32,124,124,111,36,116,74,54,107,94,120,109,99,84,115,109,54,43,107,50,90,79,124,105,110,42,65,45,108,110,47,87,85,41,46,96,110,94,115,99,91,120,127,87,32,65,86,32,94,43,124,83,33,44,77,43,117,110,95,87,125,41,84,36,50,122,42,112,125,33,111,92,114,74,123,54,47,78,79,124,78,72,87,124,40,93,108,127,114,45,42,114,33,120,123,108,54,119,46,106,67,42,46,112,40,81,45,45,114,75,96,109,124,113,117,74,50,111,88,87]],[66,132,202],[71,99,99,127,27,79,35,119,211,107,135,91,155,107,335,75,339,79,347,91,383,115,299,99],25,71],_0x2bGaZ=[[[36,41,0,62,3,3,91,85,47,15,21,61,84,43,91,32,42,57,27,52,93,37,92,21,30,93,90,85,28,6,8,8,37,9,47,92,13,32,35,27,9,57,81,84,28,36,94,41,9,54,22,85,41,94,22,13,24,36,30,62,22,81,2,36,22,95,6,40,14,56,5,4,88,90,14,32,81,27,62,94,1,46,93,57,89,15,91,33,52,31,30,67,35,94,88,39,21,35,9,26,40,58,35,33,28,29,81,8,26,60,47,56,47,90,67,62,59,43,39,32,93,3,2,1,27,7,24,30,47,7,91,35,2,30,35,24,92,39,30,52,95,41,31,60,41,41,59,38,89,38,52,91,90,71,4,62,0,2,4,54,37,8,30,26,8,85,43,3,54,35,32,5,85,84,8,32,11,54,22,29,84,45,21,33,67,7,5,85,31,89,39,37,93,35,10,54,91,0,26,59,37,42,22,4,94,10,26,31,33,20,35,24,0,28,60,7,21,71,22,56,90,36,47,15,40,56,67,45,94,29,10,14,27,60,62,56,7,5,24,85,91,10,24,34,41,4,1,42,67,94,13,93,27,71,94,57,85,41,10,8,13,6,13,30,92,29,6,89,7,61,71,59,1,20,34,9,33,47,29,6,31,42,6,5,93,33,60,26,85,43,9,43,32,43,30,15,27,59,53,29,5,4,34,21,3,21,57,6,93,62,52,36,41,85,1,38,8,93,53,3,36,47,29,1,29,54,3,11,94,13,95,52,27,93,6,10,42,63,67,9,25,95,27,35,25,27,5,15,5,4,33,38,40,7,1,3,67,95,10,92,25,26,9,62,21,1,30,46,67,56,29,33,95,35,26,31,33,57,39,53,29,30,6,22,22,24,14,56,88,2,43,29,13,6,39,42,95,3,30,9,6,4,90,81,1,45,31,91,89,62,59,56,22,0,1,9,81,54,13,47,94,8,38,60,67,88,10,8,47,56,35,57],[46,28,92],[90,27,61,28,58],[3,45,61,11,84,33,43,27,15,14,22,4,9,0,32,31]],[432,3,5,16],[131,183,183,179,231,159,3,187,59,155,83,167,119,163,407,175,451,163,483,155,507,167,287,175],108,131],_0x2ceHa=[[[187,169,157,180,193,145,146,175,184,211,134,177,207,145,142,144,182,144,204,152,138,165,150,179,202,144,202,181,141,151,148,205,134,189,138,145,164,172,143,155,137,134,152,177,197,166,179,132,196,197,158,204,184,187,157,149,187,170,145,189,132,140,142,165,201,153,153,138,138,133,141,170,177,132,141,181,211,187,187,157,205,172,172,176,184,186,203,206,189,186,204,153,184,143,154,168,203,211,178,132,141,150,193,146,215,172,191,166,170,157,150,202,172,154,184,179,204,171,186,149,175,141,168,171,204,145,207,137,139,166,157,158,206,154,142,137,202,186,142,150,157,186,207,203,207,187,180,200,203,139,144,170,148,189,178,153,177,170,191,215,139,181,175,205,138,179,207,136,207,144,138,137,158,150,171,159,132,143,172,151,193,132,215,173,148,189,200,147,133,136,151,180,183,132,137,154,142,183,154,133,196,177,134,183,207,205,203,201,185,204,138,186,137,182,172,133,193,138,178,137,152,146,136,138,182,179,207,138,173,141,146,203,175,191,169,152,141,159,187,138,176,206,134,142,141,186,203,155,136,196,158,205,202,146,203,200,185,133,191,190,204,154,138,143,181,205,171,148,140,164,172,170,137,172,190,190,205,169,157,151,187,174,191,201,207,138,138,143,191,205,183,149,149,203,150,173,203,215,154,143,132,207,157,146,193,150],[183,147,137,180,150,200,145,153,166,137,152,189,166,145,202,136,211,151,186,176,175,168,181,186,145,193,211,147,191,152,184,183,164,184,215,169,203,153,159,184],[211,147,201,146,177,144,145,139,174,176,152],[133,205,204,206,197,155,178]],[306,40,11,7],[208,248,248,204,148,212,152,228,172,240,76,244,16,224,32,200,472,200,496,248,408,244],252,208],_0x1cLVh=[9,2,54,57,1,4,7,15,51,67,56,11,66,48,58,30,42,34,19,47,6,69,24,8,14,52,20,40,17,61,26,44,22,63,3,27,32,28,10,5,21,16,62,39,35,64,12,18,36,45,59,60,43,13,55,46,38,41,50,23,53,70,31,29,0,33,65,25,68,49,37],_0x1dtWs=[0,2,3,3,2,3,4,4,0,3,2,1,2,5,1,5,4,4,1,1,5,1,0,4,4,1,1,3,1,0,0,5,0,3,5,3,3,5,0,4,0,2,2,2,1,2,5,2,3,4,1,2,4,0,3,0,5,5,0,1,3,4,2,4,2,3,4,5,0,5,1],_0x1eEmE=[11,4,2,4,0,10,7,2,9,7,11,9,10,4,3,2,0,5,5,11,6,4,8,10,3,8,7,3,2,0,4,3,7,9,0,5,11,5,10,11,5,8,1,6,0,5,1,2,1,8,10,9,4,3,8,6,8,9,1,6,6,6,3,1,7,0,9,7,2,10,1],_0x19tkW=[6,119,198,147],_0x1bvaN=188,_0x1ajWz=[],_0x1fvSe=[48,45,33,14,31],_0x20Qnn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_0x25XGd=e=>{switch(e){case 0:default:return _0x27jaD;case 1:return _0x28hqX;case 2:return _0x29UjO;case 3:return _0x2aUHu;case 4:return _0x2bGaZ;case 5:return _0x2ceHa}},_0x26Pvu=(e,n)=>{const t=e[0],a=e[1],r=e[2],c=e[3],l=e[4];let o=r[2*n]^l,s=r[2*n+1]^l,_=0,i=o;for(;_<a.length&&i>=a[_];){if(2!=(1&Date.now())){let e=14;Date.now(),e^=24}i-=a[_],_+=1}let f="";for(let e=0;e<s;e+=1){const e=t[_][i]^c;f+=String.fromCharCode(e),i+=1,i>=a[_]&&(_+=1,i=0)}return f},_0x24DsZ=e=>{let n="";for(let t=0;t<e.length;t+=1){const a=e[t],r=_0x20Qnn.indexOf(a);if(r<0){n+=a;continue}n+=_0x20Qnn[(r-_0x1fvSe[(t+978)%_0x1fvSe.length]+65)%65]}return n},_0x21NMl=e=>{if("undefined"!=typeof Buffer)return Buffer.from(e,"base64");if("undefined"!=typeof atob){const n=atob(e),t=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)t[e]=n.charCodeAt(e);return t}throw new Error("No base64 support")},_0x22PfV=e=>{const n=Uint8Array.from(e),t=n.length||1,a=e=>255&n[e%t],r=1&a(0),c=a(1)%7+3,l=a(2)%7+5,o=a(3)%7+3,s=a(4)%7+5,_=(e,n)=>(e<<n|e>>>32-n)>>>0,i=(e,n)=>(e>>>n|e<<32-n)>>>0;let f=(a(5)<<24|a(6)<<16|a(7)<<8|a(8))>>>0,x=(a(9)<<24|a(10)<<16|a(11)<<8|a(12))>>>0;f^=t<<24>>>0,x^=t<<16>>>0;for(let e=0;e<t;e+=1){if(2!=(1&Date.now())){let e=155;if(Date.now(),2!=(1&Date.now())){let e=198;Date.now(),e^=27}e^=150}const n=a(e)+17*e&255;f=f+(255&(n<<(7&e)|n>>>8-(7&e)))>>>0,f=_(f,c),x=x+(f^n<<o)>>>0,x=i(x,l)}let b=0;return e=>{const a=n[b%t];let k;return 0===r?(f=f+(x^a+b+1)>>>0,f=_(f,c),x=x+(a^255&f)>>>0,x=i(x,l),k=255&(f^x^f>>>7)):(x=x+a+(255&f)>>>0,x=_(x,o),f=f+(x^a<<8)>>>0,f=i(f,s),k=f+x+(f>>>11)&255),b+=1,e^k}},_0x23NIx=e=>{if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let n="";for(let t=0;t<e.length;t+=1)n+=String.fromCharCode(e[t]);try{return decodeURIComponent(escape(n))}catch{return n}};function _0x18nHI(e){let n,t,a,r,c,l,o=0;for(;;){switch(o){case 0:c=_0x1ajWz[e-=188],o=void 0!==c?5:1;break;case 1:n=_0x1cLVh[e],t=_0x1dtWs[n],a=_0x1eEmE[n],o=2;break;case 2:r=_0x25XGd(t),l=_0x21NMl(_0x24DsZ(_0x26Pvu(r,a))),o=3;break;case 3:{const n=_0x22PfV(_0x19tkW);for(let e=0;e<l.length;e+=1)l[e]=n(l[e]);c=_0x23NIx(l),_0x1ajWz[e]=c,o=5;break}default:return c}if(2!=(1&Date.now())){let e=153;Date.now(),e^=115}}}const _0x7PlP=(()=>{const e=[147,142,30,86],n=188;let t="",a=0,r=0,c=0,l=0,o=null,s=null,_=null,i=null;const f=(e,n)=>(e<<n|e>>>32-n)>>>0,x=(e,n)=>(e>>>n|e<<32-n)>>>0,b=(e,n,t)=>{const a=(e?e.length:0)+(n?n.length:0)+(t?t.length:0),r=new Uint8Array(a);let c=0;return e&&e.length&&(r.set(e,c),c+=e.length),n&&n.length&&(r.set(n,c),c+=n.length),t&&t.length&&r.set(t,c),r},k=e=>{const n=Uint8Array.from(e||[]),t=n.length||1,a=e=>255&n[e%t],r=1&a(0),c=a(1)%7+3,l=a(2)%7+5,o=a(3)%7+3,s=a(4)%7+5;let _=(a(5)<<24|a(6)<<16|a(7)<<8|a(8))>>>0,i=(a(9)<<24|a(10)<<16|a(11)<<8|a(12))>>>0;_^=t<<24>>>0,i^=t<<16>>>0;for(let e=0;e<t;e+=1){const n=a(e)+17*e&255;_=_+(255&(n<<(7&e)|n>>>8-(7&e)))>>>0,_=f(_,c),i=i+(_^n<<o)>>>0,i=x(i,l)}let b=0;return e=>{const a=n[b%t];let k;return 0===r?(_=_+(i^a+b+1)>>>0,_=f(_,c),i=i+(a^255&_)>>>0,i=x(i,l),k=255&(_^i^_>>>7)):(i=i+a+(255&_)>>>0,i=f(i,o),_=_+(i^a<<8)>>>0,_=x(_,s),k=_+i+(_>>>11)&255),b+=1,e^k}},u=(e,n,t)=>{const l=new Array(n.length);for(let t=0;t<n.length;t+=1)l[n[t]]=e[t];let o=0,s=0,_=0;for(let e=0;e<l.length;e+=1){const n=l[e];if(n){if(2!=(1&Date.now())){let e=131;Date.now(),e^=123}for(let e=0;e<n.length;e+=1){const l=i[n.charCodeAt(e)];if(65535===l)continue;if(s=s<<6|(l^a)-r&63,_+=6,_>=24){_-=24;const e=s>>>_;s&=(1<<_)-1;const n=e>>>8&255,a=255&e;if(o<c&&(t(e>>>16&255),o+=1),o<c){if(2!=(1&Date.now())){let e=19;Date.now(),e^=107}t(n),o+=1}if(o<c&&(t(a),o+=1),o>=c)return}}}}},h=(e,n,t,a)=>{const r=e.length,c=new Uint8Array(r);for(let l=0;l<r;l+=1){c[t[l]^a]=e[l]^n[l]}return c};return{open:(e,n)=>{const t=b(o,s,_),a=k(t),r=new Array(l);let c=0;return u(e,n,e=>{c>=l||(r[c++]=a(e))}),r},rebuild:h,_0x8DvK:(t,a)=>{const r=e[0]^n,c=e[1]^n,l=e[2]^n,o=e[3]^n,s=[],_=Object.create(null);let i=0;for(;i<t.length;){const e=t[i++]^n;if(e===r)s.push(a[t[i++]]);else if(e===c){const e=s.pop(),n=s.pop(),t=s.pop();if(2!=(1&Date.now())){let e=253;if(Date.now(),e^=167,2!=(1&Date.now())){let e=205;if(Date.now(),e^=100,2!=(1&Date.now())){let e=147;Date.now(),e^=200}}}const a=s.pop();s.push(h(a,t,n,e))}else if(e===l){const e=s.pop();let n="";for(let t=0;t<e.length;t+=1)n+=String.fromCharCode(e[t]);s.push(n)}else e===o&&(_[t[i++]]=s.pop())}return _},seed:e=>{const n=e[1];t=e[0],a=n[0],r=n[1],c=(n[2]|n[3]<<8|n[4]<<16|n[5]<<24)>>>0,l=n.length>=8?n[6]|n[7]<<8:0,o=e[2],s=e[3],_=e[4];const f=new Uint16Array(256);for(let e=0;e<f.length;e+=1)f[e]=65535;for(let e=0;e<t.length;e+=1)if(f[t.charCodeAt(e)]=e,2!=(1&Date.now())){let e=172;Date.now(),e^=155}i=f},stream:u,len:()=>c,makeStream:k,joinKey:b}})(),_0xcVhy=e=>_0x7PlP.makeStream(e);function _0x9zOO(e,n,t){const a=_0x7PlP._0x8DvK([147,0,147,1,147,2,147,3,142,30,86,0,147,4,147,5,147,6,147,7,142,86,1,147,8,147,9,147,10,147,11,142,86,2],t);_0x7PlP.seed(a);const r=a[2],c=_0xcVhy(r),l=_0x7PlP.len(),o=new Int32Array(l>>>2);let s=0,_=0,i=0;return _0x7PlP.stream(e,n,e=>{const n=c(e);if(s|=n<<8*_,_+=1,4===_&&(o[i++]=0|s,s=0,_=0,2!=(1&Date.now()))){let e=53;Date.now(),e^=104}}),o}const _0x10cgJ=e=>_0x7PlP.makeStream(e),_0x11ICp=e=>{if(typeof TextDecoder!==_0x18nHI(188))return new TextDecoder(_0x18nHI(189)).decode(e);if(typeof Buffer!==_0x18nHI(188))return Buffer.from(e).toString(_0x18nHI(190));let n="";for(let t=0;t<e.length;t+=1){if(2!=(1&Date.now())){let e=66;Date.now(),e^=145}n+=String.fromCharCode(e[t])}try{return decodeURIComponent(escape(n))}catch(e){return n}};function _0xdjIk(e,n,t){const a=_0x7PlP._0x8DvK([147,0,147,1,147,2,147,3,142,30,86,0,147,4,147,5,147,6,147,7,142,86,1,147,8,147,9,147,10,147,11,142,86,2,147,12,147,13,147,14,147,15,142,86,3],t);_0x7PlP.seed(a);const r=a[2],c=a[3],l=_0x10cgJ(r),o=_0x7PlP.len(),s=new Uint8Array(o);let _=0,i=0;_0x7PlP.stream(e,n,e=>{const n=e^c[i++%c.length];s[_++]=l(n)});const f=_0x11ICp(s),x=JSON.parse(f),b=new Array(x.length);for(let e=0;e<x.length;e+=1){const n=x[e],t=n[0],a=n[1];b[e]="u"===t?void 0:"l"===t?null:"b"===t?Boolean(a):"n"===t?Number(a):a}return b}const _0x2gDf=(()=>{const e=[_0x18nHI(191),_0x18nHI(192),"E"],n=_0x7PlP._0x8DvK([147,0,147,1,147,2,147,3,142,30,86,0,147,4,147,5,147,6,147,7,142,86,1,147,8,147,9,147,10,147,11,142,86,2,147,12,147,13,147,14,147,15,142,86,3,147,16,147,17,147,18,147,19,142,86,4],[[86,61,244,85,165,213,11,206,174,232,79,129,67,19,154,65,94,252,186,202,121,178,83,70,158,190,254,73,202,79,54,131,78,47,1,211,83,129,83,64,20,215,205,126,43,173,100,203,17,151,123,17,63,91,217,155,86,78,205,65,36,146,250,15],[102,109,187,31,223,148,73,161,150,197,58,208,42,126,204,34,25,181,221,174,55,208,37,14,202,207,138,30,184,120,5,240,37,124,51,158,22,181,57,26,95,175,163,7,103,204,49,167,116,211,78,73,14,51,128,236,48,119,251,49,103,192,165,73],[238,237,206,194,208,216,252,213,244,209,229,241,253,196,236,219,232,251,198,205,217,222,220,210,249,197,247,239,245,200,224,203,225,192,227,202,214,223,242,212,255,230,215,218,240,231,235,204,201,226,254,243,248,234,193,199,221,228,246,195,211,250,207,233],204,[234,82,145,237,189,11,35,185],[203,82,163,209,156,11,35,185],[201,203,206,207,205,204,200,202],207,[225,129,146,104,58,142,182,162,54,194,158,117],[159,25,186,54,192,136,101,34,208,62,56,25],[54,49,62,63,51,52,60,50,53,55,48,61],55,[78,136,230,146,43,250,131,144],[10,38,252,21,95,153,150,125],[116,114,117,118,112,119,113,115],113,[41,245,252,209,43,165,217,231,116,40],[82,188,10,153,26,163,184,164,178,183],[125,126,124,123,116,117,127,122,121,120],125]);_0x7PlP.seed(n);const t=_0x7PlP.open(e,[0,1,2]),a=[],r=[],c=[],l=[];for(let e=0;e<t.length;e+=1){const n=3&e;if(0===n){if(a.push(t[e]),2!=(1&Date.now())){let e=217;Date.now(),e^=175}}else if(1===n){if(r.push(t[e]),2!=(1&Date.now())){let e=30;Date.now(),e^=7}}else 2===n?c.push(t[e]):l.push(t[e])}return[a,r,c,l]})(),_0x3Eex=(()=>{const e=new Uint8Array(256);for(let n=0;n<256;n+=1){const t=3&n,a=(n^t)>>>2;if(2!=(1&Date.now())){let e=155;if(Date.now(),Date.now(),2!=(1&Date.now())){let e=172;if(Date.now(),e^=169,2!=(1&Date.now())){let e=83;Date.now(),e^=37}}e^=205}e[n]=_0x2gDf[t][a]}return e})(),_0x6eaJ=243;function _0x5mRv(e,n){return Function(_0x18nHI(193),_0x18nHI(194)+e+_0x18nHI(195))(n)}function _0x0Lqo(e,n,t,a){const r=[],c=[];let l=0;const o=_0x3Eex,s=typeof globalThis!==_0x18nHI(188)?globalThis:typeof window!==_0x18nHI(188)?window:typeof global!==_0x18nHI(188)?global:{};let _,i=0,f=null,x=null,b=0,k=!1;function u(e){for(;c.length;){const n=c[c.length-1];if(n.inFinally)c.pop();else if(n.inCatch){if(null!==n.finallyIp)return n.inCatch=!1,x=e,f=null,l=n.stackSize,r.length=l,i=n.finallyIp,!0;c.pop()}else{if(null!==n.catchIp)return f=e,x=null,l=n.stackSize,r.length=l,i=n.catchIp,!0;if(null!==n.finallyIp)return x=e,l=n.stackSize,r.length=l,i=n.finallyIp,!0;c.pop()}}return!1}for(;i<e.length;){const h=o[255&(243^e[i++])];try{switch(h){case 0:r[l++]=n[e[i++]];break;case 1:r[l++]=t[n[e[i++]]];break;case 2:{const a=n[e[i++]],c=r[--l];t[a]=c,r[l++]=c;break}case 12:r[l++]=s[n[e[i++]]];break;case 13:{const t=n[e[i++]],a=r[--l];s[t]=a,r[l++]=a;break}case 3:{const n=e[i++],t=r[--l],a=r[--l];switch(n){case 0:r[l++]=a+t;break;case 1:r[l++]=a-t;break;case 2:r[l++]=a*t;break;case 3:r[l++]=a/t;break;case 4:r[l++]=a%t;break;case 5:r[l++]=a|t;break;case 6:r[l++]=a&t;break;case 7:r[l++]=a^t;break;case 8:r[l++]=a<<t;break;case 9:r[l++]=a>>t;break;case 10:r[l++]=a>>>t;break;case 11:r[l++]=a==t;break;case 12:r[l++]=a===t;break;case 13:r[l++]=a!=t;break;case 14:r[l++]=a!==t;break;case 15:r[l++]=a in t;break;case 16:r[l++]=a<t;break;case 17:r[l++]=a<=t;break;case 18:r[l++]=a>t;break;case 19:r[l++]=a>=t;break;default:throw new Error(_0x18nHI(196))}break}case 4:{const n=e[i++],t=r[--l];switch(n){case 0:r[l++]=!t;break;case 1:r[l++]=+t;break;case 2:r[l++]=-t;break;case 3:r[l++]=~t;break;case 4:r[l++]=typeof t;break;case 5:r[l++]=void 0;break;default:throw new Error(_0x18nHI(197))}break}case 5:{const n=e[i++];if(0===n){const e=r[--l];r[l++]=e.call(null);break}if(1===n){const e=r[--l],n=r[--l];r[l++]=n.call(null,e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l];r[l++]=t.call(null,n,e);break}if(3===n){if(2!=(1&Date.now())){let e=232;if(Date.now(),2!=(1&Date.now())){let e=182;Date.now(),e^=85}e^=226}const e=r[--l],n=r[--l],t=r[--l],a=r[--l];r[l++]=a.call(null,t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1)t[e]=r[--l];const a=r[--l];r[l++]=a.apply(null,t);break}case 10:{const n=e[i++];if(0===n){const e=r[--l],n=r[--l],t=n[e];r[l++]=t.call(n);break}if(1===n){const e=r[--l],n=r[--l],t=r[--l],a=t[n];r[l++]=a.call(t,e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l],c=a[t];r[l++]=c.call(a,n,e);break}if(3===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l],c=r[--l],o=c[a];r[l++]=o.call(c,t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1)t[e]=r[--l];const a=r[--l],c=r[--l],o=c[a];r[l++]=o.apply(c,t);break}case 18:{const n=e[i++];if(0===n){const e=r[--l];if(2!=(1&Date.now())){let e=186;Date.now(),e^=240}r[l++]=new e;break}if(1===n){const e=r[--l],n=r[--l];r[l++]=new n(e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l];r[l++]=new t(n,e);break}if(3===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l];r[l++]=new a(t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1)t[e]=r[--l];const a=r[--l];r[l++]=Reflect.construct(a,t);break}case 8:{const e=r[--l],n=r[--l];r[l++]=n[e];break}case 9:{const e=r[--l],n=r[--l];r[--l][n]=e,r[l++]=e;break}case 11:r[l++]=a;break;case 7:l-=1;break;case 17:r[l]=r[l-1],l+=1;break;case 14:i=e[i];break;case 15:case 16:{const n=e[i++],t=r[--l];(16===h?t:!t)&&(i=n);break}case 20:{const n=e[i++],t=e[i++],a=e[i++];c.push({catchIp:n>=0?n:null,finallyIp:t>=0?t:null,endIp:a,stackSize:l,inCatch:!1,inFinally:!1});break}case 21:c.pop(),x=null,f=null;break;case 22:{const e=c[c.length-1];e&&(e.inCatch=!0);break}case 23:{const e=c[c.length-1];e&&(e.inFinally=!0);break}case 24:r[l++]=f;break;case 25:r[l++]=[];break;case 26:r[l++]={};break;case 27:{const a=n[e[i++]];r[l++]=_0x5mRv(a,t);break}case 29:throw new Error(_0x18nHI(198));case 6:_=r[--l],k=!0;break;case 19:throw r[--l];case 28:if(null!==x){const e=x;throw x=null,e}break;case 30:b=b+l+i|0;break;case 31:if(l){const e=l-1;if(r[e]=r[e],2!=(1&Date.now())){let e=116;Date.now(),e^=44}}break;case 32:e[i++];0;break;default:throw new Error(_0x18nHI(199))}if(k)return _}catch(e){if(!u(e))throw e}}}async function _0x1eBm(e,n,t,a){const r=[],c=[];let l=0;const o=_0x3Eex,s=typeof globalThis!==_0x18nHI(188)?globalThis:typeof window!==_0x18nHI(188)?window:typeof global!==_0x18nHI(188)?global:{};let _,i=0,f=null,x=null,b=0,k=!1;function u(e){for(;c.length;){const n=c[c.length-1];if(n.inFinally)c.pop();else if(n.inCatch){if(null!==n.finallyIp)return n.inCatch=!1,x=e,f=null,l=n.stackSize,r.length=l,i=n.finallyIp,!0;c.pop()}else{if(null!==n.catchIp)return f=e,x=null,l=n.stackSize,r.length=l,i=n.catchIp,!0;if(null!==n.finallyIp)return x=e,l=n.stackSize,r.length=l,i=n.finallyIp,!0;c.pop()}}return!1}for(;i<e.length;){const h=o[255&(243^e[i++])];try{switch(h){case 0:r[l++]=n[e[i++]];break;case 1:r[l++]=t[n[e[i++]]];break;case 2:{const a=n[e[i++]],c=r[--l];t[a]=c,r[l++]=c;break}case 12:r[l++]=s[n[e[i++]]];break;case 13:{const t=n[e[i++]],a=r[--l];s[t]=a,r[l++]=a;break}case 3:{const n=e[i++],t=r[--l],a=r[--l];switch(n){case 0:r[l++]=a+t;break;case 1:r[l++]=a-t;break;case 2:r[l++]=a*t;break;case 3:r[l++]=a/t;break;case 4:r[l++]=a%t;break;case 5:r[l++]=a|t;break;case 6:r[l++]=a&t;break;case 7:r[l++]=a^t;break;case 8:r[l++]=a<<t;break;case 9:r[l++]=a>>t;break;case 10:r[l++]=a>>>t;break;case 11:r[l++]=a==t;break;case 12:r[l++]=a===t;break;case 13:r[l++]=a!=t;break;case 14:r[l++]=a!==t;break;case 15:r[l++]=a in t;break;case 16:r[l++]=a<t;break;case 17:r[l++]=a<=t;break;case 18:r[l++]=a>t;break;case 19:r[l++]=a>=t;break;default:throw new Error(_0x18nHI(196))}break}case 4:{const n=e[i++],t=r[--l];switch(n){case 0:r[l++]=!t;break;case 1:r[l++]=+t;break;case 2:r[l++]=-t;break;case 3:r[l++]=~t;break;case 4:r[l++]=typeof t;break;case 5:r[l++]=void 0;break;default:throw new Error(_0x18nHI(197))}break}case 5:{const n=e[i++];if(0===n){const e=r[--l];r[l++]=e.call(null);break}if(1===n){const e=r[--l],n=r[--l];r[l++]=n.call(null,e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l];r[l++]=t.call(null,n,e);break}if(3===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l];if(2!=(1&Date.now())){let e=22;Date.now(),e^=179}r[l++]=a.call(null,t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1)t[e]=r[--l];const a=r[--l];r[l++]=a.apply(null,t);break}case 10:{const n=e[i++];if(0===n){const e=r[--l],n=r[--l],t=n[e];r[l++]=t.call(n);break}if(1===n){const e=r[--l],n=r[--l],t=r[--l],a=t[n];r[l++]=a.call(t,e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l],c=a[t];r[l++]=c.call(a,n,e);break}if(3===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l],c=r[--l],o=c[a];r[l++]=o.call(c,t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1){if(2!=(1&Date.now())){let e=168;Date.now(),e^=199}t[e]=r[--l]}const a=r[--l],c=r[--l],o=c[a];r[l++]=o.apply(c,t);break}case 18:{const n=e[i++];if(0===n){const e=r[--l];r[l++]=new e;break}if(1===n){const e=r[--l],n=r[--l];r[l++]=new n(e);break}if(2===n){const e=r[--l],n=r[--l],t=r[--l];r[l++]=new t(n,e);break}if(3===n){const e=r[--l],n=r[--l],t=r[--l],a=r[--l];r[l++]=new a(t,n,e);break}const t=new Array(n);for(let e=n-1;e>=0;e-=1)t[e]=r[--l];const a=r[--l];r[l++]=Reflect.construct(a,t);break}case 8:{const e=r[--l],n=r[--l];r[l++]=n[e];break}case 9:{const e=r[--l],n=r[--l];r[--l][n]=e,r[l++]=e;break}case 11:r[l++]=a;break;case 7:l-=1;break;case 17:r[l]=r[l-1],l+=1;break;case 14:i=e[i];break;case 15:case 16:{const n=e[i++],t=r[--l];(16===h?t:!t)&&(i=n);break}case 20:{const n=e[i++],t=e[i++],a=e[i++];c.push({catchIp:n>=0?n:null,finallyIp:t>=0?t:null,endIp:a,stackSize:l,inCatch:!1,inFinally:!1});break}case 21:c.pop(),x=null,f=null;break;case 22:{const e=c[c.length-1];e&&(e.inCatch=!0);break}case 23:{const e=c[c.length-1];e&&(e.inFinally=!0);break}case 24:r[l++]=f;break;case 25:r[l++]=[];break;case 26:r[l++]={};break;case 27:{const a=n[e[i++]];r[l++]=_0x5mRv(a,t);break}case 29:{const e=r[--l];r[l++]=await e;break}case 6:_=r[--l],k=!0;break;case 19:throw r[--l];case 28:if(null!==x){const e=x;if(2!=(1&Date.now())){let e=164;Date.now(),e^=135}throw x=null,e}break;case 30:b=b+l+i|0;break;case 31:if(l){const e=l-1;r[e]=r[e]}break;case 32:e[i++];0;break;default:throw new Error(_0x18nHI(199))}if(k)return _}catch(e){if(!u(e))throw e}}}function work(e){return _0x0Lqo(_0x9zOO([_0x18nHI(200),_0x18nHI(201),_0x18nHI(202),_0x18nHI(203),_0x18nHI(204),_0x18nHI(205),_0x18nHI(206),_0x18nHI(207),_0x18nHI(208),_0x18nHI(209),_0x18nHI(210),_0x18nHI(211),_0x18nHI(212),_0x18nHI(213),_0x18nHI(214),_0x18nHI(215),_0x18nHI(216),_0x18nHI(217),_0x18nHI(218),_0x18nHI(219),_0x18nHI(220),_0x18nHI(221),_0x18nHI(222),_0x18nHI(223),_0x18nHI(224),_0x18nHI(225),_0x18nHI(226),_0x18nHI(227),_0x18nHI(228),_0x18nHI(229),_0x18nHI(230),_0x18nHI(231),_0x18nHI(232),_0x18nHI(233),_0x18nHI(234),_0x18nHI(235),_0x18nHI(236)],[29,16,23,21,5,14,35,11,17,33,27,30,36,25,28,4,13,2,3,34,1,15,0,19,31,12,18,10,32,7,20,22,8,6,26,24,9],[[20,103,189,138,30,184,9,126,99,197,238,224,222,52,208,142,165,162,38,150,206,70,72,144,193,43,200,33,190,237,221,21,117,145,233,149,91,37,49,33,51,56,135,182,164,172,122,161,184,135,182,93,141,201,226,167,189,146,100,59,83,59,129,152],[101,16,142,178,68,137,63,38,53,179,134,178,157,124,181,163,198,237,127,248,187,11,9,217,131,127,162,106,220,132,237,91,37,235,186,237,30,67,92,118,82,72,192,242,221,249,77,197,231,190,194,47,185,143,141,146,241,225,46,92,63,9,208,243],[253,248,251,218,211,229,204,255,201,197,245,208,250,210,198,231,242,215,220,252,194,214,238,244,226,243,193,227,205,216,206,217,212,228,192,196,195,236,219,222,200,223,207,246,202,232,213,221,241,233,254,224,230,234,247,199,235,225,239,240,237,209,203,249],221,[27,161,82,243,61,171,207,83],[27,184,81,243,61,171,207,68],[24,26,25,30,28,31,29,27],26,[226,138,247,159,210,3],[118,178,49,128,99,210],[158,159,152,157,153,156],157]),_0xdjIk([_0x18nHI(237),_0x18nHI(238),_0x18nHI(239),_0x18nHI(240),_0x18nHI(241),_0x18nHI(242),_0x18nHI(243),_0x18nHI(244)],[2,7,4,6,5,1,0,3],[[113,152,27,219,141,188,249,181,230,129,49,144,200,194,133,3,194,226,122,46,154,206,86,79,157,45,158,228,1,244,202,226,45,228,32,186,116,97,184,161,113,15,36,129,92,174,41,93,150,227,7,153,75,39,150,140,161,18,29,24,83,97,63,135],[23,247,65,154,184,202,161,226,162,204,91,248,163,141,253,65,165,214,72,103,170,128,58,120,206,102,252,135,68,144,186,176,21,149,103,205,43,20,194,231,2,102,104,213,10,254,97,36,243,160,86,175,57,114,207,248,235,124,36,117,98,0,12,170],[240,212,237,210,213,222,229,235,252,236,249,195,253,218,250,208,221,215,207,198,214,216,224,197,192,211,238,202,248,219,225,206,246,254,233,204,226,244,220,199,255,242,205,203,251,223,239,245,227,196,194,230,243,193,247,234,209,201,217,228,241,232,200,231],230,[184,56,18,54,29,73,234,129],[187,56,18,54,143,73,206,129],[131,128,133,132,129,135,130,134],131,[123,252,51,41,5,163,28,185,80,33,232],[114,61,64,5,185,177,225,252,135,176,9],[180,187,178,176,186,177,183,185,181,179,182],179,[11,143,168,254,103,66,223,11,97,182],[232,39,165,64,66,156,178,138,229,174],[110,104,109,106,108,105,96,107,111,97],104]),{n:e,x:void 0,i:void 0,__vm_this_944122119:this,__vm_args_42178096:arguments,__vm_new_target_416837392:new.target},this)}function bench(e){return _0x0Lqo(_0x9zOO([_0x18nHI(245),_0x18nHI(246),_0x18nHI(247),_0x18nHI(248),_0x18nHI(249),_0x18nHI(250),_0x18nHI(251),_0x18nHI(252),_0x18nHI(253)],[2,8,6,1,5,4,7,3,0],[[27,38,143,254,10,4,95,30,15,175,171,43,19,72,179,184,155,158,223,217,134,215,53,168,93,35,186,12,47,12,181,124,42,241,206,131,130,135,241,162,49,33,25,68,241,127,37,209,162,99,239,154,172,94,144,86,191,155,48,205,32,96,116,172],[119,110,162,177,56,93,41,108,124,227,230,98,36,38,224,200,253,243,233,155,193,134,116,145,37,27,237,99,28,104,220,40,83,144,139,235,215,179,163,233,107,80,93,117,154,10,79,171,242,83,169,194,230,41,222,51,203,205,111,175,67,35,19,153],[133,141,162,165,128,166,153,144,145,188,137,146,185,147,172,159,157,179,151,150,176,173,178,191,186,155,177,142,149,163,180,139,175,158,138,135,130,148,184,160,154,171,174,156,187,132,140,134,182,170,183,169,143,131,161,189,164,167,129,190,152,181,136,168],179,[59,25,46,59,199,24,49,54],[247,25,46,59,199,16,49,2],[136,137,140,142,141,139,143,138],138,[118,160,159,146,188,237,245,193,200,242,17],[216,105,23,78,228,188,184,29,143,27,181],[144,155,157,146,154,156,153,152,147,159,158],154]),_0xdjIk([_0x18nHI(254),_0x18nHI(255),_0x18nHI(256),_0x18nHI(257),_0x18nHI(258)],[1,2,0,4,3],[[205,9,157,166,176,10,147,199,45,200,208,33,140,222,189,55,106,168,163,160,227,106,13,93,63,17,199,32,104,178,40,134,32,199,124,7,249,68,96,237,49,102,58,245,71,74,132,219,174,107,39,99,85,101,93,72,195,63,17,187,32,130,33,178],[165,98,231,232,234,115,166,255,103,169,128,81,203,143,210,91,15,225,209,144,137,89,106,44,114,89,148,87,43,234,122,208,83,178,57,94,144,16,34,143,73,5,8,204,33,123,224,246,195,31,102,13,97,83,22,14,140,8,85,247,119,215,126,196],[21,27,46,40,52,30,57,45,35,37,26,20,10,7,58,33,9,11,54,12,34,49,0,1,59,14,2,36,5,56,6,19,50,15,13,24,63,17,53,51,41,4,8,61,48,43,18,42,31,16,22,55,38,60,44,39,28,32,23,25,47,3,29,62],37,[164,93,175,209,176,118,69,27],[164,107,175,209,176,118,98,78],[17,21,16,18,19,22,20,23],21,[145,232,147,81,96,88,174,173,146,122],[32,197,238,114,252,24,249,114,241,6],[17,20,16,19,22,18,24,25,23,21],17,[18,171,175,193,198,184,195],[74,29,230,139,154,16,148],[62,59,61,60,57,56,58],56]),{iterations:e,total:void 0,i:void 0,__vm_this_928473344:this,__vm_args_880325784:arguments,__vm_new_target_458065474:new.target},this)}globalThis.bench=bench;
@@ -0,0 +1 @@
1
+ const _0xfKex=[[[210,247],[144,151]],[2,2],[100,96],160,100],_0x10ddY=[[[37,36,122,51,59],[63,31,15,125,3],[41],[34]],[5,5,1,1],[84,88],74,84],_0x11Ite=(()=>{if(2!=(1&Date.now())){let e=77;Date.now(),e^=107}return[[[199],[205,169,247],[251,171,253],[246]],[1,3,3,1],[200,192],158,200]})(),_0x12Txv=[[[149,208,167,213],[144,145,148],[175]],[4,3,1],[29,21],228,29],_0x13HiA=[[[157],[187],[158],[209]],[1,1,1,1],[165,161],236,165],_0x4pbJ=[0,4,2,3,1],_0x5ffF=[4,2,1,0,3],_0x6wgW=[0,0,0,0,0],_0x1IhK=[111,128,175,96,90,50,145,16,7],_0x3URv=535,_0x2aIA=[],_0x7oCo=[29,34,16,25],_0x8oAp="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_0xdOtW=e=>{switch(e){case 0:default:return _0xfKex;case 1:return _0x10ddY;case 2:return _0x11Ite;case 3:return _0x12Txv;case 4:return _0x13HiA}},_0xezJf=(e,t)=>{const n=e[0],r=e[1],o=e[2],a=e[3],x=e[4];let f=o[2*t]^x,_=o[2*t+1]^x,l=0,c=f;for(;l<r.length&&c>=r[l];)c-=r[l],l+=1;let i="";for(let e=0;e<_;e+=1){const e=n[l][c]^a;i+=String.fromCharCode(e),c+=1,c>=r[l]&&(l+=1,c=0)}return i},_0xcmPh=e=>{let t="";for(let n=0;n<e.length;n+=1){const r=e[n],o=_0x8oAp.indexOf(r);if(o<0){t+=r;continue}t+=_0x8oAp[(o-_0x7oCo[(n+738)%_0x7oCo.length]+65)%65]}return t},_0x9dPo=e=>{if("undefined"!=typeof Buffer){if(Date.now(),2!=(1&Date.now())){let e=192;Date.now(),e^=76}return Buffer.from(e,"base64")}if("undefined"!=typeof atob){const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}throw new Error("No base64 support")},_0xaKlq=e=>{const t=Uint8Array.from(e),n=t.length||1,r=e=>255&t[e%n],o=1&r(0),a=r(1)%7+3,x=r(2)%7+5,f=r(3)%7+3,_=r(4)%7+5,l=(e,t)=>(e<<t|e>>>32-t)>>>0,c=(e,t)=>(e>>>t|e<<32-t)>>>0;let i=(r(5)<<24|r(6)<<16|r(7)<<8|r(8))>>>0,u=(r(9)<<24|r(10)<<16|r(11)<<8|r(12))>>>0;i^=n<<24>>>0,u^=n<<16>>>0;for(let e=0;e<n;e+=1){const t=r(e)+17*e&255;i=i+(255&(t<<(7&e)|t>>>8-(7&e)))>>>0,i=l(i,a),u=u+(i^t<<f)>>>0,u=c(u,x)}let s=0;return e=>{const r=t[s%n];let d;if(0===o)i=i+(u^r+s+1)>>>0,i=l(i,a),u=u+(r^255&i)>>>0,u=c(u,x),d=255&(i^u^i>>>7);else{if(u=u+r+(255&i)>>>0,u=l(u,f),i=i+(u^r<<8)>>>0,i=c(i,_),Date.now(),2!=(1&Date.now())){let e=194;Date.now(),e^=53}d=i+u+(i>>>11)&255}return s+=1,e^d}},_0xbLAr=e=>{if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let n=0;n<e.length;n+=1)t+=String.fromCharCode(e[n]);try{return decodeURIComponent(escape(t))}catch{return t}};function _0x0DnJ(e){let t,n,r,o,a,x,f=0;for(;;)switch(f){case 0:a=_0x2aIA[e-=535],f=void 0!==a?5:1;break;case 1:t=_0x4pbJ[e],n=_0x5ffF[t],r=_0x6wgW[t],f=2;break;case 2:o=_0xdOtW(n),x=_0x9dPo(_0xcmPh(_0xezJf(o,r))),f=3;break;case 3:{const t=_0xaKlq(_0x1IhK);for(let e=0;e<x.length;e+=1)x[e]=t(x[e]);a=_0xbLAr(x),_0x2aIA[e]=a,f=5;break}default:return a}}function fib(e){let t=0,n=1;for(let r=0;r<e;r++){if(2!=(1&Date.now())){let e=84;Date.now(),e^=28}const e=t+n;t=n,n=e}if(2!=(1&Date.now())){let e=28;Date.now(),e^=234}return t}function greet(e){if(2!=(1&Date.now())){let e=86;if(Date.now(),2!=(1&Date.now())){let e=83;Date.now(),e^=140}Date.now(),e^=108}return _0x0DnJ(535)+e}function main(){const e=fib(8),t=greet(_0x0DnJ(536));return globalThis[_0x0DnJ(537)][_0x0DnJ(538)](t+_0x0DnJ(539)+e),{value:e,msg:t}}globalThis.__result=main();