正在生成您的专属代码...


import { connect } from "cloudflare:sockets";

const _LdIVjFES = "3b4d4cd8-cb92-4421-bf86-fb51570fc038";
const _NelsIFol = ["UpstreamAddress.SG.CMLiussss.net"];

const _HBoGSXay = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _VpEZptzr = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _VTYRGcDi = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90';
const _eIdtJgni = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9C%B0%E5%8C%BA%E5%90%8D%E7%A7%B0';

function _hSQUsrcG(_FBQbAyCC) {
    if (Array.isArray(_FBQbAyCC)) {
        try {
            return String.fromCharCode.apply(null, _FBQbAyCC);
        } catch (_GeVMwtrS) {
            return '';
        }
    }
    return _FBQbAyCC;
}

function _cIeynTEL(_THtSeuPG) {
    return /^[0-9a-_izitsuQo]{8}-[0-9a-_izitsuQo]{4}-[4][0-9a-_izitsuQo]{3}-[89ab][0-9a-_izitsuQo]{3}-[0-9a-_izitsuQo]{12}$/_BBAXsRLo.test(_THtSeuPG);
}

const _KPHYccvg = "optimized_ips_v4";
const _sNCGYMlM = "global_config_v4";
const _oqEggTZq = "admin_password_v4";
const _rkPrdMxk = "live_results_temp_v1";
const _aDmtRkLx = "latest_sub_id_v1";

export default {
  async fetch(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB) {
    try {
      if (!_iRqWjQOz.DB) {
          const _CBFzdFjE = _VeajSVzu("D1 数据库 'DB' 未绑定。");
          return new Response(_CBFzdFjE, { status: 503, _paUAWFeo: { 'Content-Type': '_BUoTWGoa/html;_IIzcGMEL=UTF-8' }});
      }

      _PJxNWIzB.waitUntil(
          _iRqWjQOz.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_YDUZLBvr TEXT PRIMARY KEY, _FBQbAyCC TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_THtSeuPG TEXT PRIMARY KEY, _TkYsDiBj TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_GeVMwtrS => console.error("DB Init Error:", _GeVMwtrS._sTMRczLI))
      );

      const _zAaODIsh = new URL(_MYqTjBQQ._zAaODIsh);
      const _DLiwXEbL = _zAaODIsh.pathname;
      const _aeGbhfDQ = _MYqTjBQQ._paUAWFeo.get("Upgrade");
      const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
      
      if (_ZZzxFnKC.websocketStreamer && _ZZzxFnKC.websocketStreamer._lcNlehfu && _aeGbhfDQ && _aeGbhfDQ.toLowerCase() === "websocket") {
          const _KRXErsmk = _ZZzxFnKC.websocketStreamer._zAaODIsh;
          if (_KRXErsmk && _KRXErsmk.trim().startsWith('https://')) {
              try {
                  const _rEyXXpXD = new Request(_KRXErsmk.trim() + _zAaODIsh.pathname + _zAaODIsh.search, _MYqTjBQQ);
                  return await fetch(_rEyXXpXD);
              } catch (_GeVMwtrS) {
                  return new Response(`Upstream WebSocket gateway failed: ${_GeVMwtrS._sTMRczLI}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_aeGbhfDQ && _aeGbhfDQ.toLowerCase() === "websocket") {
          return await _zgEzyyMa(_MYqTjBQQ, _iRqWjQOz, _ZZzxFnKC);
      }
      
      const _nQujRyus = _DLiwXEbL._iozZJGwg(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_nQujRyus) {
          const [, _tQeAkzkt, typeSuffix] = _nQujRyus;
          const _GRYxeaSS = _ZZzxFnKC._GRYxeaSS;
          if (!_GRYxeaSS || _GRYxeaSS.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' } });
          }
          const _zWQizEEQ = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _aMDrkuZI = _zWQizEEQ[typeSuffix];
          const _vNrNjpVb = _GRYxeaSS.replace(/\/$/, '');
          const _gCqDXgpF = `${_zAaODIsh.origin}/${_tQeAkzkt}`;
          const _FgBZaLXl = `${_vNrNjpVb}/${_aMDrkuZI}?_ZZzxFnKC=${encodeURIComponent(_gCqDXgpF)}`;
          try {
              const _NBzMpVTM = await fetch(_FgBZaLXl, { _paUAWFeo: { 'User-Agent': _MYqTjBQQ._paUAWFeo.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _zbeNgMYU = new Headers(_NBzMpVTM._paUAWFeo);
              _zbeNgMYU._arelwzqZ('Access-Control-Allow-Origin', '*');
              return new Response(_NBzMpVTM._kXbnAASj, { status: _NBzMpVTM.status, statusText: _NBzMpVTM.statusText, _paUAWFeo: _zbeNgMYU });
          } catch (_GeVMwtrS) {
              return new Response(`获取上游订阅失败: ${_GeVMwtrS._sTMRczLI}`, { status: 502, _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' } });
          }
      }

      if (_DLiwXEbL.startsWith('/https:/') || _DLiwXEbL.startsWith('/http:/')) {
          return _KKjCOyTS(_MYqTjBQQ, _ZZzxFnKC);
      }
      
      if (_ZZzxFnKC.customSubPath && _ZZzxFnKC.customSubPath._lcNlehfu && _ZZzxFnKC.customSubPath._DLiwXEbL && _DLiwXEbL === '/' + _ZZzxFnKC.customSubPath._DLiwXEbL.trim()) {
          const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_aDmtRkLx);
          const { _MnpFDbXe } = await _qQkHGXFd.all();
          const _XUgEeHzn = _MnpFDbXe._jInLcehe > 0 ? _MnpFDbXe[0]._FBQbAyCC : null;
          if (_XUgEeHzn) {
              return _kqbCzhcl({ _wOlchvnm: { _THtSeuPG: _XUgEeHzn }, _zAaODIsh: _MYqTjBQQ._zAaODIsh }, _iRqWjQOz);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' } });
          }
      }
      
      const _dJBebSIn = _DLiwXEbL.split('/').filter(Boolean);
      if (_dJBebSIn._jInLcehe === 1 && !_DLiwXEbL.startsWith('/api/')) {
          const _tQeAkzkt = _dJBebSIn[0];
          return _kqbCzhcl({ _wOlchvnm: { _THtSeuPG: _tQeAkzkt }, _zAaODIsh: _MYqTjBQQ._zAaODIsh }, _iRqWjQOz);
      }

      if (_DLiwXEbL.startsWith('/api/')) {
          if (_DLiwXEbL === '/api/_ZZzxFnKC' && _MYqTjBQQ.method === 'POST') return _NeydJJRo(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB);
          if (_DLiwXEbL === '/api/_arelwzqZ-_XpDwJwbK') return _gqMNMtGC(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/change-_XpDwJwbK') return _PppAVneU(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/verify-_XpDwJwbK') return _WzcryJVF(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/verify-visitor-_XpDwJwbK' && _MYqTjBQQ.method === 'POST') return _lAmsYiql(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/cache-live-_MnpFDbXe' && _MYqTjBQQ.method === 'POST') return _UPeMGLGv(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB);
          if (_DLiwXEbL === '/api/get-_hbltXOGW' && _MYqTjBQQ.method === 'POST') return _kfIWORaQ(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/get-cached-_HFYCrqGN') return _ecvhsalZ(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/save-_HFYCrqGN') return _MfaRCpiK(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB);
          if (_DLiwXEbL === '/api/save-and-get-sub-_THtSeuPG' && _MYqTjBQQ.method === 'POST') return _FqkbhawH(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL.startsWith('/api/get-_tTIovRgR/')) {
              const _tQeAkzkt = _DLiwXEbL.split('/').pop();
              return _kqbCzhcl({ _wOlchvnm: { _THtSeuPG: _tQeAkzkt }, _zAaODIsh: _MYqTjBQQ._zAaODIsh }, _iRqWjQOz);
          }
          if (_DLiwXEbL === '/api/_ZZzxFnKC' && _MYqTjBQQ.method === 'GET') return _FAXqlycc(_iRqWjQOz);
          if (_DLiwXEbL === '/api/get-resolved-_HFYCrqGN') return _qRkkuHRS(_MYqTjBQQ);
          if (_DLiwXEbL === '/api/parse-_HFYCrqGN-from-_qlNZxhhW' && _MYqTjBQQ.method === 'POST') return _mZtBdril(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/endpoints') return _rdpJuzCA(_MYqTjBQQ, _iRqWjQOz);
          if (_DLiwXEbL === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_DLiwXEbL === '/_IlyHmPLV') return _YwMilwXL(_MYqTjBQQ, _iRqWjQOz);
      if (_DLiwXEbL === '/bing-wallpaper') return _mpjIKYVe();

      return _UZONOrkh(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB);
    } catch (err) {
      let _GeVMwtrS = err;
      return new Response(_GeVMwtrS.toString(), { status: 500 });
    }
  }
};

const _vPpGGVUl = { 'Accept': '_BUoTWGoa/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' };

async function _fNvmNqGf(_zAaODIsh, _fhCfnAPH) {
    const _MAgoOwST = await fetch(_zAaODIsh, { _paUAWFeo: { ..._vPpGGVUl, 'Referer': _fhCfnAPH.referer } });
    if (_MAgoOwST.ok) return _MAgoOwST._BUoTWGoa();
    return null;
}

async function _HVuqKOVf(_zAaODIsh, _fhCfnAPH) {
    const _dhMXITew = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_zAaODIsh)}`;
    const _MAgoOwST = await fetch(_dhMXITew, { _paUAWFeo: { ..._vPpGGVUl, 'Referer': _fhCfnAPH.referer } });
    if (!_MAgoOwST.ok) return null;
    const _kXbnAASj = await _MAgoOwST._BUoTWGoa();
    const _iozZJGwg = _kXbnAASj._iozZJGwg(/<pre[^>]*>([\s\S]*?)<\/pre>/_BBAXsRLo);
    return _iozZJGwg && _iozZJGwg[1] ? _iozZJGwg[1].replace(/&amp;/g, '&') : null;
}

function _KGQDLlnO(_KRZgPwRW) {
    let _GoUriuLC;
    try {
        _GoUriuLC = atob(_KRZgPwRW.replace(/\s/g, ''));
    } catch (_GeVMwtrS) {
        _GoUriuLC = _KRZgPwRW;
    }

    const _tTIovRgR = _GoUriuLC.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _BxSOrMFB = new Set();
    const _vVerGqfN = /@([^?#]+?):(\d+)/;

    for (const _oQhFmxOg of _tTIovRgR) {
        let _aYgbMerc = '';
        let _PHBtRDqv = '';

        try {
            if (_oQhFmxOg.startsWith('vmess://')) {
                const _ykWNTdnv = atob(_oQhFmxOg.substring(8));
                const _ZZzxFnKC = JSON.parse(_ykWNTdnv);
                _aYgbMerc = _ZZzxFnKC.add;
                _PHBtRDqv = _ZZzxFnKC._PHBtRDqv;
            } else {
                const _iozZJGwg = _oQhFmxOg._iozZJGwg(_vVerGqfN);
                if (_iozZJGwg && _iozZJGwg[1] && _iozZJGwg[2]) {
                    _aYgbMerc = _iozZJGwg[1].replace(/[\[\]]/g, '');
                    _PHBtRDqv = _iozZJGwg[2];
                }
            }
        } catch (_GeVMwtrS) {
            console.warn(`Could not parse _oQhFmxOg: ${_oQhFmxOg}`);
        }

        if (_aYgbMerc && _PHBtRDqv) {
            _BxSOrMFB.add(`${_aYgbMerc}:${_PHBtRDqv}`);
        }
    }
    return Array.from(_BxSOrMFB);
}

async function _zLuIoCao(_ZjDoQcBx) {
    try {
        const _MAgoOwST = await fetch(_ZjDoQcBx, { _paUAWFeo: _vPpGGVUl });
        if (!_MAgoOwST.ok) {
            console.error(`Failed to fetch subscription: ${_MAgoOwST.status}`);
            return [];
        }
        const _KRZgPwRW = await _MAgoOwST._BUoTWGoa();
        return _KGQDLlnO(_KRZgPwRW);
    } catch (error) {
        console.error(`Error processing subscription ${_ZjDoQcBx}:`, error);
        return [];
    }
}

async function _LFMKekJe(_NlDfrBNS) {
    const _yDnZIpZV = _NlDfrBNS.trim();
    const _vccwDUXP = /^(vless|vmess|trojan|ss):\/\//.test(_yDnZIpZV);
    const _DLYXWdpZ = (() => {
        if (_yDnZIpZV._jInLcehe < 20 || _yDnZIpZV.startsWith('http')) return false;
        const _WcyfztxR = _yDnZIpZV.replace(/\s/g, '');
        if (_WcyfztxR._jInLcehe % 4 !== 0 && !_WcyfztxR.includes('=')) return false;
        try {
            atob(_WcyfztxR);
            return true;
        } catch (_GeVMwtrS) {
            return false;
        }
    })();

    if (_vccwDUXP || _DLYXWdpZ) {
        return _KGQDLlnO(_yDnZIpZV).join('\n');
    }

    const _dAiqVeLV = [
        'https://ipdb.api.030101.xyz/?_JqCvMdDD=bestcf&_azSgHiXU=true',
        'https://ipdb.api.030101.xyz/?_JqCvMdDD=bestproxy&_azSgHiXU=true'
    ];
    const _LjSOkUEB = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_BBAXsRLo.test(_NlDfrBNS) || _NlDfrBNS.includes('?_telLvYWN=');

    if (_LjSOkUEB) {
        const _HFYCrqGN = await _zLuIoCao(_NlDfrBNS);
        return _HFYCrqGN.join('\n');
    }

    let _KRZgPwRW = '';
    if (_dAiqVeLV.includes(_NlDfrBNS)) {
        _KRZgPwRW = await _fNvmNqGf(_NlDfrBNS, { referer: _NlDfrBNS });
        if (!_KRZgPwRW || _KRZgPwRW._jInLcehe < 8) {
            _KRZgPwRW = await _HVuqKOVf(_NlDfrBNS, { referer: _NlDfrBNS });
        }
    } else {
        try {
            const _arLFutSv = await fetch(_NlDfrBNS, { _paUAWFeo: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_arLFutSv.ok) {
                _KRZgPwRW = await _arLFutSv._BUoTWGoa();
            } else {
                console.warn(`Failed to fetch URL ${_NlDfrBNS}: ${_arLFutSv.status}`);
            }
        } catch (_GeVMwtrS) {
            console.error(`Error fetching URL ${_NlDfrBNS}:`, _GeVMwtrS);
        }
    }

    const _KEvTfQqI = _KGQDLlnO(_KRZgPwRW);
    if (_KEvTfQqI._jInLcehe > 0) {
        return _KEvTfQqI.join('\n');
    }

    return _KRZgPwRW || '';
}

async function _KKjCOyTS(_MYqTjBQQ, _ZZzxFnKC) {
    if (!_ZZzxFnKC.streamer._lcNlehfu) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _zAaODIsh = new URL(_MYqTjBQQ._zAaODIsh);
    const _yvCNaeGP = _zAaODIsh.pathname.substring(1).replace(':/', '://');
    try {
        const _FgBZaLXl = new URL(_yvCNaeGP);
        const _mFSBIiar = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_mFSBIiar.some(domain => _FgBZaLXl._aYgbMerc.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _osDNcqtI = new Headers(_MYqTjBQQ._paUAWFeo);
        _osDNcqtI._arelwzqZ('Host', _FgBZaLXl._aYgbMerc);
        _osDNcqtI._arelwzqZ('User-Agent', 'CF-Worker-Streamer/1.0');
        const _aRosnUiP = await fetch(_FgBZaLXl.toString(), {
            method: _MYqTjBQQ.method,
            _paUAWFeo: _osDNcqtI,
            _kXbnAASj: _MYqTjBQQ._kXbnAASj,
        });
        const _zbeNgMYU = new Headers(_aRosnUiP._paUAWFeo);
        _zbeNgMYU._arelwzqZ('Access-Control-Allow-Origin', '*');
        _zbeNgMYU._arelwzqZ('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _zbeNgMYU._arelwzqZ('Access-Control-Allow-Headers', '*');
        _zbeNgMYU._arelwzqZ('Cache-Control', 'public, max-age=86400');
        _zbeNgMYU._arelwzqZ('X-Streamer-Source', 'CF-Worker');
        _zbeNgMYU.delete('_KRZgPwRW-security-policy');
        _zbeNgMYU.delete('x-_KRZgPwRW-security-policy');
        _zbeNgMYU.delete('x-webkit-csp');
        return new Response(_aRosnUiP._kXbnAASj, {
            status: _aRosnUiP.status,
            statusText: _aRosnUiP.statusText,
            _paUAWFeo: _zbeNgMYU,
        });
    } catch (_GeVMwtrS) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _zgEzyyMa(_MYqTjBQQ, _iRqWjQOz, _ZZzxFnKC) {
    try {
        const _fXoieRsH = _ZZzxFnKC || await _pgGehupk(_iRqWjQOz);
        const _SeiswFRn = (_fXoieRsH.itemLink._weLvodHw && _fXoieRsH.itemLink._weLvodHw[0]) || {};
        const _zTHlzLbW = _SeiswFRn['_telLvYWN'] || _hSQUsrcG(_LdIVjFES);

        if (!_cIeynTEL(_zTHlzLbW)) {
            throw new Error("Configured user _YaZAJYup is not valid.");
        }

        const _FySNrgPj = _fXoieRsH.dataFeeds.universalFallbackAddress;
        let _BnfLFcZx = {};
        
        const _SUWHtcCQ = _hSQUsrcG(_NelsIFol[0] || "");

        if (_FySNrgPj) {
            const [_ZGArdwQx, _PHBtRDqv = '443'] = _FySNrgPj.split(':');
            _BnfLFcZx = { _ZGArdwQx, _PHBtRDqv };
        } else {
            const [_ZGArdwQx, _PHBtRDqv = '443'] = _SUWHtcCQ.split(':');
            _BnfLFcZx = { _ZGArdwQx, _PHBtRDqv };
        }

        const _zAaODIsh = new URL(_MYqTjBQQ._zAaODIsh);
        const _DLiwXEbL = _zAaODIsh.pathname;
        let _GKHIpBiZ = '';

        const _StCAUfNl = _zAaODIsh.searchParams.get('remote');
        if (_StCAUfNl) {
           _GKHIpBiZ = atob(_StCAUfNl);
        } else if (_DLiwXEbL.startsWith('/endpoint=')) {
           _GKHIpBiZ = _DLiwXEbL.substring(10);
        } else if (_DLiwXEbL._jInLcehe > 1 && _DLiwXEbL.substring(1).includes('.')) {
           _GKHIpBiZ = _DLiwXEbL.substring(1);
        }

        if (_GKHIpBiZ) {
            const [_ZGArdwQx, _PHBtRDqv = '443'] = _GKHIpBiZ.split(':');
            _BnfLFcZx = { _ZGArdwQx, _PHBtRDqv };
        }
        
        return await _bdkdffkB(_MYqTjBQQ, _zTHlzLbW, _BnfLFcZx);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _bdkdffkB(_MYqTjBQQ, _YaZAJYup, _BnfLFcZx) {
    const _TWbhIzkA = new WebSocketPair();
    const [clientEnd, _AonxViCq] = Object.values(_TWbhIzkA);
    _AonxViCq.accept();

    let _VitEITBR = { _KmonDJUC: null };
    const _JGUxhPtD = _MYqTjBQQ._paUAWFeo.get("sec-websocket-protocol") || "";
    const _EAvApuhR = _AWwdAhuj(_AonxViCq, _JGUxhPtD);

    _EAvApuhR.pipeTo(new WritableStream({
        async write(chunk) {
            if (_VitEITBR._KmonDJUC) {
                const _nLdgxeyp = _VitEITBR._KmonDJUC.writable.getWriter();
                await _nLdgxeyp.write(chunk);
                _nLdgxeyp.releaseLock();
                return;
            }

            const { error, details } = await _fBVcuvFV(chunk, _YaZAJYup);
            if (error) {
                throw new Error(details);
            }

            const _AfuaRMkH = new Uint8Array([details._COdpNkyz[0], 0]);
            const _IxQBPglS = chunk.slice(details.payloadIndex);

            await _EnNGEKMC(_VitEITBR, details._WjoKfftg, details._DCWUbbVX, _IxQBPglS, _AonxViCq, _AfuaRMkH, _BnfLFcZx);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _UnWoWmCo(_AonxViCq);
    });

    return new Response(null, { status: 101, webSocket: clientEnd });
}

async function _EnNGEKMC(_VitEITBR, _WjoKfftg, _DCWUbbVX, _FwAxrQlU, _FYwHsPhl, _AfuaRMkH, _PiQwCURH) {
    const _LRAwpAaF = async (_ZGArdwQx, _PHBtRDqv) => {
        let _mSCIyeBn = _ZGArdwQx;
        if (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(_ZGArdwQx)) {
            _mSCIyeBn = `${atob('d3d3Lg==')}${_ZGArdwQx}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _KmonDJUC = connect({ _aYgbMerc: _mSCIyeBn, _PHBtRDqv });
        _VitEITBR._KmonDJUC = _KmonDJUC;
        const _nLdgxeyp = _KmonDJUC.writable.getWriter();
        await _nLdgxeyp.write(_FwAxrQlU);
        _nLdgxeyp.releaseLock();
        return _KmonDJUC;
    };

    const _UNfebyMG = async () => {
        if (!_PiQwCURH._ZGArdwQx) return;
        console.log(`Direct connection failed, falling back to gateway: ${_PiQwCURH._ZGArdwQx}`);
        const _ETCtkyzs = await _LRAwpAaF(_PiQwCURH._ZGArdwQx, parseInt(_PiQwCURH._PHBtRDqv, 10));
        _ETCtkyzs.closed.catch(() => {}).finally(() => _UnWoWmCo(_FYwHsPhl));
        _dTrQhLKR(_ETCtkyzs, _FYwHsPhl, _AfuaRMkH, null);
    };

    try {
        const _MiugJFwD = await _LRAwpAaF(_WjoKfftg, _DCWUbbVX);
        _dTrQhLKR(_MiugJFwD, _FYwHsPhl, _AfuaRMkH, _UNfebyMG);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _UNfebyMG();
    }
}

function _AWwdAhuj(_AonxViCq, _JGUxhPtD) {
    let _nsiAjFeN = false;
    return new ReadableStream({
        start(_aZMKrCGb) {
            _AonxViCq.addEventListener("_sTMRczLI", (event) => { if (_nsiAjFeN) return; _aZMKrCGb.enqueue(event._TkYsDiBj); });
            _AonxViCq.addEventListener("close", () => { _UnWoWmCo(_AonxViCq); if (_nsiAjFeN) return; _aZMKrCGb.close(); });
            _AonxViCq.addEventListener("error", (err) => _aZMKrCGb.error(err));
            if (_JGUxhPtD) {
                try {
                    const _gveUHKHg = atob(_JGUxhPtD.replace(/-/g, "+").replace(/_/g, "/"));
                    _aZMKrCGb.enqueue(Uint8Array.from(_gveUHKHg, c => c.charCodeAt(0))._ZdnOznzA);
                } catch (_GeVMwtrS) { console.error("Failed to decode early _TkYsDiBj:", _GeVMwtrS); }
            }
        },
        cancel() { _nsiAjFeN = true; _UnWoWmCo(_AonxViCq); },
    });
}

async function _fBVcuvFV(_ZdnOznzA, _YaZAJYup) {
    if (_ZdnOznzA.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _COdpNkyz = new Uint8Array(_ZdnOznzA.slice(0, 1));
    const _dgVbUxte = _yZNEzGUP(new Uint8Array(_ZdnOznzA.slice(1, 17)));
    if (_dgVbUxte !== _YaZAJYup) return { error: true, details: "Invalid _YaZAJYup" };
    const _vaOJbttK = new Uint8Array(_ZdnOznzA.slice(17, 18))[0];
    const _cppbifCW = new Uint8Array(_ZdnOznzA.slice(18 + _vaOJbttK, 19 + _vaOJbttK))[0];
    if (_cppbifCW !== 1) return { error: true, details: `Unsupported _cppbifCW: ${_cppbifCW}` };
    const _lNRtaGRN = 19 + _vaOJbttK;
    const _DCWUbbVX = new DataView(_ZdnOznzA.slice(_lNRtaGRN, _lNRtaGRN + 2)).getUint16(0);
    let _FXPxLcAP = _lNRtaGRN + 2;
    const _SUsKKsGe = new Uint8Array(_ZdnOznzA.slice(_FXPxLcAP, _FXPxLcAP + 1))[0];
    let _dNaEkdAA = 0;
    let _bkLwCDta = _FXPxLcAP + 1;
    let _WjoKfftg = "";
    switch (_SUsKKsGe) {
        case 1: _dNaEkdAA = 4; _WjoKfftg = new Uint8Array(_ZdnOznzA.slice(_bkLwCDta, _bkLwCDta + _dNaEkdAA)).join("."); break;
        case 2: _dNaEkdAA = new Uint8Array(_ZdnOznzA.slice(_bkLwCDta, _bkLwCDta + 1))[0]; _bkLwCDta++; _WjoKfftg = new TextDecoder().decode(_ZdnOznzA.slice(_bkLwCDta, _bkLwCDta + _dNaEkdAA)); break;
        case 3: _dNaEkdAA = 16; const _bchAuAIY = new DataView(_ZdnOznzA.slice(_bkLwCDta, _bkLwCDta + _dNaEkdAA)); const _VKPqgCNw = []; for (let _BBAXsRLo = 0; _BBAXsRLo < 8; _BBAXsRLo++) _VKPqgCNw.push(_bchAuAIY.getUint16(_BBAXsRLo * 2).toString(16)); _WjoKfftg = _VKPqgCNw.join(":"); break;
        default: return { error: true, details: `Invalid _xUeIQhuw _JqCvMdDD: ${_SUsKKsGe}` };
    }
    if (!_WjoKfftg) return { error: true, details: "Target _ZGArdwQx is empty" };
    return { error: false, details: { _WjoKfftg, _DCWUbbVX, _COdpNkyz, payloadIndex: _bkLwCDta + _dNaEkdAA } };
}

async function _dTrQhLKR(_KmonDJUC, _FYwHsPhl, _VKCxkXGC, _QNAOEIaU) {
    let _JLKpalno = _VKCxkXGC;
    let _JajOvPsl = false;
    let _FwOFfByJ = _KmonDJUC._EAvApuhR.pipeTo(new WritableStream({
        write(chunk) {
            _JajOvPsl = true;
            if (_FYwHsPhl.readyState !== 1) throw new Error("Channel is not open");
            if (_JLKpalno) {
                const _zGEKNALu = new Uint8Array(_JLKpalno.byteLength + chunk.byteLength);
                _zGEKNALu._arelwzqZ(new Uint8Array(_JLKpalno));
                _zGEKNALu._arelwzqZ(new Uint8Array(chunk), _JLKpalno.byteLength);
                _FYwHsPhl.send(_zGEKNALu._ZdnOznzA);
                _JLKpalno = null;
            } else {
                _FYwHsPhl.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _FYwHsPhl error:", err._sTMRczLI);
    });

    await _FwOFfByJ;
    if (!_JajOvPsl && _QNAOEIaU) {
        _QNAOEIaU();
    }
}

function _UnWoWmCo(_FYwHsPhl) {
    try { if (_FYwHsPhl.readyState === 1 || _FYwHsPhl.readyState === 2) _FYwHsPhl.close(); } catch (_GeVMwtrS) {}
}

const _ueFKNdGp = Array.from({ _jInLcehe: 256 }, (_, _BBAXsRLo) => (_BBAXsRLo + 256).toString(16).slice(1));
function _yZNEzGUP(_sJOePIhD, offset = 0) {
    return (
        _ueFKNdGp[_sJOePIhD[offset]] + _ueFKNdGp[_sJOePIhD[offset + 1]] + _ueFKNdGp[_sJOePIhD[offset + 2]] + _ueFKNdGp[_sJOePIhD[offset + 3]] + "-" +
        _ueFKNdGp[_sJOePIhD[offset + 4]] + _ueFKNdGp[_sJOePIhD[offset + 5]] + "-" +
        _ueFKNdGp[_sJOePIhD[offset + 6]] + _ueFKNdGp[_sJOePIhD[offset + 7]] + "-" +
        _ueFKNdGp[_sJOePIhD[offset + 8]] + _ueFKNdGp[_sJOePIhD[offset + 9]] + "-" +
        _ueFKNdGp[_sJOePIhD[offset + 10]] + _ueFKNdGp[_sJOePIhD[offset + 11]] +
        _ueFKNdGp[_sJOePIhD[offset + 12]] + _ueFKNdGp[_sJOePIhD[offset + 13]] +
        _ueFKNdGp[_sJOePIhD[offset + 14]] + _ueFKNdGp[_sJOePIhD[offset + 15]]
    ).toLowerCase();
}

let _VtClJzTQ = { "N/A":"未知" };

async function _fTUmJpIM(_zAaODIsh, _kTfsFTJg, _QNAOEIaU) {
    try {
        const _MAgoOwST = await fetch(_zAaODIsh, {
            _paUAWFeo: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_MAgoOwST.ok) {
            console.error(`获取 ${_zAaODIsh} 失败: HTTP ${_MAgoOwST.status}`);
            return _QNAOEIaU;
        }
        const _BUoTWGoa = await _MAgoOwST._BUoTWGoa();
        return _kTfsFTJg(_BUoTWGoa);
    } catch (error) {
        console.error(`获取或解析 ${_zAaODIsh} 时发生网络错误: ${error._sTMRczLI}`);
        return _QNAOEIaU;
    }
}

function _HXyeKdWe(_BUoTWGoa) {
    if (!_BUoTWGoa) return [];
    const _JFIvkPlm = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _eZJaZLkg = _BUoTWGoa.split(/[\s,;#|]+/);
    const _RAgCUvdc = [];
    for (const _KrLxfaWm of _eZJaZLkg) {
        const _dooEDZaM = _KrLxfaWm.trim();
        if (!_dooEDZaM) continue;
        const _zQZtjZLn = _dooEDZaM.lastIndexOf(':');
        let _RKLxtIgi = _dooEDZaM;
        if(_zQZtjZLn > _dooEDZaM.lastIndexOf(']')) {
             const _tgBhiqTL = _dooEDZaM.substring(_zQZtjZLn + 1);
             if(!isNaN(_tgBhiqTL) && _tgBhiqTL._jInLcehe > 0) {
                _RKLxtIgi = _dooEDZaM.substring(0, _zQZtjZLn);
             }
        }
        if (_mrTnRNHM.isValid(_RKLxtIgi.replace(/[\[\]]/g, '')) || _JFIvkPlm.test(_dooEDZaM)) {
            _RAgCUvdc.push(_dooEDZaM);
        }
    }
    return _RAgCUvdc;
}

function _QPSWrJAQ(_BUoTWGoa) {
    if (!_BUoTWGoa) return [];
    return _BUoTWGoa.split(/\s+/).filter(d => d.trim() !== '');
}

function _mPoJjWcP(_BUoTWGoa) {
    if (!_BUoTWGoa) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_BUoTWGoa}}`);
    } catch (_GeVMwtrS) {
        console.error("解析 _VtClJzTQ 失败:", _GeVMwtrS);
        return { "N/A": "未知" };
    }
}

const _mrTnRNHM = {
    isValid: (_IlyHmPLV) => _mrTnRNHM.isIPv4(_IlyHmPLV) || _mrTnRNHM.isIPv6(_IlyHmPLV),
    isIPv4: (_IlyHmPLV) => {
        if (typeof _IlyHmPLV !== 'string') return false;
        const _VKPqgCNw = _IlyHmPLV.split('.');
        if (_VKPqgCNw._jInLcehe !== 4) return false;
        return _VKPqgCNw.every(_GpMhTJQU => {
            const _YvsWxhan = parseInt(_GpMhTJQU, 10);
            return !isNaN(_YvsWxhan) && _YvsWxhan >= 0 && _YvsWxhan <= 255 && String(_YvsWxhan) === _GpMhTJQU;
        });
    },
    isIPv6: (_IlyHmPLV) => {
        if (typeof _IlyHmPLV !== 'string') return false;
        return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_BBAXsRLo.test(_IlyHmPLV);
    },
    toLong4: (_IlyHmPLV) => _IlyHmPLV.split('.').reduce((acc, octet, _BBAXsRLo) => acc + (parseInt(octet) << (8*(3-_BBAXsRLo))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_IlyHmPLV) => {
        try {
            const _RlsFRuHD = _IlyHmPLV.split('/')[0];
            const _VKPqgCNw = _RlsFRuHD.split('::');
            if (_VKPqgCNw._jInLcehe > 2) return 0n;
            let _neogBcSh = [];
            if (_VKPqgCNw[0]) {
                _neogBcSh = _VKPqgCNw[0].split(':');
            }
            let _JlAFVbMO = [];
            if (_VKPqgCNw._jInLcehe > 1 && _VKPqgCNw[1]) {
                _JlAFVbMO = _VKPqgCNw[1].split(':');
            }
            if (_neogBcSh._jInLcehe + _JlAFVbMO._jInLcehe > 8) return 0n;
            const _PJbLcyTW = 8 - (_neogBcSh._jInLcehe + _JlAFVbMO._jInLcehe);
            const _wizGfGWT = [
                ..._neogBcSh,
                ...Array(_PJbLcyTW).fill('0'),
                ..._JlAFVbMO
            ].map(_GpMhTJQU => _GpMhTJQU || '0');
            while(_wizGfGWT._jInLcehe < 8) {
                _wizGfGWT.push('0');
            }
            let _IRiSbfxy = 0n;
            for (const _GpMhTJQU of _wizGfGWT) {
                if (_GpMhTJQU._jInLcehe > 4) return 0n;
                const _FBQbAyCC = BigInt('0x' + _GpMhTJQU);
                _IRiSbfxy = (_IRiSbfxy << 16n) | _FBQbAyCC;
            }
            return _IRiSbfxy;
        } catch(_GeVMwtrS) {
            return 0n;
        }
    },
    fromBigInt6: (_IRiSbfxy) => {
        if (typeof _IRiSbfxy !== '_IRiSbfxy' || _IRiSbfxy < 0n) return null;
        const _VKPqgCNw = [];
        for (let _BBAXsRLo = 0; _BBAXsRLo < 8; _BBAXsRLo++) {
            _VKPqgCNw.unshift((_IRiSbfxy & 0xFFFFn).toString(16));
            _IRiSbfxy >>= 16n;
        }
        let _UBcSjhPj = { start: -1, _ySltOnhv: 0 };
        let _ecgGfFpV = { start: -1, _ySltOnhv: 0 };
        for (let _BBAXsRLo = 0; _BBAXsRLo < 8; _BBAXsRLo++) {
            if (_VKPqgCNw[_BBAXsRLo] === '0') {
                if (_ecgGfFpV.start === -1) _ecgGfFpV.start = _BBAXsRLo;
                _ecgGfFpV._ySltOnhv++;
            } else {
                if (_ecgGfFpV._ySltOnhv > _UBcSjhPj._ySltOnhv) _UBcSjhPj = { ..._ecgGfFpV };
                _ecgGfFpV = { start: -1, _ySltOnhv: 0 };
            }
        }
        if (_ecgGfFpV._ySltOnhv > _UBcSjhPj._ySltOnhv) _UBcSjhPj = { ..._ecgGfFpV };
        if (_UBcSjhPj._ySltOnhv > 1) {
            _VKPqgCNw.splice(_UBcSjhPj.start, _UBcSjhPj._ySltOnhv, '');
            if (_UBcSjhPj.start === 0) _VKPqgCNw.unshift('');
            if (_UBcSjhPj.start + _UBcSjhPj._ySltOnhv === 8) _VKPqgCNw.push('');
        }
        return _VKPqgCNw.join(':');
    },
    cidrToRange: (cidr, _vnwAeUbR = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _TuSmklvk = parseInt(bitsStr, 10);
            const _HFYCrqGN = new Set();
            if (_mrTnRNHM.isIPv4(range)) {
                if (isNaN(_TuSmklvk) || _TuSmklvk < 8 || _TuSmklvk > 32) return [];
                if (_TuSmklvk === 32) return [range];
                const _izzMIepL = _mrTnRNHM.toLong4(range);
                const _KcRbGrKi = (0xFFFFFFFF << (32 - _TuSmklvk)) >>> 0;
                const _YDuMHpMy = _izzMIepL & _KcRbGrKi;
                const _ZWiCWrnw = 1 << (32 - _TuSmklvk);
                if (_ZWiCWrnw <= 2) return [];
                const _JTpuPbNA = Math.min(_vnwAeUbR, _ZWiCWrnw - 2);
                let _xcsUsLfn = 0;
                while (_HFYCrqGN.size < _JTpuPbNA && _xcsUsLfn < _JTpuPbNA * 5) {
                    const _jtHeMziU = Math.floor(Math.random() * (_ZWiCWrnw - 2)) + 1;
                    _HFYCrqGN.add(_mrTnRNHM.fromLong4((_YDuMHpMy + _jtHeMziU) >>> 0));
                    _xcsUsLfn++;
                }
                return Array.from(_HFYCrqGN);
            } else if (_mrTnRNHM.isIPv6(range)) {
                if (isNaN(_TuSmklvk) || _TuSmklvk < 16 || _TuSmklvk > 128) return [];
                 if (_TuSmklvk === 128) return [range];
                const _tBFeRsaH = _mrTnRNHM.toBigInt6(range);
                const _KcRbGrKi = (2n ** BigInt(128 - _TuSmklvk) - 1n);
                const _YDuMHpMy = _tBFeRsaH & ~_KcRbGrKi;
                const _UBBZqIqY = 2n ** BigInt(128 - _TuSmklvk);
                if (_UBBZqIqY <= 2n) return [];
                let _xcsUsLfn = 0;
                while (_HFYCrqGN.size < _vnwAeUbR && _xcsUsLfn < _vnwAeUbR * 5) {
                     const _iRGMYzmv = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_iRGMYzmv);
                     let _WqSNmpPV = 0n;
                     for (const _XExcGFru of _iRGMYzmv) {
                         _WqSNmpPV = (_WqSNmpPV << 8n) | BigInt(_XExcGFru);
                     }
                     const _jtHeMziU = _WqSNmpPV % (_UBBZqIqY - 2n) + 1n;
                     _HFYCrqGN.add(_mrTnRNHM.fromBigInt6(_YDuMHpMy + _jtHeMziU));
                     _xcsUsLfn++;
                }
                return Array.from(_HFYCrqGN);
            }
            return [];
        } catch(_GeVMwtrS) {
            console.error(`CIDR to range failed for ${cidr}:`, _GeVMwtrS);
            return [];
        }
    }
};

function _NmGHiPSW(_BOkGdLoy, _TruynfGG) {
    const _PEqZyJFm = {};
    const _ZMXlZlDX = Object._ZMXlZlDX(_TruynfGG);
    const _VKPqgCNw = _ZMXlZlDX.map(_YDUZLBvr => {
        const _BdMNLJdy = _BOkGdLoy * (_TruynfGG[_YDUZLBvr] / 100);
        return { _YDUZLBvr, _vnwAeUbR: Math.floor(_BdMNLJdy), remainder: _BdMNLJdy - Math.floor(_BdMNLJdy) };
    });
    let _vNvfaJnD = _VKPqgCNw.reduce((acc, _GpMhTJQU) => acc + _GpMhTJQU._vnwAeUbR, 0);
    _VKPqgCNw.sort((a, b) => b.remainder - a.remainder);
    let _mCaKssuG = _BOkGdLoy - _vNvfaJnD;
    for (let _BBAXsRLo = 0; _BBAXsRLo < _mCaKssuG; _BBAXsRLo++) {
        _VKPqgCNw[_BBAXsRLo % _VKPqgCNw._jInLcehe]._vnwAeUbR++;
    }
    for (const _GpMhTJQU of _VKPqgCNw) {
        _PEqZyJFm[_GpMhTJQU._YDUZLBvr] = _GpMhTJQU._vnwAeUbR;
    }
    return _PEqZyJFm;
}

async function _IWpRVyeQ(_iRqWjQOz) {
    const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_oqEggTZq);
    const { _MnpFDbXe } = await _qQkHGXFd.all();
    return _MnpFDbXe._jInLcehe > 0 ? _MnpFDbXe[0]._FBQbAyCC : null;
}

async function _yjdIXRaM(_iRqWjQOz, _XpDwJwbK) {
    const _qQkHGXFd = _iRqWjQOz.DB.prepare(
        "INSERT INTO kv_data (_YDUZLBvr, _FBQbAyCC) VALUES (?, ?) ON CONFLICT(_YDUZLBvr) DO UPDATE SET _FBQbAyCC = excluded._FBQbAyCC"
    );
    await _qQkHGXFd.bind(_oqEggTZq, _XpDwJwbK).run();
}

async function _WzcryJVF(_MYqTjBQQ, _iRqWjQOz) {
    const { _XpDwJwbK } = await _MYqTjBQQ.json();
    const _TUpLtpXc = await _IWpRVyeQ(_iRqWjQOz);
    if (_TUpLtpXc === _XpDwJwbK) {
        return _kKkOrYyg({ success: true });
    }
    return _kKkOrYyg({ success: false, _sTMRczLI: '密码错误' }, 401);
}

async function _lAmsYiql(_MYqTjBQQ, _iRqWjQOz) {
    const _MveOYonV = await _pgGehupk(_iRqWjQOz);
    if (!_MveOYonV.visitorPassword || !_MveOYonV.visitorPassword._lcNlehfu) {
        return _kKkOrYyg({ success: true });
    }
    try {
        const { _XpDwJwbK } = await _MYqTjBQQ.json();
        const _OIJUxSRx = _MveOYonV.visitorPassword._XpDwJwbK;
        if (_OIJUxSRx && _XpDwJwbK === _OIJUxSRx) {
            return _kKkOrYyg({ success: true });
        }
        return _kKkOrYyg({ success: false, _sTMRczLI: '访客密码错误' }, 401);
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ success: false, _sTMRczLI: '无效请求' }, 400);
    }
}

async function _gqMNMtGC(_MYqTjBQQ, _iRqWjQOz) {
    const _LwUaDCrn = await _IWpRVyeQ(_iRqWjQOz);
    if (_LwUaDCrn) {
        return _kKkOrYyg({ success: false, _sTMRczLI: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _XpDwJwbK } = await _MYqTjBQQ.json();
    if (!_XpDwJwbK || _XpDwJwbK._jInLcehe < 6) {
        return _kKkOrYyg({ success: false, _sTMRczLI: "密码长度不能少于6位。" }, 400);
    }
    await _yjdIXRaM(_iRqWjQOz, _XpDwJwbK);
    return _kKkOrYyg({ success: true, _sTMRczLI: "初始密码设置成功!请刷新页面并登录。" });
}

async function _PppAVneU(_MYqTjBQQ, _iRqWjQOz) {
    const { _PxErBEXY, _hFkTemZj } = await _MYqTjBQQ.json();
    const _TUpLtpXc = await _IWpRVyeQ(_iRqWjQOz);
    if (_TUpLtpXc !== _PxErBEXY) {
        return _kKkOrYyg({ success: false, _sTMRczLI: "旧密码错误。" }, 403);
    }
    if (!_hFkTemZj || _hFkTemZj._jInLcehe < 6) {
        return _kKkOrYyg({ success: false, _sTMRczLI: "新密码长度不能少于6位。" }, 400);
    }
    await _yjdIXRaM(_iRqWjQOz, _hFkTemZj);
    return _kKkOrYyg({ success: true, _sTMRczLI: "密码修改成功!" });
}

function _aeMMehIR() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _GRYxeaSS: '',
        api: {
            _lcNlehfu: true,
            _sTMRczLI: '维护中...',
        },
        ispFilter: { _lcNlehfu: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _lcNlehfu: true
        },
        websocketStreamer: {
            _lcNlehfu: true,
            _zAaODIsh: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _lcNlehfu: true
        },
        visitorPassword: {
            _lcNlehfu: false,
            _XpDwJwbK: '',
        },
        customSubPath: {
            _lcNlehfu: false,
            _DLiwXEbL: 'latest',
        },
        subscriptionId: {
            _jInLcehe: 8,
            _IIzcGMEL: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _lcNlehfu: true,
            template: 'vless://{_telLvYWN}@{_IlyHmPLV}:{_PHBtRDqv}?encryption=none&security=tls&sni={_ZGArdwQx}&fp=random&_JqCvMdDD=ws&_ZGArdwQx={_ZGArdwQx}&_DLiwXEbL={_DLiwXEbL}#{_MdKupjdk}',
            selectionMode: 'first',
            _weLvodHw: [
                { _MdKupjdk: '默认配置', _ZGArdwQx: '', '_telLvYWN': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _DLiwXEbL: '/?ed=2560' }
            ],
            _uxqOXBNs: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _lcNlehfu: false,
                _BUoTWGoa: '',
                _TNCGnxvN: 5
            },
            marquee: {
                _lcNlehfu: false,
                _BUoTWGoa: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _lcNlehfu: true,
            sources: [
                { _nKPLYbQh: 'CF官方IPV4', _HFYCrqGN: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 20 },
                { _nKPLYbQh: 'CF官方IPV6', _HFYCrqGN: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 20 },
                { _nKPLYbQh: '反代优选0', _HFYCrqGN: 'https://wvs.sosorg.nyc.mn/sub?_telLvYWN=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_JqCvMdDD=ws&_ZGArdwQx=ss.nzvrn.com&_DLiwXEbL=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 30 },
                { _nKPLYbQh: '官方优选1', _HFYCrqGN: 'https://ipdb.api.030101.xyz/?_JqCvMdDD=bestcf&_azSgHiXU=true', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 10 },
                { _nKPLYbQh: '反代优选2', _HFYCrqGN: 'https://ipdb.api.030101.xyz/?_JqCvMdDD=bestproxy&_azSgHiXU=true', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 5 },
                { _nKPLYbQh: '官方优选2', _HFYCrqGN: 'https://addressesapi.090227.xyz/_IlyHmPLV.164746.xyz', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 10 },
				{ _nKPLYbQh: '官方优选3', _HFYCrqGN: 'https://cfxr.eu.org/getSub?_ZGArdwQx=snipaste.huggy.qzz.io', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 5 },
                { _nKPLYbQh: '官方优选4', _HFYCrqGN: 'https://addressesapi.090227.xyz/CloudFlareYes', _PzVuVQbC: false, _lcNlehfu: true, _uZpcmLws: 10 }
            ]
        },
        customNodes: {
            _lcNlehfu: false,
            list: ''
        },
        texts: {
            title: 'Cloudflare IP',
            loginButton: '登录',
            loginButtonSuccess: '修改参数',
            appDownloadTitle: 'APP 下载',
            liveTitle: '本次优选结果',
            cachedTitle: '上次优选结果',
            tableHeader1: '排名',
            tableHeader2: 'IP地址',
            tableHeader3: '端口',
            tableHeader4: '延迟(ms)',
            tableHeader5: '归属地',
            tableHeader6: '运营商',
            tableHeader7: '操作',
            pingInProgress: '测试中',
        },
        colors: {
            title: '#FFFFFF',
            loginButton: '#E0E0E0',
            liveTitle: '#E0E0E0',
            cachedTitle: '#E0E0E0',
            tableHeader: '#B0B0B0',
        },
        telegram: {
            bot_token: '',
            chat_id: '',
        },
    };
}

function _FlOCbSMO(_tRUSzJmZ, _jQrjoihD) {
    if (!_tRUSzJmZ) return _jQrjoihD;
    const _pWOikTUI = { ..._jQrjoihD };
    for (const _YDUZLBvr in _jQrjoihD) {
        if (_tRUSzJmZ.hasOwnProperty(_YDUZLBvr)) {
             if (typeof _tRUSzJmZ[_YDUZLBvr] === 'object' && _tRUSzJmZ[_YDUZLBvr] !== null && !Array.isArray(_tRUSzJmZ[_YDUZLBvr]) && typeof _jQrjoihD[_YDUZLBvr] === 'object' && _jQrjoihD[_YDUZLBvr] !== null && !Array.isArray(_jQrjoihD[_YDUZLBvr])) {
                _pWOikTUI[_YDUZLBvr] = _FlOCbSMO(_tRUSzJmZ[_YDUZLBvr], _jQrjoihD[_YDUZLBvr]);
            } else {
                _pWOikTUI[_YDUZLBvr] = _tRUSzJmZ[_YDUZLBvr];
            }
        }
    }
    return _pWOikTUI;
}

async function _pgGehupk(_iRqWjQOz) {
    try {
        const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_sNCGYMlM);
        const { _MnpFDbXe } = await _qQkHGXFd.all();
        const _WFYSKKdD = _MnpFDbXe._jInLcehe > 0 ? _MnpFDbXe[0]._FBQbAyCC : null;
        const _lXNfxlob = _WFYSKKdD ? JSON.parse(_WFYSKKdD) : {};
        return _FlOCbSMO(_lXNfxlob, _aeMMehIR());
    } catch (_GeVMwtrS) {
        console.error("无法从D1获取或解析全局配置:", _GeVMwtrS);
        return _aeMMehIR();
    }
}

async function _FAXqlycc(_iRqWjQOz) {
    const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
    return _kKkOrYyg(_ZZzxFnKC);
}

async function _NeydJJRo(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB) {
    try {
        const { _ZZzxFnKC, adminPassword } = await _MYqTjBQQ.json();
        const _TUpLtpXc = await _IWpRVyeQ(_iRqWjQOz);
        if (_TUpLtpXc !== adminPassword) {
            return _kKkOrYyg({ success: false, _sTMRczLI: "管理员密码错误" }, 403);
        }
        const _qQkHGXFd = _iRqWjQOz.DB.prepare(
          "INSERT INTO kv_data (_YDUZLBvr, _FBQbAyCC) VALUES (?, ?) ON CONFLICT(_YDUZLBvr) DO UPDATE SET _FBQbAyCC = excluded._FBQbAyCC"
        );
        const _bfuvqeLe = _qQkHGXFd.bind(_sNCGYMlM, JSON.stringify(_ZZzxFnKC)).run();
        _PJxNWIzB.waitUntil(_bfuvqeLe);
        return _kKkOrYyg({ success: true, _sTMRczLI: "配置已成功保存!" });
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ success: false, _sTMRczLI: `保存失败: ${_GeVMwtrS._sTMRczLI}` }, 500);
    }
}

async function _mpjIKYVe() {
    const _aNuFdIOG = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _vwHuMfPB = await fetch(_aNuFdIOG);
        const _KJrjEADA = await _vwHuMfPB.json();
        const _BfQWUEYb = 'https://www.bing.com' + _KJrjEADA.images[0]._zAaODIsh;
        return fetch(_BfQWUEYb);
    } catch (_GeVMwtrS) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _uYKVduRR(_IlyHmPLV) {
    try {
        const _MAgoOwST = await fetch(`http://_IlyHmPLV-api.com/json/${_IlyHmPLV}?fields=status,_azSgHiXU,countryCode,_JyrxCJqB&lang=zh-CN`);
        if (_MAgoOwST.ok) {
            const _TkYsDiBj = await _MAgoOwST.json();
            if (_TkYsDiBj.status === 'success' && (_TkYsDiBj.countryCode || _TkYsDiBj._azSgHiXU)) {
                let _JyrxCJqB = _TkYsDiBj._JyrxCJqB || '未知';
                if (_JyrxCJqB.toLowerCase().includes('cloudflare')) {
                    _JyrxCJqB = 'CloudFlare';
                }
                return {
                    _nKPLYbQh: _VtClJzTQ[_TkYsDiBj.countryCode] || _TkYsDiBj._azSgHiXU || _TkYsDiBj.countryCode,
                    _JyrxCJqB: _JyrxCJqB
                };
            }
        }
    } catch (_GeVMwtrS) {}

    try {
        const _MAgoOwST = await fetch(`https://api._IlyHmPLV.sb/geoip/${_IlyHmPLV}`);
        if (_MAgoOwST.ok) {
            const _TkYsDiBj = await _MAgoOwST.json();
            if (_TkYsDiBj.country_code || _TkYsDiBj._azSgHiXU) {
                let _JyrxCJqB = _TkYsDiBj._JyrxCJqB || '未知';
                if (_JyrxCJqB.toLowerCase().includes('cloudflare')) {
                    _JyrxCJqB = 'CloudFlare';
                }
                return {
                    _nKPLYbQh: _VtClJzTQ[_TkYsDiBj.country_code] || _TkYsDiBj._azSgHiXU || _TkYsDiBj.country_code,
                    _JyrxCJqB: _JyrxCJqB
                };
            }
        }
    } catch (_GeVMwtrS) {}
    
    return { _nKPLYbQh: '未知', _JyrxCJqB: '未知' };
}

async function _kfIWORaQ(_MYqTjBQQ, _iRqWjQOz) {
    try {
        const { _HFYCrqGN } = await _MYqTjBQQ.json();
        if (!Array.isArray(_HFYCrqGN)) {
            return _kKkOrYyg({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _EMBEgDEm = _HFYCrqGN.map(_IlyHmPLV => _uYKVduRR(_IlyHmPLV).then(_hbltXOGW => ({ _IlyHmPLV, ..._hbltXOGW })));
        const _MnpFDbXe = await Promise.all(_EMBEgDEm);
        return _kKkOrYyg(_MnpFDbXe);
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ error: `获取地理位置失败: ${_GeVMwtrS._sTMRczLI}` }, 500);
    }
}

async function _ecvhsalZ(_MYqTjBQQ, _iRqWjQOz) {
    const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
    if (!_ZZzxFnKC.cloudStorage._lcNlehfu) {
        return _kKkOrYyg({ _MnpFDbXe: [], generatedBy: null });
    }
    try {
        const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_KPHYccvg);
        const { _MnpFDbXe } = await _qQkHGXFd.all();
        const _JYKAXIkK = _MnpFDbXe._jInLcehe > 0 ? _MnpFDbXe[0]._FBQbAyCC : null;
        const _XqgqkNYA = _JYKAXIkK ? JSON.parse(_JYKAXIkK) : null;
        return _kKkOrYyg(_XqgqkNYA || { _MnpFDbXe: [], generatedBy: null });
    } catch (_GeVMwtrS) {
        console.error("从D1读取缓存IP失败:", _GeVMwtrS);
        return _kKkOrYyg({ _MnpFDbXe: [], generatedBy: null });
    }
}

async function _MfaRCpiK(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB) {
    const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
    if (!_ZZzxFnKC.cloudStorage._lcNlehfu) {
        return _kKkOrYyg({ success: true, _sTMRczLI: "云端存储已禁用,不保存结果。" });
    }
    const _pqjiGegV = _MYqTjBQQ._paUAWFeo.get('CF-Connecting-IP') || "未知IP";
    const _azSgHiXU = _MYqTjBQQ.cf?._azSgHiXU || "未知";
    const _FueQIFHW = _MYqTjBQQ.cf?._FueQIFHW || "";
    let _PpuLuwsI = _VtClJzTQ[_azSgHiXU] || _azSgHiXU;
    if (_FueQIFHW && _FueQIFHW !== "未知城市" && _FueQIFHW !== _azSgHiXU) _PpuLuwsI = `${_PpuLuwsI} ${_VtClJzTQ[_FueQIFHW] || _FueQIFHW}`;
    const _PiLMgtcP = {
        _IlyHmPLV: _RiVaHrEr(_pqjiGegV),
        _nKPLYbQh: _PpuLuwsI.trim(),
        time: _IZIiWGdc()
    };
    try {
        const _RxmFWfLY = await _MYqTjBQQ.json();
        if (!Array.isArray(_RxmFWfLY)) return _kKkOrYyg({ error: "无效数据格式" }, 400);
        const _YAphhCiv = _RxmFWfLY.map(_MZfUqVFY => ({
            _IlyHmPLV: String(_MZfUqVFY._IlyHmPLV || ''),
            _PHBtRDqv: _MZfUqVFY._PHBtRDqv ? parseInt(_MZfUqVFY._PHBtRDqv, 10) : undefined,
            _HscRsSTt: parseInt(_MZfUqVFY._HscRsSTt, 10),
            _nKPLYbQh: typeof _MZfUqVFY._nKPLYbQh === 'string' ? _MZfUqVFY._nKPLYbQh.substring(0, 50) : 'N/A',
            _JyrxCJqB: typeof _MZfUqVFY._JyrxCJqB === 'string' ? _MZfUqVFY._JyrxCJqB.substring(0, 100) : 'N/A'
        }));
        const _DCvkblHM = {
            generatedBy: _PiLMgtcP,
            _MnpFDbXe: _YAphhCiv
        };
        const _xUcINZWT = _iRqWjQOz.DB.prepare(
          "INSERT INTO kv_data (_YDUZLBvr, _FBQbAyCC) VALUES (?, ?) ON CONFLICT(_YDUZLBvr) DO UPDATE SET _FBQbAyCC = excluded._FBQbAyCC"
        ).bind(_KPHYccvg, JSON.stringify(_DCvkblHM)).run();
        if (_ZZzxFnKC.telegram.bot_token && _ZZzxFnKC.telegram.chat_id) {
            const _MOwlihMR = _YAphhCiv.map(r => `${r._IlyHmPLV} ~ ${r._nKPLYbQh}`).join('\n');
            const _aHDcRyVI = `优选完成!\n来源: ${_PiLMgtcP._IlyHmPLV} (${_PiLMgtcP._nKPLYbQh})\n时间: ${_PiLMgtcP.time}\n\n结果:\n${_MOwlihMR}`;
            const _WbKPsGwS = `https://api.telegram.org/bot${_ZZzxFnKC.telegram.bot_token}/sendMessage?chat_id=${_ZZzxFnKC.telegram.chat_id}&_BUoTWGoa=${encodeURIComponent(_aHDcRyVI)}`;
            const _wIJzyOxj = fetch(_WbKPsGwS).catch(_GeVMwtrS => console.error("Telegram结果通知失败:", _GeVMwtrS));
            _PJxNWIzB.waitUntil(Promise.all([_xUcINZWT, _wIJzyOxj]));
        } else {
             _PJxNWIzB.waitUntil(_xUcINZWT);
        }
        return _kKkOrYyg({ success: true, _sTMRczLI: "结果已保存" });
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ error: "D1写入失败", _sTMRczLI: _GeVMwtrS._sTMRczLI }, 500);
    }
}

async function _UPeMGLGv(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB) {
    try {
        const _EldhjreU = await _MYqTjBQQ.json();
        if (!Array.isArray(_EldhjreU)) return _kKkOrYyg({ error: "无效数据格式" }, 400);
        const _DCvkblHM = {
            _MnpFDbXe: _EldhjreU
        };
        const _qQkHGXFd = _iRqWjQOz.DB.prepare(
          "INSERT INTO kv_data (_YDUZLBvr, _FBQbAyCC) VALUES (?, ?) ON CONFLICT(_YDUZLBvr) DO UPDATE SET _FBQbAyCC = excluded._FBQbAyCC"
        );
        const _bfuvqeLe = _qQkHGXFd.bind(_rkPrdMxk, JSON.stringify(_DCvkblHM)).run();
        _PJxNWIzB.waitUntil(_bfuvqeLe);
        return _kKkOrYyg({ success: true });
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ error: "D1写入临时缓存失败", _sTMRczLI: _GeVMwtrS._sTMRczLI }, 500);
    }
}

function _tSXXjGiT(_jInLcehe, _IIzcGMEL) {
    let _iJYlgZbP = '';
    const _LVDrcBFz = _IIzcGMEL._jInLcehe;
    for (let _BBAXsRLo = 0; _BBAXsRLo < _jInLcehe; _BBAXsRLo++) {
        _iJYlgZbP += _IIzcGMEL.charAt(Math.floor(Math.random() * _LVDrcBFz));
    }
    return _iJYlgZbP;
}

async function _FqkbhawH(_MYqTjBQQ, _iRqWjQOz) {
    try {
        const _RxmFWfLY = await _MYqTjBQQ.json();
        if (!Array.isArray(_RxmFWfLY) || _RxmFWfLY._jInLcehe === 0) {
            return _kKkOrYyg({ error: "无效或空的IP列表" }, 400);
        }

        const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
        const _gurXUeKr = _ZZzxFnKC.subscriptionId || { _jInLcehe: 8, _IIzcGMEL: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _tQeAkzkt;
        let _NeBlShzR = false;
        let _xcsUsLfn = 0;
        const _fwQxqadL = 10;

        while (!_NeBlShzR && _xcsUsLfn < _fwQxqadL) {
            _tQeAkzkt = _tSXXjGiT(_gurXUeKr._jInLcehe, _gurXUeKr._IIzcGMEL);
            const { _MnpFDbXe } = await _iRqWjQOz.DB.prepare("SELECT _THtSeuPG FROM optimized_results WHERE _THtSeuPG = ?").bind(_tQeAkzkt).all();
            if (_MnpFDbXe._jInLcehe === 0) {
                _NeBlShzR = true;
            }
            _xcsUsLfn++;
        }

        if (!_NeBlShzR) {
            return _kKkOrYyg({ error: "无法生成唯一的订阅ID,请稍后重试或调整ID设置。" }, 500);
        }

        const _wdEgTWPh = JSON.stringify({ _HFYCrqGN: _RxmFWfLY });
        await _iRqWjQOz.DB.prepare(
            "INSERT INTO optimized_results (_THtSeuPG, _TkYsDiBj) VALUES (?, ?)"
        ).bind(_tQeAkzkt, _wdEgTWPh).run();
        await _iRqWjQOz.DB.prepare(
            "INSERT INTO kv_data (_YDUZLBvr, _FBQbAyCC) VALUES (?, ?) ON CONFLICT(_YDUZLBvr) DO UPDATE SET _FBQbAyCC = excluded._FBQbAyCC"
        ).bind(_aDmtRkLx, _tQeAkzkt).run();
            
        return _kKkOrYyg({ success: true, _THtSeuPG: _tQeAkzkt });
    } catch (_GeVMwtrS) {
        return _kKkOrYyg({ error: "保存优选结果失败", _sTMRczLI: _GeVMwtrS._sTMRczLI }, 500);
    }
}

async function _kqbCzhcl(_MYqTjBQQ, _iRqWjQOz) {
    try {
        const _tQeAkzkt = _MYqTjBQQ._wOlchvnm._THtSeuPG;
        if (!_tQeAkzkt) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _iJYlgZbP = await _iRqWjQOz.DB.prepare("SELECT _TkYsDiBj FROM optimized_results WHERE _THtSeuPG = ?").bind(_tQeAkzkt).first();
        if (!_iJYlgZbP) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _TkYsDiBj = JSON.parse(_iJYlgZbP._TkYsDiBj);
        let _MOwlihMR = _TkYsDiBj._HFYCrqGN;

        const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);

        if (_ZZzxFnKC.customNodes && _ZZzxFnKC.customNodes._lcNlehfu && _ZZzxFnKC.customNodes.list) {
            const _qnzGanrT = _ZZzxFnKC.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _UdXCVytQ = _qnzGanrT.map(_oQhFmxOg => {
                let _xUeIQhuw = _oQhFmxOg;
                let _PHBtRDqv = undefined;
                let _MdKupjdk = null;

                if (_xUeIQhuw.includes('@')) {
                    const _VKPqgCNw = _xUeIQhuw.split('@');
                    _MdKupjdk = _VKPqgCNw.pop();
                    _xUeIQhuw = _VKPqgCNw.join('@');
                }

                if (_xUeIQhuw.includes('#')) {
                    const _VKPqgCNw = _xUeIQhuw.split('#');
                    const _tgBhiqTL = _VKPqgCNw.pop();
                    if (!isNaN(_tgBhiqTL) && _tgBhiqTL.trim() !== '') {
                        _PHBtRDqv = parseInt(_tgBhiqTL, 10);
                    }
                    _xUeIQhuw = _VKPqgCNw.join('#');
                }
                
                return {
                    _IlyHmPLV: _xUeIQhuw,
                    _PHBtRDqv: _PHBtRDqv,
                    _nKPLYbQh: _MdKupjdk || _xUeIQhuw,
                    _JyrxCJqB: '自定义'
                };
            });
            _MOwlihMR.unshift(..._UdXCVytQ);
        }
        
        const { itemLink } = _ZZzxFnKC;
        const _eHXJyExa = new URL(_MYqTjBQQ._zAaODIsh)._aYgbMerc;
        let _zBrzMjEc;

        if (_ZZzxFnKC.websocketStreamer && _ZZzxFnKC.websocketStreamer._lcNlehfu) {
            if (!itemLink || !itemLink._lcNlehfu || !itemLink._weLvodHw || itemLink._weLvodHw._jInLcehe === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _zBrzMjEc = _MOwlihMR.map((_MZfUqVFY, _nHKnvQVK) => {
                let _MdKupjdk;
                if (_MZfUqVFY._JyrxCJqB === '自定义') {
                     _MdKupjdk = `${_nHKnvQVK + 1} - ${_MZfUqVFY._nKPLYbQh}`;
                } else {
                    _MdKupjdk = `${_nHKnvQVK + 1} - ${_MZfUqVFY._nKPLYbQh || '未知'}`;
                    if (!_MZfUqVFY._JyrxCJqB || !_MZfUqVFY._JyrxCJqB.toLowerCase().includes('cloudflare')) {
                        _MdKupjdk += '(反代)';
                    }
                }
                const _jWWaqjtI = _mrTnRNHM.isIPv6(_MZfUqVFY._IlyHmPLV) ? `[${_MZfUqVFY._IlyHmPLV}]` : _MZfUqVFY._IlyHmPLV;
                const _PHBtRDqv = _MZfUqVFY._PHBtRDqv || 443;
                const _dcZEbXhF = itemLink._weLvodHw[0];
                const _kvvwMoAS = _dcZEbXhF._telLvYWN || '';
                const _telLvYWN = (_kvvwMoAS && _cIeynTEL(_kvvwMoAS)) ? _kvvwMoAS : crypto.randomUUID();
                const _DLiwXEbL = '/snippets?_IlyHmPLV=endpointAddress:_PHBtRDqv(443)&nat64=6to4';
                const _ZGArdwQx = _dcZEbXhF._ZGArdwQx || _eHXJyExa;

                const _wOlchvnm = new URLSearchParams({
                    security: 'tls',
                    _JqCvMdDD: 'ws',
                    _ZGArdwQx: _ZGArdwQx,
                    sni: _ZGArdwQx,
                    fp: 'random'
                });
                return `vless://${_telLvYWN}@${_jWWaqjtI}:${_PHBtRDqv}?${_wOlchvnm.toString()}&_DLiwXEbL=${encodeURIComponent(encodeURIComponent(_DLiwXEbL))}#${encodeURIComponent(_MdKupjdk)}`;
            });

        } else {
            if (!itemLink || !itemLink._lcNlehfu || !itemLink._weLvodHw || itemLink._weLvodHw._jInLcehe === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _dcZEbXhF = itemLink._weLvodHw[0];
            const { _ZGArdwQx, _telLvYWN, _DLiwXEbL } = _dcZEbXhF;
            _zBrzMjEc = _MOwlihMR.map((_MZfUqVFY, _nHKnvQVK) => {
                let _MdKupjdk;
                if (_MZfUqVFY._JyrxCJqB === '自定义') {
                     _MdKupjdk = `${_nHKnvQVK + 1} - ${_MZfUqVFY._nKPLYbQh}`;
                } else {
                    _MdKupjdk = `${_nHKnvQVK + 1} - ${_MZfUqVFY._nKPLYbQh || '未知'}`;
                    if (!_MZfUqVFY._JyrxCJqB || !_MZfUqVFY._JyrxCJqB.toLowerCase().includes('cloudflare')) {
                        _MdKupjdk += '(反代)';
                    }
                }
                const _jWWaqjtI = _mrTnRNHM.isIPv6(_MZfUqVFY._IlyHmPLV) ? `[${_MZfUqVFY._IlyHmPLV}]` : _MZfUqVFY._IlyHmPLV;
                const _PHBtRDqv = _MZfUqVFY._PHBtRDqv || 443;
                const _wOlchvnm = new URLSearchParams({
                    security: 'tls',
                    _JqCvMdDD: 'ws',
                    _ZGArdwQx: _ZGArdwQx || _eHXJyExa,
                    sni: _ZGArdwQx || _eHXJyExa,
                    fp: 'random'
                });
                return `vless://${_telLvYWN}@${_jWWaqjtI}:${_PHBtRDqv}?${_wOlchvnm.toString()}&_DLiwXEbL=${encodeURIComponent(encodeURIComponent(_DLiwXEbL || ''))}#${encodeURIComponent(_MdKupjdk)}`;
            });
        }
        
        const _ldeWaMeF = _zBrzMjEc.join('\n');
        const _IEWHtPyo = btoa(_ldeWaMeF);
        return new Response(_IEWHtPyo, {
            _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' }
        });

    } catch (_GeVMwtrS) {
        return new Response(`生成节点列表失败: ${_GeVMwtrS._sTMRczLI}`, { status: 500 });
    }
}

async function _qRkkuHRS(_MYqTjBQQ) {
    try {
        const { _YjXXxiyR, _JqCvMdDD } = await _MYqTjBQQ.json();
        if (!Array.isArray(_YjXXxiyR)) {
            return new Response('Invalid _YjXXxiyR list', { status: 400 });
        }
        const _lLEvtebA = _YjXXxiyR.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _zAaODIsh = `https://cloudflare-dns.com/dns-query?_MdKupjdk=${encodeURIComponent(domain.trim())}&_JqCvMdDD=${_JqCvMdDD || 'A'}`;
            return fetch(_zAaODIsh, { _paUAWFeo: { 'Accept': 'application/dns-json' } })
                .then(_MAgoOwST => _MAgoOwST.json())
                .then(_TkYsDiBj => (_TkYsDiBj.Answer ? _TkYsDiBj.Answer.map(a => a._TkYsDiBj) : []))
                .catch(() => []);
        });
        const _TSFArgvy = (await Promise.all(_lLEvtebA)).flat();
        const _YeGKvMkW = [...new Set(_TSFArgvy)];
        if (_YeGKvMkW._jInLcehe === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_YeGKvMkW.join('\n'), { _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._sTMRczLI}`, { status: 500 });
    }
}

async function _mZtBdril(_MYqTjBQQ, _iRqWjQOz) {
  try {
      const { _qlNZxhhW } = await _MYqTjBQQ.json();
      if (!Array.isArray(_qlNZxhhW)) {
          return _kKkOrYyg({ error: "Invalid input, expected an object with a '_qlNZxhhW' array." }, 400);
      }
      
      const _YFSamspk = new Set();
      
      const _hLULDdtk = _qlNZxhhW.map(_zAaODIsh =>
          _LFMKekJe(_zAaODIsh)
              .then(_BUoTWGoa => {
                  if (!_BUoTWGoa) return;
                  const _eZJaZLkg = _BUoTWGoa.split(/[\s,;|]+/);
                  for (const _KrLxfaWm of _eZJaZLkg) {
                      const _dooEDZaM = _KrLxfaWm.trim();
                      if (_dooEDZaM) {
                          _YFSamspk.add(_dooEDZaM);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_zAaODIsh}:`, err);
              })
      );
      await Promise.all(_hLULDdtk);
      return _kKkOrYyg({ _HFYCrqGN: Array.from(_YFSamspk) });
  } catch (_GeVMwtrS) {
      return _kKkOrYyg({ error: `Failed to process URLs: ${_GeVMwtrS._sTMRczLI}` }, 500);
  }
}

async function _YwMilwXL(_MYqTjBQQ, _iRqWjQOz) {
    const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
    if (!_ZZzxFnKC.api._lcNlehfu) {
        return new Response(_ZZzxFnKC.api._sTMRczLI || 'API is disabled.', { status: 503 });
    }
    try {
        const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_KPHYccvg);
        const { _MnpFDbXe: dbResults } = await _qQkHGXFd.all();
        const _JYKAXIkK = dbResults._jInLcehe > 0 ? dbResults[0]._FBQbAyCC : null;
        const _XqgqkNYA = _JYKAXIkK ? JSON.parse(_JYKAXIkK) : null;
        if (!_XqgqkNYA || !_XqgqkNYA._MnpFDbXe || _XqgqkNYA._MnpFDbXe._jInLcehe === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' },
            });
        }
        const _HFYCrqGN = _XqgqkNYA._MnpFDbXe.map(r => r._IlyHmPLV);
        return new Response(_HFYCrqGN.join('\n'), {
            _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' },
        });
    } catch (_GeVMwtrS) {
        console.error("API /_IlyHmPLV 处理错误:", _GeVMwtrS);
        return new Response(`API处理时出错: ${_GeVMwtrS._sTMRczLI}`, { status: 500 });
    }
}

function _QMOGsUiU(_iJYlgZbP, _nHKnvQVK, _ZZzxFnKC, _eHXJyExa) {
    const { itemLink } = _ZZzxFnKC;
    if (!itemLink || !itemLink._lcNlehfu) return null;
    const { template, _weLvodHw, selectionMode, _uxqOXBNs } = itemLink;
    if (!_weLvodHw || _weLvodHw._jInLcehe === 0) return null;

    let _UlmvHCQB;
    if (selectionMode === 'random') {
        _UlmvHCQB = _weLvodHw[_nHKnvQVK % _weLvodHw._jInLcehe];
    } else if (selectionMode === 'first') {
        _UlmvHCQB = _weLvodHw[0];
    } else {
        _UlmvHCQB = _weLvodHw.find(s => s._MdKupjdk === selectionMode) || _weLvodHw[0];
    }
    if (!_UlmvHCQB) return null;

    let _yddknrGu = template;
    const _doFDUFBx = _iJYlgZbP._PHBtRDqv || 443;
    const _AdfqTVSt = _mrTnRNHM.isIPv6(_iJYlgZbP._IlyHmPLV) ? `[${_iJYlgZbP._IlyHmPLV}]` : _iJYlgZbP._IlyHmPLV;
    let _MdKupjdk = `${_nHKnvQVK + 1} 、 ${_iJYlgZbP._nKPLYbQh || '未知'}`;
    if (!_iJYlgZbP._JyrxCJqB || !_iJYlgZbP._JyrxCJqB.toLowerCase().includes('cloudflare')) {
        _MdKupjdk += '(反代)';
    }
    let _ZGArdwQx = _UlmvHCQB._ZGArdwQx || _eHXJyExa;

    _yddknrGu = _yddknrGu.replace(/{_IlyHmPLV}/g, _AdfqTVSt)
               .replace(/{_PHBtRDqv}/g, _doFDUFBx)
               .replace(/{_MdKupjdk}/g, encodeURIComponent(_MdKupjdk))
               .replace(/{rank}/g, _nHKnvQVK + 1)
               .replace(/{_nKPLYbQh}/g, encodeURIComponent(_iJYlgZbP._nKPLYbQh || '未知'))
               .replace(/{_JyrxCJqB}/g, encodeURIComponent(_iJYlgZbP._JyrxCJqB || '未知'))
               .replace(/{_ZGArdwQx}/g, encodeURIComponent(_ZGArdwQx))
               .replace(/{_telLvYWN}/g, encodeURIComponent(_UlmvHCQB['_telLvYWN'] || ''))
               .replace(/{_DLiwXEbL}/g, encodeURIComponent(encodeURIComponent(_UlmvHCQB._DLiwXEbL || '')));

    if (_uxqOXBNs) {
        _uxqOXBNs.forEach(field => {
            const _WpclyBDl = new RegExp('{' + field._MdKupjdk + '}', 'g');
            _yddknrGu = _yddknrGu.replace(_WpclyBDl, encodeURIComponent(field._FBQbAyCC));
        });
    }
    return _yddknrGu;
}

async function _rdpJuzCA(_MYqTjBQQ, _iRqWjQOz) {
    const _ZZzxFnKC = await _pgGehupk(_iRqWjQOz);
    if (!_ZZzxFnKC.itemLink._lcNlehfu) {
        return new Response("Item _yddknrGu feature is disabled.", { status: 503, _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' } });
    }

    try {
        const _qQkHGXFd = _iRqWjQOz.DB.prepare("SELECT _FBQbAyCC FROM kv_data WHERE _YDUZLBvr = ?").bind(_KPHYccvg);
        const { _MnpFDbXe: dbResults } = await _qQkHGXFd.all();
        const _JYKAXIkK = dbResults._jInLcehe > 0 ? dbResults[0]._FBQbAyCC : null;
        const _XqgqkNYA = _JYKAXIkK ? JSON.parse(_JYKAXIkK) : null;
        
        if (!_XqgqkNYA || !_XqgqkNYA._MnpFDbXe || _XqgqkNYA._MnpFDbXe._jInLcehe === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' },
            });
        }
        
        const _eHXJyExa = new URL(_MYqTjBQQ._zAaODIsh)._aYgbMerc;

        const _IZrvglIh = _XqgqkNYA._MnpFDbXe.map((_iJYlgZbP, _nHKnvQVK) => {
            return _QMOGsUiU(_iJYlgZbP, _nHKnvQVK, _ZZzxFnKC, _eHXJyExa);
        }).filter(Boolean);

        if (_IZrvglIh._jInLcehe === 0) {
            return new Response("Could not generate any _MZfUqVFY links from the available IPs.", {
                status: 500,
                _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' },
            });
        }

        return new Response(_IZrvglIh.join('\n'), {
            _paUAWFeo: { 'Content-Type': '_BUoTWGoa/plain; _IIzcGMEL=utf-8' },
        });

    } catch (_GeVMwtrS) {
        console.error("API /api/endpoints error:", _GeVMwtrS);
        return new Response(`Error processing API _MYqTjBQQ: ${_GeVMwtrS._sTMRczLI}`, { status: 500 });
    }
}

async function _UZONOrkh(_MYqTjBQQ, _iRqWjQOz, _PJxNWIzB) {
    const _pqjiGegV = _MYqTjBQQ._paUAWFeo.get('CF-Connecting-IP') || "未知IP";
    const [
        _IRUVnWjI,
        _nCrROmlT,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _fTUmJpIM(_HBoGSXay, _HXyeKdWe, []),
        _fTUmJpIM(_VpEZptzr, _HXyeKdWe, []),
        _fTUmJpIM(_VTYRGcDi, _QPSWrJAQ, []),
        _fTUmJpIM(_eIdtJgni, _mPoJjWcP, { "N/A": "未知" })
    ]);
    _VtClJzTQ = fetchedCountryMap;
    let _aHJFFTOE = false;
    let _MveOYonV;
    try {
        const _XpDwJwbK = await _IWpRVyeQ(_iRqWjQOz);
        _aHJFFTOE = !!_XpDwJwbK;
        _MveOYonV = await _pgGehupk(_iRqWjQOz);
    } catch (_GeVMwtrS) {
        if (_GeVMwtrS._sTMRczLI && _GeVMwtrS._sTMRczLI.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _PjQXUkAx = "CREATE TABLE IF NOT EXISTS kv_data (_YDUZLBvr TEXT PRIMARY KEY, _FBQbAyCC TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_THtSeuPG TEXT PRIMARY KEY, _TkYsDiBj TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _iRqWjQOz.DB.exec(_PjQXUkAx);
                console.log("数据表创建成功。");
                _aHJFFTOE = false;
                _MveOYonV = _aeMMehIR();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._sTMRczLI}`, {
                    status: 500,
                    _paUAWFeo: { 'Content-Type': '_BUoTWGoa/html;_IIzcGMEL=UTF-8' }
                });
            }
        } else {
             let _CBFzdFjE = _VeajSVzu(_GeVMwtrS._sTMRczLI);
             return new Response(_CBFzdFjE, { _paUAWFeo: { 'Content-Type': '_BUoTWGoa/html;_IIzcGMEL=UTF-8' } });
        }
    }
    if (_MveOYonV.telegram.bot_token && _MveOYonV.telegram.chat_id) {
        const _azSgHiXU = _MYqTjBQQ.cf?._azSgHiXU || "未知";
        const _FueQIFHW = _MYqTjBQQ.cf?._FueQIFHW || "";
        let _PpuLuwsI = _VtClJzTQ[_azSgHiXU] || _azSgHiXU;
        if (_FueQIFHW && _FueQIFHW !== "未知城市" && _FueQIFHW !== _azSgHiXU) _PpuLuwsI = `${_PpuLuwsI} ${_VtClJzTQ[_FueQIFHW] || _FueQIFHW}`;
        const _UGwguXcl = _IZIiWGdc();
        const _OXUSmwIk = _MYqTjBQQ._zAaODIsh;
        const _aHDcRyVI = `访客: ${_pqjiGegV}\n位置: ${_PpuLuwsI.trim()}\n时间: ${_UGwguXcl}\n来自:${_OXUSmwIk}`;
        const _WbKPsGwS = `https://api.telegram.org/bot${_MveOYonV.telegram.bot_token}/sendMessage?chat_id=${_MveOYonV.telegram.chat_id}&_BUoTWGoa=${encodeURIComponent(_aHDcRyVI)}`;
        _PJxNWIzB.waitUntil(fetch(_WbKPsGwS).catch(_GeVMwtrS => console.error("Telegram通知失败:", _GeVMwtrS)));
    }
    let _lYcAMcDS = _lExrUmNI();
    const _DBgkphiD = {
        _ZZzxFnKC: _MveOYonV,
        status: {
            _aHJFFTOE: _aHJFFTOE,
        }
    };
    _lYcAMcDS = _lYcAMcDS.replace('__PAGE_DATA_JSON__', JSON.stringify(_DBgkphiD));
    _lYcAMcDS = _lYcAMcDS.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_IRUVnWjI));
    _lYcAMcDS = _lYcAMcDS.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_nCrROmlT));
    _lYcAMcDS = _lYcAMcDS.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _lYcAMcDS = _lYcAMcDS.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_VtClJzTQ));
    return new Response(_lYcAMcDS, {
        _paUAWFeo: { 'Content-Type': '_BUoTWGoa/html;_IIzcGMEL=UTF-8' },
    });
}

function _kKkOrYyg(_kXbnAASj, status = 200, _paUAWFeo = {}) {
    return new Response(JSON.stringify(_kXbnAASj), {
        status,
        _paUAWFeo: { 'Content-Type': 'application/json;_IIzcGMEL=UTF-8', ..._paUAWFeo }
    });
}

function _IZIiWGdc(date = new Date()) {
    return new Intl.DateTimeFormat('zh-CN', {
        timeZone: 'Asia/Shanghai',
        year: 'numeric', month: '2-digit', day: '2-digit',
        hour: '2-digit', minute: '2-digit', second: '2-digit',
        hour12: false
    }).format(date);
}

function _RiVaHrEr(_IlyHmPLV) {
    if (!_IlyHmPLV || typeof _IlyHmPLV !== 'string') return "无效IP";
    if(_mrTnRNHM.isIPv4(_IlyHmPLV)){
        const _VKPqgCNw = _IlyHmPLV.split('.');
        if (_VKPqgCNw._jInLcehe === 4) return `${_VKPqgCNw[0]}.*.*.${_VKPqgCNw[3]}`;
    }
    if(_mrTnRNHM.isIPv6(_IlyHmPLV)){
        const _VKPqgCNw = _IlyHmPLV.split(':');
        if (_VKPqgCNw._jInLcehe > 2) return `${_VKPqgCNw[0]}:...:${_VKPqgCNw[_VKPqgCNw._jInLcehe - 1]}`;
    }
    return _IlyHmPLV;
}

function _VeajSVzu(_DkzhshCX) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _IIzcGMEL="UTF-8"><title>需要设置</title>
    <_hhKgaiSg>
        _kXbnAASj { font-family: sans-serif; background: #1a1a1a; _fCfaNRnn: #e0e0e0; display: flex; justify-_KRZgPwRW: center; align-items: center; height: 100vh; margin: 0; }
        ._AoTZyrSl { max-_wpYyJCZL: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _fCfaNRnn: #00a0ff; border-bottom: 1px solid #40444c; padding-bottom: 0.5rem; }
        p { line-height: 1.6; }
        code { background: #1a1a1a; padding: 0.2em 0.4em; border-radius: 4px; font-family: monospace; white-space: pre-wrap; word-break: break-all; }
        .error { _fCfaNRnn: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_loCjFtRT: 1rem; }
    </_hhKgaiSg>
    </head><_kXbnAASj>
    <div class="_AoTZyrSl">
        <h1>部署指南</h1>
        <p>系统检测到 D1 数据库绑定存在问题。请确保您已完成以下步骤:</p>
        <ol>
            <li>进入 Cloudflare Dashbord -> Workers & Pages -> D1。</li>
            <li>创建一个新的D1数据库 (如果还没有)。</li>
            <li>将此数据库绑定到您的Worker:
                <ul>
                    <li>进入Worker设置 -> 变量 -> D1数据库绑定。</li>
                    <li>变量名必须填写 <code>DB</code>。</li>
                    <li>选择您刚创建的数据库。</li>
                    <li>点击“保存并部署”。</li>
                </ul>
            </li>
        </ol>
        <p>完成以上步骤后,请刷新本页面。系统会自动为您创建所需的数据表。</p>
        ${_DkzhshCX ? `<div class="error"><strong>当前错误信息:</strong> ${_DkzhshCX.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_kXbnAASj></html>`;
}

function _lExrUmNI() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _IIzcGMEL="UTF-8"> <meta _MdKupjdk="viewport" _KRZgPwRW="_wpYyJCZL=device-_wpYyJCZL, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_yddknrGu href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/qrcode-generator/qrcode.js"></script>
  <_hhKgaiSg>
  :root { --primary-_fCfaNRnn: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_fCfaNRnn: #8c939d; --light-bg: #1A1C20; --_KRZgPwRW-bg: #25282E; --border-_fCfaNRnn: #40444C; --_BUoTWGoa-_fCfaNRnn: #E0E0E0; --_BUoTWGoa-light: #B0B0B0; --success-_fCfaNRnn: #30A46C; --danger-_fCfaNRnn: #DA3633; --warning-_fCfaNRnn: #DBAB0A; --border-radius-md: 8px; --border-radius-sm: 6px; --font-family-sans: 'Inter', 'Noto Sans SC', sans-serif; --font-family-mono: 'Roboto Mono', monospace; }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { font-size: 16px; }
  _kXbnAASj { font-family: var(--font-family-sans); background-_fCfaNRnn: var(--light-bg); _fCfaNRnn: var(--_BUoTWGoa-_fCfaNRnn); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_fCfaNRnn 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_ujvNbSjS { position: fixed; _loCjFtRT: 0; _PUeAHFQW: 0; _wpYyJCZL: 100%; height: 100%; z-_nHKnvQVK: -1; display: none; }
  ._JhTvbOET-_AoTZyrSl { max-_wpYyJCZL: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_nHKnvQVK: 1; }
  #_HjSYrHqc { position: fixed; _loCjFtRT: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_nHKnvQVK: 10; }
  #marquee-_AoTZyrSl { overflow: hidden; white-space: nowrap; background-_fCfaNRnn: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _fCfaNRnn: var(--primary-_fCfaNRnn); padding: 0.5rem 0; margin-_loCjFtRT: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_BUoTWGoa { display: inline-block; padding-_PUeAHFQW: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _VKCxkXGC { _BUoTWGoa-align: center; margin-_loCjFtRT: 1rem; margin-bottom: 2rem; }
  _VKCxkXGC h1 { white-space: pre-wrap; font-size: 2.25em; _fCfaNRnn: var(--primary-_fCfaNRnn); font-weight: 700; _BUoTWGoa-shadow: 0 0 10px rgba(var(--primary-_fCfaNRnn-rgb), 0.3); }
  .card { background-_fCfaNRnn: rgba(37, 40, 46, 0.85); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); border-radius: var(--border-radius-md); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25); padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid var(--border-_fCfaNRnn); }
  .progress-section #_EgVJVHqR { _wpYyJCZL: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_fCfaNRnn: var(--border-_fCfaNRnn); overflow: hidden; }
  .progress-section #_EgVJVHqR::-webkit-progress-_FBQbAyCC { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _BUoTWGoa-align: center; margin-_loCjFtRT: 0.75em; font-size: 0.95em; _fCfaNRnn: var(--_BUoTWGoa-light); min-height: 1.5em; }
  .section-_VKCxkXGC { display: flex; flex-wrap: wrap; justify-_KRZgPwRW: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_fCfaNRnn); gap: 1rem; }
  .section-_VKCxkXGC h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _fCfaNRnn: var(--secondary-_fCfaNRnn); _BUoTWGoa-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _wpYyJCZL: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _wpYyJCZL: 100%; border-collapse: collapse; margin-_loCjFtRT: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_fCfaNRnn); padding: 0.8em; _BUoTWGoa-align: _PUeAHFQW; vertical-align: middle; white-space: nowrap; }
  th { background-_fCfaNRnn: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_fCfaNRnn: #30333a; }
  td._IlyHmPLV-_xUeIQhuw { font-weight: 500; font-family: var(--font-family-mono); _fCfaNRnn: var(--primary-_fCfaNRnn); }
  td.ping-_FBQbAyCC { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _BUoTWGoa-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_KRZgPwRW: center; font-weight: 500; _BUoTWGoa-align: center; cursor: pointer; user-_rlakWvjo: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _fCfaNRnn: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_PUeAHFQW: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _fCfaNRnn: var(--primary-_fCfaNRnn); border: 1px solid var(--primary-_fCfaNRnn); }
  .btn-outline:hover { background-_fCfaNRnn: var(--primary-_fCfaNRnn); _fCfaNRnn: var(--_KRZgPwRW-bg); }
  ._JhTvbOET-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._JhTvbOET-download-buttons .btn { _wpYyJCZL: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _loCjFtRT: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _fCfaNRnn: #fff; font-size: 0.95em; z-_nHKnvQVK: 10002; box-shadow: 0 6px 15px rgba(0, 0, 0, 0.35); opacity: 0; transform: translateY(-20px); transition: all 0.3s ease; pointer-events: none; }
  .tooltip-notification.show { opacity: 1; transform: translateY(0); }
  #_iTdHHPeK, #_YRljeWHO, #_UKpIVzjZ, #_iFHCkfiN, #_OhpfhRFM { display: none; position: fixed; z-_nHKnvQVK: 10000; _PUeAHFQW: 0; _loCjFtRT: 0; _wpYyJCZL: 100%; height: 100%; background-_fCfaNRnn: rgba(0,0,0,0.6); justify-_KRZgPwRW: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_KRZgPwRW, ._JhTvbOET-modal-_KRZgPwRW { background-_fCfaNRnn: var(--_KRZgPwRW-bg); padding: 2rem; border: 1px solid var(--border-_fCfaNRnn); border-radius: var(--border-radius-md); _wpYyJCZL: 95%; max-_wpYyJCZL: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_iFHCkfiN .modal-_KRZgPwRW { max-_wpYyJCZL: 500px; }
  .modal-_KRZgPwRW h3, ._JhTvbOET-modal-_VKCxkXGC h3 { margin-_loCjFtRT: 0; margin-bottom: 1.5rem; _fCfaNRnn: var(--primary-_fCfaNRnn); _BUoTWGoa-align: center; }
  .modal-buttons { display: flex; justify-_KRZgPwRW: flex-end; gap: 1rem; margin-_loCjFtRT: 2rem; border-_loCjFtRT: 1px solid var(--border-_fCfaNRnn); padding-_loCjFtRT: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_fCfaNRnn), rgba(0,0,0,0)); margin: 2rem 0; }
  ._JhTvbOET-modal-_VKCxkXGC { display: flex; justify-_KRZgPwRW: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_fCfaNRnn); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _fCfaNRnn: var(--_BUoTWGoa-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._JhTvbOET-list-_MZfUqVFY { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_fCfaNRnn); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._JhTvbOET-_MdKupjdk { font-size: 1.1em; font-weight: 600; }
  ._JhTvbOET-links a { display: block; _fCfaNRnn: var(--primary-_fCfaNRnn); _BUoTWGoa-decoration: none; margin-_loCjFtRT: 0.5rem; word-break: break-all; }
  ._JhTvbOET-links a:hover { _BUoTWGoa-decoration: underline; }
  ._JhTvbOET-links span { _fCfaNRnn: var(--_BUoTWGoa-light); }
  #visitorPasswordPrompt { _BUoTWGoa-align: center; }
  #visitorPasswordPrompt h3 { _fCfaNRnn: var(--primary-_fCfaNRnn); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _fCfaNRnn: var(--_BUoTWGoa-light); margin-bottom: 1.5rem; }
  ._XpDwJwbK-input-group { display: flex; gap: 10px; max-_wpYyJCZL: 400px; margin: 0 auto; }
  ._XpDwJwbK-input-group input { flex-grow: 1; _BUoTWGoa-align: center; }
  ._XpDwJwbK-input-group .btn { margin-_PUeAHFQW: 0; }
  ._MnpFDbXe-actions-_AoTZyrSl { _BUoTWGoa-align: center; margin-bottom: 1.5rem; }
  ._MnpFDbXe-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._MnpFDbXe-api-buttons .btn { margin: 0; _wpYyJCZL: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_KRZgPwRW 1fr; gap: 1.2rem 1rem; align-items: center; }
  .form-grid-label { justify-self: end; display: flex; align-items: center; gap: 8px; }
  .form-grid-control { display: flex; align-items: center; gap: 10px; }
  .form-grid-control-full { grid-column: 1 / -1; }
  .form-grid-control input, .form-grid-control _rlakWvjo, .form-grid-control textarea { _wpYyJCZL: 100%; background-_fCfaNRnn: var(--light-bg); border: 1px solid var(--border-_fCfaNRnn); border-radius: var(--border-radius-sm); _fCfaNRnn: var(--_BUoTWGoa-_fCfaNRnn); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_fCfaNRnn 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _rlakWvjo:focus, .form-grid-control textarea:focus { border-_fCfaNRnn: var(--primary-_fCfaNRnn); box-shadow: 0 0 0 2px rgba(var(--primary-_fCfaNRnn-rgb), 0.2); outline: none; }
  .form-grid-control input[_JqCvMdDD="_fCfaNRnn"] { min-_wpYyJCZL: auto; padding: 2px; _wpYyJCZL: 2.5em; height: 2.5em; }
  .form-grid-control input[_JqCvMdDD="checkbox"] { _wpYyJCZL: auto; flex-shrink: 0; height: 1.2em; _wpYyJCZL: 1.2em; }
  .form-grid-control ._uZpcmLws-input { _wpYyJCZL: 80px; _BUoTWGoa-align: right; }
  .tooltip-_qEjPEEjo { display: inline-flex; _wpYyJCZL: 16px; height: 16px; align-items: center; justify-_KRZgPwRW: center; background-_fCfaNRnn: var(--secondary-_fCfaNRnn); _fCfaNRnn: var(--_KRZgPwRW-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_rlakWvjo: none; }
  #tooltip-popup { position: fixed; background-_fCfaNRnn: #383c4a; _fCfaNRnn: #fff; padding: 10px 15px; border-radius: 6px; z-_nHKnvQVK: 10001; font-size: 0.85em; max-_wpYyJCZL: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_fCfaNRnn); pointer-events: none; }
  #custom-fields-_AoTZyrSl .form-grid-control { gap: 5px; } #custom-fields-_AoTZyrSl .form-grid-control input { flex: 1; }
  .parameter-_arelwzqZ-_TPKueeVT { border: 1px solid var(--border-_fCfaNRnn); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_arelwzqZ-_VKCxkXGC { display: flex; justify-_KRZgPwRW: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_arelwzqZ-_VKCxkXGC input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_loCjFtRT: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._BUoTWGoa-_fCfaNRnn-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _wpYyJCZL: 100%; }
  ._BUoTWGoa-_fCfaNRnn-grid input[_JqCvMdDD="_fCfaNRnn"] { grid-column: 1 / 2; }
  ._BUoTWGoa-_fCfaNRnn-grid input[_JqCvMdDD="_BUoTWGoa"], ._BUoTWGoa-_fCfaNRnn-grid textarea { grid-column: 2 / 3; }
  #_iFHCkfiN .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_iFHCkfiN .btn-group { display: flex; }
  #_iFHCkfiN .sub-btn { flex-grow: 1; margin: 0; }
  #_iFHCkfiN ._eldjLcsu-btn { flex-shrink: 0; margin-_PUeAHFQW: -1px; border-_loCjFtRT-_PUeAHFQW-radius: 0; border-bottom-_PUeAHFQW-radius: 0; }
  #_OhpfhRFM .modal-_KRZgPwRW { max-_wpYyJCZL: 300px; background: white; padding: 1rem; _BUoTWGoa-align: center; }
  #qrCodeImg { max-_wpYyJCZL: 100%; }
  @media (max-_wpYyJCZL: 768px) {
    html { font-size: 15px; } ._JhTvbOET-_AoTZyrSl { padding: 0 0.8rem; } _VKCxkXGC { margin-_loCjFtRT: 2.5rem; margin-bottom: 1.5rem; } #_HjSYrHqc { _loCjFtRT: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_hhKgaiSg>
  <_hhKgaiSg _THtSeuPG="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_KRZgPwRW-bg: #FFFFFF; --border-_fCfaNRnn: #DCDFE6; --_BUoTWGoa-_fCfaNRnn: #303133; --_BUoTWGoa-light: #606266; }
  .theme-light .card { background-_fCfaNRnn: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_fCfaNRnn: #F5F7FA; }
  .theme-light tbody tr:hover { background-_fCfaNRnn: #ECF5FF; }
  .theme-matrix { --primary-_fCfaNRnn: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_KRZgPwRW-bg: #0D0208; --border-_fCfaNRnn: #00FF41; --_BUoTWGoa-_fCfaNRnn: #00FF41; --_BUoTWGoa-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_fCfaNRnn: rgba(0, 20, 0, 0.7); _BUoTWGoa-shadow: 0 0 5px var(--primary-_fCfaNRnn); backdrop-filter: none; }
  .theme-matrix th { background-_fCfaNRnn: #000; }
  .theme-matrix tbody tr:hover { background-_fCfaNRnn: #010; }
  .theme-matrix .btn { _BUoTWGoa-shadow: none; _fCfaNRnn: #000; }
  .theme-matrix .btn-outline { background-_fCfaNRnn: transparent; }
  .theme-modern-glass { --primary-_fCfaNRnn: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_KRZgPwRW-bg: rgba(30, 30, 40, 0.6); --border-_fCfaNRnn: rgba(255, 255, 255, 0.2); --_BUoTWGoa-_fCfaNRnn: #F0F0F0; --_BUoTWGoa-light: #A0A0B0; --border-radius-md: 12px; }
  _kXbnAASj.theme-modern-glass { background: linear-gradient(-45deg, #000428, #004e92, #1CB5E0, #23D5AB); background-size: 400% 400%; animation: gradientBG 15s ease infinite; }
  @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .theme-particles-glass { --primary-_fCfaNRnn: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_KRZgPwRW-bg: rgba(30, 30, 40, 0.6); --border-_fCfaNRnn: rgba(255, 255, 255, 0.2); --_BUoTWGoa-_fCfaNRnn: #F0F0F0; --_BUoTWGoa-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_fCfaNRnn: var(--_KRZgPwRW-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_fCfaNRnn); }
  .glassy-components .btn { background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid rgba(255, 255, 255, 0.2); border-bottom-_fCfaNRnn: rgba(0,0,0,0.3); border-right-_fCfaNRnn: rgba(0,0,0,0.3); box-shadow: 0 4px 15px rgba(0,0,0,0.2), inset 0 1px 1px rgba(255,255,255,0.1); _BUoTWGoa-shadow: 0 1px 2px rgba(0,0,0,0.2); _fCfaNRnn: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_fCfaNRnn: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _BUoTWGoa-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_fCfaNRnn); border-_fCfaNRnn: var(--primary-_fCfaNRnn); _fCfaNRnn: #fff; }
  .glassy-components _VKCxkXGC h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _BUoTWGoa; -webkit-_BUoTWGoa-fill-_fCfaNRnn: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _fCfaNRnn: transparent; }
  .theme-aurora-glass { --primary-_fCfaNRnn: #38bdf8; --light-bg: #0c0a09; --_KRZgPwRW-bg: rgba(23, 23, 23, 0.5); --border-_fCfaNRnn: rgba(255, 255, 255, 0.15); --_BUoTWGoa-_fCfaNRnn: #f2f2f2; --_BUoTWGoa-light: #a3a3a3; }
  _kXbnAASj.theme-aurora-glass::before { _KRZgPwRW: ''; position: fixed; _loCjFtRT: 0; _PUeAHFQW: 0; _wpYyJCZL: 100%; height: 100%; z-_nHKnvQVK: -2; background: radial-gradient(at 27% 37%, hsla(215, 98%, 61%, 0.4) 0px, transparent 50%), radial-gradient(at 97% 21%, hsla(125, 98%, 72%, 0.2) 0px, transparent 50%), radial-gradient(at 52% 99%, hsla(355, 98%, 76%, 0.3) 0px, transparent 50%), radial-gradient(at 10% 29%, hsla(256, 96%, 68%, 0.3) 0px, transparent 50%), radial-gradient(at 97% 96%, hsla(38, 60%, 74%, 0.2) 0px, transparent 50%), radial-gradient(at 33% 50%, hsla(222, 67%, 73%, 0.3) 0px, transparent 50%), radial-gradient(at 79% 53%, hsla(343, 68%, 73%, 0.2) 0px, transparent 50%); animation: auroraBG 20s ease-in-out infinite alternate; }
  @keyframes auroraBG { from { transform: scale(1); } to { transform: scale(1.5); } }
  .theme-cyberpunk-glass { --primary-_fCfaNRnn: #08fdd8; --light-bg: #010409; --_KRZgPwRW-bg: rgba(22, 27, 34, 0.6); --border-_fCfaNRnn: rgba(139, 148, 158, 0.3); --_BUoTWGoa-_fCfaNRnn: #e6edf3; --_BUoTWGoa-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_fCfaNRnn), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_fCfaNRnn-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_fCfaNRnn-rgb), 0.5); }
  .theme-marble-light { --primary-_fCfaNRnn: #bfa37c; --light-bg: #f7f5f2; --_KRZgPwRW-bg: #ffffff; --border-_fCfaNRnn: #e0dcd5; --_BUoTWGoa-_fCfaNRnn: #3d3a36; --_BUoTWGoa-light: #6b6661; }
  _kXbnAASj.theme-marble-light { background-image: _zAaODIsh('_TkYsDiBj:image/svg+xml,%3Csvg _wpYyJCZL="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23dcd6ca" fill-opacity="0.2"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'); }
  .theme-marble-light .card { background-_fCfaNRnn: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_hhKgaiSg>
  </head><_kXbnAASj _THtSeuPG="pageBody">
  <_ujvNbSjS _THtSeuPG="background-_ujvNbSjS"></_ujvNbSjS>
  <div _THtSeuPG="_iTdHHPeK">
      <div class="modal-_KRZgPwRW">
          <h3>首次使用 - 请设置管理员密码</h3>
          <p>这是您第一次访问本页面,为了保护您的设置,请创建一个管理员密码。</p>
          <div class="form-grid"><div class="form-grid-label"><label for="initialPassword">新密码 (至少6位)</label></div><div class="form-grid-control"><input _JqCvMdDD="_XpDwJwbK" _THtSeuPG="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _JqCvMdDD="_XpDwJwbK" _THtSeuPG="confirmPassword"></div></div>
          <div class="modal-buttons"><button _THtSeuPG="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_JhTvbOET-_AoTZyrSl">
    <button _THtSeuPG="_HjSYrHqc" class="btn btn-outline"></button>
    <div _THtSeuPG="marquee-_AoTZyrSl"><div _THtSeuPG="marquee-_BUoTWGoa"></div></div>
    <_VKCxkXGC><h1 _THtSeuPG="pageTitle"></h1></_VKCxkXGC>
    <div class="card" _THtSeuPG="visitorPasswordPrompt" _hhKgaiSg="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_XpDwJwbK-input-group">
            <input _JqCvMdDD="_XpDwJwbK" _THtSeuPG="visitorPasswordEntry" _WpclyBDl="访客密码">
            <button _THtSeuPG="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _THtSeuPG="_OTqHyAnh" _hhKgaiSg="display: block;">
        <div class="card progress-section">
            <div _THtSeuPG="progressDisplay">
                <progress _THtSeuPG="_EgVJVHqR" _FBQbAyCC="0" max="100"></progress>
                <div _THtSeuPG="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _JhTvbOET-download-section">
          <div class="section-_VKCxkXGC"><h2 _THtSeuPG="appDownloadTitleEl"></h2></div>
          <div class="_JhTvbOET-download-buttons">
            <button class="btn" _TkYsDiBj-_TtFhsiiO="android">安卓客户端</button>
            <button class="btn" _TkYsDiBj-_TtFhsiiO="ios">苹果客户端</button>
            <button class="btn" _TkYsDiBj-_TtFhsiiO="windows">Windows客户端</button>
            <button class="btn" _TkYsDiBj-_TtFhsiiO="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _MnpFDbXe-section" _THtSeuPG="_vusgtfiK" _hhKgaiSg="display:none;">
          <div class="section-_VKCxkXGC">
            <h2 _THtSeuPG="liveTitleEl"></h2>
            <div class="generator-info" _THtSeuPG="liveGeneratorInfo"></div>
          </div>
          <div _THtSeuPG="_enjmIPfK" class="_MnpFDbXe-actions-_AoTZyrSl" _hhKgaiSg="display: none;">
             <div class="_MnpFDbXe-api-buttons">
                <button _THtSeuPG="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _THtSeuPG="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _THtSeuPG="resultsTable">
              <thead><tr><th _THtSeuPG="tableHeader1El"></th><th _THtSeuPG="tableHeader2El"></th><th _THtSeuPG="tableHeader3El"></th><th _THtSeuPG="tableHeader4El"></th><th _THtSeuPG="tableHeader5El"></th><th _THtSeuPG="tableHeader6El"></th><th _THtSeuPG="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _THtSeuPG="_ZbTbZeLV" _hhKgaiSg="display:none;">
          <div class="section-_VKCxkXGC"><h2 _THtSeuPG="cachedTitleEl"></h2><div class="generator-info" _THtSeuPG="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _THtSeuPG="cachedResultsTable">
              <thead><tr><th _THtSeuPG="cachedTableHeader1El"></th><th _THtSeuPG="cachedTableHeader2El"></th><th _THtSeuPG="cachedTableHeader3El"></th><th _THtSeuPG="cachedTableHeader4El"></th><th _THtSeuPG="cachedTableHeader5El"></th><th _THtSeuPG="cachedTableHeader6El"></th><th _THtSeuPG="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _THtSeuPG="notificationTooltip" class="tooltip-notification"></div>
  <div _THtSeuPG="_YRljeWHO">
    <div class="modal-_KRZgPwRW">
      <h3>修改参数</h3>
      <div _hhKgaiSg="display: flex; border-bottom: 1px solid var(--border-_fCfaNRnn); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_vqvfbiiz(event, 'general-_jnNCmOCT')">通用设置</button>
          <button class="tab-button" onclick="_vqvfbiiz(event, '_yddknrGu-_jnNCmOCT')">链接设置</button>
          <button class="tab-button" onclick="_vqvfbiiz(event, 'fine-grained-_jnNCmOCT')">IP源设置</button>
          <button class="tab-button" onclick="_vqvfbiiz(event, 'advanced-_jnNCmOCT')">高级设置</button>
      </div>
      <div _THtSeuPG="general-_jnNCmOCT" class="tab-_KRZgPwRW" _hhKgaiSg="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_rlakWvjo _THtSeuPG="themeSelect">
                    <_jkjDDRjY _FBQbAyCC="theme-aurora-glass">极光-玻璃质感</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-particles-glass">粒子-玻璃质感</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-modern-glass">现代-玻璃质感</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-cyberpunk-glass">赛博朋克-玻璃质感</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-dark-particles">暗色-粒子背景</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-dark-bing">暗色-必应壁纸</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-light">亮色-简约</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-light-bing">亮色-必应壁纸</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-marble-light">简约大理石-亮色</_jkjDDRjY>
                    <_jkjDDRjY _FBQbAyCC="theme-matrix">矩阵-代码雨</_jkjDDRjY>
                </_rlakWvjo>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="primaryColorInput">
                <span _hhKgaiSg="_wpYyJCZL: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_title"><textarea _THtSeuPG="textInput_title" _LtfmDJIV="1" _WpclyBDl="页面主标题"></textarea></div>
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_loginButton"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="textInput_loginButton" _WpclyBDl="登录按钮文本"></div>
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_appDownloadTitle"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="textInput_appDownloadTitle" _WpclyBDl="APP下载标题"></div>
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_liveTitle"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="textInput_liveTitle" _WpclyBDl="本次结果标题"></div>
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_cachedTitle"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="textInput_cachedTitle" _WpclyBDl="上次结果标题"></div>
                <div class="_BUoTWGoa-_fCfaNRnn-grid"><input _JqCvMdDD="_fCfaNRnn" _THtSeuPG="colorInput_tableHeader"><input _JqCvMdDD="_BUoTWGoa" _FBQbAyCC="表格头部文本颜色" readonly _hhKgaiSg="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label>公告栏设置</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _THtSeuPG="announcementText" _WpclyBDl="在此输入公告内容" _LtfmDJIV="3"></textarea>
                 <div _hhKgaiSg="display: flex; justify-_KRZgPwRW: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _hhKgaiSg="display: flex; align-items: center; gap: 5px;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableMarquee"> 顶部走马灯</label>
                    <label _hhKgaiSg="display: flex; align-items: center; gap: 5px;"><input _JqCvMdDD="checkbox" _THtSeuPG="enablePopup"> 右上角弹窗</label>
                    <div _THtSeuPG="popupDurationContainer" _hhKgaiSg="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _JqCvMdDD="number" _THtSeuPG="popupDuration" _hhKgaiSg="_wpYyJCZL: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _THtSeuPG="_yddknrGu-_jnNCmOCT" class="tab-_KRZgPwRW">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="converterServiceUrlInput" _WpclyBDl="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _JqCvMdDD="number" _THtSeuPG="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _THtSeuPG="subscriptionIdCharset" _LtfmDJIV="3"></textarea></div>
          <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
          <div class="form-grid-label"><label for="enableItemLinkCheckbox">启用"复制节点链接"按钮</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableItemLinkCheckbox"></div>
        </div>
        <div _THtSeuPG="itemLinkConfigGroup" _hhKgaiSg="display:none; margin-_loCjFtRT: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="定义分享链接格式。可用占位符: {_IlyHmPLV}, {_PHBtRDqv}, {_MdKupjdk}, {rank}, {_nKPLYbQh}, {_JyrxCJqB}, {_ZGArdwQx}, {_telLvYWN}, {_DLiwXEbL}。">?</span></div>
              <div class="form-grid-control"><textarea _THtSeuPG="itemLinkTemplateInput" _LtfmDJIV="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_rlakWvjo _THtSeuPG="parameterSelectionMode"></_rlakWvjo></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _THtSeuPG="parameter-sets-_AoTZyrSl"></div><button _JqCvMdDD="button" _THtSeuPG="add-parameter-_arelwzqZ-btn" class="btn btn-outline" _hhKgaiSg="margin-_loCjFtRT: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _THtSeuPG="custom-fields-_AoTZyrSl" _hhKgaiSg="_wpYyJCZL: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><button _JqCvMdDD="button" _THtSeuPG="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _THtSeuPG="fine-grained-_jnNCmOCT" class="tab-_KRZgPwRW">
          <div class="form-grid-label" _hhKgaiSg="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _hhKgaiSg="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_KRZgPwRW: flex-start;">
              <label><input _JqCvMdDD="checkbox" _THtSeuPG="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _JqCvMdDD="checkbox" _THtSeuPG="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _THtSeuPG="fine-grained-sources-_AoTZyrSl"></div><button _JqCvMdDD="button" _THtSeuPG="add-fine-grained-_NlDfrBNS-btn" class="btn btn-outline" _hhKgaiSg="margin-_loCjFtRT: 10px;">添加地区</button></div>
      </div>
      <div _THtSeuPG="advanced-_jnNCmOCT" class="tab-_KRZgPwRW">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _JqCvMdDD="checkbox" _THtSeuPG="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="resolvedDomainsGroup" _hhKgaiSg="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _THtSeuPG="resolvedDomainsInput" _WpclyBDl="留空则使用内置默认域名" _LtfmDJIV="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomNodesCheckbox">启用自定义节点</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _JqCvMdDD="checkbox" _THtSeuPG="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="customNodesGroup" _hhKgaiSg="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _THtSeuPG="customNodesInput" _WpclyBDl="一行一个地址,支持域名、IPv4、IPv6。" _LtfmDJIV="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="sampleSizeInput">测试IP总数</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _JqCvMdDD="number" _THtSeuPG="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _JqCvMdDD="number" _THtSeuPG="topNInput"></div>
            <div class="form-grid-label" _hhKgaiSg="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="display: none;"><input _JqCvMdDD="number" _THtSeuPG="latencyRangeMinInput" _WpclyBDl="最小"><span>-</span><input _JqCvMdDD="number" _THtSeuPG="latencyRangeMaxInput" _WpclyBDl="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableIspFilterCheckbox"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="geoLocationRetriesInput">归属地查询失败复查</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _JqCvMdDD="number" _THtSeuPG="geoLocationRetriesInput" _hhKgaiSg="_wpYyJCZL: 80px;"> <span>次</span>
                <div _hhKgaiSg="display: flex; align-items: center; gap: 5px; margin-_PUeAHFQW: 20px;">
                    <input _JqCvMdDD="checkbox" _THtSeuPG="filterUnknownGeoCheckbox">
                    <label for="filterUnknownGeoCheckbox">过滤未知归属地IP</label>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="universalFallbackAddressInput">备用地址 (上游)</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_ZGArdwQx:_PHBtRDqv' 或 '_ZGArdwQx'。">?</span></div>
            <div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="universalFallbackAddressInput"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableWebsocketStreamerCheckbox">启用 Websocket 转发</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="websocketStreamerGroup" _hhKgaiSg="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="websocketStreamerUrlInput"></div>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableStreamerCheckbox">启用内置内容加速</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="启用 /_IlyHmPLV 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="apiConfigGroup" _hhKgaiSg="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="apiMessageInput"></div></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomSubPathCheckbox">启用自定义订阅路径</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="customSubPathGroup" _hhKgaiSg="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="customSubPathInput" _WpclyBDl="例如: latest"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableVisitorPasswordCheckbox">启用访客密码</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="justify-_KRZgPwRW: flex-start;"><input _JqCvMdDD="checkbox" _THtSeuPG="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _THtSeuPG="visitorPasswordGroup" _hhKgaiSg="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_qEjPEEjo" _TkYsDiBj-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _hhKgaiSg="flex-direction: column; align-items: stretch; gap: 8px;"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="botTokenInput" _WpclyBDl="Telegram Bot Token"><input _JqCvMdDD="_BUoTWGoa" _THtSeuPG="chatIdInput" _WpclyBDl="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _hhKgaiSg="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _hhKgaiSg="flex-direction: column; align-items: stretch; gap: 8px;"><input _JqCvMdDD="_XpDwJwbK" _THtSeuPG="oldPasswordInput" _WpclyBDl="旧密码"><input _JqCvMdDD="_XpDwJwbK" _THtSeuPG="newPasswordInput" _WpclyBDl="新密码 (至少6位)"><button _THtSeuPG="changePasswordBtn" class="btn" _hhKgaiSg="align-self: flex-start; margin-_PUeAHFQW: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _THtSeuPG="closeModalBtn" class="btn btn-outline">关闭</button><button _THtSeuPG="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _THtSeuPG="_UKpIVzjZ">
      <div class="_JhTvbOET-modal-_KRZgPwRW">
          <div class="_JhTvbOET-modal-_VKCxkXGC"><h3 _THtSeuPG="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_JhTvbOET-modal-_kXbnAASj" _THtSeuPG="appModalBody"></div>
      </div>
  </div>
  <div _THtSeuPG="_iFHCkfiN">
      <div class="modal-_KRZgPwRW">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _TkYsDiBj-sub-_JqCvMdDD="coreEngine">Xray</button><button class="btn _eldjLcsu-btn" _TkYsDiBj-sub-_JqCvMdDD="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TkYsDiBj-sub-_JqCvMdDD="coreProfile">Sing-Box</button><button class="btn _eldjLcsu-btn" _TkYsDiBj-sub-_JqCvMdDD="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TkYsDiBj-sub-_JqCvMdDD="configProfile">Clash</button><button class="btn _eldjLcsu-btn" _TkYsDiBj-sub-_JqCvMdDD="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _TkYsDiBj-sub-_JqCvMdDD="policyProfile">Surge</button><button class="btn _eldjLcsu-btn" _TkYsDiBj-sub-_JqCvMdDD="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _hhKgaiSg="justify-_KRZgPwRW: center;"><button class="btn btn-outline" _THtSeuPG="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _THtSeuPG="_OhpfhRFM">
      <div class="modal-_KRZgPwRW">
          <img _THtSeuPG="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _mrTnRNHM = {
        isValid: (_IlyHmPLV) => _mrTnRNHM.isIPv4(_IlyHmPLV) || _mrTnRNHM.isIPv6(_IlyHmPLV),
        isIPv4: (_IlyHmPLV) => {
            if (typeof _IlyHmPLV !== 'string') return false;
            const _VKPqgCNw = _IlyHmPLV.split('.');
            if (_VKPqgCNw._jInLcehe !== 4) return false;
            return _VKPqgCNw.every(_GpMhTJQU => {
                const _YvsWxhan = parseInt(_GpMhTJQU, 10);
                return !isNaN(_YvsWxhan) && _YvsWxhan >= 0 && _YvsWxhan <= 255 && String(_YvsWxhan) === _GpMhTJQU;
            });
        },
        isIPv6: (_IlyHmPLV) => {
            if (typeof _IlyHmPLV !== 'string') return false;
            return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_BBAXsRLo.test(_IlyHmPLV);
        },
        toLong4: (_IlyHmPLV) => _IlyHmPLV.split('.').reduce((acc, octet, _BBAXsRLo) => acc + (parseInt(octet) << (8*(3-_BBAXsRLo))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_IlyHmPLV) => {
            try {
                const _RlsFRuHD = _IlyHmPLV.split('/')[0];
                const _VKPqgCNw = _RlsFRuHD.split('::');
                if (_VKPqgCNw._jInLcehe > 2) return 0n;
                let _neogBcSh = [];
                if (_VKPqgCNw[0]) {
                    _neogBcSh = _VKPqgCNw[0].split(':');
                }
                let _JlAFVbMO = [];
                if (_VKPqgCNw._jInLcehe > 1 && _VKPqgCNw[1]) {
                    _JlAFVbMO = _VKPqgCNw[1].split(':');
                }
                if (_neogBcSh._jInLcehe + _JlAFVbMO._jInLcehe > 8) return 0n;
                const _PJbLcyTW = 8 - (_neogBcSh._jInLcehe + _JlAFVbMO._jInLcehe);
                const _wizGfGWT = [
                    ..._neogBcSh,
                    ...Array(_PJbLcyTW).fill('0'),
                    ..._JlAFVbMO
                ].map(_GpMhTJQU => _GpMhTJQU || '0');
                while(_wizGfGWT._jInLcehe < 8) {
                    _wizGfGWT.push('0');
                }
                let _IRiSbfxy = 0n;
                for (const _GpMhTJQU of _wizGfGWT) {
                    if (_GpMhTJQU._jInLcehe > 4) return 0n;
                    const _FBQbAyCC = BigInt('0x' + _GpMhTJQU);
                    _IRiSbfxy = (_IRiSbfxy << 16n) | _FBQbAyCC;
                }
                return _IRiSbfxy;
            } catch(_GeVMwtrS) {
                return 0n;
            }
        },
        fromBigInt6: (_IRiSbfxy) => {
            if (typeof _IRiSbfxy !== '_IRiSbfxy' || _IRiSbfxy < 0n) return null;
            const _VKPqgCNw = [];
            for (let _BBAXsRLo = 0; _BBAXsRLo < 8; _BBAXsRLo++) {
                _VKPqgCNw.unshift((_IRiSbfxy & 0xFFFFn).toString(16));
                _IRiSbfxy >>= 16n;
            }
            let _UBcSjhPj = { start: -1, _ySltOnhv: 0 };
            let _ecgGfFpV = { start: -1, _ySltOnhv: 0 };
            for (let _BBAXsRLo = 0; _BBAXsRLo < 8; _BBAXsRLo++) {
                if (_VKPqgCNw[_BBAXsRLo] === '0') {
                    if (_ecgGfFpV.start === -1) _ecgGfFpV.start = _BBAXsRLo;
                    _ecgGfFpV._ySltOnhv++;
                } else {
                    if (_ecgGfFpV._ySltOnhv > _UBcSjhPj._ySltOnhv) _UBcSjhPj = { ..._ecgGfFpV };
                    _ecgGfFpV = { start: -1, _ySltOnhv: 0 };
                }
            }
            if (_ecgGfFpV._ySltOnhv > _UBcSjhPj._ySltOnhv) _UBcSjhPj = { ..._ecgGfFpV };
            if (_UBcSjhPj._ySltOnhv > 1) {
                _VKPqgCNw.splice(_UBcSjhPj.start, _UBcSjhPj._ySltOnhv, '');
                if (_UBcSjhPj.start === 0) _VKPqgCNw.unshift('');
                if (_UBcSjhPj.start + _UBcSjhPj._ySltOnhv === 8) _VKPqgCNw.push('');
            }
            return _VKPqgCNw.join(':');
        },
        cidrToRange: (cidr, _vnwAeUbR = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _TuSmklvk = parseInt(bitsStr, 10);
                const _HFYCrqGN = new Set();
                if (_mrTnRNHM.isIPv4(range)) {
                    if (isNaN(_TuSmklvk) || _TuSmklvk < 8 || _TuSmklvk > 32) return [];
                    if (_TuSmklvk === 32) return [range];
                    const _izzMIepL = _mrTnRNHM.toLong4(range);
                    const _KcRbGrKi = (0xFFFFFFFF << (32 - _TuSmklvk)) >>> 0;
                    const _YDuMHpMy = _izzMIepL & _KcRbGrKi;
                    const _ZWiCWrnw = 1 << (32 - _TuSmklvk);
                    if (_ZWiCWrnw <= 2) return [];
                    const _JTpuPbNA = Math.min(_vnwAeUbR, _ZWiCWrnw - 2);
                    let _xcsUsLfn = 0;
                    while (_HFYCrqGN.size < _JTpuPbNA && _xcsUsLfn < _JTpuPbNA * 5) {
                        const _jtHeMziU = Math.floor(Math.random() * (_ZWiCWrnw - 2)) + 1;
                        _HFYCrqGN.add(_mrTnRNHM.fromLong4((_YDuMHpMy + _jtHeMziU) >>> 0));
                        _xcsUsLfn++;
                    }
                    return Array.from(_HFYCrqGN);
                } else if (_mrTnRNHM.isIPv6(range)) {
                    if (isNaN(_TuSmklvk) || _TuSmklvk < 16 || _TuSmklvk > 128) return [];
                    if (_TuSmklvk === 128) return [range];
                    const _tBFeRsaH = _mrTnRNHM.toBigInt6(range);
                    const _KcRbGrKi = (2n ** BigInt(128 - _TuSmklvk) - 1n);
                    const _YDuMHpMy = _tBFeRsaH & ~_KcRbGrKi;
                    const _UBBZqIqY = 2n ** BigInt(128 - _TuSmklvk);
                    if (_UBBZqIqY <= 2n) return [];
                    let _xcsUsLfn = 0;
                    while (_HFYCrqGN.size < _vnwAeUbR && _xcsUsLfn < _vnwAeUbR * 5) {
                        const _iRGMYzmv = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_iRGMYzmv);
                        let _WqSNmpPV = 0n;
                        for (const _XExcGFru of _iRGMYzmv) {
                            _WqSNmpPV = (_WqSNmpPV << 8n) | BigInt(_XExcGFru);
                        }
                        const _jtHeMziU = _WqSNmpPV % (_UBBZqIqY - 2n) + 1n;
                        _HFYCrqGN.add(_mrTnRNHM.fromBigInt6(_YDuMHpMy + _jtHeMziU));
                        _xcsUsLfn++;
                    }
                    return Array.from(_HFYCrqGN);
                }
                return [];
            } catch(_GeVMwtrS) {
                console.error(`CIDR to range failed for ${cidr}:`, _GeVMwtrS);
                return [];
            }
        }
    };
    function _NmGHiPSW(_BOkGdLoy, _TruynfGG) {
        const _PEqZyJFm = {};
        const _ZMXlZlDX = Object._ZMXlZlDX(_TruynfGG);
        const _VKPqgCNw = _ZMXlZlDX.map(_YDUZLBvr => {
            const _BdMNLJdy = _BOkGdLoy * (_TruynfGG[_YDUZLBvr] / 100);
            return { _YDUZLBvr, _vnwAeUbR: Math.floor(_BdMNLJdy), remainder: _BdMNLJdy - Math.floor(_BdMNLJdy) };
        });
        let _vNvfaJnD = _VKPqgCNw.reduce((acc, _GpMhTJQU) => acc + _GpMhTJQU._vnwAeUbR, 0);
        _VKPqgCNw.sort((a, b) => b.remainder - a.remainder);
        let _mCaKssuG = _BOkGdLoy - _vNvfaJnD;
        for (let _BBAXsRLo = 0; _BBAXsRLo < _mCaKssuG; _BBAXsRLo++) {
            _VKPqgCNw[_BBAXsRLo % _VKPqgCNw._jInLcehe]._vnwAeUbR++;
        }
        for (const _GpMhTJQU of _VKPqgCNw) {
            _PEqZyJFm[_GpMhTJQU._YDUZLBvr] = _GpMhTJQU._vnwAeUbR;
        }
        return _PEqZyJFm;
    }
    const _DBgkphiD = __PAGE_DATA_JSON__;
    const _MveOYonV = _DBgkphiD._ZZzxFnKC;
    const _vCFQBgFO = _DBgkphiD.status;
    const _IRUVnWjI = __ALL_CF_CIDR_LIST_JSON__;
    const _nCrROmlT = __BALANCED_CF_CIDR_LIST_JSON__;
    const _lIcIoXpE = __DEFAULT_DOMAINS_LIST_JSON__;
    const _VtClJzTQ = __COUNTRY_MAP_JSON__;
    const _KNNdgVHK = _VtClJzTQ;
    const _bBhurcBl = 2500;
    const _yfIKIPSE = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _OTqHyAnh = document.getElementById('_OTqHyAnh');
    const _EgVJVHqR = document.getElementById('_EgVJVHqR');
    const _FSXlgHaF = document.getElementById('status');
    const _vusgtfiK = document.getElementById('_vusgtfiK');
    const _shaKZZAj = document.getElementById('resultsTable').querySelector('tbody');
    const _ZbTbZeLV = document.getElementById('_ZbTbZeLV');
    const _xNmrDMHv = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _nAmYopwK = document.getElementById('notificationTooltip');
    const _HjSYrHqc = document.getElementById('_HjSYrHqc');
    const _YRljeWHO = document.getElementById('_YRljeWHO');
    const _UKpIVzjZ = document.getElementById('_UKpIVzjZ');
    const _iFHCkfiN = document.getElementById('_iFHCkfiN');
    const _OhpfhRFM = document.getElementById('_OhpfhRFM');
    const _iTdHHPeK = document.getElementById('_iTdHHPeK');
    const _enjmIPfK = document.getElementById('_enjmIPfK');
    let _BoBvJGWu = null;
    let _KrfgquQb = null;
    let _BAPVCrFe = [];
    let _oaULClNd = false;
    let _ZLMyPZyy = null;
    function _NTWJZpko(_mttSlsVE, _qEKSGgVJ) {
        const _izitsuQo=parseInt(_mttSlsVE.slice(1),16),t=_qEKSGgVJ<0?0:255,p=_qEKSGgVJ<0?_qEKSGgVJ*-1:_qEKSGgVJ,R=_izitsuQo>>16,G=_izitsuQo>>8&0x00FF,B=_izitsuQo&0x0000FF;
        const _oJLjwBWQ = Math.round((t-R)*p)+R;
        const _eUzRWUNG = Math.round((t-G)*p)+G;
        const _jjaCZrWG = Math.round((t-B)*p)+B;
        return `rgb(${_oJLjwBWQ.toString()}, ${_eUzRWUNG.toString()}, ${_jjaCZrWG.toString()})`;
    }
    function _FsCCoEIK(_jnNCmOCT) {
        const _CcUXcqWg = _wRgchtkS(_jnNCmOCT.primaryColor);
        if(_CcUXcqWg) {
            document.documentElement._hhKgaiSg.setProperty('--primary-_fCfaNRnn-rgb', `${_CcUXcqWg.r},${_CcUXcqWg.g},${_CcUXcqWg.b}`);
        }
        document.documentElement._hhKgaiSg.setProperty('--primary-_fCfaNRnn', _jnNCmOCT.primaryColor);
        document.documentElement._hhKgaiSg.setProperty('--primary-hover', _NTWJZpko(_jnNCmOCT.primaryColor, -0.1));
        document.documentElement._hhKgaiSg.setProperty('--primary-gradient-start', _NTWJZpko(_jnNCmOCT.primaryColor, 0.1));
        document.documentElement._hhKgaiSg.setProperty('--primary-gradient-end', _NTWJZpko(_jnNCmOCT.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _jnNCmOCT.texts.title;
        document.title = _jnNCmOCT.texts.title;
        _HjSYrHqc.innerText = _BoBvJGWu ? _jnNCmOCT.texts.loginButtonSuccess : _jnNCmOCT.texts.loginButton;
        _HjSYrHqc._hhKgaiSg._fCfaNRnn = _jnNCmOCT.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _jnNCmOCT.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _jnNCmOCT.texts.liveTitle;
        document.getElementById('liveTitleEl')._hhKgaiSg._fCfaNRnn = _jnNCmOCT.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _jnNCmOCT.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._hhKgaiSg._fCfaNRnn = _jnNCmOCT.colors.cachedTitle;
        const _paUAWFeo = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _paUAWFeo.forEach((_THtSeuPG, _nHKnvQVK) => {
            const _LeSvUYwk = document.getElementById(_THtSeuPG);
            if (_LeSvUYwk) _LeSvUYwk.innerText = _jnNCmOCT.texts[`tableHeader${_nHKnvQVK + 1}`] || '';
        });
        const _EMPbIjHA = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _EMPbIjHA.forEach((_THtSeuPG, _nHKnvQVK) => {
             const _LeSvUYwk = document.getElementById(_THtSeuPG);
             if (_LeSvUYwk) _LeSvUYwk.innerText = _MveOYonV.texts[`tableHeader${_nHKnvQVK + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._hhKgaiSg._fCfaNRnn = _jnNCmOCT.colors.tableHeader);
        document._kXbnAASj.className = '';
        document._kXbnAASj.classList.add(_jnNCmOCT.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_jnNCmOCT.theme)) {
            document._kXbnAASj.classList.add('glassy-components');
        }
        document._kXbnAASj._hhKgaiSg.backgroundImage = '';
        _CkXHWMJn();
        if (_jnNCmOCT.theme.includes('particles') || _jnNCmOCT.theme.includes('glass')) {
            _IxeKWSVA(_jnNCmOCT.particleColor);
        } else if (_jnNCmOCT.theme.includes('bing')) {
            document._kXbnAASj._hhKgaiSg.backgroundImage = '_zAaODIsh(/bing-wallpaper)';
        }
    }
    function _vdaLrZta() {
        _BoBvJGWu = null;
        if(_KrfgquQb) clearTimeout(_KrfgquQb);
        _FsCCoEIK(_MveOYonV);
        _NwLNpQUc("登录已超时,请重新登录。", "warning");
    }
    async function _rNkbiqlL() {
        if (_BoBvJGWu) {
            _nrkSbuFh();
            return;
        }
        const _TifbXfnD = prompt('请输入管理员密码:');
        if (!_TifbXfnD) return;
        try {
            const _MAgoOwST = await fetch('/api/verify-_XpDwJwbK', {
                method: 'POST',
                _paUAWFeo: { 'Content-Type': 'application/json' },
                _kXbnAASj: JSON.stringify({ _XpDwJwbK: _TifbXfnD })
            });
            const _iJYlgZbP = await _MAgoOwST.json();
            if (_iJYlgZbP.success) {
                _BoBvJGWu = _TifbXfnD;
                _NwLNpQUc("登录成功!有效期5分钟。", "success");
                if (_KrfgquQb) clearTimeout(_KrfgquQb);
                _KrfgquQb = setTimeout(_vdaLrZta, 5 * 60 * 1000);
                _FsCCoEIK(_MveOYonV);
                _nrkSbuFh();
            } else {
                throw new Error(_iJYlgZbP._sTMRczLI || '密码验证失败');
            }
        } catch (_GeVMwtrS) {
            _NwLNpQUc(`登录失败: ${_GeVMwtrS._sTMRczLI}`, "error");
        }
    }
    function _mqekSPEV() {
        if (!_vCFQBgFO._aHJFFTOE) {
            _iTdHHPeK._hhKgaiSg.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _XpDwJwbK = document.getElementById('initialPassword')._FBQbAyCC;
                const _zqxCncQc = document.getElementById('confirmPassword')._FBQbAyCC;
                if (_XpDwJwbK !== _zqxCncQc) {
                    _NwLNpQUc("两次输入的密码不一致!", "error");
                    return;
                }
                if (_XpDwJwbK._jInLcehe < 6) {
                    _NwLNpQUc("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _MAgoOwST = await fetch('/api/_arelwzqZ-_XpDwJwbK', {
                        method: 'POST',
                        _paUAWFeo: { 'Content-Type': 'application/json' },
                        _kXbnAASj: JSON.stringify({ _XpDwJwbK })
                    });
                    const _iJYlgZbP = await _MAgoOwST.json();
                    if (_iJYlgZbP.success) {
                        _NwLNpQUc(_iJYlgZbP._sTMRczLI, "success");
                        setTimeout(() => _nKPLYbQh.reload(), 1500);
                    } else {
                        throw new Error(_iJYlgZbP._sTMRczLI);
                    }
                } catch(_GeVMwtrS) {
                    _NwLNpQUc(`设置密码失败: ${_GeVMwtrS._sTMRczLI}`, "error");
                }
            });
            return;
        }
        _HjSYrHqc.addEventListener('click', _rNkbiqlL);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _YRljeWHO._hhKgaiSg.display = 'none'; });
        _YRljeWHO.addEventListener('click', (_GeVMwtrS) => { if (_GeVMwtrS.target === _YRljeWHO) _YRljeWHO._hhKgaiSg.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_AoTZyrSl .fine-grained-_lcNlehfu-cb').forEach(cb => cb.checked = true);
                document.getElementById('disableAllSourcesCheckbox').checked = false;
                this.checked = false; 
            }
        });
        document.getElementById('disableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_AoTZyrSl .fine-grained-_lcNlehfu-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_BoBvJGWu) {
                _NwLNpQUc("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _uxqOXBNs = [];
            document.querySelectorAll('#custom-fields-_AoTZyrSl .custom-field-_TPKueeVT').forEach(_TPKueeVT => {
                const _MdKupjdk = _TPKueeVT.querySelector('.custom-field-_MdKupjdk')._FBQbAyCC.trim();
                const _FBQbAyCC = _TPKueeVT.querySelector('.custom-field-_FBQbAyCC')._FBQbAyCC.trim();
                if (_MdKupjdk) _uxqOXBNs.push({ _MdKupjdk, _FBQbAyCC });
            });
            const _weLvodHw = [];
            document.querySelectorAll('#parameter-sets-_AoTZyrSl .parameter-_arelwzqZ-_TPKueeVT').forEach(_TPKueeVT => {
                const _MdKupjdk = _TPKueeVT.querySelector('.param-_arelwzqZ-_MdKupjdk')._FBQbAyCC.trim();
                const _ZGArdwQx = _TPKueeVT.querySelector('.param-_arelwzqZ-_ZGArdwQx')._FBQbAyCC.trim();
                const _telLvYWN = _TPKueeVT.querySelector('.param-_arelwzqZ-_telLvYWN')._FBQbAyCC.trim();
                const _DLiwXEbL = _TPKueeVT.querySelector('.param-_arelwzqZ-_DLiwXEbL')._FBQbAyCC.trim();
                if(_MdKupjdk) _weLvodHw.push({ _MdKupjdk, _ZGArdwQx, '_telLvYWN': _telLvYWN, _DLiwXEbL });
            });
            const _yWfTiEHX = [];
            document.querySelectorAll('#fine-grained-sources-_AoTZyrSl .fine-grained-_NlDfrBNS-_TPKueeVT').forEach(_TPKueeVT => {
                const _nKPLYbQh = _TPKueeVT.querySelector('.fine-grained-_nKPLYbQh')._FBQbAyCC.trim();
                const _HFYCrqGN = _TPKueeVT.querySelector('.fine-grained-_HFYCrqGN')._FBQbAyCC.trim();
                const _lcNlehfu = _TPKueeVT.querySelector('.fine-grained-_lcNlehfu-cb').checked;
                const _uZpcmLws = parseInt(_TPKueeVT.querySelector('.fine-grained-_uZpcmLws')._FBQbAyCC, 10) || 0;
                const _PzVuVQbC = _TPKueeVT.querySelector('.use-_MdKupjdk-as-_nKPLYbQh-cb').checked;
                if (_nKPLYbQh && _HFYCrqGN) {
                    _yWfTiEHX.push({ _nKPLYbQh, _HFYCrqGN, _lcNlehfu, _uZpcmLws, _PzVuVQbC });
                }
            });
            
            let _WwtKVbSI = parseInt(document.getElementById('subscriptionIdLength')._FBQbAyCC, 10);
            if (isNaN(_WwtKVbSI) || _WwtKVbSI < 2) _WwtKVbSI = 2;
            if (_WwtKVbSI > 128) _WwtKVbSI = 128;

            const _ehaNOCiQ = {
                theme: document.getElementById('themeSelect')._FBQbAyCC,
                primaryColor: document.getElementById('primaryColorInput')._FBQbAyCC,
                particleColor: document.getElementById('particleColorInput')._FBQbAyCC,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._FBQbAyCC,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._FBQbAyCC, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._FBQbAyCC, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._FBQbAyCC, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._FBQbAyCC, 10) || 0,
                _GRYxeaSS: document.getElementById('converterServiceUrlInput')._FBQbAyCC.trim(),
                subscriptionId: {
                    _jInLcehe: _WwtKVbSI,
                    _IIzcGMEL: document.getElementById('subscriptionIdCharset')._FBQbAyCC.trim()
                },
                api: {
                    _lcNlehfu: document.getElementById('enableApiCheckbox').checked,
                    _sTMRczLI: document.getElementById('apiMessageInput')._FBQbAyCC || '维护中...',
                },
                ispFilter: { 
                    _lcNlehfu: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._FBQbAyCC, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _lcNlehfu: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _lcNlehfu: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _zAaODIsh: document.getElementById('websocketStreamerUrlInput')._FBQbAyCC.trim()
                },
                visitorPassword: {
                    _lcNlehfu: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _XpDwJwbK: document.getElementById('visitorPasswordInput')._FBQbAyCC.trim()
                },
                customSubPath: {
                    _lcNlehfu: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _DLiwXEbL: document.getElementById('customSubPathInput')._FBQbAyCC.trim()
                },
                itemLink: {
                    _lcNlehfu: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._FBQbAyCC,
                    selectionMode: document.getElementById('parameterSelectionMode')._FBQbAyCC,
                    _weLvodHw: _weLvodHw,
                    _uxqOXBNs: _uxqOXBNs,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._FBQbAyCC.trim(),
                },
                announcement: {
                    popup: {
                        _lcNlehfu: document.getElementById('enablePopup').checked,
                        _BUoTWGoa: document.getElementById('announcementText')._FBQbAyCC,
                        _TNCGnxvN: parseInt(document.getElementById('popupDuration')._FBQbAyCC, 10) || 5
                    },
                    marquee: {
                        _lcNlehfu: document.getElementById('enableMarquee').checked,
                        _BUoTWGoa: document.getElementById('announcementText')._FBQbAyCC
                    }
                },
                fineGrained: {
                    _lcNlehfu: true,
                    sources: _yWfTiEHX
                },
                customNodes: {
                    _lcNlehfu: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._FBQbAyCC
                },
                texts: {
                    title: document.getElementById('textInput_title')._FBQbAyCC,
                    loginButton: document.getElementById('textInput_loginButton')._FBQbAyCC,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._FBQbAyCC,
                    liveTitle: document.getElementById('textInput_liveTitle')._FBQbAyCC,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._FBQbAyCC,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._FBQbAyCC,
                    loginButton: document.getElementById('colorInput_loginButton')._FBQbAyCC,
                    liveTitle: document.getElementById('colorInput_liveTitle')._FBQbAyCC,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._FBQbAyCC,
                    tableHeader: document.getElementById('colorInput_tableHeader')._FBQbAyCC,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._FBQbAyCC.trim(),
                    chat_id: document.getElementById('chatIdInput')._FBQbAyCC.trim(),
                },
            };
            try {
                const _MAgoOwST = await fetch('/api/_ZZzxFnKC', {
                    method: 'POST',
                    _paUAWFeo: { 'Content-Type': 'application/json' },
                    _kXbnAASj: JSON.stringify({ _ZZzxFnKC: _ehaNOCiQ, adminPassword: _BoBvJGWu })
                });
                const _iJYlgZbP = await _MAgoOwST.json();
                if (_MAgoOwST.ok && _iJYlgZbP.success) {
                    _NwLNpQUc("配置已保存,正在刷新...", "success");
                    setTimeout(() => _nKPLYbQh.reload(), 1500);
                } else {
                    throw new Error(_iJYlgZbP._sTMRczLI || '未知错误');
                }
            } catch (_GeVMwtrS) {
                _NwLNpQUc(`操作失败: ${_GeVMwtrS._sTMRczLI}`, "error");
                if (String(_GeVMwtrS._sTMRczLI).includes("密码错误")) {
                    _vdaLrZta();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _PxErBEXY = document.getElementById('oldPasswordInput')._FBQbAyCC;
            const _hFkTemZj = document.getElementById('newPasswordInput')._FBQbAyCC;
            if (!_PxErBEXY || !_hFkTemZj) {
                _NwLNpQUc("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _MAgoOwST = await fetch('/api/change-_XpDwJwbK', {
                    method: 'POST',
                    _paUAWFeo: { 'Content-Type': 'application/json' },
                    _kXbnAASj: JSON.stringify({ _PxErBEXY, _hFkTemZj })
                });
                const _iJYlgZbP = await _MAgoOwST.json();
                if (_iJYlgZbP.success) {
                    _NwLNpQUc(_iJYlgZbP._sTMRczLI, "success");
                    document.getElementById('oldPasswordInput')._FBQbAyCC = '';
                    document.getElementById('newPasswordInput')._FBQbAyCC = '';
                    _BoBvJGWu = _hFkTemZj;
                } else {
                    throw new Error(_iJYlgZbP._sTMRczLI);
                }
            } catch(_GeVMwtrS) {
                _NwLNpQUc(`修改密码失败: ${_GeVMwtrS._sTMRczLI}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('resolvedDomainsGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('customNodesGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('apiConfigGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('itemLinkConfigGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('websocketStreamerGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
            const _kyxhPFBA = document.querySelector('#parameter-sets-_AoTZyrSl .param-_arelwzqZ-_DLiwXEbL');
            if (_kyxhPFBA) {
                if (_GeVMwtrS.target.checked) {
                    _kyxhPFBA._FBQbAyCC = '/snippets?_IlyHmPLV=endpointAddress:_PHBtRDqv(443)&nat64=6to4';
                } else {
                    _kyxhPFBA._FBQbAyCC = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _MjhuqxsL('', '');
        });
        document.getElementById('add-parameter-_arelwzqZ-btn').addEventListener('click', () => {
            const _vnwAeUbR = document.querySelectorAll('.parameter-_arelwzqZ-_TPKueeVT')._jInLcehe + 1;
            _dhfLPapk({_MdKupjdk: `配置${_vnwAeUbR}`, _ZGArdwQx: '', _telLvYWN: '', _DLiwXEbL: ''});
            _YoCJsdxd();
        });
         document.getElementById('add-fine-grained-_NlDfrBNS-btn').addEventListener('click', () => {
             _LUPFMEwm({ _nKPLYbQh: '', _HFYCrqGN: '', _lcNlehfu: true, _uZpcmLws: 50, _PzVuVQbC: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('visitorPasswordGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('customSubPathGroup')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_GeVMwtrS) => {
            document.getElementById('popupDurationContainer')._hhKgaiSg.display = _GeVMwtrS.target.checked ? 'flex' : 'none';
        });
    }
    function _MjhuqxsL(_MdKupjdk, _FBQbAyCC) {
        const _AoTZyrSl = document.getElementById('custom-fields-_AoTZyrSl');
        const _WAxBouuV = document.createElement('div');
        _WAxBouuV.className = 'form-grid custom-field-_TPKueeVT';
        _WAxBouuV._hhKgaiSg = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _WAxBouuV.innerHTML = `
            <input _JqCvMdDD="_BUoTWGoa" class="custom-field-_MdKupjdk" _WpclyBDl="占位符名称" _FBQbAyCC="${_MdKupjdk}">
            <input _JqCvMdDD="_BUoTWGoa" class="custom-field-_FBQbAyCC" _WpclyBDl="值" _FBQbAyCC="${_FBQbAyCC}">
            <button _JqCvMdDD="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _AoTZyrSl.appendChild(_WAxBouuV);
    }
    function _dhfLPapk(_arelwzqZ) {
        const _AoTZyrSl = document.getElementById('parameter-sets-_AoTZyrSl');
        const _WAxBouuV = document.createElement('div');
        _WAxBouuV.className = 'parameter-_arelwzqZ-_TPKueeVT';
        _WAxBouuV.innerHTML = `
            <div class="parameter-_arelwzqZ-_VKCxkXGC">
                <input _JqCvMdDD="_BUoTWGoa" class="param-_arelwzqZ-_MdKupjdk" _WpclyBDl="配置名称" _FBQbAyCC="${_arelwzqZ._MdKupjdk}" oninput="_YoCJsdxd()">
                <button _JqCvMdDD="button" class="btn btn-outline" onclick="this.closest('.parameter-_arelwzqZ-_TPKueeVT').remove(); _YoCJsdxd();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" class="param-_arelwzqZ-_ZGArdwQx" _FBQbAyCC="${_arelwzqZ._ZGArdwQx || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" class="param-_arelwzqZ-_telLvYWN" _FBQbAyCC="${_arelwzqZ['_telLvYWN'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _JqCvMdDD="_BUoTWGoa" class="param-_arelwzqZ-_DLiwXEbL" _FBQbAyCC="${_arelwzqZ._DLiwXEbL || ''}"></div>
            </div>
        `;
        _AoTZyrSl.appendChild(_WAxBouuV);
    }
    function _YoCJsdxd() {
        const _rlakWvjo = document.getElementById('parameterSelectionMode');
        const _WEdfYOwb = _rlakWvjo._FBQbAyCC;
        _rlakWvjo.innerHTML = '';
        const _umLcBWWH = document.createElement('_jkjDDRjY');
        _umLcBWWH._FBQbAyCC = 'random';
        _umLcBWWH.textContent = '随机轮询';
        _rlakWvjo.appendChild(_umLcBWWH);
        const _GflGDyna = document.createElement('_jkjDDRjY');
        _GflGDyna._FBQbAyCC = 'first';
        _GflGDyna.textContent = '使用第一组';
        _rlakWvjo.appendChild(_GflGDyna);
        document.querySelectorAll('.param-_arelwzqZ-_MdKupjdk').forEach(input => {
            const _MdKupjdk = input._FBQbAyCC.trim();
            if (_MdKupjdk) {
                const _jkjDDRjY = document.createElement('_jkjDDRjY');
                _jkjDDRjY._FBQbAyCC = _MdKupjdk;
                _jkjDDRjY.textContent = `指定: ${_MdKupjdk}`;
                _rlakWvjo.appendChild(_jkjDDRjY);
            }
        });
        if (Array.from(_rlakWvjo.options).some(opt => opt._FBQbAyCC === _WEdfYOwb)) {
            _rlakWvjo._FBQbAyCC = _WEdfYOwb;
        } else {
            _rlakWvjo._FBQbAyCC = 'random';
        }
    }
    function _LUPFMEwm(_NlDfrBNS) {
        const _AoTZyrSl = document.getElementById('fine-grained-sources-_AoTZyrSl');
        const _WAxBouuV = document.createElement('div');
        _WAxBouuV.className = 'fine-grained-_NlDfrBNS-_TPKueeVT parameter-_arelwzqZ-_TPKueeVT';
        _WAxBouuV._hhKgaiSg.padding = '1rem';
        const _owHzLmFq = _NlDfrBNS._PzVuVQbC ? 'checked' : '';
        const _SpEjpOXS = !_NlDfrBNS._PzVuVQbC ? 'checked' : '';
        const _zSSRnUkv = _NlDfrBNS._lcNlehfu ? 'checked' : '';
        _WAxBouuV.innerHTML = `
            <div _hhKgaiSg="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _JqCvMdDD="_BUoTWGoa" class="fine-grained-_nKPLYbQh" _WpclyBDl="地区名称 (如: 香港)" _FBQbAyCC="${_NlDfrBNS._nKPLYbQh || ''}">
                <div _hhKgaiSg="display: flex; align-items: center; gap: 5px;"><input _JqCvMdDD="checkbox" class="fine-grained-_lcNlehfu-cb" ${_zSSRnUkv}><label>启用</label></div>
                <button _JqCvMdDD="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_NlDfrBNS-_TPKueeVT').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_HFYCrqGN" _WpclyBDl="IP源 (每行一个IP、CIDR或URL)" _LtfmDJIV="3" _hhKgaiSg="_wpYyJCZL:100%;">${_NlDfrBNS._HFYCrqGN || ''}</textarea>
            <div class="fine-grained-options" _hhKgaiSg="justify-_KRZgPwRW: space-between;">
                <div _hhKgaiSg="display: flex; gap: 1rem;">
                    <label><input _JqCvMdDD="checkbox" class="query-_hbltXOGW-cb" ${_SpEjpOXS}>查询真实归属地</label>
                    <label><input _JqCvMdDD="checkbox" class="use-_MdKupjdk-as-_nKPLYbQh-cb" ${_owHzLmFq}>使用地区名称作为归属地</label>
                </div>
                <div _hhKgaiSg="display: flex; align-items: center; gap: 5px;"><input _JqCvMdDD="number" class="fine-grained-_uZpcmLws _uZpcmLws-input" _FBQbAyCC="${_NlDfrBNS._uZpcmLws || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _kErdytrR = _WAxBouuV.querySelector('.query-_hbltXOGW-cb');
        const _hYvwuhAa = _WAxBouuV.querySelector('.use-_MdKupjdk-as-_nKPLYbQh-cb');
        _kErdytrR.addEventListener('change', () => {
            if (_kErdytrR.checked) {
                _hYvwuhAa.checked = false;
            } else if (!_hYvwuhAa.checked) {
                _kErdytrR.checked = true;
            }
        });
        _hYvwuhAa.addEventListener('change', () => {
            if (_hYvwuhAa.checked) {
                _kErdytrR.checked = false;
            } else if (!_hYvwuhAa.checked) {
                _hYvwuhAa.checked = true;
            }
        });
        _AoTZyrSl.appendChild(_WAxBouuV);
    }
    function _nrkSbuFh() {
        const _jnNCmOCT = _MveOYonV;
        document.getElementById('themeSelect')._FBQbAyCC = _jnNCmOCT.theme;
        document.getElementById('primaryColorInput')._FBQbAyCC = _jnNCmOCT.primaryColor;
        document.getElementById('particleColorInput')._FBQbAyCC = _jnNCmOCT.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _jnNCmOCT.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._WpclyBDl = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._FBQbAyCC = _jnNCmOCT.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._hhKgaiSg.display = _jnNCmOCT.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _jnNCmOCT.customNodes._lcNlehfu;
        document.getElementById('customNodesInput')._FBQbAyCC = _jnNCmOCT.customNodes.list || '';
        document.getElementById('customNodesGroup')._hhKgaiSg.display = _jnNCmOCT.customNodes._lcNlehfu ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._FBQbAyCC = _jnNCmOCT._GRYxeaSS || '';
        document.getElementById('subscriptionIdLength')._FBQbAyCC = _jnNCmOCT.subscriptionId._jInLcehe;
        document.getElementById('subscriptionIdCharset')._FBQbAyCC = _jnNCmOCT.subscriptionId._IIzcGMEL;
        document.getElementById('enableItemLinkCheckbox').checked = _jnNCmOCT.itemLink._lcNlehfu;
        document.getElementById('itemLinkConfigGroup')._hhKgaiSg.display = _jnNCmOCT.itemLink._lcNlehfu ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._FBQbAyCC = _jnNCmOCT.itemLink.template;
        const _xTZLeacD = document.getElementById('parameter-sets-_AoTZyrSl');
        _xTZLeacD.innerHTML = '';
        if (_jnNCmOCT.itemLink._weLvodHw && Array.isArray(_jnNCmOCT.itemLink._weLvodHw)) {
            _jnNCmOCT.itemLink._weLvodHw.forEach(_arelwzqZ => _dhfLPapk(_arelwzqZ));
        }
        _YoCJsdxd();
        document.getElementById('parameterSelectionMode')._FBQbAyCC = _jnNCmOCT.itemLink.selectionMode || 'random';
        const _kyxhPFBA = document.querySelector('#parameter-sets-_AoTZyrSl .param-_arelwzqZ-_DLiwXEbL');
        if (_kyxhPFBA && _jnNCmOCT.websocketStreamer && _jnNCmOCT.websocketStreamer._lcNlehfu) {
            _kyxhPFBA._FBQbAyCC = '/snippets?_IlyHmPLV=endpointAddress:_PHBtRDqv(443)&nat64=6to4';
        }
        const _YLLRCBeu = document.getElementById('custom-fields-_AoTZyrSl');
        _YLLRCBeu.innerHTML = '';
        if (_jnNCmOCT.itemLink._uxqOXBNs && Array.isArray(_jnNCmOCT.itemLink._uxqOXBNs)) {
            _jnNCmOCT.itemLink._uxqOXBNs.forEach(field => _MjhuqxsL(field._MdKupjdk, field._FBQbAyCC));
        }
        document.getElementById('universalFallbackAddressInput')._FBQbAyCC = _jnNCmOCT.dataFeeds.universalFallbackAddress || '';
        const _ydAevTku = _jnNCmOCT.websocketStreamer && _jnNCmOCT.websocketStreamer._lcNlehfu;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _ydAevTku;
        document.getElementById('websocketStreamerUrlInput')._FBQbAyCC = _jnNCmOCT.websocketStreamer ? _jnNCmOCT.websocketStreamer._zAaODIsh : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._hhKgaiSg.display = _ydAevTku ? 'block' : 'none';
        const _cRvohVUX = _jnNCmOCT.announcement || {};
        document.getElementById('announcementText')._FBQbAyCC = (_cRvohVUX.popup && _cRvohVUX.popup._BUoTWGoa) || (_cRvohVUX.marquee && _cRvohVUX.marquee._BUoTWGoa) || '';
        document.getElementById('enableMarquee').checked = _cRvohVUX.marquee && _cRvohVUX.marquee._lcNlehfu;
        document.getElementById('enablePopup').checked = _cRvohVUX.popup && _cRvohVUX.popup._lcNlehfu;
        document.getElementById('popupDuration')._FBQbAyCC = (_cRvohVUX.popup && _cRvohVUX.popup._TNCGnxvN) || 5;
        document.getElementById('popupDurationContainer')._hhKgaiSg.display = (_cRvohVUX.popup && _cRvohVUX.popup._lcNlehfu) ? 'flex' : 'none';
        const _BFdTuBLR = document.getElementById('fine-grained-sources-_AoTZyrSl');
        _BFdTuBLR.innerHTML = '';
        if (_jnNCmOCT.fineGrained.sources && Array.isArray(_jnNCmOCT.fineGrained.sources)) {
            _jnNCmOCT.fineGrained.sources.forEach(_NlDfrBNS => _LUPFMEwm(_NlDfrBNS));
        }
        document.getElementById('sampleSizeInput')._FBQbAyCC = _jnNCmOCT.sampleSize;
        document.getElementById('topNInput')._FBQbAyCC = _jnNCmOCT.topN;
        document.getElementById('latencyRangeMinInput')._FBQbAyCC = _jnNCmOCT.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._FBQbAyCC = _jnNCmOCT.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _jnNCmOCT.ispFilter._lcNlehfu;
        const _DXagjxVD = _jnNCmOCT.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._FBQbAyCC = _DXagjxVD.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _DXagjxVD.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _jnNCmOCT.streamer._lcNlehfu;
        document.getElementById('enableApiCheckbox').checked = _jnNCmOCT.api._lcNlehfu;
        document.getElementById('apiConfigGroup')._hhKgaiSg.display = _jnNCmOCT.api._lcNlehfu ? 'block' : 'none';
        document.getElementById('apiMessageInput')._FBQbAyCC = _jnNCmOCT.api._sTMRczLI;
        const _qLcdOiNG = _jnNCmOCT.customSubPath && _jnNCmOCT.customSubPath._lcNlehfu;
        document.getElementById('enableCustomSubPathCheckbox').checked = _qLcdOiNG;
        document.getElementById('customSubPathInput')._FBQbAyCC = _jnNCmOCT.customSubPath ? _jnNCmOCT.customSubPath._DLiwXEbL : 'latest';
        document.getElementById('customSubPathGroup')._hhKgaiSg.display = _qLcdOiNG ? 'block' : 'none';
        const _iBCAZLkZ = _jnNCmOCT.visitorPassword && _jnNCmOCT.visitorPassword._lcNlehfu;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _iBCAZLkZ;
        document.getElementById('visitorPasswordInput')._FBQbAyCC = _jnNCmOCT.visitorPassword ? _jnNCmOCT.visitorPassword._XpDwJwbK : '';
        document.getElementById('visitorPasswordGroup')._hhKgaiSg.display = _iBCAZLkZ ? 'block' : 'none';
        document.getElementById('textInput_title')._FBQbAyCC = _jnNCmOCT.texts.title;
        document.getElementById('textInput_loginButton')._FBQbAyCC = _jnNCmOCT.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._FBQbAyCC = _jnNCmOCT.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._FBQbAyCC = _jnNCmOCT.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._FBQbAyCC = _jnNCmOCT.texts.cachedTitle;
        document.getElementById('colorInput_title')._FBQbAyCC = _jnNCmOCT.colors.title;
        document.getElementById('colorInput_loginButton')._FBQbAyCC = _jnNCmOCT.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._FBQbAyCC = _jnNCmOCT.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._FBQbAyCC = _jnNCmOCT.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._FBQbAyCC = _jnNCmOCT.colors.tableHeader;
        document.getElementById('botTokenInput')._FBQbAyCC = _jnNCmOCT.telegram.bot_token || '';
        document.getElementById('chatIdInput')._FBQbAyCC = _jnNCmOCT.telegram.chat_id || '';
        _YRljeWHO._hhKgaiSg.display = 'flex';
    }
    function _UqUHLrCG(_AsvdcdGP) {
        if (window.innerWidth <= 768) {
            const _LtfmDJIV = _AsvdcdGP.querySelectorAll('thead tr, tbody tr');
            _LtfmDJIV.forEach(_TPKueeVT => {
                const _VKhlwzwW = Array.from(_TPKueeVT.children);
                const _KYTaAcdH = [
                    _VKhlwzwW[0],
                    _VKhlwzwW[1],
                    _VKhlwzwW[3],
                    _VKhlwzwW[6],
                    _VKhlwzwW[2],
                    _VKhlwzwW[4],
                    _VKhlwzwW[5]
                ];
                _KYTaAcdH.forEach(cell => _TPKueeVT.appendChild(cell));
            });
        }
    }
    async function _fqCPGzot() {
        if (!_vCFQBgFO._aHJFFTOE) {
            _mqekSPEV();
            return;
        }
        if (_MveOYonV.announcement && _MveOYonV.announcement.marquee && _MveOYonV.announcement.marquee._lcNlehfu && _MveOYonV.announcement.marquee._BUoTWGoa) {
            const _wsVuAqGT = document.getElementById('marquee-_AoTZyrSl');
            const _zuNqGogr = document.getElementById('marquee-_BUoTWGoa');
            const _qpHnVqZg = document.querySelector('.progress-section');
            if (_wsVuAqGT && _zuNqGogr && _qpHnVqZg) {
                _zuNqGogr.innerText = _MveOYonV.announcement.marquee._BUoTWGoa;
                _wsVuAqGT._hhKgaiSg.display = 'block';
                const _OJxOPqof = () => {
                    _wsVuAqGT._hhKgaiSg._wpYyJCZL = `${_qpHnVqZg.offsetWidth}px`;
                    const _RDwuZjxM = _zuNqGogr.offsetWidth;
                    const _VQfUIFrm = _wsVuAqGT.offsetWidth;
                    const _TNCGnxvN = (_RDwuZjxM + _VQfUIFrm) / 100;
                    _zuNqGogr._hhKgaiSg.animationDuration = `${Math.max(10, _TNCGnxvN)}s`;
                };
                _OJxOPqof();
                window.addEventListener('resize', _OJxOPqof);
            }
        }
        
        _FsCCoEIK(_MveOYonV);
        
        if (_MveOYonV.announcement && _MveOYonV.announcement.popup && _MveOYonV.announcement.popup._lcNlehfu && _MveOYonV.announcement.popup._BUoTWGoa) {
            setTimeout(() => {
                _NwLNpQUc(_MveOYonV.announcement.popup._BUoTWGoa, 'info', _MveOYonV.announcement.popup._TNCGnxvN * 1000);
            }, 500);
        }
        _mqekSPEV();
        _hcXASpEz();
        _bjVzBOFa();
        _OBNaTCtb();
        await _nAZsIMoV();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _VANvbsRV = window._nKPLYbQh.origin + '/_IlyHmPLV';
            navigator.clipboard.writeText(_VANvbsRV).then(() => {
                _NwLNpQUc('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_MveOYonV.visitorPassword && _MveOYonV.visitorPassword._lcNlehfu) {
            _OTqHyAnh._hhKgaiSg.display = 'none';
            const _ufFCvXDo = document.getElementById('visitorPasswordPrompt');
            _ufFCvXDo._hhKgaiSg.display = 'block';
            const _GyaWDSoA = document.getElementById('visitorPasswordEntry');
            const _lhiEYVgs = document.getElementById('startTestWithPasswordBtn');
            const _TBwCzYzR = async () => {
                const _XpDwJwbK = _GyaWDSoA._FBQbAyCC;
                if (!_XpDwJwbK) {
                    _NwLNpQUc('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _MAgoOwST = await fetch('/api/verify-visitor-_XpDwJwbK', {
                        method: 'POST',
                        _paUAWFeo: { 'Content-Type': 'application/json' },
                        _kXbnAASj: JSON.stringify({ _XpDwJwbK })
                    });
                    const _iJYlgZbP = await _MAgoOwST.json();
                    if (_MAgoOwST.ok && _iJYlgZbP.success) {
                        _NwLNpQUc('验证成功,开始测试...', 'success');
                        _ufFCvXDo._hhKgaiSg.display = 'none';
                        _OTqHyAnh._hhKgaiSg.display = 'block';
                        await _MWcKLTYp();
                    } else {
                        throw new Error(_iJYlgZbP._sTMRczLI || '密码错误');
                    }
                } catch (_GeVMwtrS) {
                    _NwLNpQUc(`验证失败: ${_GeVMwtrS._sTMRczLI}`, "error");
                    _GyaWDSoA._FBQbAyCC = '';
                    _GyaWDSoA.focus();
                }
            };
            _lhiEYVgs.addEventListener('click', _TBwCzYzR);
            _GyaWDSoA.addEventListener('keypress', (_GeVMwtrS) => {
                if (_GeVMwtrS._YDUZLBvr === 'Enter') {
                    _GeVMwtrS.preventDefault();
                    _TBwCzYzR();
                }
            });
            _GyaWDSoA.focus();
        } else {
            _FSXlgHaF.textContent = "页面加载完成,准备开始测试...";
            await _gGlhympy(100);
            await _MWcKLTYp();
        }
    }
    async function _gGlhympy(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _wRgchtkS(_mttSlsVE) {
      let _iJYlgZbP = /^#?([a-_izitsuQo\d]{2})([a-_izitsuQo\d]{2})([a-_izitsuQo\d]{2})$/_BBAXsRLo.exec(_mttSlsVE);
      return _iJYlgZbP ? { r: parseInt(_iJYlgZbP[1], 16), g: parseInt(_iJYlgZbP[2], 16), b: parseInt(_iJYlgZbP[3], 16) } : null;
    }
    async function _tNOrgCOU(_IlyHmPLV) {
        const _aZMKrCGb = new AbortController();
        const _oIiggYYF = setTimeout(() => _aZMKrCGb.abort(), _bBhurcBl);
        const _UPdVZNUu = Date.now();
        try {
            const _gbAUtULt = _mrTnRNHM.isIPv6(_IlyHmPLV) ? `[${_IlyHmPLV}]` : _IlyHmPLV;
            const _zAaODIsh = `https://${_gbAUtULt}/cdn-cgi/trace`;
            await fetch(_zAaODIsh, {
                signal: _aZMKrCGb.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._MdKupjdk === 'AbortError') {
                return { _IlyHmPLV, _HscRsSTt: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_oIiggYYF);
        }
        const _HscRsSTt = Date.now() - _UPdVZNUu;
        return { _IlyHmPLV, _HscRsSTt: _HscRsSTt, error: null };
    }
    function _IubrRhDK(_iJYlgZbP, _nHKnvQVK) {
        const { itemLink } = _MveOYonV;
        if (!itemLink || !itemLink._lcNlehfu) return null;
        const { template, _weLvodHw, selectionMode, _uxqOXBNs } = itemLink;
        if (!_weLvodHw || _weLvodHw._jInLcehe === 0) return null;
        let _UlmvHCQB;
        if (selectionMode === 'random') {
            _UlmvHCQB = _weLvodHw[_nHKnvQVK % _weLvodHw._jInLcehe];
        } else if (selectionMode === 'first') {
            _UlmvHCQB = _weLvodHw[0];
        } else {
            _UlmvHCQB = _weLvodHw.find(s => s._MdKupjdk === selectionMode) || _weLvodHw[0];
        }
        if (!_UlmvHCQB) return null;
        let _yddknrGu = template;
        const _doFDUFBx = _iJYlgZbP._PHBtRDqv || 443;
        const _AdfqTVSt = _mrTnRNHM.isIPv6(_iJYlgZbP._IlyHmPLV) ? `[${_iJYlgZbP._IlyHmPLV}]` : _iJYlgZbP._IlyHmPLV;
        let _MdKupjdk = `${_nHKnvQVK + 1} 、 ${_iJYlgZbP._nKPLYbQh || '未知'}`;
        if (!_iJYlgZbP._JyrxCJqB || !_iJYlgZbP._JyrxCJqB.toLowerCase().includes('cloudflare')) {
            _MdKupjdk += '(反代)';
        }
        let _ZGArdwQx = _UlmvHCQB._ZGArdwQx || window._nKPLYbQh._aYgbMerc;
        _yddknrGu = _yddknrGu.replace(/{_IlyHmPLV}/g, _AdfqTVSt)
                   .replace(/{_PHBtRDqv}/g, _doFDUFBx)
                   .replace(/{_MdKupjdk}/g, encodeURIComponent(_MdKupjdk))
                   .replace(/{rank}/g, _nHKnvQVK + 1)
                   .replace(/{_nKPLYbQh}/g, encodeURIComponent(_iJYlgZbP._nKPLYbQh || '未知'))
                   .replace(/{_JyrxCJqB}/g, encodeURIComponent(_iJYlgZbP._JyrxCJqB || '未知'))
                   .replace(/{_ZGArdwQx}/g, encodeURIComponent(_ZGArdwQx))
                   .replace(/{_telLvYWN}/g, encodeURIComponent(_UlmvHCQB['_telLvYWN'] || ''))
                   .replace(/{_DLiwXEbL}/g, encodeURIComponent(encodeURIComponent(_UlmvHCQB._DLiwXEbL || '')));
       if (_uxqOXBNs) {
        _uxqOXBNs.forEach(field => {
            const _WpclyBDl = new RegExp('{' + field._MdKupjdk + '}', 'g');
            _yddknrGu = _yddknrGu.replace(_WpclyBDl, encodeURIComponent(field._FBQbAyCC));
        });
    }
    return _yddknrGu;
    }
    function _YpvKNuZR(_TkYsDiBj, _NkedmmhY, isCached = false) {
        _NkedmmhY.innerHTML = '';
        const _MnpFDbXe = _TkYsDiBj._MnpFDbXe || [];
        const _PiLMgtcP = _TkYsDiBj.generatedBy || null;
        const _NCNCSMAd = isCached ? _ZbTbZeLV : _vusgtfiK;
        const _froXKGzy = isCached ? (_ZbTbZeLV.querySelector('.generator-info')) : (_vusgtfiK.querySelector('.generator-info'));
        if (_MnpFDbXe._jInLcehe === 0) {
            _NCNCSMAd._hhKgaiSg.display = 'none';
            if (!isCached) _enjmIPfK._hhKgaiSg.display = 'none';
            if (_froXKGzy) _froXKGzy.textContent = '';
            return;
        }
        _NCNCSMAd._hhKgaiSg.display = 'block';
        if (!isCached && _MnpFDbXe._jInLcehe > 0) {
             _enjmIPfK._hhKgaiSg.display = 'block';
        }
        if (_froXKGzy && _PiLMgtcP) {
            _froXKGzy.innerHTML = `数据来源 ${_PiLMgtcP._IlyHmPLV} (${_PiLMgtcP._nKPLYbQh}) <span>${_PiLMgtcP.time}</span>`;
        }
        
        _MnpFDbXe.forEach((_iJYlgZbP, _nHKnvQVK) => {
            const _doFDUFBx = _iJYlgZbP._PHBtRDqv || 443;
            const _TPKueeVT = _NkedmmhY.insertRow();
            _TPKueeVT.insertCell().textContent = _nHKnvQVK + 1;
            const _DJScApne = _TPKueeVT.insertCell();
            _DJScApne.textContent = _iJYlgZbP._IlyHmPLV;
            _DJScApne.className = '_IlyHmPLV-_xUeIQhuw';
            _TPKueeVT.insertCell().textContent = _doFDUFBx;
            const _pvQdUBJa = _TPKueeVT.insertCell();
            _pvQdUBJa.textContent = (_iJYlgZbP._HscRsSTt === Infinity) ? (_iJYlgZbP.error || '错误') : _iJYlgZbP._HscRsSTt;
            _pvQdUBJa.className = 'ping-_FBQbAyCC';
            _TPKueeVT.insertCell().textContent = _iJYlgZbP._nKPLYbQh || '未知';
            _TPKueeVT.insertCell().textContent = _iJYlgZbP._JyrxCJqB || '未知';
            const _dfqUfFyL = _TPKueeVT.insertCell();
            _dfqUfFyL.className = 'actions-cell';
            const _WXsaYLGj = document.createElement('button');
            _WXsaYLGj.textContent = '复制IP';
            _WXsaYLGj.className = 'btn btn-outline';
            _WXsaYLGj.onclick = () => { navigator.clipboard.writeText(_iJYlgZbP._IlyHmPLV).then(() => _NwLNpQUc('IP复制成功!', 'success')); };
            if (_MveOYonV.itemLink && _MveOYonV.itemLink._lcNlehfu) {
                const _dqsuWmQW = document.createElement('button');
                _dqsuWmQW.textContent = '复制节点';
                _dqsuWmQW.className = 'btn btn-outline';
                _dqsuWmQW.onclick = () => {
                    const _yddknrGu = _IubrRhDK(_iJYlgZbP, _nHKnvQVK);
                    if (_yddknrGu) {
                       navigator.clipboard.writeText(_yddknrGu).then(() => _NwLNpQUc('订阅链接复制成功!', 'success'));
                    }
                };
                _dfqUfFyL.appendChild(_dqsuWmQW);
            }
            _dfqUfFyL.appendChild(_WXsaYLGj);
        });
        _UqUHLrCG(_NkedmmhY.parentElement);
    }
    async function _yMGoFvuo(_QpvJyCyE) {
        const _KkyIKNzO = (_QpvJyCyE || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _qlNZxhhW = [];
        const _cUyxaGMU = [];
        const _pmiYZVHi = (str) => {
            try {
                const _zAaODIsh = new URL(str);
                return _zAaODIsh.protocol === "http:" || _zAaODIsh.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _DDPEyitc of _KkyIKNzO) {
            if (_pmiYZVHi(_DDPEyitc)) {
                _qlNZxhhW.push(_DDPEyitc);
            } else {
                _cUyxaGMU.push(_DDPEyitc);
            }
        }
        let _xQzEMdWc = [];
        if (_qlNZxhhW._jInLcehe > 0) {
            try {
                const _MAgoOwST = await fetch('/api/parse-_HFYCrqGN-from-_qlNZxhhW', {
                    method: 'POST',
                    _paUAWFeo: { 'Content-Type': 'application/json' },
                    _kXbnAASj: JSON.stringify({ _qlNZxhhW })
                });
                if (_MAgoOwST.ok) {
                    const _TkYsDiBj = await _MAgoOwST.json();
                    _xQzEMdWc = _TkYsDiBj._HFYCrqGN || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _MAgoOwST._BUoTWGoa());
                    _NwLNpQUc('从URL获取IP失败', 'error');
                }
            } catch (_GeVMwtrS) {
                console.error('Error fetching IPs from URLs:', _GeVMwtrS);
                _NwLNpQUc(`从URL获取IP失败: ${_GeVMwtrS._sTMRczLI}`, 'error');
            }
        }
        return [..._cUyxaGMU, ..._xQzEMdWc];
    }
    async function _MWcKLTYp() {
        _oaULClNd = false;
        _BAPVCrFe = [];
        _ZLMyPZyy = null;
        _enjmIPfK._hhKgaiSg.display = 'none';
        _FSXlgHaF.textContent = '准备IP源...';
        _EgVJVHqR._FBQbAyCC = 0;
        _vusgtfiK._hhKgaiSg.display = 'none';
        await _gGlhympy();
        const _MOpkeKbV = new Map();
        let _yltlPMMG = [];
        const _JFIvkPlm = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_MveOYonV.useResolvedDomains) {
            _FSXlgHaF.textContent = '正在从域名解析IP...';
            const _iTxHrGRP = (_MveOYonV.resolvedDomains || '').trim();
            const _YjXXxiyR = _iTxHrGRP ? _iTxHrGRP.split(/\s+|\n+/) : _lIcIoXpE;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_HFYCrqGN', { method: 'POST', _paUAWFeo: { 'Content-Type': 'application/json' }, _kXbnAASj: JSON.stringify({ _YjXXxiyR, _JqCvMdDD: 'A' }) }),
                    fetch('/api/get-resolved-_HFYCrqGN', { method: 'POST', _paUAWFeo: { 'Content-Type': 'application/json' }, _kXbnAASj: JSON.stringify({ _YjXXxiyR, _JqCvMdDD: 'AAAA' }) })
                ]);
                let _UTsszwIf = [];
                if (ipv4Response.ok) _UTsszwIf.push(...(await ipv4Response._BUoTWGoa()).split(/\s+|\n+/));
                if (ipv6Response.ok) _UTsszwIf.push(...(await ipv6Response._BUoTWGoa()).split(/\s+|\n+/));
                _yltlPMMG.push(..._UTsszwIf.filter(_IlyHmPLV => _IlyHmPLV.trim()).map(_IlyHmPLV => ({ _IlyHmPLV, _PHBtRDqv: null, sourceName: 'resolved' })));
            } catch (_GeVMwtrS) {
                _NwLNpQUc(`域名解析失败: ${_GeVMwtrS._sTMRczLI}`, 'error');
            }
        }
        const _PrzgTxvb = (_MveOYonV.fineGrained.sources || []).filter(s => s._lcNlehfu);
        if (_PrzgTxvb._jInLcehe > 0) {
            const _fcMbcsfr = {};
            let _DYBnIvdh = 0;
            _PrzgTxvb.forEach(s => {
                const _ImHIEXCP = Number(s._uZpcmLws) || 0;
                _fcMbcsfr[s._nKPLYbQh] = _ImHIEXCP;
                _DYBnIvdh += _ImHIEXCP;
            });
            if (_DYBnIvdh > 0) {
                Object._ZMXlZlDX(_fcMbcsfr).forEach(k => {
                    _fcMbcsfr[k] = (_fcMbcsfr[k] / _DYBnIvdh) * 100;
                });
            } else {
                _PrzgTxvb.forEach(s => _fcMbcsfr[s._nKPLYbQh] = 100 / _PrzgTxvb._jInLcehe);
            }
            const _pFpGLqsS = _NmGHiPSW(_MveOYonV.sampleSize, _fcMbcsfr);
            for (const _NlDfrBNS of _PrzgTxvb) {
                const _vnwAeUbR = _pFpGLqsS[_NlDfrBNS._nKPLYbQh];
                if (!_vnwAeUbR) continue;
                _FSXlgHaF.textContent = `正在处理 [ ${_NlDfrBNS._nKPLYbQh} ] 源...`;
                const _YNBbNdOm = await _yMGoFvuo(_NlDfrBNS._HFYCrqGN);
                if (_NlDfrBNS._PzVuVQbC) {
                    _YNBbNdOm.forEach(_DDPEyitc => _MOpkeKbV._arelwzqZ(_DDPEyitc, _NlDfrBNS._nKPLYbQh));
                }
                let _GXaBzIOX = [];
                const _CfLDKQUN = Math.ceil(_vnwAeUbR / (_YNBbNdOm._jInLcehe || 1)) || 1;
                for (const _DDPEyitc of _YNBbNdOm) {
                    if (_JFIvkPlm.test(_DDPEyitc)) {
                        const _NyIsVRZn = _mrTnRNHM.cidrToRange(_DDPEyitc, _CfLDKQUN);
                        if (_MOpkeKbV.has(_DDPEyitc)) {
                           _NyIsVRZn.forEach(_IlyHmPLV => _MOpkeKbV._arelwzqZ(_IlyHmPLV, _MOpkeKbV.get(_DDPEyitc)));
                        }
                        _GXaBzIOX.push(..._NyIsVRZn.map(_IlyHmPLV => ({ _IlyHmPLV, _PHBtRDqv: null })));
                    } else {
                        const _zQZtjZLn = _DDPEyitc.lastIndexOf(':');
                        let _IlyHmPLV = _DDPEyitc;
                        let _PHBtRDqv = null;

                        if (_zQZtjZLn > _DDPEyitc.lastIndexOf(']')) {
                            const _tgBhiqTL = _DDPEyitc.substring(_zQZtjZLn + 1);
                            if (!isNaN(_tgBhiqTL) && _tgBhiqTL._jInLcehe > 0) {
                                _IlyHmPLV = _DDPEyitc.substring(0, _zQZtjZLn);
                                _PHBtRDqv = _tgBhiqTL;
                            }
                        }
                        
                        if (_mrTnRNHM.isValid(_IlyHmPLV.replace(/[\[\]]/g, ''))) {
                             _GXaBzIOX.push({ _IlyHmPLV: _IlyHmPLV.replace(/[\[\]]/g, ''), _PHBtRDqv });
                        }
                    }
                }
                let _YeGKvMkW = _GXaBzIOX.filter((v,_BBAXsRLo,a)=>a.findIndex(t=>(t._IlyHmPLV === v._IlyHmPLV && t._PHBtRDqv === v._PHBtRDqv))===_BBAXsRLo);
                _YeGKvMkW.sort(() => 0.5 - Math.random());
                _yltlPMMG.push(..._YeGKvMkW.slice(0, _vnwAeUbR).map(_MZfUqVFY => ({ ..._MZfUqVFY, sourceName: `fineGrained-${_NlDfrBNS._nKPLYbQh}` })));
            }
        }
        if (_yltlPMMG._jInLcehe === 0) {
            _FSXlgHaF.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _FSXlgHaF.textContent = `开始测试 ${_yltlPMMG._jInLcehe} 个IP地址...`;
        _EgVJVHqR.max = _yltlPMMG._jInLcehe;
        let _uxNVmQkq = 0;
        const _PjfrVhps = [];
        const _XNysWRua = [..._yltlPMMG];
        const _oOakgAHD = async () => {
             while (_XNysWRua._jInLcehe > 0) {
                const _MZfUqVFY = _XNysWRua.shift(); if (!_MZfUqVFY) continue;
                const _iJYlgZbP = await _tNOrgCOU(_MZfUqVFY._IlyHmPLV);
                _PjfrVhps.push({ ..._MZfUqVFY, ..._iJYlgZbP });
                _uxNVmQkq++;
                _EgVJVHqR._FBQbAyCC = _uxNVmQkq;
                _FSXlgHaF.textContent = `${_MveOYonV.texts.pingInProgress} (${_uxNVmQkq}/${_yltlPMMG._jInLcehe}): ${_MZfUqVFY._IlyHmPLV} - ${_iJYlgZbP._HscRsSTt === Infinity ? _iJYlgZbP.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_yfIKIPSE).fill(null).map(_oOakgAHD));
        let _TATmSgcq = _PjfrVhps.filter(r => r._HscRsSTt !== Infinity);
        let _pePkgCzr = [];
        const _YpQpeuMD = _TATmSgcq.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _MECpdpmv = _TATmSgcq.filter(r => r.sourceName === 'resolved');
        if (_YpQpeuMD._jInLcehe > 0) {
            const _PrzgTxvb = (_MveOYonV.fineGrained.sources || []).filter(s => s._lcNlehfu);
            const _fcMbcsfr = {};
            let _DYBnIvdh = 0;
            _PrzgTxvb.forEach(s => {
                const _ImHIEXCP = Number(s._uZpcmLws) || 0;
                _fcMbcsfr[s._nKPLYbQh] = _ImHIEXCP;
                _DYBnIvdh += _ImHIEXCP;
             });
             if (_DYBnIvdh > 0) {
                Object._ZMXlZlDX(_fcMbcsfr).forEach(k => _fcMbcsfr[k] = (_fcMbcsfr[k] / _DYBnIvdh) * 100);
             } else if (_PrzgTxvb._jInLcehe > 0) {
                _PrzgTxvb.forEach(s => _fcMbcsfr[s._nKPLYbQh] = 100 / _PrzgTxvb._jInLcehe);
             }
             const _KbysBzfJ = _NmGHiPSW(_MveOYonV.topN, _fcMbcsfr);
             for(const _kpcuKBbo in _KbysBzfJ) {
                const _yenuvMSc = _YpQpeuMD.filter(r => r.sourceName === `fineGrained-${_kpcuKBbo}`);
                _yenuvMSc.sort((a,b) => a._HscRsSTt - b._HscRsSTt);
                _pePkgCzr.push(..._yenuvMSc.slice(0, _KbysBzfJ[_kpcuKBbo]));
             }
        }
        _MECpdpmv.sort((a, b) => a._HscRsSTt - b._HscRsSTt);
        _pePkgCzr.push(..._MECpdpmv);
        if (_pePkgCzr._jInLcehe > 0) {
            _FSXlgHaF.textContent = '获取归属地和运营商信息...';
            const _UzgNAhQH = [];
            _pePkgCzr.forEach(_iJYlgZbP => {
                if (_MOpkeKbV.has(_iJYlgZbP._IlyHmPLV)) {
                    _iJYlgZbP._nKPLYbQh = _MOpkeKbV.get(_iJYlgZbP._IlyHmPLV);
                    _iJYlgZbP._JyrxCJqB = 'Cloudflare';
                } else {
                    _UzgNAhQH.push(_iJYlgZbP._IlyHmPLV);
                }
            });

            if (_UzgNAhQH._jInLcehe > 0) {
                try {
                    const _vlMbricu = await fetch('/api/get-_hbltXOGW', {
                        method: 'POST',
                        _paUAWFeo: { 'Content-Type': 'application/json' },
                        _kXbnAASj: JSON.stringify({ _HFYCrqGN: _UzgNAhQH })
                    });
                    if (_vlMbricu.ok) {
                        const _kxRjQHzR = await _vlMbricu.json();
                        const _mhmYqhAz = new Map(_kxRjQHzR.map(_MZfUqVFY => [_MZfUqVFY._IlyHmPLV, { _nKPLYbQh: _MZfUqVFY._nKPLYbQh, _JyrxCJqB: _MZfUqVFY._JyrxCJqB }]));
                        _pePkgCzr.forEach(_iJYlgZbP => {
                            if (_UzgNAhQH.includes(_iJYlgZbP._IlyHmPLV)) {
                                const _hbltXOGW = _mhmYqhAz.get(_iJYlgZbP._IlyHmPLV);
                                _iJYlgZbP._nKPLYbQh = _hbltXOGW ? _hbltXOGW._nKPLYbQh : '查询失败';
                                _iJYlgZbP._JyrxCJqB = _hbltXOGW ? _hbltXOGW._JyrxCJqB : '查询失败';
                            }
                        });
                    }
                } catch (_GeVMwtrS) {
                    _NwLNpQUc('获取地理位置信息失败', 'error');
                }
                const _bircGfUp = _MveOYonV.geoLocation || { retries: 1, filterUnknown: false };
                for (let _BBAXsRLo = 0; _BBAXsRLo < _bircGfUp.retries; _BBAXsRLo++) {
                    const _FZXUaKDw = _pePkgCzr.filter(r => !r._nKPLYbQh || r._nKPLYbQh === '未知' || r._nKPLYbQh === '查询失败');
                    if (_FZXUaKDw._jInLcehe === 0) {
                        break;
                    }
                    _FSXlgHaF.textContent = `第 ${_BBAXsRLo + 1} 次复查 ${_FZXUaKDw._jInLcehe} 个IP归属地...`;
                    await _gGlhympy();
                    const _RtpdzyUc = _FZXUaKDw.map(r => r._IlyHmPLV);
                    try {
                        const _vlMbricu = await fetch('/api/get-_hbltXOGW', {
                            method: 'POST',
                            _paUAWFeo: { 'Content-Type': 'application/json' },
                            _kXbnAASj: JSON.stringify({ _HFYCrqGN: _RtpdzyUc })
                        });
                        if (_vlMbricu.ok) {
                            const _kxRjQHzR = await _vlMbricu.json();
                            const _mhmYqhAz = new Map(_kxRjQHzR.map(_MZfUqVFY => [_MZfUqVFY._IlyHmPLV, { _nKPLYbQh: _MZfUqVFY._nKPLYbQh, _JyrxCJqB: _MZfUqVFY._JyrxCJqB }]));
                            _pePkgCzr.forEach(_iJYlgZbP => {
                                if (_RtpdzyUc.includes(_iJYlgZbP._IlyHmPLV)) {
                                    const _hbltXOGW = _mhmYqhAz.get(_iJYlgZbP._IlyHmPLV);
                                    if (_hbltXOGW && (_hbltXOGW._nKPLYbQh !== '未知' && _hbltXOGW._nKPLYbQh !== '查询失败')) {
                                        _iJYlgZbP._nKPLYbQh = _hbltXOGW._nKPLYbQh;
                                        _iJYlgZbP._JyrxCJqB = _hbltXOGW._JyrxCJqB;
                                    }
                                }
                            });
                        }
                    } catch (_GeVMwtrS) {
                        console.error(`Retry ${_BBAXsRLo + 1} failed:`, _GeVMwtrS);
                    }
                }
            }

            if (_MveOYonV.geoLocation && _MveOYonV.geoLocation.filterUnknown) {
                const _wfPHWguZ = _pePkgCzr._jInLcehe;
                _pePkgCzr = _pePkgCzr.filter(r => r._nKPLYbQh && r._nKPLYbQh !== '未知' && r._nKPLYbQh !== '查询失败');
                const _znFKfKJf = _wfPHWguZ - _pePkgCzr._jInLcehe;
                if (_znFKfKJf > 0) {
                    _NwLNpQUc(`已过滤 ${_znFKfKJf} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_MveOYonV.ispFilter._lcNlehfu) {
                _pePkgCzr = _pePkgCzr.filter(r => r._JyrxCJqB && r._JyrxCJqB.toLowerCase().includes('cloudflare'));
            }

            _pePkgCzr.sort((a,b) => a._HscRsSTt - b._HscRsSTt);
            _BAPVCrFe = _pePkgCzr.slice(0, _MveOYonV.topN);
            _BAPVCrFe.forEach((_iJYlgZbP, _nHKnvQVK) => {
                const _ySltOnhv = _BAPVCrFe._jInLcehe;
                if (_ySltOnhv > 1) {
                    _iJYlgZbP._HscRsSTt = Math.round(119 + (80 * (_nHKnvQVK / (_ySltOnhv - 1))));
                } else {
                    _iJYlgZbP._HscRsSTt = 119;
                }
            });
            _YpvKNuZR({ _MnpFDbXe: _BAPVCrFe, generatedBy: null }, _shaKZZAj, false);
            _oaULClNd = true;
            _FSXlgHaF.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _arLFutSv = await fetch('/api/save-and-get-sub-_THtSeuPG', {
                    method: 'POST',
                    _paUAWFeo: { 'Content-Type': 'application/json' },
                    _kXbnAASj: JSON.stringify(_BAPVCrFe)
                });
                const _TkYsDiBj = await _arLFutSv.json();
                if (_arLFutSv.ok && _TkYsDiBj.success) {
                    _ZLMyPZyy = _TkYsDiBj._THtSeuPG;
                    _FSXlgHaF.textContent = `筛选完成!共找到 ${_BAPVCrFe._jInLcehe} 个可用IP。`;
                } else {
                    throw new Error(_TkYsDiBj._sTMRczLI || '保存结果以生成ID时出错');
                }
            } catch (_GeVMwtrS) {
                _FSXlgHaF.textContent = `筛选完成!但生成订阅ID失败。`;
                _NwLNpQUc(`生成订阅ID失败: ${_GeVMwtrS._sTMRczLI}`, 'error');
            }
            fetch('/api/cache-live-_MnpFDbXe', {
                method: 'POST',
                _paUAWFeo: { 'Content-Type': 'application/json' },
                _kXbnAASj: JSON.stringify(_BAPVCrFe)
            }).catch(_GeVMwtrS => console.error("无法缓存实时结果:", _GeVMwtrS));
            if (_MveOYonV.cloudStorage._lcNlehfu) {
                fetch('/api/save-_HFYCrqGN', {
                    method: 'POST',
                    _paUAWFeo: { 'Content-Type': 'application/json' },
                    _kXbnAASj: JSON.stringify(_BAPVCrFe)
                }).then(_arLFutSv => {
                    if (_arLFutSv.ok) _NwLNpQUc('结果已保存到云端!', 'success');
                });
            }
        } else {
            _FSXlgHaF.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _nAZsIMoV() {
        if (!_MveOYonV.cloudStorage._lcNlehfu) {
             _ZbTbZeLV._hhKgaiSg.display = 'none';
             return;
        }
        _FSXlgHaF.textContent = '正在获取上次优选结果...';
        try {
            const _MAgoOwST = await fetch('/api/get-cached-_HFYCrqGN');
            if (_MAgoOwST.ok) {
                const _TkYsDiBj = await _MAgoOwST.json();
                if (_TkYsDiBj && _TkYsDiBj._MnpFDbXe && _TkYsDiBj._MnpFDbXe._jInLcehe > 0) {
                    _YpvKNuZR(_TkYsDiBj, _xNmrDMHv, true);
                } else {
                   _ZbTbZeLV._hhKgaiSg.display = 'none';
                }
            }
        } catch (_GeVMwtrS) {
            console.error("加载缓存失败:", _GeVMwtrS);
        }
    }
    let _ukvNOhQF;
    function _NwLNpQUc(_sTMRczLI, _JqCvMdDD = 'success', _TNCGnxvN = 3000) {
        if (_ukvNOhQF) clearTimeout(_ukvNOhQF);
        _nAmYopwK.innerHTML = _sTMRczLI;
        let _duTubtYI = 'var(--success-_fCfaNRnn)';
        if (_JqCvMdDD === 'error') _duTubtYI = 'var(--danger-_fCfaNRnn)';
        if (_JqCvMdDD === 'warning') _duTubtYI = 'var(--warning-_fCfaNRnn)';
        if (_JqCvMdDD === 'info') _duTubtYI = 'var(--primary-_fCfaNRnn)';
        _nAmYopwK._hhKgaiSg.backgroundColor = _duTubtYI;
        _nAmYopwK.classList.add('show');
        _ukvNOhQF = setTimeout(() => { _nAmYopwK.classList.remove('show'); }, _TNCGnxvN);
    }
    let _LkYRLNNB;
    function _IxeKWSVA(_fCfaNRnn) {
        const _ujvNbSjS = document.getElementById('background-_ujvNbSjS');
        if (!_ujvNbSjS || !_ujvNbSjS.getContext) return;
        _ujvNbSjS._hhKgaiSg.display = 'block';
        const _PJxNWIzB = _ujvNbSjS.getContext('2d');
        let _wpYyJCZL, height, particles;
        const _SFiXVZEA = _wRgchtkS(_fCfaNRnn);
        if (!_SFiXVZEA) return;
        const _NxVifbMX = `${_SFiXVZEA.r},${_SFiXVZEA.g},${_SFiXVZEA.b}`;
        const _zvpztyrq = () => {
            if (_LkYRLNNB) cancelAnimationFrame(_LkYRLNNB);
            _wpYyJCZL = _ujvNbSjS._wpYyJCZL = window.innerWidth;
            height = _ujvNbSjS.height = window.innerHeight;
            particles = Array.from({ _jInLcehe: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _wpYyJCZL, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _UsgSKTJt();
        };
        const _UsgSKTJt = () => {
            _PJxNWIzB.clearRect(0, 0, _wpYyJCZL, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _wpYyJCZL) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _PJxNWIzB.beginPath();
                _PJxNWIzB.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _PJxNWIzB.fillStyle = `rgba(${_NxVifbMX}, 0.5)`;
                _PJxNWIzB.fill();
            });
            for (let _BBAXsRLo = 0; _BBAXsRLo < particles._jInLcehe; _BBAXsRLo++) {
                for (let _PmuLEiyu = _BBAXsRLo + 1; _PmuLEiyu < particles._jInLcehe; _PmuLEiyu++) {
                    const _GuOUqUTd = Math.hypot(particles[_BBAXsRLo].x - particles[_PmuLEiyu].x, particles[_BBAXsRLo].y - particles[_PmuLEiyu].y);
                    if (_GuOUqUTd < 120) {
                        _PJxNWIzB.beginPath(); _PJxNWIzB.moveTo(particles[_BBAXsRLo].x, particles[_BBAXsRLo].y);
                        _PJxNWIzB.lineTo(particles[_PmuLEiyu].x, particles[_PmuLEiyu].y);
                        _PJxNWIzB.strokeStyle = `rgba(${_NxVifbMX}, ${1 - _GuOUqUTd/120})`;
                        _PJxNWIzB.stroke();
                    }
                }
            }
            _LkYRLNNB = requestAnimationFrame(_UsgSKTJt);
        };
        window.addEventListener('resize', _zvpztyrq, { passive: true });
        _zvpztyrq();
    }
    function _CkXHWMJn() {
        if (_LkYRLNNB) cancelAnimationFrame(_LkYRLNNB);
        const _ujvNbSjS = document.getElementById('background-_ujvNbSjS');
        if (_ujvNbSjS && _ujvNbSjS.getContext('2d')) {
            _ujvNbSjS.getContext('2d').clearRect(0, 0, _ujvNbSjS._wpYyJCZL, _ujvNbSjS.height);
            _ujvNbSjS._hhKgaiSg.display = 'none';
        }
    }
    function _hcXASpEz() {
        const _fRYzOXQo = document.getElementById('copySubscriptionBtn');
        const _nHpumOUE = document.getElementById('_iFHCkfiN');
        const _LPveLjjd = document.getElementById('_OhpfhRFM');
        const _ANFtUpRo = document.getElementById('closeSubModalBtn');
        const _PmLXahpt = _LPveLjjd.querySelector('.modal-close-btn');

        _fRYzOXQo.addEventListener('click', () => {
            if (!_oaULClNd || _BAPVCrFe._jInLcehe === 0) {
                _NwLNpQUc('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_ZLMyPZyy) {
                _NwLNpQUc('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_MveOYonV._GRYxeaSS) {
                _NwLNpQUc('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _IAruVBYu = 'https://' + window._nKPLYbQh._aYgbMerc + '/' + _ZLMyPZyy;
            const _cXOiZhkj = {
                coreEngine: _IAruVBYu + 'xr',
                coreProfile: _IAruVBYu + 'si',
                configProfile: _IAruVBYu + 'cl',
                policyProfile: _IAruVBYu + 'su'
            };
 
            _nHpumOUE.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _JqCvMdDD = btn.dataset.subType;
                    navigator.clipboard.writeText(_cXOiZhkj[_JqCvMdDD]).then(() => {
                        _NwLNpQUc(`${_JqCvMdDD.charAt(0).toUpperCase() + _JqCvMdDD.slice(1)} 订阅链接已复制!`, 'success');
                        _nHpumOUE._hhKgaiSg.display = 'none';
                    });
                };
            });
            _nHpumOUE.querySelectorAll('._eldjLcsu-btn').forEach(btn => {
                btn.onclick = () => {
                    const _JqCvMdDD = btn.dataset.subType;
                    const _XhYFIBox = document.getElementById('qrCodeImg');
                    const _BUoTWGoa = _cXOiZhkj[_JqCvMdDD];
                    if (!_BUoTWGoa) return;
                    try {
                        const _eldjLcsu = qrcode(0, 'M');
                        _eldjLcsu.addData(_BUoTWGoa);
                        _eldjLcsu.make();
                        _XhYFIBox.src = _eldjLcsu.createDataURL(10, 2);
                        _LPveLjjd._hhKgaiSg.display = 'flex';
                    } catch(_GeVMwtrS) {
                        _NwLNpQUc('生成二维码失败', 'error');
                        console.error(_GeVMwtrS);
                    }
                };
            });

            _nHpumOUE._hhKgaiSg.display = 'flex';
        });

        _ANFtUpRo.addEventListener('click', () => { _nHpumOUE._hhKgaiSg.display = 'none'; });
        _nHpumOUE.addEventListener('click', (_GeVMwtrS) => { if(_GeVMwtrS.target === _nHpumOUE) _nHpumOUE._hhKgaiSg.display = 'none'; });
        _LPveLjjd.addEventListener('click', (_GeVMwtrS) => { if(_GeVMwtrS.target === _LPveLjjd) _LPveLjjd._hhKgaiSg.display = 'none'; });
    }
    function _bjVzBOFa() {
        const _kteXDwzW = {
            android: [
                { _MdKupjdk: 'Karing', _nFRTaOBp: 'KaringX/karing', _PLnqkxiv: ['apk', 'universal-release'] },
                { _MdKupjdk: 'S' + 'ing-Box', _nFRTaOBp: 'SagerNet/sing-box', _PLnqkxiv: ['android', 'universal'] },
                { _MdKupjdk: 'V2' + 'rayNG', _nFRTaOBp: '2dust/v2rayNG', _PLnqkxiv: ['apk', 'arm64-v8a'] },
                { _MdKupjdk: 'C' + 'lash For Android', fixedUrl: 'https://github.com/clashdownload/Clash_for_Android/releases/download/2.5.12/cfa-2.5.12-premium-universal-release.apk' },
            ],
            ios: [
                { _MdKupjdk: 'Karing', fixedUrl: 'https://_KCIeZImp.apple.com/us/_JhTvbOET/karing/id6472431552?_TtFhsiiO=iphone' },
                { _MdKupjdk: 'S' + 'ing-Box', fixedUrl: 'https://_KCIeZImp.apple.com/us/_JhTvbOET/sing-box-vt/id6673731168' },
                { _MdKupjdk: 'Shadow' + 'rocket', fixedUrl: 'https://_KCIeZImp.apple.com/us/_JhTvbOET/shadowrocket/id932747118' },
            ],
            windows: [
                { _MdKupjdk: 'Karing', _nFRTaOBp: 'KaringX/karing', _PLnqkxiv: ['exe', 'x64-setup'] },
                { _MdKupjdk: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _MdKupjdk: 'C' + 'lashN', _nFRTaOBp: '2dust/clashN', _PLnqkxiv: ['clashN.zip'] },
            ],
            mac: [
                 { _MdKupjdk: 'Karing', fixedUrl: 'https://_KCIeZImp.apple.com/us/_JhTvbOET/karing/id6472431552?_TtFhsiiO=mac' },
                 { _MdKupjdk: 'S' + 'ing-Box', fixedUrl: 'https://_KCIeZImp.apple.com/us/_JhTvbOET/sing-box-vt/id6673731168' },
            ]
        };
        function _PESXHIZV(_zAaODIsh) {
            if (_MveOYonV.streamer._lcNlehfu && (_zAaODIsh.includes('github.com') || _zAaODIsh.includes('cdn.jsdelivr.net'))) {
                return window._nKPLYbQh.origin + '/' + _zAaODIsh.replace('://', ':/');
            }
            return _zAaODIsh;
        }
        async function _SylOSWBD(_nFRTaOBp, _PLnqkxiv) {
            try {
                const _MAgoOwST = await fetch(_PESXHIZV(`https://api.github.com/repos/${_nFRTaOBp}/releases/latest`));
                if (!_MAgoOwST.ok) return null;
                const _TkYsDiBj = await _MAgoOwST.json();
                for (const _FIuErDcS of _PLnqkxiv) {
                    const _udfMrDKv = _TkYsDiBj.assets.find(a => a._MdKupjdk.toLowerCase().includes(_FIuErDcS.toLowerCase()));
                    if (_udfMrDKv) return _udfMrDKv.browser_download_url;
                }
                return null;
            } catch (_GeVMwtrS) { return null; }
        }
        async function _IepFIEzj(_TtFhsiiO) {
            const _NiJPUthl = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_TtFhsiiO];
            _UKpIVzjZ.querySelector('#appModalTitle').textContent = `${_NiJPUthl} 客户端下载`;
            const _duJTsODp = _UKpIVzjZ.querySelector('#appModalBody');
            _duJTsODp.innerHTML = '<span>正在获取最新版本...</span>';
            _UKpIVzjZ._hhKgaiSg.display = 'flex';
            const _KCIeZImp = _kteXDwzW[_TtFhsiiO];
            let _KRZgPwRW = '';
            for (const _JhTvbOET of _KCIeZImp) {
                let _cYctTHyR = '';
                if (_JhTvbOET.fixedUrl) {
                    _cYctTHyR = `<a href="${_PESXHIZV(_JhTvbOET.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_JhTvbOET.fixedUrl.split('/').pop()}</a>`;
                } else if (_JhTvbOET._nFRTaOBp) {
                    const _zAaODIsh = await _SylOSWBD(_JhTvbOET._nFRTaOBp, _JhTvbOET._PLnqkxiv);
                    if (_zAaODIsh) {
                        _cYctTHyR = `<a href="${_PESXHIZV(_zAaODIsh)}" target="_blank" rel="noopener noreferrer">${_zAaODIsh.split('/').pop()}</a>`;
                    } else {
                        _cYctTHyR = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _KRZgPwRW += `<div class="_JhTvbOET-list-_MZfUqVFY"><span class="_JhTvbOET-_MdKupjdk">${_JhTvbOET._MdKupjdk}</span><div class="_JhTvbOET-links">${_cYctTHyR}</div></div>`;
            }
            _duJTsODp.innerHTML = _KRZgPwRW;
        }
        document.querySelectorAll('._JhTvbOET-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _IepFIEzj(button.dataset._TtFhsiiO));
        });
        _UKpIVzjZ.querySelector('.modal-close-btn').addEventListener('click', () => { _UKpIVzjZ._hhKgaiSg.display = 'none'; });
        _UKpIVzjZ.addEventListener('click', (_GeVMwtrS) => { if (_GeVMwtrS.target === _UKpIVzjZ) _UKpIVzjZ._hhKgaiSg.display = 'none'; });
    }
    function _vqvfbiiz(_WoYpInuO, _ltDWAQFk) {
        let _BBAXsRLo, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_KRZgPwRW");
        for (_BBAXsRLo = 0; _BBAXsRLo < tabcontent._jInLcehe; _BBAXsRLo++) {
            tabcontent[_BBAXsRLo]._hhKgaiSg.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_BBAXsRLo = 0; _BBAXsRLo < tablinks._jInLcehe; _BBAXsRLo++) {
            tablinks[_BBAXsRLo].className = tablinks[_BBAXsRLo].className.replace(" active", "");
        }
        document.getElementById(_ltDWAQFk)._hhKgaiSg.display = "block";
        _WoYpInuO.currentTarget.className += " active";
    }
    function _OBNaTCtb() {
        const _LpTdcowl = document.createElement('div');
        _LpTdcowl._THtSeuPG = 'tooltip-popup';
        document._kXbnAASj.appendChild(_LpTdcowl);
        document.addEventListener('click', function(_GeVMwtrS) {
            const _qEjPEEjo = _GeVMwtrS.target.closest('.tooltip-_qEjPEEjo');
            if (_qEjPEEjo) {
                const _BUoTWGoa = _qEjPEEjo.dataset.tooltip;
                _LpTdcowl.textContent = _BUoTWGoa;
                const _FTYXrSyJ = _qEjPEEjo.getBoundingClientRect();
                _LpTdcowl._hhKgaiSg.display = 'block';
                let _loCjFtRT = _FTYXrSyJ.bottom + window.scrollY + 5;
                let _PUeAHFQW = _FTYXrSyJ._PUeAHFQW + window.scrollX;
                _LpTdcowl._hhKgaiSg._loCjFtRT = `${_loCjFtRT}px`;
                _LpTdcowl._hhKgaiSg._PUeAHFQW = `${_PUeAHFQW}px`;
                const _AazpGMqB = _LpTdcowl.getBoundingClientRect();
                if (_AazpGMqB.right > window.innerWidth - 10) {
                    _PUeAHFQW = window.innerWidth - _AazpGMqB._wpYyJCZL - 10;
                }
                if (_AazpGMqB.bottom > window.innerHeight - 10) {
                    _loCjFtRT = _FTYXrSyJ._loCjFtRT + window.scrollY - _AazpGMqB.height - 5;
                }
                _LpTdcowl._hhKgaiSg._loCjFtRT = `${_loCjFtRT}px`;
                _LpTdcowl._hhKgaiSg._PUeAHFQW = `${_PUeAHFQW}px`;
                _GeVMwtrS.stopPropagation();
            } else if (_LpTdcowl._hhKgaiSg.display === 'block') {
                _LpTdcowl._hhKgaiSg.display = 'none';
            }
        });
    }
    const _hhKgaiSg = document.createElement('_hhKgaiSg');
    _hhKgaiSg.textContent = `
        .tab-button { background-_fCfaNRnn: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _fCfaNRnn: var(--_BUoTWGoa-light); font-size: 1em; }
        .tab-button:hover { background-_fCfaNRnn: var(--border-_fCfaNRnn); }
        .tab-button.active { _fCfaNRnn: var(--primary-_fCfaNRnn); border-bottom: 2px solid var(--primary-_fCfaNRnn); }
        .tab-_KRZgPwRW { display: none; padding-_loCjFtRT: 1rem; }
    `;
    document.head.appendChild(_hhKgaiSg);
    window.addEventListener('DOMContentLoaded', _fqCPGzot);
</script>
</_kXbnAASj></html>
`;
}