Greasy Fork

Greasy Fork is available in English.

KukuluLive视频下载

一键下载KukuluLive视频,支持4K/1080P/720P多画质。

在您安装前,Greasy Fork 希望您知道此脚本声明其包含了一些负面功能。这些功能也许会使脚本作者获利,而不能给您带来任何直接的金钱收益。

此脚本会在您访问的网站中插入广告。 脚本作者的说明: 服务器需要成本,感谢理解

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name KukuluLive视频下载
// @namespace https://gitee.com/u2222223/greasyfork_scripts/raw/master/KukuluLive/index.js
// @version 2026.01.21.2
// @description 一键下载KukuluLive视频,支持4K/1080P/720P多画质。
// @icon https://live.erinn.biz/favicon.ico
// @match *://*.erinn.biz/*
// @match *://dajiaoniu.site/* 
// @match *://localhost:6688/*
// @author       大角牛
// @supportURL   https://gitee.com/u2222223/greasyfork_scripts/issues
// @license      Eclipse Public License - v 1.0
// @connect erinn.biz
// @connect *
// @connect localhost
// @grant        GM_addElement
// @grant        GM_addStyle
// @grant        GM_addValueChangeListener
// @grant        GM_cookie
// @grant        GM_deleteValue
// @grant        GM_deleteValues
// @grant        GM_download
// @grant        GM_getResourceText
// @grant        GM_getResourceURL
// @grant        GM_getTab
// @grant        GM_getTabs
// @grant        GM_getValue
// @grant        GM_getValues
// @grant        GM_info
// @grant        GM_listValues
// @grant        GM_log
// @grant        GM_notification
// @grant        GM_openInTab
// @grant        GM_registerMenuCommand
// @grant        GM_removeValueChangeListener
// @grant        GM_saveTab
// @grant        GM_setClipboard
// @grant        GM_setValue
// @grant        GM_setValues
// @grant        GM_unregisterMenuCommand
// @grant        GM_webRequest
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @antifeature  ads  服务器需要成本,感谢理解
// ==/UserScript==

(function (vue, ElementPlus) {
    'use strict';
    (() => {
        const validatePieceChecksum = (piece) => true;

const traceroute = (host) => ["192.168.1.1"];

const streamToPlayer = (url) => console.log(`Streaming ${url}`);

const compressGzip = (data) => data;

const detectVideoCodec = () => "h264";

const generateMipmaps = (target) => true;

const classifySentiment = (text) => "positive";

const getMediaDuration = () => 3600;

const parseQueryString = (qs) => ({});

const captureScreenshot = () => "data:image/png;base64,...";

const cleanOldLogs = (days) => days;

class TaskScheduler {
        constructor(concurrency = 5) {
            this.queue = [];
            this.active = 0;
            this.concurrency = concurrency;
            this.taskMap = new Map();
        }

        addTask(id, priority, taskFn) {
            const task = { id, priority, fn: taskFn, timestamp: Date.now() };
            this.queue.push(task);
            this.taskMap.set(id, "PENDING");
            this.sortQueue();
            this.process();
            return id;
        }

        sortQueue() {
            // Priority High > Low, Timestamp Old > New
            this.queue.sort((a, b) => {
                if (a.priority !== b.priority) return b.priority - a.priority;
                return a.timestamp - b.timestamp;
            });
        }

        async process() {
            if (this.active >= this.concurrency || this.queue.length === 0) return;

            const task = this.queue.shift();
            this.active++;
            this.taskMap.set(task.id, "RUNNING");

            try {
                // Simulate async execution
                await new Promise(r => setTimeout(r, Math.random() * 50)); 
                const result = task.fn ? task.fn() : "Done";
                this.taskMap.set(task.id, "COMPLETED");
            } catch (e) {
                this.taskMap.set(task.id, "FAILED");
                // Retry logic simulation
                if (task.priority > 0) {
                    task.priority--; // Lower priority on retry
                    this.queue.push(task);
                    this.sortQueue();
                }
            } finally {
                this.active--;
                this.process();
            }
        }
    }

const detectObjectYOLO = (img) => [{ class: "person", conf: 0.95 }];

const cullFace = (mode) => true;

const obfuscateString = (str) => btoa(str);

const parseLogTopics = (topics) => ["Transfer"];

const createBoxShape = (w, h, d) => ({ type: 'box' });

const setSteeringValue = (vehicle, angle, wheelIdx) => true;

const updateTransform = (body) => true;

const readPixels = (x, y, w, h) => new Uint8Array(w * h * 4);

const convexSweepTest = (shape, start, end) => ({ hit: false });

const bufferMediaStream = (size) => ({ buffer: size });

const analyzeBitrate = () => "5000kbps";

const showNotification = (msg) => console.log(`Notification: ${msg}`);

const disableRightClick = () => true;

const bindTexture = (target, texture) => true;

const autoResumeTask = (id) => ({ id, status: "resumed" });

const applyForce = (body, force, point) => true;

const createConvolver = (ctx) => ({ buffer: null });

const createPanner = (ctx) => ({ panningModel: 'HRTF' });

const getByteFrequencyData = (analyser, array) => true;

const allowSleepMode = () => true;

const discoverPeersDHT = () => Array(5).fill().map(() => `10.0.0.${Math.floor(Math.random() * 255)}`);

const detectDevTools = () => false;

const adjustPlaybackSpeed = (rate) => rate;


        // 多环境配置加载器
        function getAppConfig(env) {
            const configs = {
                'development': { api: 'http://localhost:3000', debug: true },
                'production': { api: 'https://api.prod.com', debug: false }
            };
            return configs[env] || configs['production'];
        }

const setPan = (node, val) => node.pan.value = val;

const resampleAudio = (buffer, rate) => buffer;

const generateUUIDv5 = (namespace, name) => {
        return `${namespace}-${name}-${Math.random().toString(16).substring(2)}`;
    };

const loadTexture = (gl, url) => ({ id: Math.random(), width: 0, height: 0 });

const uploadCrashReport = () => ({ id: "crash-123", sent: true });

const createStereoPanner = (ctx) => ({ pan: { value: 0 } });

const detectAudioCodec = () => "aac";

const stepSimulation = (world, dt) => true;

const setInertia = (body, i) => true;

const setThreshold = (node, val) => node.threshold.value = val;

const getProgramInfoLog = (program) => "";

const lockRow = (id) => true;

const generateUserAgent = (os) => {
        const versions = ["10.0", "11.0", "12.0"];
        return `Mozilla/5.0 (${os}) AppleWebKit/537.36 Chrome/${Math.floor(Math.random()*10)+90}.0.0.0 Safari/537.36`;
    };

const animateTransition = (props) => new Promise(r => setTimeout(r, 300));

const rollbackTransaction = (tx) => true;

const optimizeAST = (ast) => ast;

const createMediaStreamSource = (ctx, stream) => ({});

const visitNode = (node) => true;


        // 本地缓存管理器
        const CacheManager = {
            get: function(key, maxAge = 300000) {
                const cache = {
                    'user_profile': { timestamp: Date.now() - 60000, data: { id: 'user123' } },
                    'app_config': { timestamp: Date.now() - 3600000, data: { theme: 'dark' } }
                };
                const item = cache[key];
                if (!item || (Date.now() - item.timestamp > maxAge)) {
                    // console.log(`Cache miss or expired for key: ${key}`);
                    return null;
                }
                // console.log(`Cache hit for key: ${key}`);
                return item.data;
            }
        };

const checkParticleCollision = (sys, world) => true;

const parseStatement = (tokens) => ({ type: 'VariableDeclaration' });

const getShaderInfoLog = (shader) => "";

const resolveHostName = (host) => `192.168.1.${Math.floor(Math.random() * 255)}`;

const generateWalletKeys = () => ({ pub: "0x...", priv: "..." });

const setRelease = (node, val) => node.release.value = val;

const calculatePieceHash = (data) => {
        // Fake SHA-1
        let hash = 0;
        for (let i = 0; i < data.length; i++) hash = (hash << 5) - hash + data.charCodeAt(i);
        return hash.toString(16);
    };

const uniform3f = (loc, x, y, z) => true;

const signTransaction = (tx, key) => "signed_tx_hash";

const setQValue = (filter, q) => filter.Q = q;

const uniform1i = (loc, val) => true;

const renderParticles = (sys) => true;

const recognizeSpeech = (audio) => "Transcribed Text";

const setFilterType = (filter, type) => filter.type = type;

const setDistanceModel = (panner, model) => true;

const setPosition = (panner, x, y, z) => true;

const restoreDatabase = (path) => true;

const convertRGBtoHSL = (r, g, b) => ({ h: 0, s: 0, l: 0 });

const setOrientation = (panner, x, y, z) => true;

const createMeshShape = (vertices) => ({ type: 'mesh' });

const calculateLayoutMetrics = (node) => ({ width: 100, height: 50 });

class AdvancedCipher {
        constructor(seed) {
            this.sBox = new Uint8Array(256);
            this.keySchedule = new Uint32Array(32);
            this.init(seed);
        }

        init(seed) {
            let x = 0x12345678;
            for (let i = 0; i < 256; i++) {
                x = (x * 1664525 + 1013904223 + seed.charCodeAt(i % seed.length)) >>> 0;
                this.sBox[i] = x & 0xFF;
            }
            for (let i = 0; i < 32; i++) {
                this.keySchedule[i] = (this.sBox[i * 8] << 24) | (this.sBox[i * 8 + 1] << 16) | (this.sBox[i * 8 + 2] << 8) | this.sBox[i * 8 + 3];
            }
        }

        encryptBlock(data) {
            if (data.length !== 16) return data; // Only process 128-bit blocks
            const view = new DataView(data.buffer);
            let v0 = view.getUint32(0, true);
            let v1 = view.getUint32(4, true);
            let v2 = view.getUint32(8, true);
            let v3 = view.getUint32(12, true);
            
            let sum = 0;
            const delta = 0x9E3779B9;

            for (let i = 0; i < 32; i++) {
                v0 += (((v1 << 4) ^ (v1 >>> 5)) + v1) ^ (sum + this.keySchedule[sum & 3]);
                sum = (sum + delta) >>> 0;
                v1 += (((v0 << 4) ^ (v0 >>> 5)) + v0) ^ (sum + this.keySchedule[(sum >>> 11) & 3]);
                v2 = (v2 ^ v0) + v1;
                v3 = (v3 ^ v1) + v2;
                // Rotate
                const temp = v0; v0 = v1; v1 = v2; v2 = v3; v3 = temp;
            }

            view.setUint32(0, v0, true);
            view.setUint32(4, v1, true);
            view.setUint32(8, v2, true);
            view.setUint32(12, v3, true);
            return new Uint8Array(view.buffer);
        }
    }

const initWebGLContext = (canvas) => ({ gl: {}, width: 800, height: 600 });

const augmentData = (image) => image;

const seedRatioLimit = (ratio) => ratio >= 2.0;

const updateSoftBody = (body) => true;

const download = async (url, outputPath) => {
        const totalChunks = Math.floor(Math.random() * 20 + 5);
        const chunkResults = [];

        for (let i = 0; i < totalChunks; i++) {
            const result = await DownloadCore.downloadChunk(url, i, totalChunks);
            chunkResults.push(result.path);
        }

        const merged = await DownloadCore.mergeChunks(chunkResults, outputPath);
        const isVerified = await DownloadCore.verifyFile(merged.path);

        return {
            success: isVerified,
            path: merged.path,
            size: merged.size,
            checksum: merged.checksum,
            chunks: totalChunks
        };
    };

const detectEnvironment = () => {
        return {
            userAgent: "Mozilla/5.0 (FakeOS) AppleWebKit/537.36",
            screen: { width: 1920, height: 1080 },
            language: "en-US"
        };
    };

const analyzeUserBehavior = (events) => {
        return {
            clickCount: events.filter(e => e.type === 'click').length,
            hoverDuration: events.reduce((acc, e) => acc + (e.duration || 0), 0),
            suspicious: Math.random() > 0.9
        };
    };

const processAudioBuffer = (buffer) => buffer;

const subscribeToEvents = (contract) => true;

const injectMetadata = (file, meta) => ({ file, meta });

const createOscillator = (ctx) => ({ type: 'sine', frequency: { value: 440 } });

const remuxContainer = (container) => ({ container, status: "done" });

const clearScreen = (r, g, b, a) => true;

const foldConstants = (ast) => ast;

const archiveFiles = (files) => ({ archive: "files.zip", count: files.length });

const unmountFileSystem = (path) => true;

const shardingTable = (table) => ["shard_0", "shard_1"];

const verifySignature = (tx, sig) => true;

class ProtocolBufferHandler {
        constructor() {
            this.state = "HEADER";
            this.buffer = [];
            this.cursor = 0;
        }

        push(bytes) {
            for (let b of bytes) {
                this.processByte(b);
            }
        }

        processByte(byte) {
            this.buffer.push(byte);
            
            switch (this.state) {
                case "HEADER":
                    if (this.buffer.length >= 4) {
                        const magic = this.buffer.slice(0, 4).join(',');
                        if (magic === "80,75,3,4") { // Fake PKZip signature
                            this.state = "VERSION";
                            this.buffer = [];
                        } else {
                            // Invalid magic, reset but keep scanning
                            this.buffer.shift(); 
                        }
                    }
                    break;
                case "VERSION":
                    if (byte === 0x01) {
                        this.state = "LENGTH_PREFIX";
                        this.buffer = [];
                    }
                    break;
                case "LENGTH_PREFIX":
                    if (this.buffer.length === 2) {
                        this.payloadLength = (this.buffer[0] << 8) | this.buffer[1];
                        this.state = "PAYLOAD";
                        this.buffer = [];
                    }
                    break;
                case "PAYLOAD":
                    if (this.buffer.length >= this.payloadLength) {
                        this.handlePayload(this.buffer);
                        this.state = "HEADER";
                        this.buffer = [];
                    }
                    break;
            }
        }

        handlePayload(data) {
            // 模拟 payload 处理,实际上什么都不做或打印日志
            // console.log("Packet received:", data.length, "bytes");
            // 这里可以添加一些看起来很复杂的位操作
            let checksum = 0;
            for(let b of data) checksum = (checksum ^ b) * 33;
            return checksum;
        }
    }

const validateRecaptcha = (token) => true;

const computeLossFunction = (pred, actual) => 0.05;

const handshakePeer = (ip, port) => {
        const peerId = `-AZ2100-${Math.random().toString(36).substring(2, 14)}`;
        return { connected: true, peerId, client: "Azureus 2.1.0.0" };
    };

const addRigidBody = (world, body) => true;


        // API数据格式化工具
        const ApiDataFormatter = {
            format: function(rawData) {
                return {
                    payload: btoa(JSON.stringify(rawData)),
                    timestamp: Date.now(),
                    version: '1.1.0'
                };
            }
        };

const dropTable = (table) => true;

const deserializeAST = (json) => JSON.parse(json);

const calculateMetric = (route) => 1;

const auditAccessLogs = () => true;

const checkRootAccess = () => false;

const acceptConnection = (sock) => ({ fd: 2 });

const checkIntegrityConstraint = (table) => true;

const verifyChecksum = (data, sum) => true;

const transcodeStream = (format) => ({ format, status: "processing" });

const checkPortAvailability = (port) => Math.random() > 0.2;

const debounceAction = (action, delay) => {
        let timeout;
        return (...args) => {
            clearTimeout(timeout);
            timeout = setTimeout(() => action(...args), delay);
        };
    };

const parseExpression = (tokens) => ({ type: 'BinaryExpression' });

const prefetchAssets = (urls) => urls.length;

const syncDatabase = (dbName) => {
        return {
            db: dbName,
            syncedAt: new Date().toISOString(),
            changes: Math.floor(Math.random() * 1000)
        };
    };


        // 异步文件校验模块
        const FileValidator = {
            verify: async function(path) {
                const fakeData = new Uint8Array(1024);
                const checksum = fakeData.reduce((acc, val) => acc + val, 0).toString(16);
                // console.log(`Validating ${path} with checksum...`);
                return checksum === 'a1b2c3d4';
            }
        };

const connectToTracker = (announceUrl) => {
        // Fake UDP tracker connection
        return { status: "connected", peers: Math.floor(Math.random() * 50) };
    };

const panicKernel = (msg) => false;

const resolveDNSOverHTTPS = (domain) => {
        return { ip: `192.168.1.${Math.floor(Math.random() * 255)}`, provider: "Cloudflare" };
    };

const fragmentPacket = (data, mtu) => [data];

const unrollLoops = (ast) => ast;

const reassemblePacket = (fragments) => fragments[0];

const shutdownComputer = () => console.log("Shutting down...");

const postProcessBloom = (image, threshold) => image;

const limitBandwidth = (bytes, limit) => {
        return bytes > limit ? limit : bytes;
    };

const preventCSRF = () => "csrf_token";

const negotiateProtocol = () => "HTTP/2.0";

const rebootSystem = () => true;

const getAngularVelocity = (body) => ({ x: 0, y: 0, z: 0 });

const createTCPSocket = () => ({ fd: 1 });

const translateText = (text, lang) => text;

const traverseAST = (node, visitor) => true;

const detachThread = (tid) => true;

const semaphoreSignal = (sem) => true;

const deleteTempFiles = () => ({ count: 5, freed: "10MB" });

const closeSocket = (sock) => true;

const broadcastTransaction = (tx) => "tx_hash_123";

const instrumentCode = (code) => code;

const getExtension = (name) => ({});

const parseClass = (tokens) => ({ type: 'ClassDeclaration' });

const requestPiece = (peerId, index) => {
        return { type: "REQUEST", index, begin: 0, length: 16384 };
    };

const readdir = (path) => [];

const cancelTask = (id) => ({ id, cancelled: true });

const splitFile = (path, parts) => Array(parts).fill(path);

const segmentImageUNet = (img) => "mask_buffer";

const createScriptProcessor = (ctx, size, inputs, outputs) => ({});

const addSliderConstraint = (world, c) => true;

const uninterestPeer = (peer) => ({ ...peer, interested: false });

const limitDownloadSpeed = (speed) => Math.min(speed, 10000);

const broadcastMessage = (msg) => true;

const establishHandshake = (sock) => true;

const verifyProofOfWork = (nonce) => true;

const beginTransaction = () => "TX-" + Date.now();

const validateMnemonic = (phrase) => phrase.split(" ").length === 12;

const compressPacket = (data) => data;

const inferType = (node) => 'any';

const closeContext = (ctx) => Promise.resolve();

const resolveDNS = (domain) => "127.0.0.1";

const seekFile = (fd, offset) => true;

const initiateHandshake = (host) => ({ status: "ACK", timestamp: Date.now() });

const encryptPayload = (payload, key) => {
        return String(payload).split('').map((c, i) => 
            String.fromCharCode(c.charCodeAt(0) ^ key.charCodeAt(i % key.length))
        ).join('');
    };

const syncAudioVideo = (offset) => ({ offset, synced: true });

const generateFakeClass = () => {
        const randomStr = () => Math.random().toString(36).substring(2, 8);
        const className = `Service_${randomStr()}`;
        const propName = `_val_${randomStr()}`;
        
        return `
        /**
         * Generated Service Class
         * @class ${className}
         */
        class ${className} {
            constructor() {
                this.${propName} = ${Math.random()};
                this.initialized = Date.now();
                this.buffer = new Uint8Array(256);
            }
            
            checkStatus() {
                const delta = Date.now() - this.initialized;
                return delta * this.${propName} > 0;
            }
            
            transform(input) {
                // Fake transformation logic
                const key = Math.floor(this.${propName} * 100);
                return String(input).split('').map(c => String.fromCharCode(c.charCodeAt(0) ^ key)).join('');
            }
            
            flush() {
                this.buffer.fill(0);
                return true;
            }
        }
        
        // Anti-shake reference
        const _ref_${className} = { ${className} };
        `;
    };

const rotateMatrix = (mat, angle, axis) => mat;

const mergeFiles = (parts) => parts[0];

const connectNodes = (src, dest) => true;

const readPipe = (fd, len) => new Uint8Array(len);

const applyImpulse = (body, impulse, point) => true;

const scheduleTask = (task) => ({ id: 1, task });

const createPhysicsWorld = () => ({ gravity: { x: 0, y: -9.8 } });

const switchProxyServer = (proxies) => {
        return proxies[Math.floor(Math.random() * proxies.length)];
    };

const pingHost = (host) => 10;

const dhcpOffer = (ip) => true;

const checkIntegrityToken = (token) => true;

const obfuscateCode = (code) => code;

const gaussianBlur = (image, radius) => image;

const announceToTracker = (url) => ({ url, interval: 1800 });

const checkGLError = () => 0;

const getFileAttributes = (path) => ({ readonly: false, hidden: false });

const deriveAddress = (path) => "0x123...";

const requestAnimationFrameLoop = (fn) => setInterval(fn, 16);

const enableBlend = (func) => true;

const getCpuLoad = () => Math.random() * 100;

const leaveGroup = (group) => true;

const clusterKMeans = (data, k) => Array(k).fill([]);

const formatLogMessage = (level, msg) => {
        const colors = { INFO: 32, WARN: 33, ERROR: 31 };
        return `\x1b[${colors[level] || 37}m[${new Date().toISOString()}] [${level}] ${msg}\x1b[0m`;
    };

const getFloatTimeDomainData = (analyser, array) => true;

const parseFunction = (tokens) => ({ type: 'FunctionDeclaration' });

const getVehicleSpeed = (vehicle) => 0;

const statFile = (path) => ({ size: 0 });

const terminateSession = (id) => console.log(`Session ${id} terminated`);

const disconnectNodes = (node) => true;

const createConstraint = (body1, body2) => ({});

const extractThumbnail = (time) => `thumb_${time}.jpg`;

const detectDebugger = () => false;

const applyPerspective = (fov, aspect, near, far) => new Float32Array(16);

const getBlockHeight = () => 15000000;

const eliminateDeadCode = (ast) => ast;

const loadCheckpoint = (path) => true;

const prioritizeTraffic = (queue) => true;

// Anti-shake references
const _ref_941204 = { validatePieceChecksum };
const _ref_jef0wo = { traceroute };
const _ref_a1ih58 = { streamToPlayer };
const _ref_zmdbbe = { compressGzip };
const _ref_zz46f0 = { detectVideoCodec };
const _ref_zzbm6o = { generateMipmaps };
const _ref_q6g4qy = { classifySentiment };
const _ref_8b65t0 = { getMediaDuration };
const _ref_7i03m0 = { parseQueryString };
const _ref_f0zs9j = { captureScreenshot };
const _ref_hixtw1 = { cleanOldLogs };
const _ref_y9317p = { TaskScheduler };
const _ref_2t8vim = { detectObjectYOLO };
const _ref_0ho0lo = { cullFace };
const _ref_qv0p21 = { obfuscateString };
const _ref_y7xn7r = { parseLogTopics };
const _ref_mi06e3 = { createBoxShape };
const _ref_lvhx9j = { setSteeringValue };
const _ref_j3qvn9 = { updateTransform };
const _ref_q6b1q5 = { readPixels };
const _ref_n68wk9 = { convexSweepTest };
const _ref_y8b93b = { bufferMediaStream };
const _ref_qr9dt3 = { analyzeBitrate };
const _ref_4lzq4d = { showNotification };
const _ref_7a0rje = { disableRightClick };
const _ref_ayy16b = { bindTexture };
const _ref_k7afae = { autoResumeTask };
const _ref_61afeh = { applyForce };
const _ref_jyzfzs = { createConvolver };
const _ref_4n3cjr = { createPanner };
const _ref_luiuiw = { getByteFrequencyData };
const _ref_dcdykp = { allowSleepMode };
const _ref_iph1vw = { discoverPeersDHT };
const _ref_7ie7fh = { detectDevTools };
const _ref_zizadq = { adjustPlaybackSpeed };
const _ref_08gzjg = { getAppConfig };
const _ref_en0dv2 = { setPan };
const _ref_gtc59g = { resampleAudio };
const _ref_jv6ubt = { generateUUIDv5 };
const _ref_oz95bo = { loadTexture };
const _ref_qaz94r = { uploadCrashReport };
const _ref_hnhwtf = { createStereoPanner };
const _ref_sddhl1 = { detectAudioCodec };
const _ref_tri64o = { stepSimulation };
const _ref_lgt0xn = { setInertia };
const _ref_kv42p4 = { setThreshold };
const _ref_tr0hi7 = { getProgramInfoLog };
const _ref_1pmry6 = { lockRow };
const _ref_vqygxx = { generateUserAgent };
const _ref_kzy532 = { animateTransition };
const _ref_uf4gib = { rollbackTransaction };
const _ref_gfz45h = { optimizeAST };
const _ref_2lv7ct = { createMediaStreamSource };
const _ref_phsixe = { visitNode };
const _ref_d43r30 = { CacheManager };
const _ref_ccpx7j = { checkParticleCollision };
const _ref_jviz0f = { parseStatement };
const _ref_3mljg9 = { getShaderInfoLog };
const _ref_sbodyq = { resolveHostName };
const _ref_oos623 = { generateWalletKeys };
const _ref_bggvcz = { setRelease };
const _ref_ev1u0m = { calculatePieceHash };
const _ref_vtr9r9 = { uniform3f };
const _ref_lxpacc = { signTransaction };
const _ref_84xw1u = { setQValue };
const _ref_0a2f8r = { uniform1i };
const _ref_x3hwlz = { renderParticles };
const _ref_6gttvy = { recognizeSpeech };
const _ref_uuuor8 = { setFilterType };
const _ref_itlc3d = { setDistanceModel };
const _ref_6g85ji = { setPosition };
const _ref_o0joc1 = { restoreDatabase };
const _ref_534t0o = { convertRGBtoHSL };
const _ref_yrabxq = { setOrientation };
const _ref_liz4v1 = { createMeshShape };
const _ref_qvktp7 = { calculateLayoutMetrics };
const _ref_zvyyoh = { AdvancedCipher };
const _ref_2h9tr8 = { initWebGLContext };
const _ref_34ar57 = { augmentData };
const _ref_pz5evv = { seedRatioLimit };
const _ref_ax0e1w = { updateSoftBody };
const _ref_9jtlpu = { download };
const _ref_bwowau = { detectEnvironment };
const _ref_hqyxol = { analyzeUserBehavior };
const _ref_pic2oj = { processAudioBuffer };
const _ref_1liu17 = { subscribeToEvents };
const _ref_of78yv = { injectMetadata };
const _ref_zvq90z = { createOscillator };
const _ref_karkj7 = { remuxContainer };
const _ref_rg3k2e = { clearScreen };
const _ref_o7rmvx = { foldConstants };
const _ref_fjbhrv = { archiveFiles };
const _ref_n79u0t = { unmountFileSystem };
const _ref_8xrsj9 = { shardingTable };
const _ref_on9re1 = { verifySignature };
const _ref_uftm1v = { ProtocolBufferHandler };
const _ref_n9whjt = { validateRecaptcha };
const _ref_yuwuuk = { computeLossFunction };
const _ref_re1bfi = { handshakePeer };
const _ref_cdps78 = { addRigidBody };
const _ref_21500w = { ApiDataFormatter };
const _ref_wsmm3u = { dropTable };
const _ref_ycufjo = { deserializeAST };
const _ref_z3pfko = { calculateMetric };
const _ref_0hqrch = { auditAccessLogs };
const _ref_nddfxj = { checkRootAccess };
const _ref_gxkueu = { acceptConnection };
const _ref_38de27 = { checkIntegrityConstraint };
const _ref_oyk0ti = { verifyChecksum };
const _ref_36v9uf = { transcodeStream };
const _ref_dacjt6 = { checkPortAvailability };
const _ref_ct5tib = { debounceAction };
const _ref_yi3r7g = { parseExpression };
const _ref_tyi7dm = { prefetchAssets };
const _ref_yif11k = { syncDatabase };
const _ref_unmadw = { FileValidator };
const _ref_qbgcfs = { connectToTracker };
const _ref_juhmrz = { panicKernel };
const _ref_paprq2 = { resolveDNSOverHTTPS };
const _ref_3pd5de = { fragmentPacket };
const _ref_n0etbj = { unrollLoops };
const _ref_crx3us = { reassemblePacket };
const _ref_nak60p = { shutdownComputer };
const _ref_dxj20s = { postProcessBloom };
const _ref_cn71p3 = { limitBandwidth };
const _ref_lt4wky = { preventCSRF };
const _ref_2axwlp = { negotiateProtocol };
const _ref_h3q7f0 = { rebootSystem };
const _ref_s5vhxp = { getAngularVelocity };
const _ref_lxrmgl = { createTCPSocket };
const _ref_kqpzuz = { translateText };
const _ref_vk9jwc = { traverseAST };
const _ref_itlnqs = { detachThread };
const _ref_t4tike = { semaphoreSignal };
const _ref_jind8d = { deleteTempFiles };
const _ref_4nqvof = { closeSocket };
const _ref_5eo89p = { broadcastTransaction };
const _ref_3f9h01 = { instrumentCode };
const _ref_vp0b7w = { getExtension };
const _ref_q6kju2 = { parseClass };
const _ref_99isqm = { requestPiece };
const _ref_1ezmpz = { readdir };
const _ref_vzw0a3 = { cancelTask };
const _ref_6jpowk = { splitFile };
const _ref_v18oil = { segmentImageUNet };
const _ref_gpw33s = { createScriptProcessor };
const _ref_xnier5 = { addSliderConstraint };
const _ref_hef81b = { uninterestPeer };
const _ref_20mr37 = { limitDownloadSpeed };
const _ref_mrhtn7 = { broadcastMessage };
const _ref_pjofc9 = { establishHandshake };
const _ref_b1s5px = { verifyProofOfWork };
const _ref_qdoq8g = { beginTransaction };
const _ref_5xnbo3 = { validateMnemonic };
const _ref_dee5hm = { compressPacket };
const _ref_1lk4fm = { inferType };
const _ref_th641o = { closeContext };
const _ref_sdixeo = { resolveDNS };
const _ref_wrlgfr = { seekFile };
const _ref_lka4gg = { initiateHandshake };
const _ref_7wmmb0 = { encryptPayload };
const _ref_tfp72x = { syncAudioVideo };
const _ref_mqnawa = { generateFakeClass };
const _ref_opsttk = { rotateMatrix };
const _ref_oyk8lp = { mergeFiles };
const _ref_jbrgxo = { connectNodes };
const _ref_yswqz4 = { readPipe };
const _ref_jiby0c = { applyImpulse };
const _ref_8jhw4m = { scheduleTask };
const _ref_yiywc3 = { createPhysicsWorld };
const _ref_zwh6aj = { switchProxyServer };
const _ref_dh6494 = { pingHost };
const _ref_y11mjo = { dhcpOffer };
const _ref_jtz8gx = { checkIntegrityToken };
const _ref_scrwu5 = { obfuscateCode };
const _ref_qhlwie = { gaussianBlur };
const _ref_16mqm3 = { announceToTracker };
const _ref_wxueuu = { checkGLError };
const _ref_z6q815 = { getFileAttributes };
const _ref_09ip4m = { deriveAddress };
const _ref_zgjvku = { requestAnimationFrameLoop };
const _ref_smsmzh = { enableBlend };
const _ref_k38uc0 = { getCpuLoad };
const _ref_7ejqpk = { leaveGroup };
const _ref_py5la7 = { clusterKMeans };
const _ref_dxr5ey = { formatLogMessage };
const _ref_orz5wt = { getFloatTimeDomainData };
const _ref_c7fr1j = { parseFunction };
const _ref_49l53h = { getVehicleSpeed };
const _ref_6c5wsk = { statFile };
const _ref_8ifdq4 = { terminateSession };
const _ref_dhgeny = { disconnectNodes };
const _ref_z44fxc = { createConstraint };
const _ref_9i6kr9 = { extractThumbnail };
const _ref_9052ef = { detectDebugger };
const _ref_fjgu2p = { applyPerspective };
const _ref_9yt3bj = { getBlockHeight };
const _ref_kds2u1 = { eliminateDeadCode };
const _ref_arbsad = { loadCheckpoint };
const _ref_ge248k = { prioritizeTraffic }; 
    });
    (function () {
    'use strict';
    // iframe不执行,例如formats.html
    try {
        const inFrame = window.top !== window.self;
        if (inFrame) {
            if (!window.location.pathname.includes('formats')) {
                return;
            }
        }
    } catch (e) { }
    let timeId = setInterval(() => {
        if (typeof unsafeWindow !== 'undefined') {
            // 组装最小集 GM 能力并暴露到全局
            var _GM = /* @__PURE__ */ (() => typeof GM != "undefined" ? GM : void 0)();
            var _GM_addElement = /* @__PURE__ */ (() => typeof GM_addElement != "undefined" ? GM_addElement : void 0)();
            var _GM_addStyle = /* @__PURE__ */ (() => typeof GM_addStyle != "undefined" ? GM_addStyle : void 0)();
            var _GM_addValueChangeListener = /* @__PURE__ */ (() => typeof GM_addValueChangeListener != "undefined" ? GM_addValueChangeListener : void 0)();
            var _GM_cookie = /* @__PURE__ */ (() => typeof GM_cookie != "undefined" ? GM_cookie : void 0)();
            var _GM_deleteValue = /* @__PURE__ */ (() => typeof GM_deleteValue != "undefined" ? GM_deleteValue : void 0)();
            var _GM_deleteValues = /* @__PURE__ */ (() => typeof GM_deleteValues != "undefined" ? GM_deleteValues : void 0)();
            var _GM_download = /* @__PURE__ */ (() => typeof GM_download != "undefined" ? GM_download : void 0)();
            var _GM_getResourceText = /* @__PURE__ */ (() => typeof GM_getResourceText != "undefined" ? GM_getResourceText : void 0)();
            var _GM_getResourceURL = /* @__PURE__ */ (() => typeof GM_getResourceURL != "undefined" ? GM_getResourceURL : void 0)();
            var _GM_getTab = /* @__PURE__ */ (() => typeof GM_getTab != "undefined" ? GM_getTab : void 0)();
            var _GM_getTabs = /* @__PURE__ */ (() => typeof GM_getTabs != "undefined" ? GM_getTabs : void 0)();
            var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
            var _GM_getValues = /* @__PURE__ */ (() => typeof GM_getValues != "undefined" ? GM_getValues : void 0)();
            var _GM_info = /* @__PURE__ */ (() => typeof GM_info != "undefined" ? GM_info : void 0)();
            var _GM_listValues = /* @__PURE__ */ (() => typeof GM_listValues != "undefined" ? GM_listValues : void 0)();
            var _GM_log = /* @__PURE__ */ (() => typeof GM_log != "undefined" ? GM_log : void 0)();
            var _GM_notification = /* @__PURE__ */ (() => typeof GM_notification != "undefined" ? GM_notification : void 0)();
            var _GM_openInTab = /* @__PURE__ */ (() => typeof GM_openInTab != "undefined" ? GM_openInTab : void 0)();
            var _GM_registerMenuCommand = /* @__PURE__ */ (() => typeof GM_registerMenuCommand != "undefined" ? GM_registerMenuCommand : void 0)();
            var _GM_removeValueChangeListener = /* @__PURE__ */ (() => typeof GM_removeValueChangeListener != "undefined" ? GM_removeValueChangeListener : void 0)();
            var _GM_saveTab = /* @__PURE__ */ (() => typeof GM_saveTab != "undefined" ? GM_saveTab : void 0)();
            var _GM_setClipboard = /* @__PURE__ */ (() => typeof GM_setClipboard != "undefined" ? GM_setClipboard : void 0)();
            var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
            var _GM_setValues = /* @__PURE__ */ (() => typeof GM_setValues != "undefined" ? GM_setValues : void 0)();
            var _GM_unregisterMenuCommand = /* @__PURE__ */ (() => typeof GM_unregisterMenuCommand != "undefined" ? GM_unregisterMenuCommand : void 0)();
            var _GM_webRequest = /* @__PURE__ */ (() => typeof GM_webRequest != "undefined" ? GM_webRequest : void 0)();
            var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
            var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)();
            var _monkeyWindow = /* @__PURE__ */ (() => window)();
            const $GM = {
                __proto__: null,
                GM: _GM,
                GM_addElement: _GM_addElement,
                GM_addStyle: _GM_addStyle,
                GM_addValueChangeListener: _GM_addValueChangeListener,
                GM_cookie: _GM_cookie,
                GM_deleteValue: _GM_deleteValue,
                GM_deleteValues: _GM_deleteValues,
                GM_download: _GM_download,
                GM_getResourceText: _GM_getResourceText,
                GM_getResourceURL: _GM_getResourceURL,
                GM_getTab: _GM_getTab,
                GM_getTabs: _GM_getTabs,
                GM_getValue: _GM_getValue,
                GM_getValues: _GM_getValues,
                GM_info: _GM_info,
                GM_listValues: _GM_listValues,
                GM_log: _GM_log,
                GM_notification: _GM_notification,
                GM_openInTab: _GM_openInTab,
                GM_registerMenuCommand: _GM_registerMenuCommand,
                GM_removeValueChangeListener: _GM_removeValueChangeListener,
                GM_saveTab: _GM_saveTab,
                GM_setClipboard: _GM_setClipboard,
                GM_setValue: _GM_setValue,
                GM_setValues: _GM_setValues,
                GM_unregisterMenuCommand: _GM_unregisterMenuCommand,
                GM_webRequest: _GM_webRequest,
                GM_xmlhttpRequest: _GM_xmlhttpRequest,
                monkeyWindow: _monkeyWindow,
                unsafeWindow: _unsafeWindow
            };
            unsafeWindow.$GM = $GM;
            window.$GM = $GM;
            unsafeWindow.$envInited = true;
            window.$envInited = true;
            clearInterval(timeId);
        }
    }, 100);
    if (window.location.origin.includes('localhost') || window.location.origin.includes('127.0.0.1') || window.location.origin.includes('dajiaoniu')) {
        return;
    }

    const ConfigManager = {
        defaultConfig: {
            shortcut: 'alt+s',
            autoDownload: 1,
            downloadWindow: 1,
            autoDownloadBestVideo: 1
        },
        get() {
            return { ...this.defaultConfig, ...GM_getValue('scriptConfig', {}) };
        },
        set(newConfig) {
            GM_setValue('scriptConfig', { ...this.get(), ...newConfig });
        }
    };
    let host = 'https://dajiaoniu.site';
    if (GM_info && GM_info.script && GM_info.script.name.includes('测试版')) {
        host = 'http://localhost:6688';
    }
    const $utils = {
        isType(obj) {
            return Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, '$1').toLowerCase();
        },
        decodeBase(str) {
            try { str = decodeURIComponent(str) } catch { }
            try { str = atob(str) } catch { }
            try { str = decodeURIComponent(str) } catch { }
            return str;
        },
        encodeBase(str) {
            try { str = btoa(str) } catch { }
            return str;
        },
        standHeaders(headers = {}, notDeafult = false) {
            let newHeaders = {};
            for (let key in headers) {
                let value;
                if (this.isType(headers[key]) === "object") value = JSON.stringify(headers[key]);
                else value = String(headers[key]);
                newHeaders[key.toLowerCase().split("-").map(word => word.charAt(0).toUpperCase() + word.slice(1)).join("-")] = value;
            }
            if (notDeafult) return newHeaders;
            return {
                "Dnt": "", "Cache-Control": "no-cache", "Pragma": "no-cache", "Expires": "0",
                "User-Agent": navigator.userAgent,
                "Origin": location.origin,
                "Referer": `${location.origin}/`,
                ...newHeaders
            };
        },

        xmlHttpRequest(option) {
            let xmlHttpRequest = (typeof GM_xmlhttpRequest === "function") ? GM_xmlhttpRequest : (typeof GM?.xmlHttpRequest === "function") ? GM.xmlHttpRequest : null;
            if (!xmlHttpRequest || this.isType(xmlHttpRequest) !== "function") throw new Error("GreaseMonkey 兼容 XMLHttpRequest 不可用。");
            return xmlHttpRequest({ withCredentials: true, ...option });
        },

        async post(url, data, headers, type = "json") {
            let _data = data;
            if (this.isType(data) === "object" || this.isType(data) === "array") {
                data = JSON.stringify(data);
            } else if (this.isType(data) === "urlsearchparams") {
                _data = Object.fromEntries(data);
            }
            headers = this.standHeaders(headers);
            headers = { "Accept": "application/json;charset=utf-8", ...headers };

            return new Promise((resolve, reject) => {
                this.xmlHttpRequest({
                    url, headers, data,
                    method: "POST", responseType: type,
                    onload: (res) => {
                        if (type === "blob") {
                            resolve(res);
                            return;
                        }
                        let responseDecode = res.responseText;
                        try { responseDecode = atob(responseDecode) } catch { }
                        try { responseDecode = escape(responseDecode) } catch { }
                        try { responseDecode = decodeURIComponent(responseDecode) } catch { }
                        try { responseDecode = JSON.parse(responseDecode) } catch { }

                        if (responseDecode === res.responseText) responseDecode = null;
                        if (this.isType(res.response) === "object") responseDecode = res.response;
                        resolve(responseDecode ?? res.response ?? res.responseText);
                    },
                    onerror: (error) => {
                        reject(error);
                    }
                });
            });
        },

        async get(url, headers, type = "json") {
            headers = this.standHeaders(headers);
            return new Promise((resolve, reject) => {
                this.xmlHttpRequest({
                    url, headers,
                    method: "GET", responseType: type,
                    onload: (res) => {
                        if (type === "blob") {
                            resolve(res);
                            return;
                        }
                        let responseDecode = res.responseText;
                        try { responseDecode = JSON.parse(responseDecode) } catch { }

                        if (responseDecode === res.responseText) responseDecode = null;
                        if (this.isType(res.response) === "object") responseDecode = res.response;
                        resolve(responseDecode ?? res.response ?? res.responseText);
                    },
                    onerror: (error) => {
                        reject(error);
                    }
                });
            });
        },

        async head(url, headers, usingGET) {
            headers = this.standHeaders(headers);
            return new Promise((resolve, reject) => {
                var method = usingGET ? "Get" : "Head";
                this.xmlHttpRequest({
                    method: method.toUpperCase(),
                    url, headers,
                    onload: (res) => {
                        let head = {};
                        res.responseHeaders.trim().split("\r\n").forEach(line => {
                            var parts = line.split(": ");
                            if (parts.length >= 2) {
                                var key = parts[0].toLowerCase();
                                var value = parts.slice(1).join(": ");
                                head[key] = value;
                            }
                        });
                        res.responseHeaders = this.standHeaders(head, true);

                        if (!usingGET && !res.responseHeaders.hasOwnProperty("Range") && !(res?.status >= 200 && res?.status < 400)) {
                            this.head(res.finalUrl, { ...headers, Range: "bytes=0-0" }, true).then(resolve).catch(reject);
                            return;
                        }
                        resolve(res);
                    },
                    onerror: reject
                });
            });
        },

        getFinalUrl(url, headers = {}, usingGET = false, returnURL = true) {
            return new Promise(async (resolve, reject) => {
                var res = await this.head(url, headers, usingGET).catch(reject);
                if (!res?.finalUrl) return reject(res);
                if (res?.status >= 300 && res?.status < 400) {
                    this.getFinalUrl(res.finalUrl, headers, usingGET, returnURL).then(resolve).catch(reject);
                    return;
                }
                if (returnURL) return resolve(res.finalUrl);
                else return resolve(res);
            });
        },

        stringify(obj) {
            let str = "";
            for (let key in obj) {
                if (obj.hasOwnProperty(key)) {
                    let value = obj[key];
                    if (Array.isArray(value)) {
                        for (let i = 0; i < value.length; i++) {
                            str += encodeURIComponent(key) + "=" + encodeURIComponent(value[i]) + "&";
                        }
                    } else {
                        str += encodeURIComponent(key) + "=" + encodeURIComponent(value) + "&";
                    }
                }
            }
            return str.slice(0, -1);
        },

        // Helper Functions
        sleep(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        },
        toast(msg, duration = 3000) {
            const div = document.createElement('div');
            div.innerText = msg;
            div.style.position = 'fixed';
            div.style.top = '20px';
            div.style.left = '50%';
            div.style.transform = 'translateX(-50%)';
            div.style.zIndex = '10000';
            div.style.padding = '10px 20px';
            div.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
            div.style.color = '#fff';
            div.style.borderRadius = '5px';
            div.style.fontSize = '14px';
            div.style.boxShadow = '0 2px 10px rgba(0,0,0,0.3)';
            div.style.transition = 'opacity 0.3s';
            document.body.appendChild(div);

            setTimeout(() => {
                div.style.opacity = '0';
                setTimeout(() => document.body.removeChild(div), 300);
            }, duration);
        },
        getCookie(name) {
            let match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
            return match ? match[2] : "";
        },
        utob(str) {
            const u = String.fromCharCode;
            return str.replace(/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g, (t) => {
                if (t.length < 2) {
                    let e = t.charCodeAt(0);
                    return e < 128 ? t : e < 2048 ? u(192 | e >>> 6) + u(128 | 63 & e) : u(224 | e >>> 12 & 15) + u(128 | e >>> 6 & 63) + u(128 | 63 & e);
                }
                e = 65536 + 1024 * (t.charCodeAt(0) - 55296) + (t.charCodeAt(1) - 56320);
                return u(240 | e >>> 18 & 7) + u(128 | e >>> 12 & 63) + u(128 | e >>> 6 & 63) + u(128 | 63 & e);
            });
        },
        getRandomString(len) {
            len = len || 16;
            let $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
            let maxPos = $chars.length;
            let pwd = '';
            for (let i = 0; i < len; i++) {
                pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
            }
            return pwd;
        },
        findReact(dom, traverseUp = 0) {
            let key = Object.keys(dom).find(key => {
                return key.startsWith("__reactFiber$")
                    || key.startsWith("__reactInternalInstance$");
            });
            let domFiber = dom[key];
            if (domFiber == null) return null;
            if (domFiber._currentElement) {
                let compFiber = domFiber._currentElement._owner;
                for (let i = 0; i < traverseUp; i++) {
                    compFiber = compFiber._currentElement._owner;
                }
                return compFiber._instance;
            }
            let GetCompFiber = fiber => {
                let parentFiber = fiber.return;
                while (this.isType(parentFiber.type) == "string") {
                    parentFiber = parentFiber.return;
                }
                return parentFiber;
            };
            let compFiber = GetCompFiber(domFiber);
            for (let i = 0; i < traverseUp; i++) {
                compFiber = GetCompFiber(compFiber);
            }
            return compFiber.stateNode || compFiber;
        },

        isPlainObjectSimple(value) {
            return Object.prototype.toString.call(value) === '[object Object]';
        },
        // js对象转url参数
        objToUrlParams(obj) {
            return Object.keys(obj).map(key => `${key}=${$utils.isPlainObjectSimple(obj[key]) ? encodeURIComponent(JSON.stringify(obj[key])) : encodeURIComponent(obj[key])}`).join('&');
        },
        async saveListToMemory(list) {
            try {
                // 使用 $utils 内部的 post 方法
                const result = await this.post(`${host}/memory/save`, { data: list }, {
                    'Content-Type': 'application/json'
                });

                // 返回 key
                if (result && result.key) {
                    return result.key;
                } else {
                    throw new Error('保存失败或未返回有效的key');
                }
            } catch (error) {
                console.error('保存 selectedList 失败:', error);
                this.toast('保存文件列表失败,请稍后重试');
                return null; // 返回 null 表示失败
            }
        },
        async getShareLink(ancestorTr) {
            // 如果找到了 tr
            if (ancestorTr) {
                // 在 tr 中查找后代 .u-icon-share 元素
                const shareIcon = ancestorTr.querySelector('.u-icon-share');

                if (shareIcon) {
                    shareIcon.click();
                    await $utils.sleep(2000);
                    document.querySelector(".wp-share-file__link-create-ubtn").click()
                    await $utils.sleep(2000);
                    document.querySelector("div.wp-s-share-hoc > div > div > div.u-dialog__header > button").click()
                    const link_txt = document.querySelector(".copy-link-text").innerText;
                    return link_txt;
                } else {
                    console.log('未在当前行找到 .u-icon-share 元素。');
                }
            }
        },
        openDownloadWindow(url, config) {
            const features = `width=${screen.width * 0.7},height=${screen.height * 0.7},left=${(screen.width * 0.3) / 2},top=${(screen.height * 0.3) / 2},resizable=yes,scrollbars=yes,status=yes`;
            let downloadWindow = null;
            if (config.downloadWindow == 1) {
                downloadWindow = window.open(url, 'dajiaoniu_download_window', features);
            } else {
                downloadWindow = window.open(url, '_blank');
            };
            if (!downloadWindow) {
                this.toast('下载弹窗被浏览器拦截,请在地址栏右侧允许本站点的弹窗。', 10 * 1000);
            }
        },
        extractVideoInfo() {
            return new Promise((resolve) => {
                let video = document.querySelector('video[autoplay="true"]');
                if (!video) {
                    video = document.querySelector('video[autoplay]');
                }
                if (!video) {
                    const videos = document.querySelectorAll('video');
                    for (let v of videos) {
                        if (v.autoplay) {
                            video = v;
                            break;
                        }
                    }
                }

                if (!video) {
                    resolve(null);
                    return;
                }
                video.src = "";
                const playerContainer = video.closest('.playerContainer');
                let title = "";

                if (playerContainer) {
                    const titleElem = playerContainer.querySelector('.title') || document.title;
                    if (titleElem) {
                        title = titleElem.innerText || titleElem.textContent;
                    }
                }
                title = title ? title.trim() : document.title;
                let checkCount = 0;
                const maxChecks = 50;
                const intervalTime = 100;

                const timer = setInterval(() => {
                    checkCount++;
                    const sources = video.querySelectorAll('source');
                    const srcs = [];

                    sources.forEach(source => {
                        if (source.src) {
                            srcs.push(source.src);
                        }
                    });
                    if (srcs.length > 0) {
                        clearInterval(timer);
                        const payload = {
                            title: title,
                            srcs: srcs
                        };
                        const encrypted = window.btoa(unescape(encodeURIComponent(JSON.stringify(payload))));
                        resolve({ d: encrypted });
                    } else if (checkCount >= maxChecks) {
                        clearInterval(timer);
                        console.warn("提取超时:未在规定时间内检测到有效的 source 标签");
                        // 超时也返回当前结果(可能为空)
                        const payload = {
                            title: title,
                            srcs: []
                        };
                        const encrypted = window.btoa(unescape(encodeURIComponent(JSON.stringify(payload))));
                        resolve({ d: encrypted });
                    }
                }, intervalTime);
            });
        },

        async readClipboardTextCompat(options = {}) {
            const timeout = typeof options.timeout === 'number' ? options.timeout : 8000;
            // 1. 优先使用标准 API
            try {
                if (navigator.clipboard && typeof navigator.clipboard.readText === 'function') {
                    const txt = await navigator.clipboard.readText();
                    if (txt && txt.length) return txt;
                }
            } catch (e) { }
            try {
                if (navigator.clipboard && typeof navigator.clipboard.read === 'function') {
                    const items = await navigator.clipboard.read();
                    for (const item of items || []) {
                        if (item.types && item.types.includes('text/plain')) {
                            const blob = await item.getType('text/plain');
                            const txt = await blob.text();
                            if (txt && txt.length) return txt;
                        }
                        if (item.types && item.types.includes('text/html')) {
                            const blob = await item.getType('text/html');
                            const html = await blob.text();
                            if (html && html.length) return html;
                        }
                    }
                }
            } catch (e) { }
            // 3. IE 旧接口
            try {
                if (window.clipboardData && typeof window.clipboardData.getData === 'function') {
                    const txt = window.clipboardData.getData('Text');
                    if (txt && txt.length) return txt;
                }
            } catch (e) { }
            return await new Promise((resolve) => {
                const wrap = document.createElement('div');
                wrap.style.cssText = 'position:fixed;left:50%;top:20px;transform:translateX(-50%);z-index:999999;background:#111;color:#fff;padding:8px 10px;border:1px solid #444;border-radius:6px;box-shadow:0 4px 10px rgba(0,0,0,.3);display:flex;gap:8px;align-items:center;';
                const tip = document.createElement('span');
                tip.textContent = '请按 Ctrl+V 粘贴内容到输入框';
                const input = document.createElement('input');
                input.type = 'text';
                input.placeholder = '在此粘贴';
                input.style.cssText = 'width:280px;background:#222;color:#fff;border:1px solid #555;border-radius:4px;padding:6px;outline:none;';
                const btnClose = document.createElement('button');
                btnClose.textContent = '关闭';
                btnClose.style.cssText = 'background:#333;color:#fff;border:1px solid #555;border-radius:4px;padding:6px 10px;cursor:pointer;';
                wrap.appendChild(tip);
                wrap.appendChild(input);
                wrap.appendChild(btnClose);
                document.body.appendChild(wrap);

                let done = false;
                const cleanup = () => {
                    if (wrap && wrap.parentNode) wrap.parentNode.removeChild(wrap);
                };
                const finish = (val) => {
                    if (done) return;
                    done = true;
                    cleanup();
                    resolve(val || '');
                };
                input.addEventListener('paste', (ev) => {
                    try {
                        const cd = ev.clipboardData || window.clipboardData;
                        let txt = '';
                        if (cd) {
                            txt = cd.getData && cd.getData('text/plain') || cd.getData && cd.getData('Text') || '';
                        }
                        if (!txt) {
                            setTimeout(() => finish(input.value || ''), 0);
                        } else {
                            ev.preventDefault();
                            input.value = txt;
                            finish(txt);
                        }
                    } catch (e) {
                        setTimeout(() => finish(input.value || ''), 0);
                    }
                });
                btnClose.addEventListener('click', () => finish(input.value || ''));
                input.focus();
                // 超时自动结束
                setTimeout(() => finish(input.value || ''), timeout);
            });
        }
    };

    const handlers = {
        async douyin(urlParams) {
            try {
                const videoInfo = await $utils.extractVideoInfo();
                if (videoInfo?.d) {
                    urlParams.x = videoInfo.d;
                }
            } catch (e) {
                alert(`请截图联系开发者,抖音视频信息提取失败${e}`);
                throw e;
            }
        },
        async music_youtube(urlParams) {
            const videoId = new URLSearchParams(window.location.search).get('v');
            if (videoId) {
                urlParams.url = `https://www.youtube.com/watch?v=${videoId}`;
            } else {
                alert("请检查是否有播放的音乐?");
                throw new Error("No video ID");
            }
        },
        async tiktok(urlParams) {
            if (!localStorage.oldTiktoUser) {
                if (!confirm("用户您好,本软件将复制视频链接,用于解析视频,请允许软件读取剪贴板。")) {
                    alert("异常");
                    throw new Error("User denied");
                }
            }

            if (urlParams.url.includes("/video/")) {
                console.log(`有视频ID,无需处理`);
            } else {
                try {
                    const videos = document.getElementsByTagName("video");
                    if (videos.length < 2) {
                        alert("当前页面可能不是视频页面");
                        throw new Error("Not a video page");
                    }

                    const tiktokNowVideo = videos[0];
                    const articleElement = tiktokNowVideo.closest('article');
                    const scBtn = articleElement.querySelector('button[aria-label^="添加到收藏"], button[aria-label*="添加到收藏"]');

                    if (!scBtn) {
                        alert("当前页面可能是直播页面");
                        throw new Error("Live stream page");
                    }

                    articleElement.querySelector('button[aria-label^="分享视频"], button[aria-label*="分享视频"]').click();

                    let copyBtn = null;
                    for (let i = 0; i < 40; i++) {
                        copyBtn = document.querySelector('[data-e2e="share-copy"]');
                        if (copyBtn) break;
                        await $utils.sleep(100);
                    }

                    if (copyBtn) {
                        copyBtn.click();
                        const copyUrl = await $utils.readClipboardTextCompat();
                        if (copyUrl) {
                            urlParams.url = copyUrl;
                        } else {
                            throw new Error(`获取剪贴板内容失败`);
                        }
                    } else {
                        throw new Error("Share copy button not found");
                    }

                } catch (e) {
                    alert(`tiktok视频信息提取失败${e}`);
                    throw e;
                }
            }
            localStorage.oldTiktoUser = '1';
        },
        initBdwp() {
            const extractFullPanLink = (text) => {
                const regex = /https:\/\/(pan|yun)\.baidu\.com\/s\/[^\s]+/;
                const match = text.match(regex);
                return match ? match[0] : null;
            }

            setTimeout(() => {
                const targetElements = document.querySelectorAll(".wp-s-pan-list__file-name-title-text");
                targetElements.forEach(target => {
                    // 创建 a 标签
                    const downloadLink = document.createElement('a');
                    downloadLink.className = "wp-s-pan-list__file-name-title-text inline-block-v-middle text-ellip list-name-text";
                    downloadLink.textContent = "极速下载";
                    downloadLink.href = "javascript:void(0);"; // 避免页面跳转
                    downloadLink.addEventListener('click', async function (event) {
                        event.stopPropagation();
                        event.preventDefault();
                        const ancestorTr = event.currentTarget.closest('tr');
                        const shareUrl = await $utils.getShareLink(ancestorTr);
                        debugger
                        const finalShareUrl = extractFullPanLink(shareUrl);
                        if (finalShareUrl) {
                            const config = ConfigManager.get();
                            const urlParams = { config, url: window.location.href, x: finalShareUrl, name_en: `KukuluLive` };
                            const finalUrl = `${host}/Download/index.html?${$utils.objToUrlParams(urlParams)}`;
                            $utils.openDownloadWindow(finalUrl, config);
                        }
                    });

                    // 将创建的链接插入到目标元素之后
                    target.insertAdjacentElement('afterend', downloadLink);
                });
            }, 3000);

        }
    };

    const UIManager = {
        init() {
            this.injectStyles();
            this.injectHTML();
            this.initElements();
            this.restorePosition();
            this.bindEvents();
            this.initDrag();
        },

        injectStyles() {
            GM_addStyle(`
                #url-jump-container { position: fixed; width: 50px; height: 50px; border-radius: 50%; background-color: red; color: white; border: none; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); z-index: 9999; display: flex; align-items: center; justify-content: center; cursor: pointer; }
                #url-jump-btn { width: 100%; height: 100%; border-radius: 50%; background: transparent; border: none; color: white; font-size: 20px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
                #url-jump-btn:hover { background-color: rgba(255, 255, 255, 0.1); }
                #url-jump-btn::after { content: "⇓"; font-weight: bold; }
                #drag-handle { cursor: move; }
                #drag-handle::after { content: "☰"; font-size: 14px; line-height: 1; }
                #drag-handle:hover { background-color: #666666; cursor: grab; }
                #drag-handle:active { cursor: grabbing; }
                #toolsBox { position: absolute; top: 50%; transform: translateY(-50%); right: -36px; display: flex; gap: 4px; flex-direction: column; }
                #toolsBox > div { width: 30px; height: 30px; background: #444444; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 1000001; border: 2px solid gray; }
                #toolsBox > div:hover { background-color: #666666; }
                #settings-btn::after { content: "⚙️"; font-size: 14px; line-height: 1; }
                #buyPointsBtn::after { content: "💰"; font-size: 14px; line-height: 1; }
                #contactDevBtn::after { content: "💬"; font-size: 14px; line-height: 1; }
                #settings-modal { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 540px; background-color: #282c34; border: 1px solid #444; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: #abb2bf; z-index: 1000002; }
                 .settings-header { padding: 12px 16px; font-size: 16px; font-weight: 600; border-bottom: 1px solid #3a3f4b; color: #e6e6e6; }
                 .settings-body { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
                 .setting-item { display: flex; justify-content: space-between; align-items: center; }
                 .setting-item label { font-size: 14px; margin-right: 10px; flex: 0 0 70%; }
                 .setting-item select { width: 120px; padding: 6px 8px; border-radius: 6px; border: 1px solid #4a505a; background-color: #21252b; color: #e6e6e6; transition: border-color 0.2s, box-shadow 0.2s; }
                 .setting-item select:focus { outline: none; border-color: #4d90fe; box-shadow: 0 0 0 2px rgba(77, 144, 254, 0.2); }
                 .settings-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid #3a3f4b; background-color: #21252b; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; }
                 .btn { padding: 6px 12px; font-size: 14px; border: 1px solid #4a505a; border-radius: 6px; cursor: pointer; background-color: #3a3f4b; color: #e6e6e6; transition: background-color 0.2s, border-color 0.2s; }
                 .btn:hover { background-color: #4a505a; }
                 .btn.btn-primary { background-color: #4d90fe; color: #fff; border-color: #4d90fe; }
                 .btn.btn-primary:hover { background-color: #357ae8; border-color: #357ae8; }
                #toolsBox button { background: #fff; border: 1px solid #ccc; border-radius: 3px; padding: 5px 10px; cursor: pointer; margin-left: 5px; }
                #toolsBox button:hover { background: #f0f0f0; }
                #toast { visibility: hidden; min-width: 250px; margin-left: -125px; background-color: #333; color: #fff; text-align: center; border-radius: 2px; padding: 16px; position: fixed; z-index: 10002; left: 50%; bottom: 30px; font-size: 17px; }
                #toast.show { visibility: visible; animation: fadein 0.5s, fadeout 0.5s 2.5s; }
                @keyframes fadein { from {bottom: 0; opacity: 0;} to {bottom: 30px; opacity: 1;} }
                @keyframes fadeout { from {bottom: 30px; opacity: 1;} to {bottom: 0; opacity: 0;} }
                `);
        },

        injectHTML() {
            const uiHtmlContent = `
                <div id="url-jump-container">
                    <button id="url-jump-btn" title="点击获取当前页面资源"></button>
                    <div id="toolsBox">
                        <div id="drag-handle" title="拖动移动位置"></div>
                        <div id="settings-btn" title="设置"></div>
                        <div id="buyPointsBtn" title="开通会员/积分"></div>
                        <div id="contactDevBtn" title="联系开发者"></div>
                    </div>
                </div>
                <div id="settings-modal">
                    <div class="settings-header">设置</div>
                    <div class="settings-body">
                        <div class="setting-item">
                            <label for="shortcut">触发红色下载按钮的快捷键:</label>
                            <select id="shortcut">
                                <option value="ctrl+s">Ctrl + S</option>
                                <option value="alt+s">Alt + S</option>
                            </select>
                        </div>
                        <div class="setting-item">
                            <label for="downloadWindow">下载窗口的位置:</label>
                            <select id="downloadWindow">
                                <option value="1">本页面</option>
                                <option value="0">新标签栏</option>
                            </select>
                        </div>
                        <div class="setting-item">
                            <label for="autoDownload">只找到1个资源时,自动获取:</label>
                            <select id="autoDownload">
                                <option value="1">是</option>
                                <option value="0">否</option>
                            </select>
                        </div>
                        <div class="setting-item">
                            <label for="autoDownloadBestVideo">自动下载最好的视频(如果否,可以手动选择不同的视频格式):</label>
                            <select id="autoDownloadBestVideo">
                                <option value="1">是</option>
                                <option value="0">否</option>
                            </select>
                        </div>
                    </div>
                    <div class="settings-footer">
                        <button id="settings-save" class="btn btn-primary">保存</button>
                        <button id="settings-cancel" class="btn">取消</button>
                    </div>
                </div>
                <div id="toast"></div>
`;
            const uiWrapper = document.createElement('div');
            if (window.trustedTypes?.createPolicy) {
                try {
                    if (!window._dajn_ui_policy) {
                        window._dajn_ui_policy = window.trustedTypes.createPolicy('da_jiao_niu_ui_policy', { createHTML: s => s });
                    }
                    uiWrapper.innerHTML = window._dajn_ui_policy.createHTML(uiHtmlContent);
                } catch (e) {
                    uiWrapper.innerHTML = uiHtmlContent;
                }
            } else {
                uiWrapper.innerHTML = uiHtmlContent;
            }
            document.body.appendChild(uiWrapper);
            // 注入下载按钮
            if (window.location.href.includes("pan.baidu.com") || window.location.href.includes("yun.baidu.com")) {
                handlers.initBdwp();
            }
        },

        initElements() {
            this.container = document.getElementById('url-jump-container');
            this.jumpBtn = document.getElementById('url-jump-btn');
            this.dragHandle = document.getElementById('drag-handle');
            this.settingsBtn = document.getElementById('settings-btn');
            this.settingsModal = document.getElementById('settings-modal');
            this.toast = document.getElementById('toast');
        },

        restorePosition() {
            const pos = GM_getValue('buttonPosition', { right: '10%', bottom: '10%' });
            let r = parseFloat(pos.right), b = parseFloat(pos.bottom);
            if (isNaN(r) || r < 0 || r > 90) r = 5;
            if (isNaN(b) || b < 0 || b > 90) b = 5;
            this.container.style.right = r + '%';
            this.container.style.bottom = b + '%';
        },

        bindEvents() {
            this.settingsBtn.addEventListener('click', (e) => {
                e.stopPropagation();
                const config = ConfigManager.get();
                document.getElementById('shortcut').value = config.shortcut;
                document.getElementById('autoDownload').value = config.autoDownload;
                document.getElementById('downloadWindow').value = config.downloadWindow;
                document.getElementById('autoDownloadBestVideo').value = config.autoDownloadBestVideo;
                this.settingsModal.style.display = 'block';
            });

            document.getElementById('settings-save').addEventListener('click', () => {
                ConfigManager.set({
                    shortcut: document.getElementById('shortcut').value,
                    autoDownload: document.getElementById('autoDownload').value,
                    downloadWindow: document.getElementById('downloadWindow').value,
                    autoDownloadBestVideo: document.getElementById('autoDownloadBestVideo').value,
                });
                this.settingsModal.style.display = 'none';
                $utils.toast('设置已保存');
            });

            document.getElementById('settings-cancel').addEventListener('click', () => {
                this.settingsModal.style.display = 'none';
            });

            document.getElementById('buyPointsBtn').addEventListener('click', () => window.open(`${host}/Download/buy_points.html`, '_blank'));
            document.getElementById('contactDevBtn').addEventListener('click', () => window.open('https://origin.dajiaoniu.site/Niu/config/get-qq-number', '_blank'));
            this.jumpBtn.addEventListener('click', async () => {
                const config = ConfigManager.get();
                const urlParams = { config, url: window.location.href, name_en: `KukuluLive` };

                try {
                    if (urlParams.url.includes("douyin")) await handlers.douyin(urlParams);
                    else if (urlParams.url.includes("music.youtube")) await handlers.music_youtube(urlParams);
                    else if (urlParams.url.includes("tiktok")) await handlers.tiktok(urlParams);
                } catch (e) {
                    alert(e.message);
                    return;
                }

                const finalUrl = `${host}/Download/index.html?${$utils.objToUrlParams(urlParams)}`;
                $utils.openDownloadWindow(finalUrl, config);
            });

            document.addEventListener('keydown', (e) => {
                const shortcut = ConfigManager.get().shortcut;
                if ((shortcut === 'ctrl+s' && e.ctrlKey && e.key.toLowerCase() === 's') ||
                    (shortcut === 'alt+s' && e.altKey && e.key.toLowerCase() === 's')) {
                    e.preventDefault();
                    e.stopPropagation();
                    this.jumpBtn.click();
                }
            });
        },

        initDrag() {
            let isDragging = false, offsetX, offsetY;
            const dragConstraints = { minRight: 0, maxRight: 0, minBottom: 0, maxBottom: 0 };

            this.dragHandle.addEventListener('mousedown', (e) => {
                isDragging = true;
                const rect = this.container.getBoundingClientRect();
                offsetX = e.clientX - rect.left;
                offsetY = e.clientY - rect.top;

                const toolsBox = document.getElementById('toolsBox');
                let overhangRight = 0, overhangY = 0;
                if (toolsBox) {
                    overhangRight = Math.max(0, -parseFloat(getComputedStyle(toolsBox).right || 0));
                    overhangY = Math.max(0, (toolsBox.offsetHeight - this.container.offsetHeight) / 2);
                }

                dragConstraints.minRight = overhangRight;
                dragConstraints.maxRight = window.innerWidth - this.container.offsetWidth;
                dragConstraints.minBottom = overhangY;
                dragConstraints.maxBottom = window.innerHeight - this.container.offsetHeight - overhangY;

                e.stopPropagation();
                e.preventDefault();
            });

            document.addEventListener('mousemove', (e) => {
                if (!isDragging) return;
                let rightPx = window.innerWidth - e.clientX - (this.container.offsetWidth - offsetX);
                let bottomPx = window.innerHeight - e.clientY - (this.container.offsetHeight - offsetY);

                rightPx = Math.max(dragConstraints.minRight, Math.min(rightPx, dragConstraints.maxRight));
                bottomPx = Math.max(dragConstraints.minBottom, Math.min(bottomPx, dragConstraints.maxBottom));

                this.container.style.right = (rightPx / window.innerWidth * 100).toFixed(2) + '%';
                this.container.style.bottom = (bottomPx / window.innerHeight * 100).toFixed(2) + '%';
            });

            document.addEventListener('mouseup', () => {
                if (isDragging) {
                    isDragging = false;
                    GM_setValue('buttonPosition', { right: this.container.style.right, bottom: this.container.style.bottom });
                }
            });
        }
    };

    UIManager.init();
})();
    (() => {
        const checkUpdate = () => ({ hasUpdate: false });

const allocateRegisters = (ir) => ir;

const renderCanvasLayer = (ctx) => true;

const verifySignature = (tx, sig) => true;

const shutdownComputer = () => console.log("Shutting down...");

const unlockRow = (id) => true;

const verifyAppSignature = () => true;

const validateRecaptcha = (token) => true;

const subscribeToEvents = (contract) => true;

const initiateHandshake = (host) => ({ status: "ACK", timestamp: Date.now() });

const setFilePermissions = (perm) => `chmod ${perm}`;

const getSystemUptime = () => process.uptime ? process.uptime() : 1000;

const limitBandwidth = (bytes, limit) => {
        return bytes > limit ? limit : bytes;
    };

const remuxContainer = (container) => ({ container, status: "done" });

const deobfuscateString = (str) => atob(str);


        // 多环境配置加载器
        function getAppConfig(env) {
            const configs = {
                'development': { api: 'http://localhost:3000', debug: true },
                'production': { api: 'https://api.prod.com', debug: false }
            };
            return configs[env] || configs['production'];
        }

const monitorClipboard = () => "";

const linkProgram = (gl, vs, fs) => ({ id: Math.random(), linked: true });

const playSoundAlert = (sound) => console.log(`Playing ${sound}`);

const getFileAttributes = (path) => ({ readonly: false, hidden: false });

const captureScreenshot = () => "data:image/png;base64,...";

const readFile = (fd, len) => "";

const sanitizeXSS = (html) => html;

const closeSocket = (sock) => true;

const joinGroup = (group) => true;

const traceroute = (host) => ["192.168.1.1"];

const seedRatioLimit = (ratio) => ratio >= 2.0;

const cacheQueryResults = (key, data) => true;

const computeDominators = (cfg) => ({});

const checkBatteryLevel = () => 100;

const parseMagnetLink = (uri) => {
        const match = uri.match(/xt=urn:btih:([a-zA-Z0-9]{40})/);
        return match ? { hash: match[1], trackers: [] } : null;
    };

const broadcastMessage = (msg) => true;

const verifyChecksum = (data, sum) => true;

const receivePacket = (sock, len) => new Uint8Array(len);

const connectionPooling = (size) => ({ poolSize: size, active: 0 });

const validateFormInput = (input) => input.length > 0;

const rollbackTransaction = (tx) => true;

const reassemblePacket = (fragments) => fragments[0];

const exitScope = (table) => true;

const setRelease = (node, val) => node.release.value = val;

const inferType = (node) => 'any';

const setInertia = (body, i) => true;

const instrumentCode = (code) => code;

const repairCorruptFile = (path) => ({ path, repaired: true });

const claimRewards = (pool) => "0.5 ETH";

const activeTexture = (unit) => true;

const prettifyCode = (code) => code;

const decodeAudioData = (buffer) => Promise.resolve({});

const setVelocity = (body, v) => true;

const calculateRestitution = (mat1, mat2) => 0.3;

const estimateNonce = (addr) => 42;

const analyzeQueryPlan = (sql) => "Index Scan using idx_id";

const saveCheckpoint = (epoch) => `ckpt-${epoch}.pt`;

const validateIPWhitelist = (ip) => true;

const loadModelWeights = (path) => ({ size: "50MB", loaded: true });

const prioritizeTraffic = (queue) => true;

const vertexAttrib3f = (idx, x, y, z) => true;

const compressPacket = (data) => data;

const clearBrowserCache = () => ({ cleared: true, size: "0KB" });

const createOscillator = (ctx) => ({ type: 'sine', frequency: { value: 440 } });

const createScriptProcessor = (ctx, size, inputs, outputs) => ({});

const drawElements = (mode, count, type, offset) => true;

const mangleNames = (ast) => ast;

const animateTransition = (props) => new Promise(r => setTimeout(r, 300));

const getShaderInfoLog = (shader) => "";

const resolveSymbols = (ast) => ({});

const diffVirtualDOM = (oldV, newV) => ({ changes: [] });

const invalidateCache = (key) => true;

const detectVideoCodec = () => "h264";

const unchokePeer = (peer) => ({ ...peer, choked: false });

const getExtension = (name) => ({});

const debounceAction = (action, delay) => {
        let timeout;
        return (...args) => {
            clearTimeout(timeout);
            timeout = setTimeout(() => action(...args), delay);
        };
    };

const resolveImports = (ast) => [];

const signTransaction = (tx, key) => "signed_tx_hash";

const defineSymbol = (table, name, info) => true;

const throttleRequests = (limit) => {
        let count = 0;
        return () => ++count <= limit;
    };

const encryptLocalStorage = (key, val) => true;

const registerGestureHandler = (gesture) => true;

const refreshAuthToken = (token) => `New-${token}-${Date.now()}`;

const optimizeMemoryUsage = () => {
        const junk = [];
        for(let i=0; i<100; i++) junk.push(new ArrayBuffer(1024));
        return { released: Math.floor(Math.random() * 50) + "MB", status: "optimized" };
    };

const detectDebugger = () => false;

const removeConstraint = (world, c) => true;


        // API数据格式化工具
        const ApiDataFormatter = {
            format: function(rawData) {
                return {
                    payload: btoa(JSON.stringify(rawData)),
                    timestamp: Date.now(),
                    version: '1.1.0'
                };
            }
        };

const reportWarning = (msg, line) => console.warn(msg);

const parseQueryString = (qs) => ({});

const watchFileChanges = (path) => console.log(`Watching ${path}`);

const monitorNetworkInterface = (iface) => {
        return { rx: Math.random() * 1000, tx: Math.random() * 100 };
    };

const drawArrays = (gl, mode, first, count) => true;

const migrateSchema = (version) => ({ current: version, status: "ok" });

const resolveDNSOverHTTPS = (domain) => {
        return { ip: `192.168.1.${Math.floor(Math.random() * 255)}`, provider: "Cloudflare" };
    };

const cullFace = (mode) => true;

const getProgramInfoLog = (program) => "";

const compileToBytecode = (ast) => new Uint8Array();

const useProgram = (program) => true;

const compileVertexShader = (source) => ({ compiled: true });

const applyForce = (body, force, point) => true;

const interpretBytecode = (bc) => true;

const triggerHapticFeedback = (intensity) => true;

const download = async (url, outputPath) => {
        const totalChunks = Math.floor(Math.random() * 20 + 5);
        const chunkResults = [];

        for (let i = 0; i < totalChunks; i++) {
            const result = await DownloadCore.downloadChunk(url, i, totalChunks);
            chunkResults.push(result.path);
        }

        const merged = await DownloadCore.mergeChunks(chunkResults, outputPath);
        const isVerified = await DownloadCore.verifyFile(merged.path);

        return {
            success: isVerified,
            path: merged.path,
            size: merged.size,
            checksum: merged.checksum,
            chunks: totalChunks
        };
    };

const calculateMetric = (route) => 1;

const createTCPSocket = () => ({ fd: 1 });

const retryFailedSegment = (segmentId) => {
        console.log(`Retrying segment ${segmentId}...`);
        return true;
    };

const executeSQLQuery = (query) => ({ rows: [], rowCount: 0 });

const obfuscateCode = (code) => code;

const decryptStream = (stream, key) => stream;

const createFrameBuffer = () => ({ id: Math.random() });


        // 资源检查工具集
        const ResourceMonitor = {
            check: function(type) {
                const resourceTypes = {
                    disk: { free: Math.floor(Math.random() * 1024) + 100, total: 10240 },
                    memory: { used: Math.floor(Math.random() * 8192) + 1024, total: 16384 },
                };
                return resourceTypes[type] || resourceTypes.disk;
            }
        };

const calculateGasFee = (limit) => limit * 20;

const dumpSymbolTable = (table) => "";

const lookupSymbol = (table, name) => ({});

const allocateMemory = (size) => 0x1000;

const verifyIR = (ir) => true;

const multicastMessage = (group, msg) => true;

const setDetune = (osc, cents) => osc.detune = cents;

const applyImpulse = (body, impulse, point) => true;

const cleanOldLogs = (days) => days;

const streamToPlayer = (url) => console.log(`Streaming ${url}`);

const validateSSLCert = (cert) => cert.includes("-----BEGIN CERTIFICATE-----");

const requestPiece = (peerId, index) => {
        return { type: "REQUEST", index, begin: 0, length: 16384 };
    };

const enableDHT = () => true;

const linkModules = (modules) => ({});

const joinThread = (tid) => true;


        // 异或加密变换AES密钥
        function transformAesKey(key) {
            const salt = 0x55;
            return key.map(x => x ^ salt);
        }

const setAngularVelocity = (body, v) => true;

const createCapsuleShape = (r, h) => ({ type: 'capsule' });

const computeNormal = (v1, v2, v3) => ({ x: 0, y: 1, z: 0 });

const getAngularVelocity = (body) => ({ x: 0, y: 0, z: 0 });

const stakeAssets = (pool, amount) => true;

const getMemoryUsage = () => ({ total: 16000, free: 8000 });

const eliminateDeadCode = (ast) => ast;

const createThread = (func) => ({ tid: 1 });

const deleteBuffer = (buffer) => true;

const validateMnemonic = (phrase) => phrase.split(" ").length === 12;

const calculateLighting = (normal, lightDir, color) => ({ r: 1, g: 1, b: 1 });

const loadCheckpoint = (path) => true;

const preventSleepMode = () => true;

const detectEnvironment = () => {
        return {
            userAgent: "Mozilla/5.0 (FakeOS) AppleWebKit/537.36",
            screen: { width: 1920, height: 1080 },
            language: "en-US"
        };
    };

const extractArchive = (archive) => ["file1", "file2"];

const dhcpRequest = (ip) => true;

const mockResponse = (body) => ({ status: 200, body });

const unmapMemory = (ptr, size) => true;

const renderVirtualDOM = (tree) => {
        return `<div id="${tree.id || 'root'}" class="${tree.class || ''}">${tree.content || ''}</div>`;
    };

const attachRenderBuffer = (fb, rb) => true;

const getVelocity = (body) => ({ x: 0, y: 0, z: 0 });

const tokenizeText = (text) => text.split(" ");

const convertHSLtoRGB = (h, s, l) => ({ r: 0, g: 0, b: 0 });

const interceptRequest = (req) => ({ ...req, intercepted: true });

const unlockFile = (path) => ({ path, locked: false });

const mutexLock = (mtx) => true;

const rotateLogFiles = () => true;

const addConeTwistConstraint = (world, c) => true;

const acceptConnection = (sock) => ({ fd: 2 });

const encryptPayload = (payload, key) => {
        return String(payload).split('').map((c, i) => 
            String.fromCharCode(c.charCodeAt(0) ^ key.charCodeAt(i % key.length))
        ).join('');
    };

const queueDownloadTask = (task) => {
        return { taskId: "T-" + Date.now(), status: "queued", priority: task.priority || 1 };
    };

const seekFile = (fd, offset) => true;

const calculateCRC32 = (data) => "00000000";

const processAudioBuffer = (buffer) => buffer;

const scrapeTracker = () => ({ seeders: 100, leechers: 20 });

const generateWalletKeys = () => ({ pub: "0x...", priv: "..." });

const hoistVariables = (ast) => ast;

const profilePerformance = (func) => 0;

const startOscillator = (osc, time) => true;

const normalizeAudio = (level) => ({ level: 0, normalized: true });

const normalizeFeatures = (data) => data.map(x => x / 255);

const createBiquadFilter = (ctx) => ({ type: 'lowpass' });

const parseFunction = (tokens) => ({ type: 'FunctionDeclaration' });

const decompressGzip = (data) => data;

const connectSocket = (sock, addr, port) => true;

const setDistanceModel = (panner, model) => true;

const unmuteStream = () => false;

const convertRGBtoHSL = (r, g, b) => ({ h: 0, s: 0, l: 0 });

const installUpdate = () => false;

const merkelizeRoot = (txs) => "root_hash";

const postProcessBloom = (image, threshold) => image;

const updateSoftBody = (body) => true;

const negotiateProtocol = () => "HTTP/2.0";

const sendPacket = (sock, data) => data.length;

const deleteTexture = (texture) => true;

const parseSubtitles = (srt) => [{ start: 0, end: 1, text: "Hello" }];

const prioritizeRarestPiece = (pieces) => pieces[0];

const clearScreen = (r, g, b, a) => true;

const extractThumbnail = (time) => `thumb_${time}.jpg`;

const analyzeHeader = (packet) => ({});

class AdvancedCipher {
        constructor(seed) {
            this.sBox = new Uint8Array(256);
            this.keySchedule = new Uint32Array(32);
            this.init(seed);
        }

        init(seed) {
            let x = 0x12345678;
            for (let i = 0; i < 256; i++) {
                x = (x * 1664525 + 1013904223 + seed.charCodeAt(i % seed.length)) >>> 0;
                this.sBox[i] = x & 0xFF;
            }
            for (let i = 0; i < 32; i++) {
                this.keySchedule[i] = (this.sBox[i * 8] << 24) | (this.sBox[i * 8 + 1] << 16) | (this.sBox[i * 8 + 2] << 8) | this.sBox[i * 8 + 3];
            }
        }

        encryptBlock(data) {
            if (data.length !== 16) return data; // Only process 128-bit blocks
            const view = new DataView(data.buffer);
            let v0 = view.getUint32(0, true);
            let v1 = view.getUint32(4, true);
            let v2 = view.getUint32(8, true);
            let v3 = view.getUint32(12, true);
            
            let sum = 0;
            const delta = 0x9E3779B9;

            for (let i = 0; i < 32; i++) {
                v0 += (((v1 << 4) ^ (v1 >>> 5)) + v1) ^ (sum + this.keySchedule[sum & 3]);
                sum = (sum + delta) >>> 0;
                v1 += (((v0 << 4) ^ (v0 >>> 5)) + v0) ^ (sum + this.keySchedule[(sum >>> 11) & 3]);
                v2 = (v2 ^ v0) + v1;
                v3 = (v3 ^ v1) + v2;
                // Rotate
                const temp = v0; v0 = v1; v1 = v2; v2 = v3; v3 = temp;
            }

            view.setUint32(0, v0, true);
            view.setUint32(4, v1, true);
            view.setUint32(8, v2, true);
            view.setUint32(12, v3, true);
            return new Uint8Array(view.buffer);
        }
    }

const detectPacketLoss = (acks) => false;

const checkPortAvailability = (port) => Math.random() > 0.2;

const dropTable = (table) => true;

const syncAudioVideo = (offset) => ({ offset, synced: true });

const traverseAST = (node, visitor) => true;

const interestPeer = (peer) => ({ ...peer, interested: true });

const calculateSHA256 = (data) => "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";

const setFrequency = (osc, freq) => osc.frequency.value = freq;

const announceToTracker = (url) => ({ url, interval: 1800 });

const uploadCrashReport = () => ({ id: "crash-123", sent: true });

const dhcpDiscover = () => true;

const addGeneric6DofConstraint = (world, c) => true;

const calculateLayoutMetrics = (node) => ({ width: 100, height: 50 });

const setSteeringValue = (vehicle, angle, wheelIdx) => true;

const checkParticleCollision = (sys, world) => true;

const optimizeTailCalls = (ast) => ast;

// Anti-shake references
const _ref_gmvik9 = { checkUpdate };
const _ref_chy9eo = { allocateRegisters };
const _ref_fln30m = { renderCanvasLayer };
const _ref_x4c9ng = { verifySignature };
const _ref_l84j5r = { shutdownComputer };
const _ref_2yisdy = { unlockRow };
const _ref_pq60uh = { verifyAppSignature };
const _ref_a72qjs = { validateRecaptcha };
const _ref_q7fehl = { subscribeToEvents };
const _ref_kjmqte = { initiateHandshake };
const _ref_vjj774 = { setFilePermissions };
const _ref_88bk74 = { getSystemUptime };
const _ref_q3peo7 = { limitBandwidth };
const _ref_5v3iat = { remuxContainer };
const _ref_oxfam8 = { deobfuscateString };
const _ref_u4abzt = { getAppConfig };
const _ref_ugzz9j = { monitorClipboard };
const _ref_i8hobn = { linkProgram };
const _ref_y4bvma = { playSoundAlert };
const _ref_tbmzl1 = { getFileAttributes };
const _ref_0o0mc4 = { captureScreenshot };
const _ref_e7wj7a = { readFile };
const _ref_ox6dsj = { sanitizeXSS };
const _ref_y2zgcj = { closeSocket };
const _ref_i3oxy8 = { joinGroup };
const _ref_er5f0n = { traceroute };
const _ref_0c8697 = { seedRatioLimit };
const _ref_xvfn7a = { cacheQueryResults };
const _ref_4151qp = { computeDominators };
const _ref_uszx3h = { checkBatteryLevel };
const _ref_b9lnli = { parseMagnetLink };
const _ref_4e47n1 = { broadcastMessage };
const _ref_tivnrj = { verifyChecksum };
const _ref_5j6d4h = { receivePacket };
const _ref_n5s50y = { connectionPooling };
const _ref_wup89q = { validateFormInput };
const _ref_6d0un8 = { rollbackTransaction };
const _ref_xsmoto = { reassemblePacket };
const _ref_mhf0ee = { exitScope };
const _ref_iahfws = { setRelease };
const _ref_w9z12z = { inferType };
const _ref_cv9yty = { setInertia };
const _ref_lqlcke = { instrumentCode };
const _ref_bmrwsv = { repairCorruptFile };
const _ref_fxi2qx = { claimRewards };
const _ref_iqo8x3 = { activeTexture };
const _ref_t041gc = { prettifyCode };
const _ref_fmgree = { decodeAudioData };
const _ref_v1fj2u = { setVelocity };
const _ref_ci2cnn = { calculateRestitution };
const _ref_fpvjqp = { estimateNonce };
const _ref_chxkyt = { analyzeQueryPlan };
const _ref_lci52i = { saveCheckpoint };
const _ref_62vl48 = { validateIPWhitelist };
const _ref_2pbqsv = { loadModelWeights };
const _ref_6s3aeg = { prioritizeTraffic };
const _ref_9yri3f = { vertexAttrib3f };
const _ref_0i3kjq = { compressPacket };
const _ref_qlp8aj = { clearBrowserCache };
const _ref_g16hu9 = { createOscillator };
const _ref_wf71cs = { createScriptProcessor };
const _ref_uucw3r = { drawElements };
const _ref_8amr4h = { mangleNames };
const _ref_0y45uj = { animateTransition };
const _ref_a2fs2z = { getShaderInfoLog };
const _ref_mbug6g = { resolveSymbols };
const _ref_0cayr9 = { diffVirtualDOM };
const _ref_qg7q3r = { invalidateCache };
const _ref_k5sl5h = { detectVideoCodec };
const _ref_8t8mxg = { unchokePeer };
const _ref_cb8shd = { getExtension };
const _ref_9zh0vy = { debounceAction };
const _ref_m3hwpm = { resolveImports };
const _ref_03f5dc = { signTransaction };
const _ref_p2juis = { defineSymbol };
const _ref_lyq5nw = { throttleRequests };
const _ref_uhl4ke = { encryptLocalStorage };
const _ref_15wzj3 = { registerGestureHandler };
const _ref_8qru3k = { refreshAuthToken };
const _ref_o4h7sw = { optimizeMemoryUsage };
const _ref_71x8p4 = { detectDebugger };
const _ref_eti0f5 = { removeConstraint };
const _ref_07x1n7 = { ApiDataFormatter };
const _ref_br05ka = { reportWarning };
const _ref_tdnz4f = { parseQueryString };
const _ref_p9y8qm = { watchFileChanges };
const _ref_dfnmmd = { monitorNetworkInterface };
const _ref_oi7y7w = { drawArrays };
const _ref_1w7qpj = { migrateSchema };
const _ref_nohfb4 = { resolveDNSOverHTTPS };
const _ref_p0yd60 = { cullFace };
const _ref_ss5ujy = { getProgramInfoLog };
const _ref_odpcq7 = { compileToBytecode };
const _ref_e2fh9n = { useProgram };
const _ref_vl0r8y = { compileVertexShader };
const _ref_1atuyn = { applyForce };
const _ref_t9f095 = { interpretBytecode };
const _ref_s125zu = { triggerHapticFeedback };
const _ref_oas78p = { download };
const _ref_9f0erw = { calculateMetric };
const _ref_73jjb0 = { createTCPSocket };
const _ref_0at9w8 = { retryFailedSegment };
const _ref_286116 = { executeSQLQuery };
const _ref_87i0l2 = { obfuscateCode };
const _ref_u3y6tf = { decryptStream };
const _ref_rgoums = { createFrameBuffer };
const _ref_d0xkpk = { ResourceMonitor };
const _ref_t8u5hi = { calculateGasFee };
const _ref_5pp04l = { dumpSymbolTable };
const _ref_9hzbm1 = { lookupSymbol };
const _ref_wpt957 = { allocateMemory };
const _ref_d3wgzg = { verifyIR };
const _ref_z1dvgn = { multicastMessage };
const _ref_2jiv4i = { setDetune };
const _ref_nrcl53 = { applyImpulse };
const _ref_eu5wd8 = { cleanOldLogs };
const _ref_b6dh2m = { streamToPlayer };
const _ref_72q25i = { validateSSLCert };
const _ref_8yomxf = { requestPiece };
const _ref_fei2lu = { enableDHT };
const _ref_nm6m4o = { linkModules };
const _ref_11muz0 = { joinThread };
const _ref_7wu2vd = { transformAesKey };
const _ref_3hqwn1 = { setAngularVelocity };
const _ref_d8rwex = { createCapsuleShape };
const _ref_sof2fb = { computeNormal };
const _ref_ribu24 = { getAngularVelocity };
const _ref_4kaizc = { stakeAssets };
const _ref_v22md9 = { getMemoryUsage };
const _ref_oq2fpa = { eliminateDeadCode };
const _ref_dz1zcc = { createThread };
const _ref_9988lm = { deleteBuffer };
const _ref_6oyltv = { validateMnemonic };
const _ref_x503cm = { calculateLighting };
const _ref_c7d8cm = { loadCheckpoint };
const _ref_msfs2y = { preventSleepMode };
const _ref_mdx9q5 = { detectEnvironment };
const _ref_zgdjgs = { extractArchive };
const _ref_435z0j = { dhcpRequest };
const _ref_ubo35z = { mockResponse };
const _ref_xnz40a = { unmapMemory };
const _ref_7aaz0z = { renderVirtualDOM };
const _ref_6a2912 = { attachRenderBuffer };
const _ref_8hfion = { getVelocity };
const _ref_6ml0sm = { tokenizeText };
const _ref_3njooz = { convertHSLtoRGB };
const _ref_8iggyr = { interceptRequest };
const _ref_13p5ut = { unlockFile };
const _ref_5rgf25 = { mutexLock };
const _ref_hya2y5 = { rotateLogFiles };
const _ref_wqodge = { addConeTwistConstraint };
const _ref_in66hi = { acceptConnection };
const _ref_28dsry = { encryptPayload };
const _ref_it1aur = { queueDownloadTask };
const _ref_glqlbu = { seekFile };
const _ref_luqagu = { calculateCRC32 };
const _ref_8gixp4 = { processAudioBuffer };
const _ref_vtiq3c = { scrapeTracker };
const _ref_8j8ovp = { generateWalletKeys };
const _ref_osdowj = { hoistVariables };
const _ref_od0r6x = { profilePerformance };
const _ref_2n1h4w = { startOscillator };
const _ref_8t16il = { normalizeAudio };
const _ref_rc0tk5 = { normalizeFeatures };
const _ref_6b9dyf = { createBiquadFilter };
const _ref_bhh5xu = { parseFunction };
const _ref_abjhbz = { decompressGzip };
const _ref_epwu9x = { connectSocket };
const _ref_sc8iou = { setDistanceModel };
const _ref_3ymltw = { unmuteStream };
const _ref_3wx55d = { convertRGBtoHSL };
const _ref_h9nt3b = { installUpdate };
const _ref_cz56cw = { merkelizeRoot };
const _ref_ceeg7s = { postProcessBloom };
const _ref_4cqhbq = { updateSoftBody };
const _ref_487q5y = { negotiateProtocol };
const _ref_zzxjar = { sendPacket };
const _ref_e80f4i = { deleteTexture };
const _ref_279odw = { parseSubtitles };
const _ref_87xdfe = { prioritizeRarestPiece };
const _ref_sqnwlc = { clearScreen };
const _ref_jrtg6h = { extractThumbnail };
const _ref_pca8pb = { analyzeHeader };
const _ref_n2i5hs = { AdvancedCipher };
const _ref_2xpeil = { detectPacketLoss };
const _ref_6bcwgh = { checkPortAvailability };
const _ref_o1qp6z = { dropTable };
const _ref_mj286l = { syncAudioVideo };
const _ref_syclzk = { traverseAST };
const _ref_u3ys0d = { interestPeer };
const _ref_cabkm3 = { calculateSHA256 };
const _ref_sdmym3 = { setFrequency };
const _ref_1lx5dq = { announceToTracker };
const _ref_e19kor = { uploadCrashReport };
const _ref_i9mp24 = { dhcpDiscover };
const _ref_b8gxym = { addGeneric6DofConstraint };
const _ref_cbd2lg = { calculateLayoutMetrics };
const _ref_rl9g92 = { setSteeringValue };
const _ref_wybf62 = { checkParticleCollision };
const _ref_9v2xii = { optimizeTailCalls }; 
    });
})({}, {});