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


import { connect } from "cloudflare:sockets";

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

const _DteOLKiy = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _rShxmsAy = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _PcPGLzVD = '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 _ntvesuxS = '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 _jqpNtfEi(_tHTUmKrx) {
    if (Array.isArray(_tHTUmKrx)) {
        try {
            return String.fromCharCode.apply(null, _tHTUmKrx);
        } catch (_xCydVfWL) {
            return '';
        }
    }
    return _tHTUmKrx;
}

function _wENsuRyC(_ZFMylRPE) {
    return /^[0-9a-_IuEDKggu]{8}-[0-9a-_IuEDKggu]{4}-[4][0-9a-_IuEDKggu]{3}-[89ab][0-9a-_IuEDKggu]{3}-[0-9a-_IuEDKggu]{12}$/_uUkhUKtY.test(_ZFMylRPE);
}

const _BAKtQKzl = "optimized_ips_v4";
const _NwZYsUjH = "global_config_v4";
const _zJixQGui = "admin_password_v4";
const _vGleAeUq = "live_results_temp_v1";
const _dgnxTKKa = "latest_sub_id_v1";

export default {
  async fetch(_NFlzziTu, _kSghXjZM, _keflYwWs) {
    try {
      if (!_kSghXjZM.DB) {
          const _FCYfozFe = _eFZImgcf("D1 数据库 'DB' 未绑定。");
          return new Response(_FCYfozFe, { status: 503, _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/html;_bDmbqFUt=UTF-8' }});
      }

      _keflYwWs.waitUntil(
          _kSghXjZM.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_sWpWHESH TEXT PRIMARY KEY, _tHTUmKrx TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_ZFMylRPE TEXT PRIMARY KEY, _VEFfqbuc TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_xCydVfWL => console.error("DB Init Error:", _xCydVfWL._MhwlvCzj))
      );

      const _tHpQGhxp = new URL(_NFlzziTu._tHpQGhxp);
      const _MsJZEhdg = _tHpQGhxp.pathname;
      const _qqFnQllB = _NFlzziTu._VTWxvQwV.get("Upgrade");
      const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
      
      if (_iBFSEHoA.websocketStreamer && _iBFSEHoA.websocketStreamer._PxfEhgmV && _qqFnQllB && _qqFnQllB.toLowerCase() === "websocket") {
          const _hFrOadzs = _iBFSEHoA.websocketStreamer._tHpQGhxp;
          if (_hFrOadzs && _hFrOadzs.trim().startsWith('https://')) {
              try {
                  const _DnYinjLw = new Request(_hFrOadzs.trim() + _tHpQGhxp.pathname + _tHpQGhxp.search, _NFlzziTu);
                  return await fetch(_DnYinjLw);
              } catch (_xCydVfWL) {
                  return new Response(`Upstream WebSocket gateway failed: ${_xCydVfWL._MhwlvCzj}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_qqFnQllB && _qqFnQllB.toLowerCase() === "websocket") {
          return await _szYgEMFE(_NFlzziTu, _kSghXjZM, _iBFSEHoA);
      }
      
      const _sibPAlHU = _MsJZEhdg._JUIPvPSj(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_sibPAlHU) {
          const [, _mGQRxrYZ, typeSuffix] = _sibPAlHU;
          const _egnAfGgU = _iBFSEHoA._egnAfGgU;
          if (!_egnAfGgU || _egnAfGgU.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' } });
          }
          const _BSlnlniD = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _AKuEhIol = _BSlnlniD[typeSuffix];
          const _VfCkVMyx = _egnAfGgU.replace(/\/$/, '');
          const _MgnttaPk = `${_tHpQGhxp.origin}/${_mGQRxrYZ}`;
          const _TwwlyNru = `${_VfCkVMyx}/${_AKuEhIol}?_iBFSEHoA=${encodeURIComponent(_MgnttaPk)}`;
          try {
              const _yGXevOlY = await fetch(_TwwlyNru, { _VTWxvQwV: { 'User-Agent': _NFlzziTu._VTWxvQwV.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _HjPALYqf = new Headers(_yGXevOlY._VTWxvQwV);
              _HjPALYqf._jNwuomlq('Access-Control-Allow-Origin', '*');
              return new Response(_yGXevOlY._RhJzDlxQ, { status: _yGXevOlY.status, statusText: _yGXevOlY.statusText, _VTWxvQwV: _HjPALYqf });
          } catch (_xCydVfWL) {
              return new Response(`获取上游订阅失败: ${_xCydVfWL._MhwlvCzj}`, { status: 502, _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' } });
          }
      }

      if (_MsJZEhdg.startsWith('/https:/') || _MsJZEhdg.startsWith('/http:/')) {
          return _jBxUAalb(_NFlzziTu, _iBFSEHoA);
      }
      
      if (_iBFSEHoA.customSubPath && _iBFSEHoA.customSubPath._PxfEhgmV && _iBFSEHoA.customSubPath._MsJZEhdg && _MsJZEhdg === '/' + _iBFSEHoA.customSubPath._MsJZEhdg.trim()) {
          const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_dgnxTKKa);
          const { _LaHpOhNV } = await _qOcahdJY.all();
          const _UylCwbHz = _LaHpOhNV._BKxGrdWY > 0 ? _LaHpOhNV[0]._tHTUmKrx : null;
          if (_UylCwbHz) {
              return _LJwAKNWp({ _cFxixrai: { _ZFMylRPE: _UylCwbHz }, _tHpQGhxp: _NFlzziTu._tHpQGhxp }, _kSghXjZM);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' } });
          }
      }
      
      const _YaHUKLYy = _MsJZEhdg.split('/').filter(Boolean);
      if (_YaHUKLYy._BKxGrdWY === 1 && !_MsJZEhdg.startsWith('/api/')) {
          const _mGQRxrYZ = _YaHUKLYy[0];
          return _LJwAKNWp({ _cFxixrai: { _ZFMylRPE: _mGQRxrYZ }, _tHpQGhxp: _NFlzziTu._tHpQGhxp }, _kSghXjZM);
      }

      if (_MsJZEhdg.startsWith('/api/')) {
          if (_MsJZEhdg === '/api/_iBFSEHoA' && _NFlzziTu.method === 'POST') return _ppcThWpb(_NFlzziTu, _kSghXjZM, _keflYwWs);
          if (_MsJZEhdg === '/api/_jNwuomlq-_ZQcpOmgH') return _FquKoLZI(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/change-_ZQcpOmgH') return _AgfThhvu(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/verify-_ZQcpOmgH') return _dnhljPUP(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/verify-visitor-_ZQcpOmgH' && _NFlzziTu.method === 'POST') return _qvJpIEKw(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/cache-live-_LaHpOhNV' && _NFlzziTu.method === 'POST') return _urfWOnbc(_NFlzziTu, _kSghXjZM, _keflYwWs);
          if (_MsJZEhdg === '/api/get-_gClllcBx' && _NFlzziTu.method === 'POST') return _ZxAxxVWe(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/get-cached-_KZTmtaHQ') return _CXoytOfQ(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/save-_KZTmtaHQ') return _gZxYQedd(_NFlzziTu, _kSghXjZM, _keflYwWs);
          if (_MsJZEhdg === '/api/save-and-get-sub-_ZFMylRPE' && _NFlzziTu.method === 'POST') return _HrVoRILt(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg.startsWith('/api/get-_HuFljqkj/')) {
              const _mGQRxrYZ = _MsJZEhdg.split('/').pop();
              return _LJwAKNWp({ _cFxixrai: { _ZFMylRPE: _mGQRxrYZ }, _tHpQGhxp: _NFlzziTu._tHpQGhxp }, _kSghXjZM);
          }
          if (_MsJZEhdg === '/api/_iBFSEHoA' && _NFlzziTu.method === 'GET') return _JfjbnOYD(_kSghXjZM);
          if (_MsJZEhdg === '/api/get-resolved-_KZTmtaHQ') return _SuqyuByk(_NFlzziTu);
          if (_MsJZEhdg === '/api/parse-_KZTmtaHQ-from-_SLzPmHEY' && _NFlzziTu.method === 'POST') return _ELBnndse(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/endpoints') return _ZEdPnzJb(_NFlzziTu, _kSghXjZM);
          if (_MsJZEhdg === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_MsJZEhdg === '/_kePIaBxe') return _cmlFmhBz(_NFlzziTu, _kSghXjZM);
      if (_MsJZEhdg === '/bing-wallpaper') return _LoSbVDYi();

      return _UrnxZGId(_NFlzziTu, _kSghXjZM, _keflYwWs);
    } catch (err) {
      let _xCydVfWL = err;
      return new Response(_xCydVfWL.toString(), { status: 500 });
    }
  }
};

const _DqtOjkZQ = { 'Accept': '_dHJDuMPe/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 _MuMQDdyW(_tHpQGhxp, _OPfWfbRA) {
    const _KUgOgstY = await fetch(_tHpQGhxp, { _VTWxvQwV: { ..._DqtOjkZQ, 'Referer': _OPfWfbRA.referer } });
    if (_KUgOgstY.ok) return _KUgOgstY._dHJDuMPe();
    return null;
}

async function _HQUCauZc(_tHpQGhxp, _OPfWfbRA) {
    const _qyqmkZyj = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_tHpQGhxp)}`;
    const _KUgOgstY = await fetch(_qyqmkZyj, { _VTWxvQwV: { ..._DqtOjkZQ, 'Referer': _OPfWfbRA.referer } });
    if (!_KUgOgstY.ok) return null;
    const _RhJzDlxQ = await _KUgOgstY._dHJDuMPe();
    const _JUIPvPSj = _RhJzDlxQ._JUIPvPSj(/<pre[^>]*>([\s\S]*?)<\/pre>/_uUkhUKtY);
    return _JUIPvPSj && _JUIPvPSj[1] ? _JUIPvPSj[1].replace(/&amp;/g, '&') : null;
}

function _rfIuMdIj(_hGGjqbIj) {
    let _PpJrRGST;
    try {
        _PpJrRGST = atob(_hGGjqbIj.replace(/\s/g, ''));
    } catch (_xCydVfWL) {
        _PpJrRGST = _hGGjqbIj;
    }

    const _HuFljqkj = _PpJrRGST.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _vOtTygqr = new Set();
    const _rXIHDhBU = /@([^?#]+?):(\d+)/;

    for (const _cQdpymll of _HuFljqkj) {
        let _vFragIfz = '';
        let _tQnEOFqY = '';

        try {
            if (_cQdpymll.startsWith('vmess://')) {
                const _OYacrQWo = atob(_cQdpymll.substring(8));
                const _iBFSEHoA = JSON.parse(_OYacrQWo);
                _vFragIfz = _iBFSEHoA.add;
                _tQnEOFqY = _iBFSEHoA._tQnEOFqY;
            } else {
                const _JUIPvPSj = _cQdpymll._JUIPvPSj(_rXIHDhBU);
                if (_JUIPvPSj && _JUIPvPSj[1] && _JUIPvPSj[2]) {
                    _vFragIfz = _JUIPvPSj[1].replace(/[\[\]]/g, '');
                    _tQnEOFqY = _JUIPvPSj[2];
                }
            }
        } catch (_xCydVfWL) {
            console.warn(`Could not parse _cQdpymll: ${_cQdpymll}`);
        }

        if (_vFragIfz && _tQnEOFqY) {
            _vOtTygqr.add(`${_vFragIfz}:${_tQnEOFqY}`);
        }
    }
    return Array.from(_vOtTygqr);
}

async function _PsbQLcXY(_nuIoQzBs) {
    try {
        const _KUgOgstY = await fetch(_nuIoQzBs, { _VTWxvQwV: _DqtOjkZQ });
        if (!_KUgOgstY.ok) {
            console.error(`Failed to fetch subscription: ${_KUgOgstY.status}`);
            return [];
        }
        const _hGGjqbIj = await _KUgOgstY._dHJDuMPe();
        return _rfIuMdIj(_hGGjqbIj);
    } catch (error) {
        console.error(`Error processing subscription ${_nuIoQzBs}:`, error);
        return [];
    }
}

async function _nWmKUPqq(_aaDiGKDE) {
    const _IMCSeXrE = _aaDiGKDE.trim();
    const _VOZcNNHc = /^(vless|vmess|trojan|ss):\/\//.test(_IMCSeXrE);
    const _LHNZimIz = (() => {
        if (_IMCSeXrE._BKxGrdWY < 20 || _IMCSeXrE.startsWith('http')) return false;
        const _qXVDVqPY = _IMCSeXrE.replace(/\s/g, '');
        if (_qXVDVqPY._BKxGrdWY % 4 !== 0 && !_qXVDVqPY.includes('=')) return false;
        try {
            atob(_qXVDVqPY);
            return true;
        } catch (_xCydVfWL) {
            return false;
        }
    })();

    if (_VOZcNNHc || _LHNZimIz) {
        return _rfIuMdIj(_IMCSeXrE).join('\n');
    }

    const _RCycrhpO = [
        'https://ipdb.api.030101.xyz/?_eEGkjqFr=bestcf&_UZshnkxY=true',
        'https://ipdb.api.030101.xyz/?_eEGkjqFr=bestproxy&_UZshnkxY=true'
    ];
    const _qvbsLewD = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_uUkhUKtY.test(_aaDiGKDE) || _aaDiGKDE.includes('?_uKhMcTyS=');

    if (_qvbsLewD) {
        const _KZTmtaHQ = await _PsbQLcXY(_aaDiGKDE);
        return _KZTmtaHQ.join('\n');
    }

    let _hGGjqbIj = '';
    if (_RCycrhpO.includes(_aaDiGKDE)) {
        _hGGjqbIj = await _MuMQDdyW(_aaDiGKDE, { referer: _aaDiGKDE });
        if (!_hGGjqbIj || _hGGjqbIj._BKxGrdWY < 8) {
            _hGGjqbIj = await _HQUCauZc(_aaDiGKDE, { referer: _aaDiGKDE });
        }
    } else {
        try {
            const _KzLoWSto = await fetch(_aaDiGKDE, { _VTWxvQwV: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_KzLoWSto.ok) {
                _hGGjqbIj = await _KzLoWSto._dHJDuMPe();
            } else {
                console.warn(`Failed to fetch URL ${_aaDiGKDE}: ${_KzLoWSto.status}`);
            }
        } catch (_xCydVfWL) {
            console.error(`Error fetching URL ${_aaDiGKDE}:`, _xCydVfWL);
        }
    }

    const _tACYAnWr = _rfIuMdIj(_hGGjqbIj);
    if (_tACYAnWr._BKxGrdWY > 0) {
        return _tACYAnWr.join('\n');
    }

    return _hGGjqbIj || '';
}

async function _jBxUAalb(_NFlzziTu, _iBFSEHoA) {
    if (!_iBFSEHoA.streamer._PxfEhgmV) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _tHpQGhxp = new URL(_NFlzziTu._tHpQGhxp);
    const _DoxtIoUY = _tHpQGhxp.pathname.substring(1).replace(':/', '://');
    try {
        const _TwwlyNru = new URL(_DoxtIoUY);
        const _ETLodOzv = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_ETLodOzv.some(domain => _TwwlyNru._vFragIfz.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _eRAEgbYx = new Headers(_NFlzziTu._VTWxvQwV);
        _eRAEgbYx._jNwuomlq('Host', _TwwlyNru._vFragIfz);
        _eRAEgbYx._jNwuomlq('User-Agent', 'CF-Worker-Streamer/1.0');
        const _cTMSKFYv = await fetch(_TwwlyNru.toString(), {
            method: _NFlzziTu.method,
            _VTWxvQwV: _eRAEgbYx,
            _RhJzDlxQ: _NFlzziTu._RhJzDlxQ,
        });
        const _HjPALYqf = new Headers(_cTMSKFYv._VTWxvQwV);
        _HjPALYqf._jNwuomlq('Access-Control-Allow-Origin', '*');
        _HjPALYqf._jNwuomlq('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _HjPALYqf._jNwuomlq('Access-Control-Allow-Headers', '*');
        _HjPALYqf._jNwuomlq('Cache-Control', 'public, max-age=86400');
        _HjPALYqf._jNwuomlq('X-Streamer-Source', 'CF-Worker');
        _HjPALYqf.delete('_hGGjqbIj-security-policy');
        _HjPALYqf.delete('x-_hGGjqbIj-security-policy');
        _HjPALYqf.delete('x-webkit-csp');
        return new Response(_cTMSKFYv._RhJzDlxQ, {
            status: _cTMSKFYv.status,
            statusText: _cTMSKFYv.statusText,
            _VTWxvQwV: _HjPALYqf,
        });
    } catch (_xCydVfWL) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _szYgEMFE(_NFlzziTu, _kSghXjZM, _iBFSEHoA) {
    try {
        const _FLxEOrhD = _iBFSEHoA || await _REihPUSK(_kSghXjZM);
        const _UmpkwvxQ = (_FLxEOrhD.itemLink._keKQbOmm && _FLxEOrhD.itemLink._keKQbOmm[0]) || {};
        const _nKjkxsjF = _UmpkwvxQ['_uKhMcTyS'] || _jqpNtfEi(_nHnVajIF);

        if (!_wENsuRyC(_nKjkxsjF)) {
            throw new Error("Configured user _QrdubXDV is not valid.");
        }

        const _nKToevqk = _FLxEOrhD.dataFeeds.universalFallbackAddress;
        let _ZWfafvuS = {};
        
        const _rdQpoTRO = _jqpNtfEi(_pkvPpgtk[0] || "");

        if (_nKToevqk) {
            const [_baJNbFBi, _tQnEOFqY = '443'] = _nKToevqk.split(':');
            _ZWfafvuS = { _baJNbFBi, _tQnEOFqY };
        } else {
            const [_baJNbFBi, _tQnEOFqY = '443'] = _rdQpoTRO.split(':');
            _ZWfafvuS = { _baJNbFBi, _tQnEOFqY };
        }

        const _tHpQGhxp = new URL(_NFlzziTu._tHpQGhxp);
        const _MsJZEhdg = _tHpQGhxp.pathname;
        let _FyTkiSNk = '';

        const _cGmrrjsz = _tHpQGhxp.searchParams.get('remote');
        if (_cGmrrjsz) {
           _FyTkiSNk = atob(_cGmrrjsz);
        } else if (_MsJZEhdg.startsWith('/endpoint=')) {
           _FyTkiSNk = _MsJZEhdg.substring(10);
        } else if (_MsJZEhdg._BKxGrdWY > 1 && _MsJZEhdg.substring(1).includes('.')) {
           _FyTkiSNk = _MsJZEhdg.substring(1);
        }

        if (_FyTkiSNk) {
            const [_baJNbFBi, _tQnEOFqY = '443'] = _FyTkiSNk.split(':');
            _ZWfafvuS = { _baJNbFBi, _tQnEOFqY };
        }
        
        return await _gOnIoXVJ(_NFlzziTu, _nKjkxsjF, _ZWfafvuS);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _gOnIoXVJ(_NFlzziTu, _QrdubXDV, _ZWfafvuS) {
    const _FNQIZCGj = new WebSocketPair();
    const [clientEnd, _mYXYmspR] = Object.values(_FNQIZCGj);
    _mYXYmspR.accept();

    let _rIyOSZil = { _jjZfeOvc: null };
    const _EPMgmYUJ = _NFlzziTu._VTWxvQwV.get("sec-websocket-protocol") || "";
    const _ZzBvLuUa = _lxVKNSin(_mYXYmspR, _EPMgmYUJ);

    _ZzBvLuUa.pipeTo(new WritableStream({
        async write(chunk) {
            if (_rIyOSZil._jjZfeOvc) {
                const _wWeQhZYR = _rIyOSZil._jjZfeOvc.writable.getWriter();
                await _wWeQhZYR.write(chunk);
                _wWeQhZYR.releaseLock();
                return;
            }

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

            const _MmgNHEQN = new Uint8Array([details._pstFwFRt[0], 0]);
            const _UestizhH = chunk.slice(details.payloadIndex);

            await _TZNUQJmB(_rIyOSZil, details._NVScVsvY, details._GAYuhMTm, _UestizhH, _mYXYmspR, _MmgNHEQN, _ZWfafvuS);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _zkGOAKeY(_mYXYmspR);
    });

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

async function _TZNUQJmB(_rIyOSZil, _NVScVsvY, _GAYuhMTm, _ClscPOFG, _BlUgLyJm, _MmgNHEQN, _eGESrAEr) {
    const _jvayPAUt = async (_baJNbFBi, _tQnEOFqY) => {
        let _xwVQwWzT = _baJNbFBi;
        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(_baJNbFBi)) {
            _xwVQwWzT = `${atob('d3d3Lg==')}${_baJNbFBi}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _jjZfeOvc = connect({ _vFragIfz: _xwVQwWzT, _tQnEOFqY });
        _rIyOSZil._jjZfeOvc = _jjZfeOvc;
        const _wWeQhZYR = _jjZfeOvc.writable.getWriter();
        await _wWeQhZYR.write(_ClscPOFG);
        _wWeQhZYR.releaseLock();
        return _jjZfeOvc;
    };

    const _jABSByOk = async () => {
        if (!_eGESrAEr._baJNbFBi) return;
        console.log(`Direct connection failed, falling back to gateway: ${_eGESrAEr._baJNbFBi}`);
        const _BsRikCLm = await _jvayPAUt(_eGESrAEr._baJNbFBi, parseInt(_eGESrAEr._tQnEOFqY, 10));
        _BsRikCLm.closed.catch(() => {}).finally(() => _zkGOAKeY(_BlUgLyJm));
        _yfYdWChO(_BsRikCLm, _BlUgLyJm, _MmgNHEQN, null);
    };

    try {
        const _OMheXTXu = await _jvayPAUt(_NVScVsvY, _GAYuhMTm);
        _yfYdWChO(_OMheXTXu, _BlUgLyJm, _MmgNHEQN, _jABSByOk);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _jABSByOk();
    }
}

function _lxVKNSin(_mYXYmspR, _EPMgmYUJ) {
    let _HlmZgCnh = false;
    return new ReadableStream({
        start(_kqJwafrb) {
            _mYXYmspR.addEventListener("_MhwlvCzj", (event) => { if (_HlmZgCnh) return; _kqJwafrb.enqueue(event._VEFfqbuc); });
            _mYXYmspR.addEventListener("close", () => { _zkGOAKeY(_mYXYmspR); if (_HlmZgCnh) return; _kqJwafrb.close(); });
            _mYXYmspR.addEventListener("error", (err) => _kqJwafrb.error(err));
            if (_EPMgmYUJ) {
                try {
                    const _TIdSIbIp = atob(_EPMgmYUJ.replace(/-/g, "+").replace(/_/g, "/"));
                    _kqJwafrb.enqueue(Uint8Array.from(_TIdSIbIp, c => c.charCodeAt(0))._kOTyXBFX);
                } catch (_xCydVfWL) { console.error("Failed to decode early _VEFfqbuc:", _xCydVfWL); }
            }
        },
        cancel() { _HlmZgCnh = true; _zkGOAKeY(_mYXYmspR); },
    });
}

async function _rSjzjYhy(_kOTyXBFX, _QrdubXDV) {
    if (_kOTyXBFX.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _pstFwFRt = new Uint8Array(_kOTyXBFX.slice(0, 1));
    const _JIULxdbh = _wbnSmiVh(new Uint8Array(_kOTyXBFX.slice(1, 17)));
    if (_JIULxdbh !== _QrdubXDV) return { error: true, details: "Invalid _QrdubXDV" };
    const _ZDMqjupW = new Uint8Array(_kOTyXBFX.slice(17, 18))[0];
    const _TuZxnSeC = new Uint8Array(_kOTyXBFX.slice(18 + _ZDMqjupW, 19 + _ZDMqjupW))[0];
    if (_TuZxnSeC !== 1) return { error: true, details: `Unsupported _TuZxnSeC: ${_TuZxnSeC}` };
    const _DdzskZxF = 19 + _ZDMqjupW;
    const _GAYuhMTm = new DataView(_kOTyXBFX.slice(_DdzskZxF, _DdzskZxF + 2)).getUint16(0);
    let _bQXyjHUC = _DdzskZxF + 2;
    const _MSjzDxUB = new Uint8Array(_kOTyXBFX.slice(_bQXyjHUC, _bQXyjHUC + 1))[0];
    let _FXXkgZhJ = 0;
    let _pBfbyQnk = _bQXyjHUC + 1;
    let _NVScVsvY = "";
    switch (_MSjzDxUB) {
        case 1: _FXXkgZhJ = 4; _NVScVsvY = new Uint8Array(_kOTyXBFX.slice(_pBfbyQnk, _pBfbyQnk + _FXXkgZhJ)).join("."); break;
        case 2: _FXXkgZhJ = new Uint8Array(_kOTyXBFX.slice(_pBfbyQnk, _pBfbyQnk + 1))[0]; _pBfbyQnk++; _NVScVsvY = new TextDecoder().decode(_kOTyXBFX.slice(_pBfbyQnk, _pBfbyQnk + _FXXkgZhJ)); break;
        case 3: _FXXkgZhJ = 16; const _IDvNYSMq = new DataView(_kOTyXBFX.slice(_pBfbyQnk, _pBfbyQnk + _FXXkgZhJ)); const _EWHTfFBN = []; for (let _uUkhUKtY = 0; _uUkhUKtY < 8; _uUkhUKtY++) _EWHTfFBN.push(_IDvNYSMq.getUint16(_uUkhUKtY * 2).toString(16)); _NVScVsvY = _EWHTfFBN.join(":"); break;
        default: return { error: true, details: `Invalid _mJGOsQki _eEGkjqFr: ${_MSjzDxUB}` };
    }
    if (!_NVScVsvY) return { error: true, details: "Target _baJNbFBi is empty" };
    return { error: false, details: { _NVScVsvY, _GAYuhMTm, _pstFwFRt, payloadIndex: _pBfbyQnk + _FXXkgZhJ } };
}

async function _yfYdWChO(_jjZfeOvc, _BlUgLyJm, _tRTIzUXv, _ictXfORO) {
    let _PGtHqSxu = _tRTIzUXv;
    let _TiTrkDEZ = false;
    let _yvZCtHGf = _jjZfeOvc._ZzBvLuUa.pipeTo(new WritableStream({
        write(chunk) {
            _TiTrkDEZ = true;
            if (_BlUgLyJm.readyState !== 1) throw new Error("Channel is not open");
            if (_PGtHqSxu) {
                const _bvHdCEUm = new Uint8Array(_PGtHqSxu.byteLength + chunk.byteLength);
                _bvHdCEUm._jNwuomlq(new Uint8Array(_PGtHqSxu));
                _bvHdCEUm._jNwuomlq(new Uint8Array(chunk), _PGtHqSxu.byteLength);
                _BlUgLyJm.send(_bvHdCEUm._kOTyXBFX);
                _PGtHqSxu = null;
            } else {
                _BlUgLyJm.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _BlUgLyJm error:", err._MhwlvCzj);
    });

    await _yvZCtHGf;
    if (!_TiTrkDEZ && _ictXfORO) {
        _ictXfORO();
    }
}

function _zkGOAKeY(_BlUgLyJm) {
    try { if (_BlUgLyJm.readyState === 1 || _BlUgLyJm.readyState === 2) _BlUgLyJm.close(); } catch (_xCydVfWL) {}
}

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

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

async function _bWgzCmxH(_tHpQGhxp, _rpELDPda, _ictXfORO) {
    try {
        const _KUgOgstY = await fetch(_tHpQGhxp, {
            _VTWxvQwV: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_KUgOgstY.ok) {
            console.error(`获取 ${_tHpQGhxp} 失败: HTTP ${_KUgOgstY.status}`);
            return _ictXfORO;
        }
        const _dHJDuMPe = await _KUgOgstY._dHJDuMPe();
        return _rpELDPda(_dHJDuMPe);
    } catch (error) {
        console.error(`获取或解析 ${_tHpQGhxp} 时发生网络错误: ${error._MhwlvCzj}`);
        return _ictXfORO;
    }
}

function _rTSYsFnl(_dHJDuMPe) {
    if (!_dHJDuMPe) return [];
    const _GKDtwBRG = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _TTsJRZVt = _dHJDuMPe.split(/[\s,;#|]+/);
    const _lgSeVlWh = [];
    for (const _HzJHqizf of _TTsJRZVt) {
        const _OHoaBnbY = _HzJHqizf.trim();
        if (!_OHoaBnbY) continue;
        const _WyKFriVe = _OHoaBnbY.lastIndexOf(':');
        let _opOhDtyC = _OHoaBnbY;
        if(_WyKFriVe > _OHoaBnbY.lastIndexOf(']')) {
             const _RhkqAWii = _OHoaBnbY.substring(_WyKFriVe + 1);
             if(!isNaN(_RhkqAWii) && _RhkqAWii._BKxGrdWY > 0) {
                _opOhDtyC = _OHoaBnbY.substring(0, _WyKFriVe);
             }
        }
        if (_rjKvxlhT.isValid(_opOhDtyC.replace(/[\[\]]/g, '')) || _GKDtwBRG.test(_OHoaBnbY)) {
            _lgSeVlWh.push(_OHoaBnbY);
        }
    }
    return _lgSeVlWh;
}

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

function _RGWWENUy(_dHJDuMPe) {
    if (!_dHJDuMPe) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_dHJDuMPe}}`);
    } catch (_xCydVfWL) {
        console.error("解析 _PiCtQLDu 失败:", _xCydVfWL);
        return { "N/A": "未知" };
    }
}

const _rjKvxlhT = {
    isValid: (_kePIaBxe) => _rjKvxlhT.isIPv4(_kePIaBxe) || _rjKvxlhT.isIPv6(_kePIaBxe),
    isIPv4: (_kePIaBxe) => {
        if (typeof _kePIaBxe !== 'string') return false;
        const _EWHTfFBN = _kePIaBxe.split('.');
        if (_EWHTfFBN._BKxGrdWY !== 4) return false;
        return _EWHTfFBN.every(_qsAVjdXs => {
            const _VHUehYtC = parseInt(_qsAVjdXs, 10);
            return !isNaN(_VHUehYtC) && _VHUehYtC >= 0 && _VHUehYtC <= 255 && String(_VHUehYtC) === _qsAVjdXs;
        });
    },
    isIPv6: (_kePIaBxe) => {
        if (typeof _kePIaBxe !== '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]))$/_uUkhUKtY.test(_kePIaBxe);
    },
    toLong4: (_kePIaBxe) => _kePIaBxe.split('.').reduce((acc, octet, _uUkhUKtY) => acc + (parseInt(octet) << (8*(3-_uUkhUKtY))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_kePIaBxe) => {
        try {
            const _KiTxMUaz = _kePIaBxe.split('/')[0];
            const _EWHTfFBN = _KiTxMUaz.split('::');
            if (_EWHTfFBN._BKxGrdWY > 2) return 0n;
            let _FmqzKrhy = [];
            if (_EWHTfFBN[0]) {
                _FmqzKrhy = _EWHTfFBN[0].split(':');
            }
            let _FUIwmogZ = [];
            if (_EWHTfFBN._BKxGrdWY > 1 && _EWHTfFBN[1]) {
                _FUIwmogZ = _EWHTfFBN[1].split(':');
            }
            if (_FmqzKrhy._BKxGrdWY + _FUIwmogZ._BKxGrdWY > 8) return 0n;
            const _iPvZtlnY = 8 - (_FmqzKrhy._BKxGrdWY + _FUIwmogZ._BKxGrdWY);
            const _PCbtLqUZ = [
                ..._FmqzKrhy,
                ...Array(_iPvZtlnY).fill('0'),
                ..._FUIwmogZ
            ].map(_qsAVjdXs => _qsAVjdXs || '0');
            while(_PCbtLqUZ._BKxGrdWY < 8) {
                _PCbtLqUZ.push('0');
            }
            let _pHqeCYpL = 0n;
            for (const _qsAVjdXs of _PCbtLqUZ) {
                if (_qsAVjdXs._BKxGrdWY > 4) return 0n;
                const _tHTUmKrx = BigInt('0x' + _qsAVjdXs);
                _pHqeCYpL = (_pHqeCYpL << 16n) | _tHTUmKrx;
            }
            return _pHqeCYpL;
        } catch(_xCydVfWL) {
            return 0n;
        }
    },
    fromBigInt6: (_pHqeCYpL) => {
        if (typeof _pHqeCYpL !== '_pHqeCYpL' || _pHqeCYpL < 0n) return null;
        const _EWHTfFBN = [];
        for (let _uUkhUKtY = 0; _uUkhUKtY < 8; _uUkhUKtY++) {
            _EWHTfFBN.unshift((_pHqeCYpL & 0xFFFFn).toString(16));
            _pHqeCYpL >>= 16n;
        }
        let _vQvbvhoT = { start: -1, _ceypxXIY: 0 };
        let _JhnfPVoH = { start: -1, _ceypxXIY: 0 };
        for (let _uUkhUKtY = 0; _uUkhUKtY < 8; _uUkhUKtY++) {
            if (_EWHTfFBN[_uUkhUKtY] === '0') {
                if (_JhnfPVoH.start === -1) _JhnfPVoH.start = _uUkhUKtY;
                _JhnfPVoH._ceypxXIY++;
            } else {
                if (_JhnfPVoH._ceypxXIY > _vQvbvhoT._ceypxXIY) _vQvbvhoT = { ..._JhnfPVoH };
                _JhnfPVoH = { start: -1, _ceypxXIY: 0 };
            }
        }
        if (_JhnfPVoH._ceypxXIY > _vQvbvhoT._ceypxXIY) _vQvbvhoT = { ..._JhnfPVoH };
        if (_vQvbvhoT._ceypxXIY > 1) {
            _EWHTfFBN.splice(_vQvbvhoT.start, _vQvbvhoT._ceypxXIY, '');
            if (_vQvbvhoT.start === 0) _EWHTfFBN.unshift('');
            if (_vQvbvhoT.start + _vQvbvhoT._ceypxXIY === 8) _EWHTfFBN.push('');
        }
        return _EWHTfFBN.join(':');
    },
    cidrToRange: (cidr, _dZDkQEsa = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _fncZNONp = parseInt(bitsStr, 10);
            const _KZTmtaHQ = new Set();
            if (_rjKvxlhT.isIPv4(range)) {
                if (isNaN(_fncZNONp) || _fncZNONp < 8 || _fncZNONp > 32) return [];
                if (_fncZNONp === 32) return [range];
                const _IlaZoEOW = _rjKvxlhT.toLong4(range);
                const _VkxPUUXD = (0xFFFFFFFF << (32 - _fncZNONp)) >>> 0;
                const _FbTZLPAm = _IlaZoEOW & _VkxPUUXD;
                const _rUGGIBuZ = 1 << (32 - _fncZNONp);
                if (_rUGGIBuZ <= 2) return [];
                const _yaoVrUKF = Math.min(_dZDkQEsa, _rUGGIBuZ - 2);
                let _KWEjNvjh = 0;
                while (_KZTmtaHQ.size < _yaoVrUKF && _KWEjNvjh < _yaoVrUKF * 5) {
                    const _oKelShli = Math.floor(Math.random() * (_rUGGIBuZ - 2)) + 1;
                    _KZTmtaHQ.add(_rjKvxlhT.fromLong4((_FbTZLPAm + _oKelShli) >>> 0));
                    _KWEjNvjh++;
                }
                return Array.from(_KZTmtaHQ);
            } else if (_rjKvxlhT.isIPv6(range)) {
                if (isNaN(_fncZNONp) || _fncZNONp < 16 || _fncZNONp > 128) return [];
                 if (_fncZNONp === 128) return [range];
                const _SbtKWEUx = _rjKvxlhT.toBigInt6(range);
                const _VkxPUUXD = (2n ** BigInt(128 - _fncZNONp) - 1n);
                const _FbTZLPAm = _SbtKWEUx & ~_VkxPUUXD;
                const _PfgEBwKz = 2n ** BigInt(128 - _fncZNONp);
                if (_PfgEBwKz <= 2n) return [];
                let _KWEjNvjh = 0;
                while (_KZTmtaHQ.size < _dZDkQEsa && _KWEjNvjh < _dZDkQEsa * 5) {
                     const _xLDwXaoQ = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_xLDwXaoQ);
                     let _rHOGMVlu = 0n;
                     for (const _xPtawMgo of _xLDwXaoQ) {
                         _rHOGMVlu = (_rHOGMVlu << 8n) | BigInt(_xPtawMgo);
                     }
                     const _oKelShli = _rHOGMVlu % (_PfgEBwKz - 2n) + 1n;
                     _KZTmtaHQ.add(_rjKvxlhT.fromBigInt6(_FbTZLPAm + _oKelShli));
                     _KWEjNvjh++;
                }
                return Array.from(_KZTmtaHQ);
            }
            return [];
        } catch(_xCydVfWL) {
            console.error(`CIDR to range failed for ${cidr}:`, _xCydVfWL);
            return [];
        }
    }
};

function _AzSdLfhV(_jFlugCfy, _mJMqBNIS) {
    const _PCCyOjUv = {};
    const _SFQevpug = Object._SFQevpug(_mJMqBNIS);
    const _EWHTfFBN = _SFQevpug.map(_sWpWHESH => {
        const _QhjFOYVP = _jFlugCfy * (_mJMqBNIS[_sWpWHESH] / 100);
        return { _sWpWHESH, _dZDkQEsa: Math.floor(_QhjFOYVP), remainder: _QhjFOYVP - Math.floor(_QhjFOYVP) };
    });
    let _fAbtPRDm = _EWHTfFBN.reduce((acc, _qsAVjdXs) => acc + _qsAVjdXs._dZDkQEsa, 0);
    _EWHTfFBN.sort((a, b) => b.remainder - a.remainder);
    let _bdXlMgjY = _jFlugCfy - _fAbtPRDm;
    for (let _uUkhUKtY = 0; _uUkhUKtY < _bdXlMgjY; _uUkhUKtY++) {
        _EWHTfFBN[_uUkhUKtY % _EWHTfFBN._BKxGrdWY]._dZDkQEsa++;
    }
    for (const _qsAVjdXs of _EWHTfFBN) {
        _PCCyOjUv[_qsAVjdXs._sWpWHESH] = _qsAVjdXs._dZDkQEsa;
    }
    return _PCCyOjUv;
}

async function _gnMzpuAb(_kSghXjZM) {
    const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_zJixQGui);
    const { _LaHpOhNV } = await _qOcahdJY.all();
    return _LaHpOhNV._BKxGrdWY > 0 ? _LaHpOhNV[0]._tHTUmKrx : null;
}

async function _XbfvvSgB(_kSghXjZM, _ZQcpOmgH) {
    const _qOcahdJY = _kSghXjZM.DB.prepare(
        "INSERT INTO kv_data (_sWpWHESH, _tHTUmKrx) VALUES (?, ?) ON CONFLICT(_sWpWHESH) DO UPDATE SET _tHTUmKrx = excluded._tHTUmKrx"
    );
    await _qOcahdJY.bind(_zJixQGui, _ZQcpOmgH).run();
}

async function _dnhljPUP(_NFlzziTu, _kSghXjZM) {
    const { _ZQcpOmgH } = await _NFlzziTu.json();
    const _pztDbgOf = await _gnMzpuAb(_kSghXjZM);
    if (_pztDbgOf === _ZQcpOmgH) {
        return _fZTkWWFY({ success: true });
    }
    return _fZTkWWFY({ success: false, _MhwlvCzj: '密码错误' }, 401);
}

async function _qvJpIEKw(_NFlzziTu, _kSghXjZM) {
    const _kpnYRDyR = await _REihPUSK(_kSghXjZM);
    if (!_kpnYRDyR.visitorPassword || !_kpnYRDyR.visitorPassword._PxfEhgmV) {
        return _fZTkWWFY({ success: true });
    }
    try {
        const { _ZQcpOmgH } = await _NFlzziTu.json();
        const _DpikjDil = _kpnYRDyR.visitorPassword._ZQcpOmgH;
        if (_DpikjDil && _ZQcpOmgH === _DpikjDil) {
            return _fZTkWWFY({ success: true });
        }
        return _fZTkWWFY({ success: false, _MhwlvCzj: '访客密码错误' }, 401);
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: '无效请求' }, 400);
    }
}

async function _FquKoLZI(_NFlzziTu, _kSghXjZM) {
    const _XHMLcTTn = await _gnMzpuAb(_kSghXjZM);
    if (_XHMLcTTn) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _ZQcpOmgH } = await _NFlzziTu.json();
    if (!_ZQcpOmgH || _ZQcpOmgH._BKxGrdWY < 6) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: "密码长度不能少于6位。" }, 400);
    }
    await _XbfvvSgB(_kSghXjZM, _ZQcpOmgH);
    return _fZTkWWFY({ success: true, _MhwlvCzj: "初始密码设置成功!请刷新页面并登录。" });
}

async function _AgfThhvu(_NFlzziTu, _kSghXjZM) {
    const { _cogUkHti, _RogxEllm } = await _NFlzziTu.json();
    const _pztDbgOf = await _gnMzpuAb(_kSghXjZM);
    if (_pztDbgOf !== _cogUkHti) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: "旧密码错误。" }, 403);
    }
    if (!_RogxEllm || _RogxEllm._BKxGrdWY < 6) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: "新密码长度不能少于6位。" }, 400);
    }
    await _XbfvvSgB(_kSghXjZM, _RogxEllm);
    return _fZTkWWFY({ success: true, _MhwlvCzj: "密码修改成功!" });
}

function _OFuxcEur() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _egnAfGgU: '',
        api: {
            _PxfEhgmV: true,
            _MhwlvCzj: '维护中...',
        },
        ispFilter: { _PxfEhgmV: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _PxfEhgmV: true
        },
        websocketStreamer: {
            _PxfEhgmV: true,
            _tHpQGhxp: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _PxfEhgmV: true
        },
        visitorPassword: {
            _PxfEhgmV: false,
            _ZQcpOmgH: '',
        },
        customSubPath: {
            _PxfEhgmV: false,
            _MsJZEhdg: 'latest',
        },
        subscriptionId: {
            _BKxGrdWY: 8,
            _bDmbqFUt: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _PxfEhgmV: true,
            template: 'vless://{_uKhMcTyS}@{_kePIaBxe}:{_tQnEOFqY}?encryption=none&security=tls&sni={_baJNbFBi}&fp=random&_eEGkjqFr=ws&_baJNbFBi={_baJNbFBi}&_MsJZEhdg={_MsJZEhdg}#{_nzFYtWSh}',
            selectionMode: 'first',
            _keKQbOmm: [
                { _nzFYtWSh: '默认配置', _baJNbFBi: '', '_uKhMcTyS': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _MsJZEhdg: '/?ed=2560' }
            ],
            _saILdGBL: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _PxfEhgmV: false,
                _dHJDuMPe: '',
                _OQgrUVdh: 5
            },
            marquee: {
                _PxfEhgmV: false,
                _dHJDuMPe: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _PxfEhgmV: true,
            sources: [
                { _lCyqZFJg: 'CF官方IPV4', _KZTmtaHQ: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 20 },
                { _lCyqZFJg: 'CF官方IPV6', _KZTmtaHQ: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 20 },
                { _lCyqZFJg: '反代优选0', _KZTmtaHQ: 'https://wvs.sosorg.nyc.mn/sub?_uKhMcTyS=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_eEGkjqFr=ws&_baJNbFBi=ss.nzvrn.com&_MsJZEhdg=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 30 },
                { _lCyqZFJg: '官方优选1', _KZTmtaHQ: 'https://ipdb.api.030101.xyz/?_eEGkjqFr=bestcf&_UZshnkxY=true', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 10 },
                { _lCyqZFJg: '反代优选2', _KZTmtaHQ: 'https://ipdb.api.030101.xyz/?_eEGkjqFr=bestproxy&_UZshnkxY=true', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 5 },
                { _lCyqZFJg: '官方优选2', _KZTmtaHQ: 'https://addressesapi.090227.xyz/_kePIaBxe.164746.xyz', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 10 },
				{ _lCyqZFJg: '官方优选3', _KZTmtaHQ: 'https://cfxr.eu.org/getSub?_baJNbFBi=snipaste.huggy.qzz.io', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 5 },
                { _lCyqZFJg: '官方优选4', _KZTmtaHQ: 'https://addressesapi.090227.xyz/CloudFlareYes', _jsfMiQkO: false, _PxfEhgmV: true, _qwdDfoqC: 10 }
            ]
        },
        customNodes: {
            _PxfEhgmV: 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 _AfElbsAv(_ICflkkCW, _bOqfhGvB) {
    if (!_ICflkkCW) return _bOqfhGvB;
    const _pfOPJPGH = { ..._bOqfhGvB };
    for (const _sWpWHESH in _bOqfhGvB) {
        if (_ICflkkCW.hasOwnProperty(_sWpWHESH)) {
             if (typeof _ICflkkCW[_sWpWHESH] === 'object' && _ICflkkCW[_sWpWHESH] !== null && !Array.isArray(_ICflkkCW[_sWpWHESH]) && typeof _bOqfhGvB[_sWpWHESH] === 'object' && _bOqfhGvB[_sWpWHESH] !== null && !Array.isArray(_bOqfhGvB[_sWpWHESH])) {
                _pfOPJPGH[_sWpWHESH] = _AfElbsAv(_ICflkkCW[_sWpWHESH], _bOqfhGvB[_sWpWHESH]);
            } else {
                _pfOPJPGH[_sWpWHESH] = _ICflkkCW[_sWpWHESH];
            }
        }
    }
    return _pfOPJPGH;
}

async function _REihPUSK(_kSghXjZM) {
    try {
        const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_NwZYsUjH);
        const { _LaHpOhNV } = await _qOcahdJY.all();
        const _klpleEIM = _LaHpOhNV._BKxGrdWY > 0 ? _LaHpOhNV[0]._tHTUmKrx : null;
        const _nrwTeuHk = _klpleEIM ? JSON.parse(_klpleEIM) : {};
        return _AfElbsAv(_nrwTeuHk, _OFuxcEur());
    } catch (_xCydVfWL) {
        console.error("无法从D1获取或解析全局配置:", _xCydVfWL);
        return _OFuxcEur();
    }
}

async function _JfjbnOYD(_kSghXjZM) {
    const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
    return _fZTkWWFY(_iBFSEHoA);
}

async function _ppcThWpb(_NFlzziTu, _kSghXjZM, _keflYwWs) {
    try {
        const { _iBFSEHoA, adminPassword } = await _NFlzziTu.json();
        const _pztDbgOf = await _gnMzpuAb(_kSghXjZM);
        if (_pztDbgOf !== adminPassword) {
            return _fZTkWWFY({ success: false, _MhwlvCzj: "管理员密码错误" }, 403);
        }
        const _qOcahdJY = _kSghXjZM.DB.prepare(
          "INSERT INTO kv_data (_sWpWHESH, _tHTUmKrx) VALUES (?, ?) ON CONFLICT(_sWpWHESH) DO UPDATE SET _tHTUmKrx = excluded._tHTUmKrx"
        );
        const _ZKOAPoiT = _qOcahdJY.bind(_NwZYsUjH, JSON.stringify(_iBFSEHoA)).run();
        _keflYwWs.waitUntil(_ZKOAPoiT);
        return _fZTkWWFY({ success: true, _MhwlvCzj: "配置已成功保存!" });
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ success: false, _MhwlvCzj: `保存失败: ${_xCydVfWL._MhwlvCzj}` }, 500);
    }
}

async function _LoSbVDYi() {
    const _kImLieuc = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _SytIjHEw = await fetch(_kImLieuc);
        const _XWqXeFGx = await _SytIjHEw.json();
        const _zJHLNazQ = 'https://www.bing.com' + _XWqXeFGx.images[0]._tHpQGhxp;
        return fetch(_zJHLNazQ);
    } catch (_xCydVfWL) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _EITjbUSY(_kePIaBxe) {
    try {
        const _KUgOgstY = await fetch(`http://_kePIaBxe-api.com/json/${_kePIaBxe}?fields=status,_UZshnkxY,countryCode,_CBufPriW&lang=zh-CN`);
        if (_KUgOgstY.ok) {
            const _VEFfqbuc = await _KUgOgstY.json();
            if (_VEFfqbuc.status === 'success' && (_VEFfqbuc.countryCode || _VEFfqbuc._UZshnkxY)) {
                let _CBufPriW = _VEFfqbuc._CBufPriW || '未知';
                if (_CBufPriW.toLowerCase().includes('cloudflare')) {
                    _CBufPriW = 'CloudFlare';
                }
                return {
                    _lCyqZFJg: _PiCtQLDu[_VEFfqbuc.countryCode] || _VEFfqbuc._UZshnkxY || _VEFfqbuc.countryCode,
                    _CBufPriW: _CBufPriW
                };
            }
        }
    } catch (_xCydVfWL) {}

    try {
        const _KUgOgstY = await fetch(`https://api._kePIaBxe.sb/geoip/${_kePIaBxe}`);
        if (_KUgOgstY.ok) {
            const _VEFfqbuc = await _KUgOgstY.json();
            if (_VEFfqbuc.country_code || _VEFfqbuc._UZshnkxY) {
                let _CBufPriW = _VEFfqbuc._CBufPriW || '未知';
                if (_CBufPriW.toLowerCase().includes('cloudflare')) {
                    _CBufPriW = 'CloudFlare';
                }
                return {
                    _lCyqZFJg: _PiCtQLDu[_VEFfqbuc.country_code] || _VEFfqbuc._UZshnkxY || _VEFfqbuc.country_code,
                    _CBufPriW: _CBufPriW
                };
            }
        }
    } catch (_xCydVfWL) {}
    
    return { _lCyqZFJg: '未知', _CBufPriW: '未知' };
}

async function _ZxAxxVWe(_NFlzziTu, _kSghXjZM) {
    try {
        const { _KZTmtaHQ } = await _NFlzziTu.json();
        if (!Array.isArray(_KZTmtaHQ)) {
            return _fZTkWWFY({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _kDFuoZfT = _KZTmtaHQ.map(_kePIaBxe => _EITjbUSY(_kePIaBxe).then(_gClllcBx => ({ _kePIaBxe, ..._gClllcBx })));
        const _LaHpOhNV = await Promise.all(_kDFuoZfT);
        return _fZTkWWFY(_LaHpOhNV);
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ error: `获取地理位置失败: ${_xCydVfWL._MhwlvCzj}` }, 500);
    }
}

async function _CXoytOfQ(_NFlzziTu, _kSghXjZM) {
    const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
    if (!_iBFSEHoA.cloudStorage._PxfEhgmV) {
        return _fZTkWWFY({ _LaHpOhNV: [], generatedBy: null });
    }
    try {
        const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_BAKtQKzl);
        const { _LaHpOhNV } = await _qOcahdJY.all();
        const _UoHTYbjg = _LaHpOhNV._BKxGrdWY > 0 ? _LaHpOhNV[0]._tHTUmKrx : null;
        const _UKJKXUep = _UoHTYbjg ? JSON.parse(_UoHTYbjg) : null;
        return _fZTkWWFY(_UKJKXUep || { _LaHpOhNV: [], generatedBy: null });
    } catch (_xCydVfWL) {
        console.error("从D1读取缓存IP失败:", _xCydVfWL);
        return _fZTkWWFY({ _LaHpOhNV: [], generatedBy: null });
    }
}

async function _gZxYQedd(_NFlzziTu, _kSghXjZM, _keflYwWs) {
    const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
    if (!_iBFSEHoA.cloudStorage._PxfEhgmV) {
        return _fZTkWWFY({ success: true, _MhwlvCzj: "云端存储已禁用,不保存结果。" });
    }
    const _YnmSRDTA = _NFlzziTu._VTWxvQwV.get('CF-Connecting-IP') || "未知IP";
    const _UZshnkxY = _NFlzziTu.cf?._UZshnkxY || "未知";
    const _SgcOnqGU = _NFlzziTu.cf?._SgcOnqGU || "";
    let _vbtcicAT = _PiCtQLDu[_UZshnkxY] || _UZshnkxY;
    if (_SgcOnqGU && _SgcOnqGU !== "未知城市" && _SgcOnqGU !== _UZshnkxY) _vbtcicAT = `${_vbtcicAT} ${_PiCtQLDu[_SgcOnqGU] || _SgcOnqGU}`;
    const _nIxbTlOR = {
        _kePIaBxe: _lyQHBpfe(_YnmSRDTA),
        _lCyqZFJg: _vbtcicAT.trim(),
        time: _YMbqrbjY()
    };
    try {
        const _DsjhSJzG = await _NFlzziTu.json();
        if (!Array.isArray(_DsjhSJzG)) return _fZTkWWFY({ error: "无效数据格式" }, 400);
        const _drBrONSd = _DsjhSJzG.map(_OmoEVAdr => ({
            _kePIaBxe: String(_OmoEVAdr._kePIaBxe || ''),
            _tQnEOFqY: _OmoEVAdr._tQnEOFqY ? parseInt(_OmoEVAdr._tQnEOFqY, 10) : undefined,
            _KkdnZnol: parseInt(_OmoEVAdr._KkdnZnol, 10),
            _lCyqZFJg: typeof _OmoEVAdr._lCyqZFJg === 'string' ? _OmoEVAdr._lCyqZFJg.substring(0, 50) : 'N/A',
            _CBufPriW: typeof _OmoEVAdr._CBufPriW === 'string' ? _OmoEVAdr._CBufPriW.substring(0, 100) : 'N/A'
        }));
        const _bSfBLZBK = {
            generatedBy: _nIxbTlOR,
            _LaHpOhNV: _drBrONSd
        };
        const _FFuIBzyT = _kSghXjZM.DB.prepare(
          "INSERT INTO kv_data (_sWpWHESH, _tHTUmKrx) VALUES (?, ?) ON CONFLICT(_sWpWHESH) DO UPDATE SET _tHTUmKrx = excluded._tHTUmKrx"
        ).bind(_BAKtQKzl, JSON.stringify(_bSfBLZBK)).run();
        if (_iBFSEHoA.telegram.bot_token && _iBFSEHoA.telegram.chat_id) {
            const _XqBWkMQf = _drBrONSd.map(r => `${r._kePIaBxe} ~ ${r._lCyqZFJg}`).join('\n');
            const _GcigRYMr = `优选完成!\n来源: ${_nIxbTlOR._kePIaBxe} (${_nIxbTlOR._lCyqZFJg})\n时间: ${_nIxbTlOR.time}\n\n结果:\n${_XqBWkMQf}`;
            const _VKIbqZiQ = `https://api.telegram.org/bot${_iBFSEHoA.telegram.bot_token}/sendMessage?chat_id=${_iBFSEHoA.telegram.chat_id}&_dHJDuMPe=${encodeURIComponent(_GcigRYMr)}`;
            const _hrpxIVYu = fetch(_VKIbqZiQ).catch(_xCydVfWL => console.error("Telegram结果通知失败:", _xCydVfWL));
            _keflYwWs.waitUntil(Promise.all([_FFuIBzyT, _hrpxIVYu]));
        } else {
             _keflYwWs.waitUntil(_FFuIBzyT);
        }
        return _fZTkWWFY({ success: true, _MhwlvCzj: "结果已保存" });
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ error: "D1写入失败", _MhwlvCzj: _xCydVfWL._MhwlvCzj }, 500);
    }
}

async function _urfWOnbc(_NFlzziTu, _kSghXjZM, _keflYwWs) {
    try {
        const _psuXuhPl = await _NFlzziTu.json();
        if (!Array.isArray(_psuXuhPl)) return _fZTkWWFY({ error: "无效数据格式" }, 400);
        const _bSfBLZBK = {
            _LaHpOhNV: _psuXuhPl
        };
        const _qOcahdJY = _kSghXjZM.DB.prepare(
          "INSERT INTO kv_data (_sWpWHESH, _tHTUmKrx) VALUES (?, ?) ON CONFLICT(_sWpWHESH) DO UPDATE SET _tHTUmKrx = excluded._tHTUmKrx"
        );
        const _ZKOAPoiT = _qOcahdJY.bind(_vGleAeUq, JSON.stringify(_bSfBLZBK)).run();
        _keflYwWs.waitUntil(_ZKOAPoiT);
        return _fZTkWWFY({ success: true });
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ error: "D1写入临时缓存失败", _MhwlvCzj: _xCydVfWL._MhwlvCzj }, 500);
    }
}

function _CAwLakfd(_BKxGrdWY, _bDmbqFUt) {
    let _XoMuNRlG = '';
    const _nGcqlFkY = _bDmbqFUt._BKxGrdWY;
    for (let _uUkhUKtY = 0; _uUkhUKtY < _BKxGrdWY; _uUkhUKtY++) {
        _XoMuNRlG += _bDmbqFUt.charAt(Math.floor(Math.random() * _nGcqlFkY));
    }
    return _XoMuNRlG;
}

async function _HrVoRILt(_NFlzziTu, _kSghXjZM) {
    try {
        const _DsjhSJzG = await _NFlzziTu.json();
        if (!Array.isArray(_DsjhSJzG) || _DsjhSJzG._BKxGrdWY === 0) {
            return _fZTkWWFY({ error: "无效或空的IP列表" }, 400);
        }

        const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
        const _vYPYasIG = _iBFSEHoA.subscriptionId || { _BKxGrdWY: 8, _bDmbqFUt: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _mGQRxrYZ;
        let _WoJdZGvy = false;
        let _KWEjNvjh = 0;
        const _lsMGEUaW = 10;

        while (!_WoJdZGvy && _KWEjNvjh < _lsMGEUaW) {
            _mGQRxrYZ = _CAwLakfd(_vYPYasIG._BKxGrdWY, _vYPYasIG._bDmbqFUt);
            const { _LaHpOhNV } = await _kSghXjZM.DB.prepare("SELECT _ZFMylRPE FROM optimized_results WHERE _ZFMylRPE = ?").bind(_mGQRxrYZ).all();
            if (_LaHpOhNV._BKxGrdWY === 0) {
                _WoJdZGvy = true;
            }
            _KWEjNvjh++;
        }

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

        const _EfJDXeHC = JSON.stringify({ _KZTmtaHQ: _DsjhSJzG });
        await _kSghXjZM.DB.prepare(
            "INSERT INTO optimized_results (_ZFMylRPE, _VEFfqbuc) VALUES (?, ?)"
        ).bind(_mGQRxrYZ, _EfJDXeHC).run();
        await _kSghXjZM.DB.prepare(
            "INSERT INTO kv_data (_sWpWHESH, _tHTUmKrx) VALUES (?, ?) ON CONFLICT(_sWpWHESH) DO UPDATE SET _tHTUmKrx = excluded._tHTUmKrx"
        ).bind(_dgnxTKKa, _mGQRxrYZ).run();
            
        return _fZTkWWFY({ success: true, _ZFMylRPE: _mGQRxrYZ });
    } catch (_xCydVfWL) {
        return _fZTkWWFY({ error: "保存优选结果失败", _MhwlvCzj: _xCydVfWL._MhwlvCzj }, 500);
    }
}

async function _LJwAKNWp(_NFlzziTu, _kSghXjZM) {
    try {
        const _mGQRxrYZ = _NFlzziTu._cFxixrai._ZFMylRPE;
        if (!_mGQRxrYZ) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _XoMuNRlG = await _kSghXjZM.DB.prepare("SELECT _VEFfqbuc FROM optimized_results WHERE _ZFMylRPE = ?").bind(_mGQRxrYZ).first();
        if (!_XoMuNRlG) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _VEFfqbuc = JSON.parse(_XoMuNRlG._VEFfqbuc);
        let _XqBWkMQf = _VEFfqbuc._KZTmtaHQ;

        const _iBFSEHoA = await _REihPUSK(_kSghXjZM);

        if (_iBFSEHoA.customNodes && _iBFSEHoA.customNodes._PxfEhgmV && _iBFSEHoA.customNodes.list) {
            const _DDYJIkqi = _iBFSEHoA.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _BrJnBOBX = _DDYJIkqi.map(_cQdpymll => {
                let _mJGOsQki = _cQdpymll;
                let _tQnEOFqY = undefined;
                let _nzFYtWSh = null;

                if (_mJGOsQki.includes('@')) {
                    const _EWHTfFBN = _mJGOsQki.split('@');
                    _nzFYtWSh = _EWHTfFBN.pop();
                    _mJGOsQki = _EWHTfFBN.join('@');
                }

                if (_mJGOsQki.includes('#')) {
                    const _EWHTfFBN = _mJGOsQki.split('#');
                    const _RhkqAWii = _EWHTfFBN.pop();
                    if (!isNaN(_RhkqAWii) && _RhkqAWii.trim() !== '') {
                        _tQnEOFqY = parseInt(_RhkqAWii, 10);
                    }
                    _mJGOsQki = _EWHTfFBN.join('#');
                }
                
                return {
                    _kePIaBxe: _mJGOsQki,
                    _tQnEOFqY: _tQnEOFqY,
                    _lCyqZFJg: _nzFYtWSh || _mJGOsQki,
                    _CBufPriW: '自定义'
                };
            });
            _XqBWkMQf.unshift(..._BrJnBOBX);
        }
        
        const { itemLink } = _iBFSEHoA;
        const _QbqxeJbI = new URL(_NFlzziTu._tHpQGhxp)._vFragIfz;
        let _QgiqfjLk;

        if (_iBFSEHoA.websocketStreamer && _iBFSEHoA.websocketStreamer._PxfEhgmV) {
            if (!itemLink || !itemLink._PxfEhgmV || !itemLink._keKQbOmm || itemLink._keKQbOmm._BKxGrdWY === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _QgiqfjLk = _XqBWkMQf.map((_OmoEVAdr, _tyznJeYN) => {
                let _nzFYtWSh;
                if (_OmoEVAdr._CBufPriW === '自定义') {
                     _nzFYtWSh = `${_tyznJeYN + 1} - ${_OmoEVAdr._lCyqZFJg}`;
                } else {
                    _nzFYtWSh = `${_tyznJeYN + 1} - ${_OmoEVAdr._lCyqZFJg || '未知'}`;
                    if (!_OmoEVAdr._CBufPriW || !_OmoEVAdr._CBufPriW.toLowerCase().includes('cloudflare')) {
                        _nzFYtWSh += '(反代)';
                    }
                }
                const _iFOnGilY = _rjKvxlhT.isIPv6(_OmoEVAdr._kePIaBxe) ? `[${_OmoEVAdr._kePIaBxe}]` : _OmoEVAdr._kePIaBxe;
                const _tQnEOFqY = _OmoEVAdr._tQnEOFqY || 443;
                const _ZVpzqSdW = itemLink._keKQbOmm[0];
                const _NTMDQzVA = _ZVpzqSdW._uKhMcTyS || '';
                const _uKhMcTyS = (_NTMDQzVA && _wENsuRyC(_NTMDQzVA)) ? _NTMDQzVA : crypto.randomUUID();
                const _MsJZEhdg = '/snippets?_kePIaBxe=endpointAddress:_tQnEOFqY(443)&nat64=6to4';
                const _baJNbFBi = _ZVpzqSdW._baJNbFBi || _QbqxeJbI;

                const _cFxixrai = new URLSearchParams({
                    security: 'tls',
                    _eEGkjqFr: 'ws',
                    _baJNbFBi: _baJNbFBi,
                    sni: _baJNbFBi,
                    fp: 'random'
                });
                return `vless://${_uKhMcTyS}@${_iFOnGilY}:${_tQnEOFqY}?${_cFxixrai.toString()}&_MsJZEhdg=${encodeURIComponent(encodeURIComponent(_MsJZEhdg))}#${encodeURIComponent(_nzFYtWSh)}`;
            });

        } else {
            if (!itemLink || !itemLink._PxfEhgmV || !itemLink._keKQbOmm || itemLink._keKQbOmm._BKxGrdWY === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _ZVpzqSdW = itemLink._keKQbOmm[0];
            const { _baJNbFBi, _uKhMcTyS, _MsJZEhdg } = _ZVpzqSdW;
            _QgiqfjLk = _XqBWkMQf.map((_OmoEVAdr, _tyznJeYN) => {
                let _nzFYtWSh;
                if (_OmoEVAdr._CBufPriW === '自定义') {
                     _nzFYtWSh = `${_tyznJeYN + 1} - ${_OmoEVAdr._lCyqZFJg}`;
                } else {
                    _nzFYtWSh = `${_tyznJeYN + 1} - ${_OmoEVAdr._lCyqZFJg || '未知'}`;
                    if (!_OmoEVAdr._CBufPriW || !_OmoEVAdr._CBufPriW.toLowerCase().includes('cloudflare')) {
                        _nzFYtWSh += '(反代)';
                    }
                }
                const _iFOnGilY = _rjKvxlhT.isIPv6(_OmoEVAdr._kePIaBxe) ? `[${_OmoEVAdr._kePIaBxe}]` : _OmoEVAdr._kePIaBxe;
                const _tQnEOFqY = _OmoEVAdr._tQnEOFqY || 443;
                const _cFxixrai = new URLSearchParams({
                    security: 'tls',
                    _eEGkjqFr: 'ws',
                    _baJNbFBi: _baJNbFBi || _QbqxeJbI,
                    sni: _baJNbFBi || _QbqxeJbI,
                    fp: 'random'
                });
                return `vless://${_uKhMcTyS}@${_iFOnGilY}:${_tQnEOFqY}?${_cFxixrai.toString()}&_MsJZEhdg=${encodeURIComponent(encodeURIComponent(_MsJZEhdg || ''))}#${encodeURIComponent(_nzFYtWSh)}`;
            });
        }
        
        const _kBrfnReU = _QgiqfjLk.join('\n');
        const _RXdbBlnY = btoa(_kBrfnReU);
        return new Response(_RXdbBlnY, {
            _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' }
        });

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

async function _SuqyuByk(_NFlzziTu) {
    try {
        const { _lyvfWtwD, _eEGkjqFr } = await _NFlzziTu.json();
        if (!Array.isArray(_lyvfWtwD)) {
            return new Response('Invalid _lyvfWtwD list', { status: 400 });
        }
        const _yPmWTKiE = _lyvfWtwD.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _tHpQGhxp = `https://cloudflare-dns.com/dns-query?_nzFYtWSh=${encodeURIComponent(domain.trim())}&_eEGkjqFr=${_eEGkjqFr || 'A'}`;
            return fetch(_tHpQGhxp, { _VTWxvQwV: { 'Accept': 'application/dns-json' } })
                .then(_KUgOgstY => _KUgOgstY.json())
                .then(_VEFfqbuc => (_VEFfqbuc.Answer ? _VEFfqbuc.Answer.map(a => a._VEFfqbuc) : []))
                .catch(() => []);
        });
        const _eKRQUVyu = (await Promise.all(_yPmWTKiE)).flat();
        const _kiTgLkDX = [...new Set(_eKRQUVyu)];
        if (_kiTgLkDX._BKxGrdWY === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_kiTgLkDX.join('\n'), { _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._MhwlvCzj}`, { status: 500 });
    }
}

async function _ELBnndse(_NFlzziTu, _kSghXjZM) {
  try {
      const { _SLzPmHEY } = await _NFlzziTu.json();
      if (!Array.isArray(_SLzPmHEY)) {
          return _fZTkWWFY({ error: "Invalid input, expected an object with a '_SLzPmHEY' array." }, 400);
      }
      
      const _FWxmsURJ = new Set();
      
      const _dDSsNgXs = _SLzPmHEY.map(_tHpQGhxp =>
          _nWmKUPqq(_tHpQGhxp)
              .then(_dHJDuMPe => {
                  if (!_dHJDuMPe) return;
                  const _TTsJRZVt = _dHJDuMPe.split(/[\s,;|]+/);
                  for (const _HzJHqizf of _TTsJRZVt) {
                      const _OHoaBnbY = _HzJHqizf.trim();
                      if (_OHoaBnbY) {
                          _FWxmsURJ.add(_OHoaBnbY);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_tHpQGhxp}:`, err);
              })
      );
      await Promise.all(_dDSsNgXs);
      return _fZTkWWFY({ _KZTmtaHQ: Array.from(_FWxmsURJ) });
  } catch (_xCydVfWL) {
      return _fZTkWWFY({ error: `Failed to process URLs: ${_xCydVfWL._MhwlvCzj}` }, 500);
  }
}

async function _cmlFmhBz(_NFlzziTu, _kSghXjZM) {
    const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
    if (!_iBFSEHoA.api._PxfEhgmV) {
        return new Response(_iBFSEHoA.api._MhwlvCzj || 'API is disabled.', { status: 503 });
    }
    try {
        const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_BAKtQKzl);
        const { _LaHpOhNV: dbResults } = await _qOcahdJY.all();
        const _UoHTYbjg = dbResults._BKxGrdWY > 0 ? dbResults[0]._tHTUmKrx : null;
        const _UKJKXUep = _UoHTYbjg ? JSON.parse(_UoHTYbjg) : null;
        if (!_UKJKXUep || !_UKJKXUep._LaHpOhNV || _UKJKXUep._LaHpOhNV._BKxGrdWY === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' },
            });
        }
        const _KZTmtaHQ = _UKJKXUep._LaHpOhNV.map(r => r._kePIaBxe);
        return new Response(_KZTmtaHQ.join('\n'), {
            _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' },
        });
    } catch (_xCydVfWL) {
        console.error("API /_kePIaBxe 处理错误:", _xCydVfWL);
        return new Response(`API处理时出错: ${_xCydVfWL._MhwlvCzj}`, { status: 500 });
    }
}

function _cMJdzboo(_XoMuNRlG, _tyznJeYN, _iBFSEHoA, _QbqxeJbI) {
    const { itemLink } = _iBFSEHoA;
    if (!itemLink || !itemLink._PxfEhgmV) return null;
    const { template, _keKQbOmm, selectionMode, _saILdGBL } = itemLink;
    if (!_keKQbOmm || _keKQbOmm._BKxGrdWY === 0) return null;

    let _EgEYOlwX;
    if (selectionMode === 'random') {
        _EgEYOlwX = _keKQbOmm[_tyznJeYN % _keKQbOmm._BKxGrdWY];
    } else if (selectionMode === 'first') {
        _EgEYOlwX = _keKQbOmm[0];
    } else {
        _EgEYOlwX = _keKQbOmm.find(s => s._nzFYtWSh === selectionMode) || _keKQbOmm[0];
    }
    if (!_EgEYOlwX) return null;

    let _ksIXgZmy = template;
    const _KdeJhkAO = _XoMuNRlG._tQnEOFqY || 443;
    const _kctcBTAQ = _rjKvxlhT.isIPv6(_XoMuNRlG._kePIaBxe) ? `[${_XoMuNRlG._kePIaBxe}]` : _XoMuNRlG._kePIaBxe;
    let _nzFYtWSh = `${_tyznJeYN + 1} 、 ${_XoMuNRlG._lCyqZFJg || '未知'}`;
    if (!_XoMuNRlG._CBufPriW || !_XoMuNRlG._CBufPriW.toLowerCase().includes('cloudflare')) {
        _nzFYtWSh += '(反代)';
    }
    let _baJNbFBi = _EgEYOlwX._baJNbFBi || _QbqxeJbI;

    _ksIXgZmy = _ksIXgZmy.replace(/{_kePIaBxe}/g, _kctcBTAQ)
               .replace(/{_tQnEOFqY}/g, _KdeJhkAO)
               .replace(/{_nzFYtWSh}/g, encodeURIComponent(_nzFYtWSh))
               .replace(/{rank}/g, _tyznJeYN + 1)
               .replace(/{_lCyqZFJg}/g, encodeURIComponent(_XoMuNRlG._lCyqZFJg || '未知'))
               .replace(/{_CBufPriW}/g, encodeURIComponent(_XoMuNRlG._CBufPriW || '未知'))
               .replace(/{_baJNbFBi}/g, encodeURIComponent(_baJNbFBi))
               .replace(/{_uKhMcTyS}/g, encodeURIComponent(_EgEYOlwX['_uKhMcTyS'] || ''))
               .replace(/{_MsJZEhdg}/g, encodeURIComponent(encodeURIComponent(_EgEYOlwX._MsJZEhdg || '')));

    if (_saILdGBL) {
        _saILdGBL.forEach(field => {
            const _sKCgjtAn = new RegExp('{' + field._nzFYtWSh + '}', 'g');
            _ksIXgZmy = _ksIXgZmy.replace(_sKCgjtAn, encodeURIComponent(field._tHTUmKrx));
        });
    }
    return _ksIXgZmy;
}

async function _ZEdPnzJb(_NFlzziTu, _kSghXjZM) {
    const _iBFSEHoA = await _REihPUSK(_kSghXjZM);
    if (!_iBFSEHoA.itemLink._PxfEhgmV) {
        return new Response("Item _ksIXgZmy feature is disabled.", { status: 503, _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' } });
    }

    try {
        const _qOcahdJY = _kSghXjZM.DB.prepare("SELECT _tHTUmKrx FROM kv_data WHERE _sWpWHESH = ?").bind(_BAKtQKzl);
        const { _LaHpOhNV: dbResults } = await _qOcahdJY.all();
        const _UoHTYbjg = dbResults._BKxGrdWY > 0 ? dbResults[0]._tHTUmKrx : null;
        const _UKJKXUep = _UoHTYbjg ? JSON.parse(_UoHTYbjg) : null;
        
        if (!_UKJKXUep || !_UKJKXUep._LaHpOhNV || _UKJKXUep._LaHpOhNV._BKxGrdWY === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' },
            });
        }
        
        const _QbqxeJbI = new URL(_NFlzziTu._tHpQGhxp)._vFragIfz;

        const _bLFhqnXg = _UKJKXUep._LaHpOhNV.map((_XoMuNRlG, _tyznJeYN) => {
            return _cMJdzboo(_XoMuNRlG, _tyznJeYN, _iBFSEHoA, _QbqxeJbI);
        }).filter(Boolean);

        if (_bLFhqnXg._BKxGrdWY === 0) {
            return new Response("Could not generate any _OmoEVAdr links from the available IPs.", {
                status: 500,
                _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' },
            });
        }

        return new Response(_bLFhqnXg.join('\n'), {
            _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/plain; _bDmbqFUt=utf-8' },
        });

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

async function _UrnxZGId(_NFlzziTu, _kSghXjZM, _keflYwWs) {
    const _YnmSRDTA = _NFlzziTu._VTWxvQwV.get('CF-Connecting-IP') || "未知IP";
    const [
        _usoBhNQf,
        _inExDkYM,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _bWgzCmxH(_DteOLKiy, _rTSYsFnl, []),
        _bWgzCmxH(_rShxmsAy, _rTSYsFnl, []),
        _bWgzCmxH(_PcPGLzVD, _JWISkBOl, []),
        _bWgzCmxH(_ntvesuxS, _RGWWENUy, { "N/A": "未知" })
    ]);
    _PiCtQLDu = fetchedCountryMap;
    let _TbaYvcdF = false;
    let _kpnYRDyR;
    try {
        const _ZQcpOmgH = await _gnMzpuAb(_kSghXjZM);
        _TbaYvcdF = !!_ZQcpOmgH;
        _kpnYRDyR = await _REihPUSK(_kSghXjZM);
    } catch (_xCydVfWL) {
        if (_xCydVfWL._MhwlvCzj && _xCydVfWL._MhwlvCzj.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _IBKpuvGf = "CREATE TABLE IF NOT EXISTS kv_data (_sWpWHESH TEXT PRIMARY KEY, _tHTUmKrx TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_ZFMylRPE TEXT PRIMARY KEY, _VEFfqbuc TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _kSghXjZM.DB.exec(_IBKpuvGf);
                console.log("数据表创建成功。");
                _TbaYvcdF = false;
                _kpnYRDyR = _OFuxcEur();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._MhwlvCzj}`, {
                    status: 500,
                    _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/html;_bDmbqFUt=UTF-8' }
                });
            }
        } else {
             let _FCYfozFe = _eFZImgcf(_xCydVfWL._MhwlvCzj);
             return new Response(_FCYfozFe, { _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/html;_bDmbqFUt=UTF-8' } });
        }
    }
    if (_kpnYRDyR.telegram.bot_token && _kpnYRDyR.telegram.chat_id) {
        const _UZshnkxY = _NFlzziTu.cf?._UZshnkxY || "未知";
        const _SgcOnqGU = _NFlzziTu.cf?._SgcOnqGU || "";
        let _vbtcicAT = _PiCtQLDu[_UZshnkxY] || _UZshnkxY;
        if (_SgcOnqGU && _SgcOnqGU !== "未知城市" && _SgcOnqGU !== _UZshnkxY) _vbtcicAT = `${_vbtcicAT} ${_PiCtQLDu[_SgcOnqGU] || _SgcOnqGU}`;
        const _cccKHJrf = _YMbqrbjY();
        const _VIFlOOno = _NFlzziTu._tHpQGhxp;
        const _GcigRYMr = `访客: ${_YnmSRDTA}\n位置: ${_vbtcicAT.trim()}\n时间: ${_cccKHJrf}\n来自:${_VIFlOOno}`;
        const _VKIbqZiQ = `https://api.telegram.org/bot${_kpnYRDyR.telegram.bot_token}/sendMessage?chat_id=${_kpnYRDyR.telegram.chat_id}&_dHJDuMPe=${encodeURIComponent(_GcigRYMr)}`;
        _keflYwWs.waitUntil(fetch(_VKIbqZiQ).catch(_xCydVfWL => console.error("Telegram通知失败:", _xCydVfWL)));
    }
    let _HEetumGr = _VSUOZaFI();
    const _lrzhTNQa = {
        _iBFSEHoA: _kpnYRDyR,
        status: {
            _TbaYvcdF: _TbaYvcdF,
        }
    };
    _HEetumGr = _HEetumGr.replace('__PAGE_DATA_JSON__', JSON.stringify(_lrzhTNQa));
    _HEetumGr = _HEetumGr.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_usoBhNQf));
    _HEetumGr = _HEetumGr.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_inExDkYM));
    _HEetumGr = _HEetumGr.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _HEetumGr = _HEetumGr.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_PiCtQLDu));
    return new Response(_HEetumGr, {
        _VTWxvQwV: { 'Content-Type': '_dHJDuMPe/html;_bDmbqFUt=UTF-8' },
    });
}

function _fZTkWWFY(_RhJzDlxQ, status = 200, _VTWxvQwV = {}) {
    return new Response(JSON.stringify(_RhJzDlxQ), {
        status,
        _VTWxvQwV: { 'Content-Type': 'application/json;_bDmbqFUt=UTF-8', ..._VTWxvQwV }
    });
}

function _YMbqrbjY(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 _lyQHBpfe(_kePIaBxe) {
    if (!_kePIaBxe || typeof _kePIaBxe !== 'string') return "无效IP";
    if(_rjKvxlhT.isIPv4(_kePIaBxe)){
        const _EWHTfFBN = _kePIaBxe.split('.');
        if (_EWHTfFBN._BKxGrdWY === 4) return `${_EWHTfFBN[0]}.*.*.${_EWHTfFBN[3]}`;
    }
    if(_rjKvxlhT.isIPv6(_kePIaBxe)){
        const _EWHTfFBN = _kePIaBxe.split(':');
        if (_EWHTfFBN._BKxGrdWY > 2) return `${_EWHTfFBN[0]}:...:${_EWHTfFBN[_EWHTfFBN._BKxGrdWY - 1]}`;
    }
    return _kePIaBxe;
}

function _eFZImgcf(_uakviNxJ) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _bDmbqFUt="UTF-8"><title>需要设置</title>
    <_HSEtCKXW>
        _RhJzDlxQ { font-family: sans-serif; background: #1a1a1a; _OVBQuCzh: #e0e0e0; display: flex; justify-_hGGjqbIj: center; align-items: center; height: 100vh; margin: 0; }
        ._ergxyJcb { max-_IVlERQxT: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _OVBQuCzh: #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 { _OVBQuCzh: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_QXFxTdzm: 1rem; }
    </_HSEtCKXW>
    </head><_RhJzDlxQ>
    <div class="_ergxyJcb">
        <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>
        ${_uakviNxJ ? `<div class="error"><strong>当前错误信息:</strong> ${_uakviNxJ.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_RhJzDlxQ></html>`;
}

function _VSUOZaFI() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _bDmbqFUt="UTF-8"> <meta _nzFYtWSh="viewport" _hGGjqbIj="_IVlERQxT=device-_IVlERQxT, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_ksIXgZmy 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>
  <_HSEtCKXW>
  :root { --primary-_OVBQuCzh: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_OVBQuCzh: #8c939d; --light-bg: #1A1C20; --_hGGjqbIj-bg: #25282E; --border-_OVBQuCzh: #40444C; --_dHJDuMPe-_OVBQuCzh: #E0E0E0; --_dHJDuMPe-light: #B0B0B0; --success-_OVBQuCzh: #30A46C; --danger-_OVBQuCzh: #DA3633; --warning-_OVBQuCzh: #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; }
  _RhJzDlxQ { font-family: var(--font-family-sans); background-_OVBQuCzh: var(--light-bg); _OVBQuCzh: var(--_dHJDuMPe-_OVBQuCzh); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_OVBQuCzh 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_mCSwUsgN { position: fixed; _QXFxTdzm: 0; _tbGHJIRk: 0; _IVlERQxT: 100%; height: 100%; z-_tyznJeYN: -1; display: none; }
  ._YewpUjzc-_ergxyJcb { max-_IVlERQxT: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_tyznJeYN: 1; }
  #_FfTymvBS { position: fixed; _QXFxTdzm: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_tyznJeYN: 10; }
  #marquee-_ergxyJcb { overflow: hidden; white-space: nowrap; background-_OVBQuCzh: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _OVBQuCzh: var(--primary-_OVBQuCzh); padding: 0.5rem 0; margin-_QXFxTdzm: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_dHJDuMPe { display: inline-block; padding-_tbGHJIRk: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _tRTIzUXv { _dHJDuMPe-align: center; margin-_QXFxTdzm: 1rem; margin-bottom: 2rem; }
  _tRTIzUXv h1 { white-space: pre-wrap; font-size: 2.25em; _OVBQuCzh: var(--primary-_OVBQuCzh); font-weight: 700; _dHJDuMPe-shadow: 0 0 10px rgba(var(--primary-_OVBQuCzh-rgb), 0.3); }
  .card { background-_OVBQuCzh: 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-_OVBQuCzh); }
  .progress-section #_wVdlUAqb { _IVlERQxT: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_OVBQuCzh: var(--border-_OVBQuCzh); overflow: hidden; }
  .progress-section #_wVdlUAqb::-webkit-progress-_tHTUmKrx { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _dHJDuMPe-align: center; margin-_QXFxTdzm: 0.75em; font-size: 0.95em; _OVBQuCzh: var(--_dHJDuMPe-light); min-height: 1.5em; }
  .section-_tRTIzUXv { display: flex; flex-wrap: wrap; justify-_hGGjqbIj: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_OVBQuCzh); gap: 1rem; }
  .section-_tRTIzUXv h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _OVBQuCzh: var(--secondary-_OVBQuCzh); _dHJDuMPe-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _IVlERQxT: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _IVlERQxT: 100%; border-collapse: collapse; margin-_QXFxTdzm: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_OVBQuCzh); padding: 0.8em; _dHJDuMPe-align: _tbGHJIRk; vertical-align: middle; white-space: nowrap; }
  th { background-_OVBQuCzh: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_OVBQuCzh: #30333a; }
  td._kePIaBxe-_mJGOsQki { font-weight: 500; font-family: var(--font-family-mono); _OVBQuCzh: var(--primary-_OVBQuCzh); }
  td.ping-_tHTUmKrx { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _dHJDuMPe-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_hGGjqbIj: center; font-weight: 500; _dHJDuMPe-align: center; cursor: pointer; user-_TFTApgUo: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _OVBQuCzh: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_tbGHJIRk: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _OVBQuCzh: var(--primary-_OVBQuCzh); border: 1px solid var(--primary-_OVBQuCzh); }
  .btn-outline:hover { background-_OVBQuCzh: var(--primary-_OVBQuCzh); _OVBQuCzh: var(--_hGGjqbIj-bg); }
  ._YewpUjzc-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._YewpUjzc-download-buttons .btn { _IVlERQxT: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _QXFxTdzm: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _OVBQuCzh: #fff; font-size: 0.95em; z-_tyznJeYN: 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); }
  #_krKyETsN, #_fXAGgIqJ, #_rjxiCLbL, #_omUmroNk, #_RyBBJyhR { display: none; position: fixed; z-_tyznJeYN: 10000; _tbGHJIRk: 0; _QXFxTdzm: 0; _IVlERQxT: 100%; height: 100%; background-_OVBQuCzh: rgba(0,0,0,0.6); justify-_hGGjqbIj: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_hGGjqbIj, ._YewpUjzc-modal-_hGGjqbIj { background-_OVBQuCzh: var(--_hGGjqbIj-bg); padding: 2rem; border: 1px solid var(--border-_OVBQuCzh); border-radius: var(--border-radius-md); _IVlERQxT: 95%; max-_IVlERQxT: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_omUmroNk .modal-_hGGjqbIj { max-_IVlERQxT: 500px; }
  .modal-_hGGjqbIj h3, ._YewpUjzc-modal-_tRTIzUXv h3 { margin-_QXFxTdzm: 0; margin-bottom: 1.5rem; _OVBQuCzh: var(--primary-_OVBQuCzh); _dHJDuMPe-align: center; }
  .modal-buttons { display: flex; justify-_hGGjqbIj: flex-end; gap: 1rem; margin-_QXFxTdzm: 2rem; border-_QXFxTdzm: 1px solid var(--border-_OVBQuCzh); padding-_QXFxTdzm: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_OVBQuCzh), rgba(0,0,0,0)); margin: 2rem 0; }
  ._YewpUjzc-modal-_tRTIzUXv { display: flex; justify-_hGGjqbIj: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_OVBQuCzh); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _OVBQuCzh: var(--_dHJDuMPe-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._YewpUjzc-list-_OmoEVAdr { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_OVBQuCzh); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._YewpUjzc-_nzFYtWSh { font-size: 1.1em; font-weight: 600; }
  ._YewpUjzc-links a { display: block; _OVBQuCzh: var(--primary-_OVBQuCzh); _dHJDuMPe-decoration: none; margin-_QXFxTdzm: 0.5rem; word-break: break-all; }
  ._YewpUjzc-links a:hover { _dHJDuMPe-decoration: underline; }
  ._YewpUjzc-links span { _OVBQuCzh: var(--_dHJDuMPe-light); }
  #visitorPasswordPrompt { _dHJDuMPe-align: center; }
  #visitorPasswordPrompt h3 { _OVBQuCzh: var(--primary-_OVBQuCzh); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _OVBQuCzh: var(--_dHJDuMPe-light); margin-bottom: 1.5rem; }
  ._ZQcpOmgH-input-group { display: flex; gap: 10px; max-_IVlERQxT: 400px; margin: 0 auto; }
  ._ZQcpOmgH-input-group input { flex-grow: 1; _dHJDuMPe-align: center; }
  ._ZQcpOmgH-input-group .btn { margin-_tbGHJIRk: 0; }
  ._LaHpOhNV-actions-_ergxyJcb { _dHJDuMPe-align: center; margin-bottom: 1.5rem; }
  ._LaHpOhNV-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._LaHpOhNV-api-buttons .btn { margin: 0; _IVlERQxT: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_hGGjqbIj 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 _TFTApgUo, .form-grid-control textarea { _IVlERQxT: 100%; background-_OVBQuCzh: var(--light-bg); border: 1px solid var(--border-_OVBQuCzh); border-radius: var(--border-radius-sm); _OVBQuCzh: var(--_dHJDuMPe-_OVBQuCzh); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_OVBQuCzh 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _TFTApgUo:focus, .form-grid-control textarea:focus { border-_OVBQuCzh: var(--primary-_OVBQuCzh); box-shadow: 0 0 0 2px rgba(var(--primary-_OVBQuCzh-rgb), 0.2); outline: none; }
  .form-grid-control input[_eEGkjqFr="_OVBQuCzh"] { min-_IVlERQxT: auto; padding: 2px; _IVlERQxT: 2.5em; height: 2.5em; }
  .form-grid-control input[_eEGkjqFr="checkbox"] { _IVlERQxT: auto; flex-shrink: 0; height: 1.2em; _IVlERQxT: 1.2em; }
  .form-grid-control ._qwdDfoqC-input { _IVlERQxT: 80px; _dHJDuMPe-align: right; }
  .tooltip-_wwyMCJNg { display: inline-flex; _IVlERQxT: 16px; height: 16px; align-items: center; justify-_hGGjqbIj: center; background-_OVBQuCzh: var(--secondary-_OVBQuCzh); _OVBQuCzh: var(--_hGGjqbIj-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_TFTApgUo: none; }
  #tooltip-popup { position: fixed; background-_OVBQuCzh: #383c4a; _OVBQuCzh: #fff; padding: 10px 15px; border-radius: 6px; z-_tyznJeYN: 10001; font-size: 0.85em; max-_IVlERQxT: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_OVBQuCzh); pointer-events: none; }
  #custom-fields-_ergxyJcb .form-grid-control { gap: 5px; } #custom-fields-_ergxyJcb .form-grid-control input { flex: 1; }
  .parameter-_jNwuomlq-_rKRydXJm { border: 1px solid var(--border-_OVBQuCzh); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_jNwuomlq-_tRTIzUXv { display: flex; justify-_hGGjqbIj: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_jNwuomlq-_tRTIzUXv input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_QXFxTdzm: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._dHJDuMPe-_OVBQuCzh-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _IVlERQxT: 100%; }
  ._dHJDuMPe-_OVBQuCzh-grid input[_eEGkjqFr="_OVBQuCzh"] { grid-column: 1 / 2; }
  ._dHJDuMPe-_OVBQuCzh-grid input[_eEGkjqFr="_dHJDuMPe"], ._dHJDuMPe-_OVBQuCzh-grid textarea { grid-column: 2 / 3; }
  #_omUmroNk .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_omUmroNk .btn-group { display: flex; }
  #_omUmroNk .sub-btn { flex-grow: 1; margin: 0; }
  #_omUmroNk ._zJywLBNl-btn { flex-shrink: 0; margin-_tbGHJIRk: -1px; border-_QXFxTdzm-_tbGHJIRk-radius: 0; border-bottom-_tbGHJIRk-radius: 0; }
  #_RyBBJyhR .modal-_hGGjqbIj { max-_IVlERQxT: 300px; background: white; padding: 1rem; _dHJDuMPe-align: center; }
  #qrCodeImg { max-_IVlERQxT: 100%; }
  @media (max-_IVlERQxT: 768px) {
    html { font-size: 15px; } ._YewpUjzc-_ergxyJcb { padding: 0 0.8rem; } _tRTIzUXv { margin-_QXFxTdzm: 2.5rem; margin-bottom: 1.5rem; } #_FfTymvBS { _QXFxTdzm: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_HSEtCKXW>
  <_HSEtCKXW _ZFMylRPE="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_hGGjqbIj-bg: #FFFFFF; --border-_OVBQuCzh: #DCDFE6; --_dHJDuMPe-_OVBQuCzh: #303133; --_dHJDuMPe-light: #606266; }
  .theme-light .card { background-_OVBQuCzh: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_OVBQuCzh: #F5F7FA; }
  .theme-light tbody tr:hover { background-_OVBQuCzh: #ECF5FF; }
  .theme-matrix { --primary-_OVBQuCzh: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_hGGjqbIj-bg: #0D0208; --border-_OVBQuCzh: #00FF41; --_dHJDuMPe-_OVBQuCzh: #00FF41; --_dHJDuMPe-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_OVBQuCzh: rgba(0, 20, 0, 0.7); _dHJDuMPe-shadow: 0 0 5px var(--primary-_OVBQuCzh); backdrop-filter: none; }
  .theme-matrix th { background-_OVBQuCzh: #000; }
  .theme-matrix tbody tr:hover { background-_OVBQuCzh: #010; }
  .theme-matrix .btn { _dHJDuMPe-shadow: none; _OVBQuCzh: #000; }
  .theme-matrix .btn-outline { background-_OVBQuCzh: transparent; }
  .theme-modern-glass { --primary-_OVBQuCzh: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_hGGjqbIj-bg: rgba(30, 30, 40, 0.6); --border-_OVBQuCzh: rgba(255, 255, 255, 0.2); --_dHJDuMPe-_OVBQuCzh: #F0F0F0; --_dHJDuMPe-light: #A0A0B0; --border-radius-md: 12px; }
  _RhJzDlxQ.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-_OVBQuCzh: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_hGGjqbIj-bg: rgba(30, 30, 40, 0.6); --border-_OVBQuCzh: rgba(255, 255, 255, 0.2); --_dHJDuMPe-_OVBQuCzh: #F0F0F0; --_dHJDuMPe-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_OVBQuCzh: var(--_hGGjqbIj-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_OVBQuCzh); }
  .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-_OVBQuCzh: rgba(0,0,0,0.3); border-right-_OVBQuCzh: 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); _dHJDuMPe-shadow: 0 1px 2px rgba(0,0,0,0.2); _OVBQuCzh: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_OVBQuCzh: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _dHJDuMPe-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_OVBQuCzh); border-_OVBQuCzh: var(--primary-_OVBQuCzh); _OVBQuCzh: #fff; }
  .glassy-components _tRTIzUXv h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _dHJDuMPe; -webkit-_dHJDuMPe-fill-_OVBQuCzh: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _OVBQuCzh: transparent; }
  .theme-aurora-glass { --primary-_OVBQuCzh: #38bdf8; --light-bg: #0c0a09; --_hGGjqbIj-bg: rgba(23, 23, 23, 0.5); --border-_OVBQuCzh: rgba(255, 255, 255, 0.15); --_dHJDuMPe-_OVBQuCzh: #f2f2f2; --_dHJDuMPe-light: #a3a3a3; }
  _RhJzDlxQ.theme-aurora-glass::before { _hGGjqbIj: ''; position: fixed; _QXFxTdzm: 0; _tbGHJIRk: 0; _IVlERQxT: 100%; height: 100%; z-_tyznJeYN: -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-_OVBQuCzh: #08fdd8; --light-bg: #010409; --_hGGjqbIj-bg: rgba(22, 27, 34, 0.6); --border-_OVBQuCzh: rgba(139, 148, 158, 0.3); --_dHJDuMPe-_OVBQuCzh: #e6edf3; --_dHJDuMPe-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_OVBQuCzh), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_OVBQuCzh-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_OVBQuCzh-rgb), 0.5); }
  .theme-marble-light { --primary-_OVBQuCzh: #bfa37c; --light-bg: #f7f5f2; --_hGGjqbIj-bg: #ffffff; --border-_OVBQuCzh: #e0dcd5; --_dHJDuMPe-_OVBQuCzh: #3d3a36; --_dHJDuMPe-light: #6b6661; }
  _RhJzDlxQ.theme-marble-light { background-image: _tHpQGhxp('_VEFfqbuc:image/svg+xml,%3Csvg _IVlERQxT="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-_OVBQuCzh: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_HSEtCKXW>
  </head><_RhJzDlxQ _ZFMylRPE="pageBody">
  <_mCSwUsgN _ZFMylRPE="background-_mCSwUsgN"></_mCSwUsgN>
  <div _ZFMylRPE="_krKyETsN">
      <div class="modal-_hGGjqbIj">
          <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 _eEGkjqFr="_ZQcpOmgH" _ZFMylRPE="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _eEGkjqFr="_ZQcpOmgH" _ZFMylRPE="confirmPassword"></div></div>
          <div class="modal-buttons"><button _ZFMylRPE="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_YewpUjzc-_ergxyJcb">
    <button _ZFMylRPE="_FfTymvBS" class="btn btn-outline"></button>
    <div _ZFMylRPE="marquee-_ergxyJcb"><div _ZFMylRPE="marquee-_dHJDuMPe"></div></div>
    <_tRTIzUXv><h1 _ZFMylRPE="pageTitle"></h1></_tRTIzUXv>
    <div class="card" _ZFMylRPE="visitorPasswordPrompt" _HSEtCKXW="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_ZQcpOmgH-input-group">
            <input _eEGkjqFr="_ZQcpOmgH" _ZFMylRPE="visitorPasswordEntry" _sKCgjtAn="访客密码">
            <button _ZFMylRPE="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _ZFMylRPE="_yOScQApX" _HSEtCKXW="display: block;">
        <div class="card progress-section">
            <div _ZFMylRPE="progressDisplay">
                <progress _ZFMylRPE="_wVdlUAqb" _tHTUmKrx="0" max="100"></progress>
                <div _ZFMylRPE="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _YewpUjzc-download-section">
          <div class="section-_tRTIzUXv"><h2 _ZFMylRPE="appDownloadTitleEl"></h2></div>
          <div class="_YewpUjzc-download-buttons">
            <button class="btn" _VEFfqbuc-_wkyncmox="android">安卓客户端</button>
            <button class="btn" _VEFfqbuc-_wkyncmox="ios">苹果客户端</button>
            <button class="btn" _VEFfqbuc-_wkyncmox="windows">Windows客户端</button>
            <button class="btn" _VEFfqbuc-_wkyncmox="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _LaHpOhNV-section" _ZFMylRPE="_niBQTzOv" _HSEtCKXW="display:none;">
          <div class="section-_tRTIzUXv">
            <h2 _ZFMylRPE="liveTitleEl"></h2>
            <div class="generator-info" _ZFMylRPE="liveGeneratorInfo"></div>
          </div>
          <div _ZFMylRPE="_OPCJUbgM" class="_LaHpOhNV-actions-_ergxyJcb" _HSEtCKXW="display: none;">
             <div class="_LaHpOhNV-api-buttons">
                <button _ZFMylRPE="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _ZFMylRPE="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _ZFMylRPE="resultsTable">
              <thead><tr><th _ZFMylRPE="tableHeader1El"></th><th _ZFMylRPE="tableHeader2El"></th><th _ZFMylRPE="tableHeader3El"></th><th _ZFMylRPE="tableHeader4El"></th><th _ZFMylRPE="tableHeader5El"></th><th _ZFMylRPE="tableHeader6El"></th><th _ZFMylRPE="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _ZFMylRPE="_BYlKDwEl" _HSEtCKXW="display:none;">
          <div class="section-_tRTIzUXv"><h2 _ZFMylRPE="cachedTitleEl"></h2><div class="generator-info" _ZFMylRPE="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _ZFMylRPE="cachedResultsTable">
              <thead><tr><th _ZFMylRPE="cachedTableHeader1El"></th><th _ZFMylRPE="cachedTableHeader2El"></th><th _ZFMylRPE="cachedTableHeader3El"></th><th _ZFMylRPE="cachedTableHeader4El"></th><th _ZFMylRPE="cachedTableHeader5El"></th><th _ZFMylRPE="cachedTableHeader6El"></th><th _ZFMylRPE="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _ZFMylRPE="notificationTooltip" class="tooltip-notification"></div>
  <div _ZFMylRPE="_fXAGgIqJ">
    <div class="modal-_hGGjqbIj">
      <h3>修改参数</h3>
      <div _HSEtCKXW="display: flex; border-bottom: 1px solid var(--border-_OVBQuCzh); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_ZFYwWoSc(event, 'general-_NgOoawbj')">通用设置</button>
          <button class="tab-button" onclick="_ZFYwWoSc(event, '_ksIXgZmy-_NgOoawbj')">链接设置</button>
          <button class="tab-button" onclick="_ZFYwWoSc(event, 'fine-grained-_NgOoawbj')">IP源设置</button>
          <button class="tab-button" onclick="_ZFYwWoSc(event, 'advanced-_NgOoawbj')">高级设置</button>
      </div>
      <div _ZFMylRPE="general-_NgOoawbj" class="tab-_hGGjqbIj" _HSEtCKXW="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_TFTApgUo _ZFMylRPE="themeSelect">
                    <_lynTdVtl _tHTUmKrx="theme-aurora-glass">极光-玻璃质感</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-particles-glass">粒子-玻璃质感</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-modern-glass">现代-玻璃质感</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-cyberpunk-glass">赛博朋克-玻璃质感</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-dark-particles">暗色-粒子背景</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-dark-bing">暗色-必应壁纸</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-light">亮色-简约</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-light-bing">亮色-必应壁纸</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-marble-light">简约大理石-亮色</_lynTdVtl>
                    <_lynTdVtl _tHTUmKrx="theme-matrix">矩阵-代码雨</_lynTdVtl>
                </_TFTApgUo>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="primaryColorInput">
                <span _HSEtCKXW="_IVlERQxT: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_title"><textarea _ZFMylRPE="textInput_title" _UojSvSLG="1" _sKCgjtAn="页面主标题"></textarea></div>
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_loginButton"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="textInput_loginButton" _sKCgjtAn="登录按钮文本"></div>
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_appDownloadTitle"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="textInput_appDownloadTitle" _sKCgjtAn="APP下载标题"></div>
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_liveTitle"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="textInput_liveTitle" _sKCgjtAn="本次结果标题"></div>
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_cachedTitle"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="textInput_cachedTitle" _sKCgjtAn="上次结果标题"></div>
                <div class="_dHJDuMPe-_OVBQuCzh-grid"><input _eEGkjqFr="_OVBQuCzh" _ZFMylRPE="colorInput_tableHeader"><input _eEGkjqFr="_dHJDuMPe" _tHTUmKrx="表格头部文本颜色" readonly _HSEtCKXW="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label>公告栏设置</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _ZFMylRPE="announcementText" _sKCgjtAn="在此输入公告内容" _UojSvSLG="3"></textarea>
                 <div _HSEtCKXW="display: flex; justify-_hGGjqbIj: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _HSEtCKXW="display: flex; align-items: center; gap: 5px;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableMarquee"> 顶部走马灯</label>
                    <label _HSEtCKXW="display: flex; align-items: center; gap: 5px;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enablePopup"> 右上角弹窗</label>
                    <div _ZFMylRPE="popupDurationContainer" _HSEtCKXW="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _eEGkjqFr="number" _ZFMylRPE="popupDuration" _HSEtCKXW="_IVlERQxT: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _ZFMylRPE="_ksIXgZmy-_NgOoawbj" class="tab-_hGGjqbIj">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="converterServiceUrlInput" _sKCgjtAn="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _eEGkjqFr="number" _ZFMylRPE="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _ZFMylRPE="subscriptionIdCharset" _UojSvSLG="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-_wwyMCJNg" _VEFfqbuc-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableItemLinkCheckbox"></div>
        </div>
        <div _ZFMylRPE="itemLinkConfigGroup" _HSEtCKXW="display:none; margin-_QXFxTdzm: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="定义分享链接格式。可用占位符: {_kePIaBxe}, {_tQnEOFqY}, {_nzFYtWSh}, {rank}, {_lCyqZFJg}, {_CBufPriW}, {_baJNbFBi}, {_uKhMcTyS}, {_MsJZEhdg}。">?</span></div>
              <div class="form-grid-control"><textarea _ZFMylRPE="itemLinkTemplateInput" _UojSvSLG="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_TFTApgUo _ZFMylRPE="parameterSelectionMode"></_TFTApgUo></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _ZFMylRPE="parameter-sets-_ergxyJcb"></div><button _eEGkjqFr="button" _ZFMylRPE="add-parameter-_jNwuomlq-btn" class="btn btn-outline" _HSEtCKXW="margin-_QXFxTdzm: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _ZFMylRPE="custom-fields-_ergxyJcb" _HSEtCKXW="_IVlERQxT: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><button _eEGkjqFr="button" _ZFMylRPE="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _ZFMylRPE="fine-grained-_NgOoawbj" class="tab-_hGGjqbIj">
          <div class="form-grid-label" _HSEtCKXW="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _HSEtCKXW="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_hGGjqbIj: flex-start;">
              <label><input _eEGkjqFr="checkbox" _ZFMylRPE="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _eEGkjqFr="checkbox" _ZFMylRPE="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _ZFMylRPE="fine-grained-sources-_ergxyJcb"></div><button _eEGkjqFr="button" _ZFMylRPE="add-fine-grained-_aaDiGKDE-btn" class="btn btn-outline" _HSEtCKXW="margin-_QXFxTdzm: 10px;">添加地区</button></div>
      </div>
      <div _ZFMylRPE="advanced-_NgOoawbj" class="tab-_hGGjqbIj">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _eEGkjqFr="checkbox" _ZFMylRPE="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="resolvedDomainsGroup" _HSEtCKXW="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _ZFMylRPE="resolvedDomainsInput" _sKCgjtAn="留空则使用内置默认域名" _UojSvSLG="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-_wwyMCJNg" _VEFfqbuc-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="customNodesGroup" _HSEtCKXW="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _ZFMylRPE="customNodesInput" _sKCgjtAn="一行一个地址,支持域名、IPv4、IPv6。" _UojSvSLG="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-_wwyMCJNg" _VEFfqbuc-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _eEGkjqFr="number" _ZFMylRPE="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _eEGkjqFr="number" _ZFMylRPE="topNInput"></div>
            <div class="form-grid-label" _HSEtCKXW="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="display: none;"><input _eEGkjqFr="number" _ZFMylRPE="latencyRangeMinInput" _sKCgjtAn="最小"><span>-</span><input _eEGkjqFr="number" _ZFMylRPE="latencyRangeMaxInput" _sKCgjtAn="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="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-_wwyMCJNg" _VEFfqbuc-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _eEGkjqFr="number" _ZFMylRPE="geoLocationRetriesInput" _HSEtCKXW="_IVlERQxT: 80px;"> <span>次</span>
                <div _HSEtCKXW="display: flex; align-items: center; gap: 5px; margin-_tbGHJIRk: 20px;">
                    <input _eEGkjqFr="checkbox" _ZFMylRPE="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-_wwyMCJNg" _VEFfqbuc-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_baJNbFBi:_tQnEOFqY' 或 '_baJNbFBi'。">?</span></div>
            <div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="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-_wwyMCJNg" _VEFfqbuc-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="websocketStreamerGroup" _HSEtCKXW="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="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-_wwyMCJNg" _VEFfqbuc-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="启用 /_kePIaBxe 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="apiConfigGroup" _HSEtCKXW="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="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-_wwyMCJNg" _VEFfqbuc-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="customSubPathGroup" _HSEtCKXW="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="customSubPathInput" _sKCgjtAn="例如: 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-_wwyMCJNg" _VEFfqbuc-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="justify-_hGGjqbIj: flex-start;"><input _eEGkjqFr="checkbox" _ZFMylRPE="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _ZFMylRPE="visitorPasswordGroup" _HSEtCKXW="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_wwyMCJNg" _VEFfqbuc-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _HSEtCKXW="flex-direction: column; align-items: stretch; gap: 8px;"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="botTokenInput" _sKCgjtAn="Telegram Bot Token"><input _eEGkjqFr="_dHJDuMPe" _ZFMylRPE="chatIdInput" _sKCgjtAn="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _HSEtCKXW="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _HSEtCKXW="flex-direction: column; align-items: stretch; gap: 8px;"><input _eEGkjqFr="_ZQcpOmgH" _ZFMylRPE="oldPasswordInput" _sKCgjtAn="旧密码"><input _eEGkjqFr="_ZQcpOmgH" _ZFMylRPE="newPasswordInput" _sKCgjtAn="新密码 (至少6位)"><button _ZFMylRPE="changePasswordBtn" class="btn" _HSEtCKXW="align-self: flex-start; margin-_tbGHJIRk: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _ZFMylRPE="closeModalBtn" class="btn btn-outline">关闭</button><button _ZFMylRPE="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _ZFMylRPE="_rjxiCLbL">
      <div class="_YewpUjzc-modal-_hGGjqbIj">
          <div class="_YewpUjzc-modal-_tRTIzUXv"><h3 _ZFMylRPE="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_YewpUjzc-modal-_RhJzDlxQ" _ZFMylRPE="appModalBody"></div>
      </div>
  </div>
  <div _ZFMylRPE="_omUmroNk">
      <div class="modal-_hGGjqbIj">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _VEFfqbuc-sub-_eEGkjqFr="coreEngine">Xray</button><button class="btn _zJywLBNl-btn" _VEFfqbuc-sub-_eEGkjqFr="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VEFfqbuc-sub-_eEGkjqFr="coreProfile">Sing-Box</button><button class="btn _zJywLBNl-btn" _VEFfqbuc-sub-_eEGkjqFr="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VEFfqbuc-sub-_eEGkjqFr="configProfile">Clash</button><button class="btn _zJywLBNl-btn" _VEFfqbuc-sub-_eEGkjqFr="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VEFfqbuc-sub-_eEGkjqFr="policyProfile">Surge</button><button class="btn _zJywLBNl-btn" _VEFfqbuc-sub-_eEGkjqFr="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _HSEtCKXW="justify-_hGGjqbIj: center;"><button class="btn btn-outline" _ZFMylRPE="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _ZFMylRPE="_RyBBJyhR">
      <div class="modal-_hGGjqbIj">
          <img _ZFMylRPE="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _rjKvxlhT = {
        isValid: (_kePIaBxe) => _rjKvxlhT.isIPv4(_kePIaBxe) || _rjKvxlhT.isIPv6(_kePIaBxe),
        isIPv4: (_kePIaBxe) => {
            if (typeof _kePIaBxe !== 'string') return false;
            const _EWHTfFBN = _kePIaBxe.split('.');
            if (_EWHTfFBN._BKxGrdWY !== 4) return false;
            return _EWHTfFBN.every(_qsAVjdXs => {
                const _VHUehYtC = parseInt(_qsAVjdXs, 10);
                return !isNaN(_VHUehYtC) && _VHUehYtC >= 0 && _VHUehYtC <= 255 && String(_VHUehYtC) === _qsAVjdXs;
            });
        },
        isIPv6: (_kePIaBxe) => {
            if (typeof _kePIaBxe !== '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]))$/_uUkhUKtY.test(_kePIaBxe);
        },
        toLong4: (_kePIaBxe) => _kePIaBxe.split('.').reduce((acc, octet, _uUkhUKtY) => acc + (parseInt(octet) << (8*(3-_uUkhUKtY))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_kePIaBxe) => {
            try {
                const _KiTxMUaz = _kePIaBxe.split('/')[0];
                const _EWHTfFBN = _KiTxMUaz.split('::');
                if (_EWHTfFBN._BKxGrdWY > 2) return 0n;
                let _FmqzKrhy = [];
                if (_EWHTfFBN[0]) {
                    _FmqzKrhy = _EWHTfFBN[0].split(':');
                }
                let _FUIwmogZ = [];
                if (_EWHTfFBN._BKxGrdWY > 1 && _EWHTfFBN[1]) {
                    _FUIwmogZ = _EWHTfFBN[1].split(':');
                }
                if (_FmqzKrhy._BKxGrdWY + _FUIwmogZ._BKxGrdWY > 8) return 0n;
                const _iPvZtlnY = 8 - (_FmqzKrhy._BKxGrdWY + _FUIwmogZ._BKxGrdWY);
                const _PCbtLqUZ = [
                    ..._FmqzKrhy,
                    ...Array(_iPvZtlnY).fill('0'),
                    ..._FUIwmogZ
                ].map(_qsAVjdXs => _qsAVjdXs || '0');
                while(_PCbtLqUZ._BKxGrdWY < 8) {
                    _PCbtLqUZ.push('0');
                }
                let _pHqeCYpL = 0n;
                for (const _qsAVjdXs of _PCbtLqUZ) {
                    if (_qsAVjdXs._BKxGrdWY > 4) return 0n;
                    const _tHTUmKrx = BigInt('0x' + _qsAVjdXs);
                    _pHqeCYpL = (_pHqeCYpL << 16n) | _tHTUmKrx;
                }
                return _pHqeCYpL;
            } catch(_xCydVfWL) {
                return 0n;
            }
        },
        fromBigInt6: (_pHqeCYpL) => {
            if (typeof _pHqeCYpL !== '_pHqeCYpL' || _pHqeCYpL < 0n) return null;
            const _EWHTfFBN = [];
            for (let _uUkhUKtY = 0; _uUkhUKtY < 8; _uUkhUKtY++) {
                _EWHTfFBN.unshift((_pHqeCYpL & 0xFFFFn).toString(16));
                _pHqeCYpL >>= 16n;
            }
            let _vQvbvhoT = { start: -1, _ceypxXIY: 0 };
            let _JhnfPVoH = { start: -1, _ceypxXIY: 0 };
            for (let _uUkhUKtY = 0; _uUkhUKtY < 8; _uUkhUKtY++) {
                if (_EWHTfFBN[_uUkhUKtY] === '0') {
                    if (_JhnfPVoH.start === -1) _JhnfPVoH.start = _uUkhUKtY;
                    _JhnfPVoH._ceypxXIY++;
                } else {
                    if (_JhnfPVoH._ceypxXIY > _vQvbvhoT._ceypxXIY) _vQvbvhoT = { ..._JhnfPVoH };
                    _JhnfPVoH = { start: -1, _ceypxXIY: 0 };
                }
            }
            if (_JhnfPVoH._ceypxXIY > _vQvbvhoT._ceypxXIY) _vQvbvhoT = { ..._JhnfPVoH };
            if (_vQvbvhoT._ceypxXIY > 1) {
                _EWHTfFBN.splice(_vQvbvhoT.start, _vQvbvhoT._ceypxXIY, '');
                if (_vQvbvhoT.start === 0) _EWHTfFBN.unshift('');
                if (_vQvbvhoT.start + _vQvbvhoT._ceypxXIY === 8) _EWHTfFBN.push('');
            }
            return _EWHTfFBN.join(':');
        },
        cidrToRange: (cidr, _dZDkQEsa = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _fncZNONp = parseInt(bitsStr, 10);
                const _KZTmtaHQ = new Set();
                if (_rjKvxlhT.isIPv4(range)) {
                    if (isNaN(_fncZNONp) || _fncZNONp < 8 || _fncZNONp > 32) return [];
                    if (_fncZNONp === 32) return [range];
                    const _IlaZoEOW = _rjKvxlhT.toLong4(range);
                    const _VkxPUUXD = (0xFFFFFFFF << (32 - _fncZNONp)) >>> 0;
                    const _FbTZLPAm = _IlaZoEOW & _VkxPUUXD;
                    const _rUGGIBuZ = 1 << (32 - _fncZNONp);
                    if (_rUGGIBuZ <= 2) return [];
                    const _yaoVrUKF = Math.min(_dZDkQEsa, _rUGGIBuZ - 2);
                    let _KWEjNvjh = 0;
                    while (_KZTmtaHQ.size < _yaoVrUKF && _KWEjNvjh < _yaoVrUKF * 5) {
                        const _oKelShli = Math.floor(Math.random() * (_rUGGIBuZ - 2)) + 1;
                        _KZTmtaHQ.add(_rjKvxlhT.fromLong4((_FbTZLPAm + _oKelShli) >>> 0));
                        _KWEjNvjh++;
                    }
                    return Array.from(_KZTmtaHQ);
                } else if (_rjKvxlhT.isIPv6(range)) {
                    if (isNaN(_fncZNONp) || _fncZNONp < 16 || _fncZNONp > 128) return [];
                    if (_fncZNONp === 128) return [range];
                    const _SbtKWEUx = _rjKvxlhT.toBigInt6(range);
                    const _VkxPUUXD = (2n ** BigInt(128 - _fncZNONp) - 1n);
                    const _FbTZLPAm = _SbtKWEUx & ~_VkxPUUXD;
                    const _PfgEBwKz = 2n ** BigInt(128 - _fncZNONp);
                    if (_PfgEBwKz <= 2n) return [];
                    let _KWEjNvjh = 0;
                    while (_KZTmtaHQ.size < _dZDkQEsa && _KWEjNvjh < _dZDkQEsa * 5) {
                        const _xLDwXaoQ = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_xLDwXaoQ);
                        let _rHOGMVlu = 0n;
                        for (const _xPtawMgo of _xLDwXaoQ) {
                            _rHOGMVlu = (_rHOGMVlu << 8n) | BigInt(_xPtawMgo);
                        }
                        const _oKelShli = _rHOGMVlu % (_PfgEBwKz - 2n) + 1n;
                        _KZTmtaHQ.add(_rjKvxlhT.fromBigInt6(_FbTZLPAm + _oKelShli));
                        _KWEjNvjh++;
                    }
                    return Array.from(_KZTmtaHQ);
                }
                return [];
            } catch(_xCydVfWL) {
                console.error(`CIDR to range failed for ${cidr}:`, _xCydVfWL);
                return [];
            }
        }
    };
    function _AzSdLfhV(_jFlugCfy, _mJMqBNIS) {
        const _PCCyOjUv = {};
        const _SFQevpug = Object._SFQevpug(_mJMqBNIS);
        const _EWHTfFBN = _SFQevpug.map(_sWpWHESH => {
            const _QhjFOYVP = _jFlugCfy * (_mJMqBNIS[_sWpWHESH] / 100);
            return { _sWpWHESH, _dZDkQEsa: Math.floor(_QhjFOYVP), remainder: _QhjFOYVP - Math.floor(_QhjFOYVP) };
        });
        let _fAbtPRDm = _EWHTfFBN.reduce((acc, _qsAVjdXs) => acc + _qsAVjdXs._dZDkQEsa, 0);
        _EWHTfFBN.sort((a, b) => b.remainder - a.remainder);
        let _bdXlMgjY = _jFlugCfy - _fAbtPRDm;
        for (let _uUkhUKtY = 0; _uUkhUKtY < _bdXlMgjY; _uUkhUKtY++) {
            _EWHTfFBN[_uUkhUKtY % _EWHTfFBN._BKxGrdWY]._dZDkQEsa++;
        }
        for (const _qsAVjdXs of _EWHTfFBN) {
            _PCCyOjUv[_qsAVjdXs._sWpWHESH] = _qsAVjdXs._dZDkQEsa;
        }
        return _PCCyOjUv;
    }
    const _lrzhTNQa = __PAGE_DATA_JSON__;
    const _kpnYRDyR = _lrzhTNQa._iBFSEHoA;
    const _TTtRzdJX = _lrzhTNQa.status;
    const _usoBhNQf = __ALL_CF_CIDR_LIST_JSON__;
    const _inExDkYM = __BALANCED_CF_CIDR_LIST_JSON__;
    const _oTyYGmGR = __DEFAULT_DOMAINS_LIST_JSON__;
    const _PiCtQLDu = __COUNTRY_MAP_JSON__;
    const _zSzTgHde = _PiCtQLDu;
    const _xkSfVqqr = 2500;
    const _zqMHlRPg = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _yOScQApX = document.getElementById('_yOScQApX');
    const _wVdlUAqb = document.getElementById('_wVdlUAqb');
    const _hwgRQlNu = document.getElementById('status');
    const _niBQTzOv = document.getElementById('_niBQTzOv');
    const _aAMBivRf = document.getElementById('resultsTable').querySelector('tbody');
    const _BYlKDwEl = document.getElementById('_BYlKDwEl');
    const _WzHiUxqr = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _hnMrqQTH = document.getElementById('notificationTooltip');
    const _FfTymvBS = document.getElementById('_FfTymvBS');
    const _fXAGgIqJ = document.getElementById('_fXAGgIqJ');
    const _rjxiCLbL = document.getElementById('_rjxiCLbL');
    const _omUmroNk = document.getElementById('_omUmroNk');
    const _RyBBJyhR = document.getElementById('_RyBBJyhR');
    const _krKyETsN = document.getElementById('_krKyETsN');
    const _OPCJUbgM = document.getElementById('_OPCJUbgM');
    let _OZVOAKwY = null;
    let _IgCpwkBo = null;
    let _eBdQZwyY = [];
    let _PnyIyKsJ = false;
    let _aVgTsyir = null;
    function _sNRqpUaq(_hpTRzKPe, _DMUqczhD) {
        const _IuEDKggu=parseInt(_hpTRzKPe.slice(1),16),t=_DMUqczhD<0?0:255,p=_DMUqczhD<0?_DMUqczhD*-1:_DMUqczhD,R=_IuEDKggu>>16,G=_IuEDKggu>>8&0x00FF,B=_IuEDKggu&0x0000FF;
        const _qEiPjXgZ = Math.round((t-R)*p)+R;
        const _PCSnngAA = Math.round((t-G)*p)+G;
        const _tUZGJXLO = Math.round((t-B)*p)+B;
        return `rgb(${_qEiPjXgZ.toString()}, ${_PCSnngAA.toString()}, ${_tUZGJXLO.toString()})`;
    }
    function _pSvocQCu(_NgOoawbj) {
        const _QXWUGIbr = _fDimrCeK(_NgOoawbj.primaryColor);
        if(_QXWUGIbr) {
            document.documentElement._HSEtCKXW.setProperty('--primary-_OVBQuCzh-rgb', `${_QXWUGIbr.r},${_QXWUGIbr.g},${_QXWUGIbr.b}`);
        }
        document.documentElement._HSEtCKXW.setProperty('--primary-_OVBQuCzh', _NgOoawbj.primaryColor);
        document.documentElement._HSEtCKXW.setProperty('--primary-hover', _sNRqpUaq(_NgOoawbj.primaryColor, -0.1));
        document.documentElement._HSEtCKXW.setProperty('--primary-gradient-start', _sNRqpUaq(_NgOoawbj.primaryColor, 0.1));
        document.documentElement._HSEtCKXW.setProperty('--primary-gradient-end', _sNRqpUaq(_NgOoawbj.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _NgOoawbj.texts.title;
        document.title = _NgOoawbj.texts.title;
        _FfTymvBS.innerText = _OZVOAKwY ? _NgOoawbj.texts.loginButtonSuccess : _NgOoawbj.texts.loginButton;
        _FfTymvBS._HSEtCKXW._OVBQuCzh = _NgOoawbj.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _NgOoawbj.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _NgOoawbj.texts.liveTitle;
        document.getElementById('liveTitleEl')._HSEtCKXW._OVBQuCzh = _NgOoawbj.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _NgOoawbj.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._HSEtCKXW._OVBQuCzh = _NgOoawbj.colors.cachedTitle;
        const _VTWxvQwV = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _VTWxvQwV.forEach((_ZFMylRPE, _tyznJeYN) => {
            const _lqUsytOK = document.getElementById(_ZFMylRPE);
            if (_lqUsytOK) _lqUsytOK.innerText = _NgOoawbj.texts[`tableHeader${_tyznJeYN + 1}`] || '';
        });
        const _lLiFJkWx = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _lLiFJkWx.forEach((_ZFMylRPE, _tyznJeYN) => {
             const _lqUsytOK = document.getElementById(_ZFMylRPE);
             if (_lqUsytOK) _lqUsytOK.innerText = _kpnYRDyR.texts[`tableHeader${_tyznJeYN + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._HSEtCKXW._OVBQuCzh = _NgOoawbj.colors.tableHeader);
        document._RhJzDlxQ.className = '';
        document._RhJzDlxQ.classList.add(_NgOoawbj.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_NgOoawbj.theme)) {
            document._RhJzDlxQ.classList.add('glassy-components');
        }
        document._RhJzDlxQ._HSEtCKXW.backgroundImage = '';
        _dQfIkFBo();
        if (_NgOoawbj.theme.includes('particles') || _NgOoawbj.theme.includes('glass')) {
            _AYdiqFyg(_NgOoawbj.particleColor);
        } else if (_NgOoawbj.theme.includes('bing')) {
            document._RhJzDlxQ._HSEtCKXW.backgroundImage = '_tHpQGhxp(/bing-wallpaper)';
        }
    }
    function _oujGhzLL() {
        _OZVOAKwY = null;
        if(_IgCpwkBo) clearTimeout(_IgCpwkBo);
        _pSvocQCu(_kpnYRDyR);
        _yyqzOdZy("登录已超时,请重新登录。", "warning");
    }
    async function _nJXTeITS() {
        if (_OZVOAKwY) {
            _YGTZmqsX();
            return;
        }
        const _xCHYmleW = prompt('请输入管理员密码:');
        if (!_xCHYmleW) return;
        try {
            const _KUgOgstY = await fetch('/api/verify-_ZQcpOmgH', {
                method: 'POST',
                _VTWxvQwV: { 'Content-Type': 'application/json' },
                _RhJzDlxQ: JSON.stringify({ _ZQcpOmgH: _xCHYmleW })
            });
            const _XoMuNRlG = await _KUgOgstY.json();
            if (_XoMuNRlG.success) {
                _OZVOAKwY = _xCHYmleW;
                _yyqzOdZy("登录成功!有效期5分钟。", "success");
                if (_IgCpwkBo) clearTimeout(_IgCpwkBo);
                _IgCpwkBo = setTimeout(_oujGhzLL, 5 * 60 * 1000);
                _pSvocQCu(_kpnYRDyR);
                _YGTZmqsX();
            } else {
                throw new Error(_XoMuNRlG._MhwlvCzj || '密码验证失败');
            }
        } catch (_xCydVfWL) {
            _yyqzOdZy(`登录失败: ${_xCydVfWL._MhwlvCzj}`, "error");
        }
    }
    function _lcaddvUZ() {
        if (!_TTtRzdJX._TbaYvcdF) {
            _krKyETsN._HSEtCKXW.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _ZQcpOmgH = document.getElementById('initialPassword')._tHTUmKrx;
                const _RCWrGUMr = document.getElementById('confirmPassword')._tHTUmKrx;
                if (_ZQcpOmgH !== _RCWrGUMr) {
                    _yyqzOdZy("两次输入的密码不一致!", "error");
                    return;
                }
                if (_ZQcpOmgH._BKxGrdWY < 6) {
                    _yyqzOdZy("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _KUgOgstY = await fetch('/api/_jNwuomlq-_ZQcpOmgH', {
                        method: 'POST',
                        _VTWxvQwV: { 'Content-Type': 'application/json' },
                        _RhJzDlxQ: JSON.stringify({ _ZQcpOmgH })
                    });
                    const _XoMuNRlG = await _KUgOgstY.json();
                    if (_XoMuNRlG.success) {
                        _yyqzOdZy(_XoMuNRlG._MhwlvCzj, "success");
                        setTimeout(() => _lCyqZFJg.reload(), 1500);
                    } else {
                        throw new Error(_XoMuNRlG._MhwlvCzj);
                    }
                } catch(_xCydVfWL) {
                    _yyqzOdZy(`设置密码失败: ${_xCydVfWL._MhwlvCzj}`, "error");
                }
            });
            return;
        }
        _FfTymvBS.addEventListener('click', _nJXTeITS);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _fXAGgIqJ._HSEtCKXW.display = 'none'; });
        _fXAGgIqJ.addEventListener('click', (_xCydVfWL) => { if (_xCydVfWL.target === _fXAGgIqJ) _fXAGgIqJ._HSEtCKXW.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_ergxyJcb .fine-grained-_PxfEhgmV-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-_ergxyJcb .fine-grained-_PxfEhgmV-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_OZVOAKwY) {
                _yyqzOdZy("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _saILdGBL = [];
            document.querySelectorAll('#custom-fields-_ergxyJcb .custom-field-_rKRydXJm').forEach(_rKRydXJm => {
                const _nzFYtWSh = _rKRydXJm.querySelector('.custom-field-_nzFYtWSh')._tHTUmKrx.trim();
                const _tHTUmKrx = _rKRydXJm.querySelector('.custom-field-_tHTUmKrx')._tHTUmKrx.trim();
                if (_nzFYtWSh) _saILdGBL.push({ _nzFYtWSh, _tHTUmKrx });
            });
            const _keKQbOmm = [];
            document.querySelectorAll('#parameter-sets-_ergxyJcb .parameter-_jNwuomlq-_rKRydXJm').forEach(_rKRydXJm => {
                const _nzFYtWSh = _rKRydXJm.querySelector('.param-_jNwuomlq-_nzFYtWSh')._tHTUmKrx.trim();
                const _baJNbFBi = _rKRydXJm.querySelector('.param-_jNwuomlq-_baJNbFBi')._tHTUmKrx.trim();
                const _uKhMcTyS = _rKRydXJm.querySelector('.param-_jNwuomlq-_uKhMcTyS')._tHTUmKrx.trim();
                const _MsJZEhdg = _rKRydXJm.querySelector('.param-_jNwuomlq-_MsJZEhdg')._tHTUmKrx.trim();
                if(_nzFYtWSh) _keKQbOmm.push({ _nzFYtWSh, _baJNbFBi, '_uKhMcTyS': _uKhMcTyS, _MsJZEhdg });
            });
            const _gwkReUVa = [];
            document.querySelectorAll('#fine-grained-sources-_ergxyJcb .fine-grained-_aaDiGKDE-_rKRydXJm').forEach(_rKRydXJm => {
                const _lCyqZFJg = _rKRydXJm.querySelector('.fine-grained-_lCyqZFJg')._tHTUmKrx.trim();
                const _KZTmtaHQ = _rKRydXJm.querySelector('.fine-grained-_KZTmtaHQ')._tHTUmKrx.trim();
                const _PxfEhgmV = _rKRydXJm.querySelector('.fine-grained-_PxfEhgmV-cb').checked;
                const _qwdDfoqC = parseInt(_rKRydXJm.querySelector('.fine-grained-_qwdDfoqC')._tHTUmKrx, 10) || 0;
                const _jsfMiQkO = _rKRydXJm.querySelector('.use-_nzFYtWSh-as-_lCyqZFJg-cb').checked;
                if (_lCyqZFJg && _KZTmtaHQ) {
                    _gwkReUVa.push({ _lCyqZFJg, _KZTmtaHQ, _PxfEhgmV, _qwdDfoqC, _jsfMiQkO });
                }
            });
            
            let _EEWLNbQU = parseInt(document.getElementById('subscriptionIdLength')._tHTUmKrx, 10);
            if (isNaN(_EEWLNbQU) || _EEWLNbQU < 2) _EEWLNbQU = 2;
            if (_EEWLNbQU > 128) _EEWLNbQU = 128;

            const _vTWjqZZp = {
                theme: document.getElementById('themeSelect')._tHTUmKrx,
                primaryColor: document.getElementById('primaryColorInput')._tHTUmKrx,
                particleColor: document.getElementById('particleColorInput')._tHTUmKrx,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._tHTUmKrx,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._tHTUmKrx, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._tHTUmKrx, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._tHTUmKrx, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._tHTUmKrx, 10) || 0,
                _egnAfGgU: document.getElementById('converterServiceUrlInput')._tHTUmKrx.trim(),
                subscriptionId: {
                    _BKxGrdWY: _EEWLNbQU,
                    _bDmbqFUt: document.getElementById('subscriptionIdCharset')._tHTUmKrx.trim()
                },
                api: {
                    _PxfEhgmV: document.getElementById('enableApiCheckbox').checked,
                    _MhwlvCzj: document.getElementById('apiMessageInput')._tHTUmKrx || '维护中...',
                },
                ispFilter: { 
                    _PxfEhgmV: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._tHTUmKrx, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _PxfEhgmV: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _PxfEhgmV: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _tHpQGhxp: document.getElementById('websocketStreamerUrlInput')._tHTUmKrx.trim()
                },
                visitorPassword: {
                    _PxfEhgmV: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _ZQcpOmgH: document.getElementById('visitorPasswordInput')._tHTUmKrx.trim()
                },
                customSubPath: {
                    _PxfEhgmV: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _MsJZEhdg: document.getElementById('customSubPathInput')._tHTUmKrx.trim()
                },
                itemLink: {
                    _PxfEhgmV: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._tHTUmKrx,
                    selectionMode: document.getElementById('parameterSelectionMode')._tHTUmKrx,
                    _keKQbOmm: _keKQbOmm,
                    _saILdGBL: _saILdGBL,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._tHTUmKrx.trim(),
                },
                announcement: {
                    popup: {
                        _PxfEhgmV: document.getElementById('enablePopup').checked,
                        _dHJDuMPe: document.getElementById('announcementText')._tHTUmKrx,
                        _OQgrUVdh: parseInt(document.getElementById('popupDuration')._tHTUmKrx, 10) || 5
                    },
                    marquee: {
                        _PxfEhgmV: document.getElementById('enableMarquee').checked,
                        _dHJDuMPe: document.getElementById('announcementText')._tHTUmKrx
                    }
                },
                fineGrained: {
                    _PxfEhgmV: true,
                    sources: _gwkReUVa
                },
                customNodes: {
                    _PxfEhgmV: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._tHTUmKrx
                },
                texts: {
                    title: document.getElementById('textInput_title')._tHTUmKrx,
                    loginButton: document.getElementById('textInput_loginButton')._tHTUmKrx,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._tHTUmKrx,
                    liveTitle: document.getElementById('textInput_liveTitle')._tHTUmKrx,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._tHTUmKrx,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._tHTUmKrx,
                    loginButton: document.getElementById('colorInput_loginButton')._tHTUmKrx,
                    liveTitle: document.getElementById('colorInput_liveTitle')._tHTUmKrx,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._tHTUmKrx,
                    tableHeader: document.getElementById('colorInput_tableHeader')._tHTUmKrx,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._tHTUmKrx.trim(),
                    chat_id: document.getElementById('chatIdInput')._tHTUmKrx.trim(),
                },
            };
            try {
                const _KUgOgstY = await fetch('/api/_iBFSEHoA', {
                    method: 'POST',
                    _VTWxvQwV: { 'Content-Type': 'application/json' },
                    _RhJzDlxQ: JSON.stringify({ _iBFSEHoA: _vTWjqZZp, adminPassword: _OZVOAKwY })
                });
                const _XoMuNRlG = await _KUgOgstY.json();
                if (_KUgOgstY.ok && _XoMuNRlG.success) {
                    _yyqzOdZy("配置已保存,正在刷新...", "success");
                    setTimeout(() => _lCyqZFJg.reload(), 1500);
                } else {
                    throw new Error(_XoMuNRlG._MhwlvCzj || '未知错误');
                }
            } catch (_xCydVfWL) {
                _yyqzOdZy(`操作失败: ${_xCydVfWL._MhwlvCzj}`, "error");
                if (String(_xCydVfWL._MhwlvCzj).includes("密码错误")) {
                    _oujGhzLL();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _cogUkHti = document.getElementById('oldPasswordInput')._tHTUmKrx;
            const _RogxEllm = document.getElementById('newPasswordInput')._tHTUmKrx;
            if (!_cogUkHti || !_RogxEllm) {
                _yyqzOdZy("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _KUgOgstY = await fetch('/api/change-_ZQcpOmgH', {
                    method: 'POST',
                    _VTWxvQwV: { 'Content-Type': 'application/json' },
                    _RhJzDlxQ: JSON.stringify({ _cogUkHti, _RogxEllm })
                });
                const _XoMuNRlG = await _KUgOgstY.json();
                if (_XoMuNRlG.success) {
                    _yyqzOdZy(_XoMuNRlG._MhwlvCzj, "success");
                    document.getElementById('oldPasswordInput')._tHTUmKrx = '';
                    document.getElementById('newPasswordInput')._tHTUmKrx = '';
                    _OZVOAKwY = _RogxEllm;
                } else {
                    throw new Error(_XoMuNRlG._MhwlvCzj);
                }
            } catch(_xCydVfWL) {
                _yyqzOdZy(`修改密码失败: ${_xCydVfWL._MhwlvCzj}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('resolvedDomainsGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('customNodesGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('apiConfigGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('itemLinkConfigGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('websocketStreamerGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
            const _YOaOGkBe = document.querySelector('#parameter-sets-_ergxyJcb .param-_jNwuomlq-_MsJZEhdg');
            if (_YOaOGkBe) {
                if (_xCydVfWL.target.checked) {
                    _YOaOGkBe._tHTUmKrx = '/snippets?_kePIaBxe=endpointAddress:_tQnEOFqY(443)&nat64=6to4';
                } else {
                    _YOaOGkBe._tHTUmKrx = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _REdRrdOJ('', '');
        });
        document.getElementById('add-parameter-_jNwuomlq-btn').addEventListener('click', () => {
            const _dZDkQEsa = document.querySelectorAll('.parameter-_jNwuomlq-_rKRydXJm')._BKxGrdWY + 1;
            _KCyOikEz({_nzFYtWSh: `配置${_dZDkQEsa}`, _baJNbFBi: '', _uKhMcTyS: '', _MsJZEhdg: ''});
            _nnhkBqlk();
        });
         document.getElementById('add-fine-grained-_aaDiGKDE-btn').addEventListener('click', () => {
             _huGdSoDt({ _lCyqZFJg: '', _KZTmtaHQ: '', _PxfEhgmV: true, _qwdDfoqC: 50, _jsfMiQkO: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('visitorPasswordGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('customSubPathGroup')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_xCydVfWL) => {
            document.getElementById('popupDurationContainer')._HSEtCKXW.display = _xCydVfWL.target.checked ? 'flex' : 'none';
        });
    }
    function _REdRrdOJ(_nzFYtWSh, _tHTUmKrx) {
        const _ergxyJcb = document.getElementById('custom-fields-_ergxyJcb');
        const _IeDLAZzb = document.createElement('div');
        _IeDLAZzb.className = 'form-grid custom-field-_rKRydXJm';
        _IeDLAZzb._HSEtCKXW = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _IeDLAZzb.innerHTML = `
            <input _eEGkjqFr="_dHJDuMPe" class="custom-field-_nzFYtWSh" _sKCgjtAn="占位符名称" _tHTUmKrx="${_nzFYtWSh}">
            <input _eEGkjqFr="_dHJDuMPe" class="custom-field-_tHTUmKrx" _sKCgjtAn="值" _tHTUmKrx="${_tHTUmKrx}">
            <button _eEGkjqFr="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _ergxyJcb.appendChild(_IeDLAZzb);
    }
    function _KCyOikEz(_jNwuomlq) {
        const _ergxyJcb = document.getElementById('parameter-sets-_ergxyJcb');
        const _IeDLAZzb = document.createElement('div');
        _IeDLAZzb.className = 'parameter-_jNwuomlq-_rKRydXJm';
        _IeDLAZzb.innerHTML = `
            <div class="parameter-_jNwuomlq-_tRTIzUXv">
                <input _eEGkjqFr="_dHJDuMPe" class="param-_jNwuomlq-_nzFYtWSh" _sKCgjtAn="配置名称" _tHTUmKrx="${_jNwuomlq._nzFYtWSh}" oninput="_nnhkBqlk()">
                <button _eEGkjqFr="button" class="btn btn-outline" onclick="this.closest('.parameter-_jNwuomlq-_rKRydXJm').remove(); _nnhkBqlk();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" class="param-_jNwuomlq-_baJNbFBi" _tHTUmKrx="${_jNwuomlq._baJNbFBi || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" class="param-_jNwuomlq-_uKhMcTyS" _tHTUmKrx="${_jNwuomlq['_uKhMcTyS'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _eEGkjqFr="_dHJDuMPe" class="param-_jNwuomlq-_MsJZEhdg" _tHTUmKrx="${_jNwuomlq._MsJZEhdg || ''}"></div>
            </div>
        `;
        _ergxyJcb.appendChild(_IeDLAZzb);
    }
    function _nnhkBqlk() {
        const _TFTApgUo = document.getElementById('parameterSelectionMode');
        const _aNGAuErW = _TFTApgUo._tHTUmKrx;
        _TFTApgUo.innerHTML = '';
        const _nygsJPkz = document.createElement('_lynTdVtl');
        _nygsJPkz._tHTUmKrx = 'random';
        _nygsJPkz.textContent = '随机轮询';
        _TFTApgUo.appendChild(_nygsJPkz);
        const _cDwXVYSv = document.createElement('_lynTdVtl');
        _cDwXVYSv._tHTUmKrx = 'first';
        _cDwXVYSv.textContent = '使用第一组';
        _TFTApgUo.appendChild(_cDwXVYSv);
        document.querySelectorAll('.param-_jNwuomlq-_nzFYtWSh').forEach(input => {
            const _nzFYtWSh = input._tHTUmKrx.trim();
            if (_nzFYtWSh) {
                const _lynTdVtl = document.createElement('_lynTdVtl');
                _lynTdVtl._tHTUmKrx = _nzFYtWSh;
                _lynTdVtl.textContent = `指定: ${_nzFYtWSh}`;
                _TFTApgUo.appendChild(_lynTdVtl);
            }
        });
        if (Array.from(_TFTApgUo.options).some(opt => opt._tHTUmKrx === _aNGAuErW)) {
            _TFTApgUo._tHTUmKrx = _aNGAuErW;
        } else {
            _TFTApgUo._tHTUmKrx = 'random';
        }
    }
    function _huGdSoDt(_aaDiGKDE) {
        const _ergxyJcb = document.getElementById('fine-grained-sources-_ergxyJcb');
        const _IeDLAZzb = document.createElement('div');
        _IeDLAZzb.className = 'fine-grained-_aaDiGKDE-_rKRydXJm parameter-_jNwuomlq-_rKRydXJm';
        _IeDLAZzb._HSEtCKXW.padding = '1rem';
        const _cSTVrJhV = _aaDiGKDE._jsfMiQkO ? 'checked' : '';
        const _SWEggBFK = !_aaDiGKDE._jsfMiQkO ? 'checked' : '';
        const _zaiWPlZf = _aaDiGKDE._PxfEhgmV ? 'checked' : '';
        _IeDLAZzb.innerHTML = `
            <div _HSEtCKXW="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _eEGkjqFr="_dHJDuMPe" class="fine-grained-_lCyqZFJg" _sKCgjtAn="地区名称 (如: 香港)" _tHTUmKrx="${_aaDiGKDE._lCyqZFJg || ''}">
                <div _HSEtCKXW="display: flex; align-items: center; gap: 5px;"><input _eEGkjqFr="checkbox" class="fine-grained-_PxfEhgmV-cb" ${_zaiWPlZf}><label>启用</label></div>
                <button _eEGkjqFr="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_aaDiGKDE-_rKRydXJm').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_KZTmtaHQ" _sKCgjtAn="IP源 (每行一个IP、CIDR或URL)" _UojSvSLG="3" _HSEtCKXW="_IVlERQxT:100%;">${_aaDiGKDE._KZTmtaHQ || ''}</textarea>
            <div class="fine-grained-options" _HSEtCKXW="justify-_hGGjqbIj: space-between;">
                <div _HSEtCKXW="display: flex; gap: 1rem;">
                    <label><input _eEGkjqFr="checkbox" class="query-_gClllcBx-cb" ${_SWEggBFK}>查询真实归属地</label>
                    <label><input _eEGkjqFr="checkbox" class="use-_nzFYtWSh-as-_lCyqZFJg-cb" ${_cSTVrJhV}>使用地区名称作为归属地</label>
                </div>
                <div _HSEtCKXW="display: flex; align-items: center; gap: 5px;"><input _eEGkjqFr="number" class="fine-grained-_qwdDfoqC _qwdDfoqC-input" _tHTUmKrx="${_aaDiGKDE._qwdDfoqC || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _eANPrdOe = _IeDLAZzb.querySelector('.query-_gClllcBx-cb');
        const _WgiRjlib = _IeDLAZzb.querySelector('.use-_nzFYtWSh-as-_lCyqZFJg-cb');
        _eANPrdOe.addEventListener('change', () => {
            if (_eANPrdOe.checked) {
                _WgiRjlib.checked = false;
            } else if (!_WgiRjlib.checked) {
                _eANPrdOe.checked = true;
            }
        });
        _WgiRjlib.addEventListener('change', () => {
            if (_WgiRjlib.checked) {
                _eANPrdOe.checked = false;
            } else if (!_WgiRjlib.checked) {
                _WgiRjlib.checked = true;
            }
        });
        _ergxyJcb.appendChild(_IeDLAZzb);
    }
    function _YGTZmqsX() {
        const _NgOoawbj = _kpnYRDyR;
        document.getElementById('themeSelect')._tHTUmKrx = _NgOoawbj.theme;
        document.getElementById('primaryColorInput')._tHTUmKrx = _NgOoawbj.primaryColor;
        document.getElementById('particleColorInput')._tHTUmKrx = _NgOoawbj.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _NgOoawbj.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._sKCgjtAn = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._tHTUmKrx = _NgOoawbj.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._HSEtCKXW.display = _NgOoawbj.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _NgOoawbj.customNodes._PxfEhgmV;
        document.getElementById('customNodesInput')._tHTUmKrx = _NgOoawbj.customNodes.list || '';
        document.getElementById('customNodesGroup')._HSEtCKXW.display = _NgOoawbj.customNodes._PxfEhgmV ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._tHTUmKrx = _NgOoawbj._egnAfGgU || '';
        document.getElementById('subscriptionIdLength')._tHTUmKrx = _NgOoawbj.subscriptionId._BKxGrdWY;
        document.getElementById('subscriptionIdCharset')._tHTUmKrx = _NgOoawbj.subscriptionId._bDmbqFUt;
        document.getElementById('enableItemLinkCheckbox').checked = _NgOoawbj.itemLink._PxfEhgmV;
        document.getElementById('itemLinkConfigGroup')._HSEtCKXW.display = _NgOoawbj.itemLink._PxfEhgmV ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._tHTUmKrx = _NgOoawbj.itemLink.template;
        const _zDWclSJQ = document.getElementById('parameter-sets-_ergxyJcb');
        _zDWclSJQ.innerHTML = '';
        if (_NgOoawbj.itemLink._keKQbOmm && Array.isArray(_NgOoawbj.itemLink._keKQbOmm)) {
            _NgOoawbj.itemLink._keKQbOmm.forEach(_jNwuomlq => _KCyOikEz(_jNwuomlq));
        }
        _nnhkBqlk();
        document.getElementById('parameterSelectionMode')._tHTUmKrx = _NgOoawbj.itemLink.selectionMode || 'random';
        const _YOaOGkBe = document.querySelector('#parameter-sets-_ergxyJcb .param-_jNwuomlq-_MsJZEhdg');
        if (_YOaOGkBe && _NgOoawbj.websocketStreamer && _NgOoawbj.websocketStreamer._PxfEhgmV) {
            _YOaOGkBe._tHTUmKrx = '/snippets?_kePIaBxe=endpointAddress:_tQnEOFqY(443)&nat64=6to4';
        }
        const _fIcLDURS = document.getElementById('custom-fields-_ergxyJcb');
        _fIcLDURS.innerHTML = '';
        if (_NgOoawbj.itemLink._saILdGBL && Array.isArray(_NgOoawbj.itemLink._saILdGBL)) {
            _NgOoawbj.itemLink._saILdGBL.forEach(field => _REdRrdOJ(field._nzFYtWSh, field._tHTUmKrx));
        }
        document.getElementById('universalFallbackAddressInput')._tHTUmKrx = _NgOoawbj.dataFeeds.universalFallbackAddress || '';
        const _iDBYqGoz = _NgOoawbj.websocketStreamer && _NgOoawbj.websocketStreamer._PxfEhgmV;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _iDBYqGoz;
        document.getElementById('websocketStreamerUrlInput')._tHTUmKrx = _NgOoawbj.websocketStreamer ? _NgOoawbj.websocketStreamer._tHpQGhxp : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._HSEtCKXW.display = _iDBYqGoz ? 'block' : 'none';
        const _ZbYHDOFa = _NgOoawbj.announcement || {};
        document.getElementById('announcementText')._tHTUmKrx = (_ZbYHDOFa.popup && _ZbYHDOFa.popup._dHJDuMPe) || (_ZbYHDOFa.marquee && _ZbYHDOFa.marquee._dHJDuMPe) || '';
        document.getElementById('enableMarquee').checked = _ZbYHDOFa.marquee && _ZbYHDOFa.marquee._PxfEhgmV;
        document.getElementById('enablePopup').checked = _ZbYHDOFa.popup && _ZbYHDOFa.popup._PxfEhgmV;
        document.getElementById('popupDuration')._tHTUmKrx = (_ZbYHDOFa.popup && _ZbYHDOFa.popup._OQgrUVdh) || 5;
        document.getElementById('popupDurationContainer')._HSEtCKXW.display = (_ZbYHDOFa.popup && _ZbYHDOFa.popup._PxfEhgmV) ? 'flex' : 'none';
        const _fzffVlMX = document.getElementById('fine-grained-sources-_ergxyJcb');
        _fzffVlMX.innerHTML = '';
        if (_NgOoawbj.fineGrained.sources && Array.isArray(_NgOoawbj.fineGrained.sources)) {
            _NgOoawbj.fineGrained.sources.forEach(_aaDiGKDE => _huGdSoDt(_aaDiGKDE));
        }
        document.getElementById('sampleSizeInput')._tHTUmKrx = _NgOoawbj.sampleSize;
        document.getElementById('topNInput')._tHTUmKrx = _NgOoawbj.topN;
        document.getElementById('latencyRangeMinInput')._tHTUmKrx = _NgOoawbj.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._tHTUmKrx = _NgOoawbj.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _NgOoawbj.ispFilter._PxfEhgmV;
        const _IsKGbXtA = _NgOoawbj.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._tHTUmKrx = _IsKGbXtA.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _IsKGbXtA.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _NgOoawbj.streamer._PxfEhgmV;
        document.getElementById('enableApiCheckbox').checked = _NgOoawbj.api._PxfEhgmV;
        document.getElementById('apiConfigGroup')._HSEtCKXW.display = _NgOoawbj.api._PxfEhgmV ? 'block' : 'none';
        document.getElementById('apiMessageInput')._tHTUmKrx = _NgOoawbj.api._MhwlvCzj;
        const _qAXtnpny = _NgOoawbj.customSubPath && _NgOoawbj.customSubPath._PxfEhgmV;
        document.getElementById('enableCustomSubPathCheckbox').checked = _qAXtnpny;
        document.getElementById('customSubPathInput')._tHTUmKrx = _NgOoawbj.customSubPath ? _NgOoawbj.customSubPath._MsJZEhdg : 'latest';
        document.getElementById('customSubPathGroup')._HSEtCKXW.display = _qAXtnpny ? 'block' : 'none';
        const _ekiAlmfa = _NgOoawbj.visitorPassword && _NgOoawbj.visitorPassword._PxfEhgmV;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _ekiAlmfa;
        document.getElementById('visitorPasswordInput')._tHTUmKrx = _NgOoawbj.visitorPassword ? _NgOoawbj.visitorPassword._ZQcpOmgH : '';
        document.getElementById('visitorPasswordGroup')._HSEtCKXW.display = _ekiAlmfa ? 'block' : 'none';
        document.getElementById('textInput_title')._tHTUmKrx = _NgOoawbj.texts.title;
        document.getElementById('textInput_loginButton')._tHTUmKrx = _NgOoawbj.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._tHTUmKrx = _NgOoawbj.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._tHTUmKrx = _NgOoawbj.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._tHTUmKrx = _NgOoawbj.texts.cachedTitle;
        document.getElementById('colorInput_title')._tHTUmKrx = _NgOoawbj.colors.title;
        document.getElementById('colorInput_loginButton')._tHTUmKrx = _NgOoawbj.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._tHTUmKrx = _NgOoawbj.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._tHTUmKrx = _NgOoawbj.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._tHTUmKrx = _NgOoawbj.colors.tableHeader;
        document.getElementById('botTokenInput')._tHTUmKrx = _NgOoawbj.telegram.bot_token || '';
        document.getElementById('chatIdInput')._tHTUmKrx = _NgOoawbj.telegram.chat_id || '';
        _fXAGgIqJ._HSEtCKXW.display = 'flex';
    }
    function _UtYdrupz(_lWrWWWbF) {
        if (window.innerWidth <= 768) {
            const _UojSvSLG = _lWrWWWbF.querySelectorAll('thead tr, tbody tr');
            _UojSvSLG.forEach(_rKRydXJm => {
                const _DGSCqZEV = Array.from(_rKRydXJm.children);
                const _PNKfMZwH = [
                    _DGSCqZEV[0],
                    _DGSCqZEV[1],
                    _DGSCqZEV[3],
                    _DGSCqZEV[6],
                    _DGSCqZEV[2],
                    _DGSCqZEV[4],
                    _DGSCqZEV[5]
                ];
                _PNKfMZwH.forEach(cell => _rKRydXJm.appendChild(cell));
            });
        }
    }
    async function _TNBGuYqP() {
        if (!_TTtRzdJX._TbaYvcdF) {
            _lcaddvUZ();
            return;
        }
        if (_kpnYRDyR.announcement && _kpnYRDyR.announcement.marquee && _kpnYRDyR.announcement.marquee._PxfEhgmV && _kpnYRDyR.announcement.marquee._dHJDuMPe) {
            const _SzlkmUKa = document.getElementById('marquee-_ergxyJcb');
            const _TXhjuuoK = document.getElementById('marquee-_dHJDuMPe');
            const _hEjXqfVS = document.querySelector('.progress-section');
            if (_SzlkmUKa && _TXhjuuoK && _hEjXqfVS) {
                _TXhjuuoK.innerText = _kpnYRDyR.announcement.marquee._dHJDuMPe;
                _SzlkmUKa._HSEtCKXW.display = 'block';
                const _zsDDSGcE = () => {
                    _SzlkmUKa._HSEtCKXW._IVlERQxT = `${_hEjXqfVS.offsetWidth}px`;
                    const _vIBOxJpP = _TXhjuuoK.offsetWidth;
                    const _TxznjIVT = _SzlkmUKa.offsetWidth;
                    const _OQgrUVdh = (_vIBOxJpP + _TxznjIVT) / 100;
                    _TXhjuuoK._HSEtCKXW.animationDuration = `${Math.max(10, _OQgrUVdh)}s`;
                };
                _zsDDSGcE();
                window.addEventListener('resize', _zsDDSGcE);
            }
        }
        
        _pSvocQCu(_kpnYRDyR);
        
        if (_kpnYRDyR.announcement && _kpnYRDyR.announcement.popup && _kpnYRDyR.announcement.popup._PxfEhgmV && _kpnYRDyR.announcement.popup._dHJDuMPe) {
            setTimeout(() => {
                _yyqzOdZy(_kpnYRDyR.announcement.popup._dHJDuMPe, 'info', _kpnYRDyR.announcement.popup._OQgrUVdh * 1000);
            }, 500);
        }
        _lcaddvUZ();
        _ujpXIPoX();
        _nPZyDjCK();
        _QEdDoKUc();
        await _iYGEFTUx();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _mFzsEkYo = window._lCyqZFJg.origin + '/_kePIaBxe';
            navigator.clipboard.writeText(_mFzsEkYo).then(() => {
                _yyqzOdZy('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_kpnYRDyR.visitorPassword && _kpnYRDyR.visitorPassword._PxfEhgmV) {
            _yOScQApX._HSEtCKXW.display = 'none';
            const _mklyJaAJ = document.getElementById('visitorPasswordPrompt');
            _mklyJaAJ._HSEtCKXW.display = 'block';
            const _oPIwLbIr = document.getElementById('visitorPasswordEntry');
            const _DMrCgJuF = document.getElementById('startTestWithPasswordBtn');
            const _rbTefWFj = async () => {
                const _ZQcpOmgH = _oPIwLbIr._tHTUmKrx;
                if (!_ZQcpOmgH) {
                    _yyqzOdZy('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _KUgOgstY = await fetch('/api/verify-visitor-_ZQcpOmgH', {
                        method: 'POST',
                        _VTWxvQwV: { 'Content-Type': 'application/json' },
                        _RhJzDlxQ: JSON.stringify({ _ZQcpOmgH })
                    });
                    const _XoMuNRlG = await _KUgOgstY.json();
                    if (_KUgOgstY.ok && _XoMuNRlG.success) {
                        _yyqzOdZy('验证成功,开始测试...', 'success');
                        _mklyJaAJ._HSEtCKXW.display = 'none';
                        _yOScQApX._HSEtCKXW.display = 'block';
                        await _xcRVzHiU();
                    } else {
                        throw new Error(_XoMuNRlG._MhwlvCzj || '密码错误');
                    }
                } catch (_xCydVfWL) {
                    _yyqzOdZy(`验证失败: ${_xCydVfWL._MhwlvCzj}`, "error");
                    _oPIwLbIr._tHTUmKrx = '';
                    _oPIwLbIr.focus();
                }
            };
            _DMrCgJuF.addEventListener('click', _rbTefWFj);
            _oPIwLbIr.addEventListener('keypress', (_xCydVfWL) => {
                if (_xCydVfWL._sWpWHESH === 'Enter') {
                    _xCydVfWL.preventDefault();
                    _rbTefWFj();
                }
            });
            _oPIwLbIr.focus();
        } else {
            _hwgRQlNu.textContent = "页面加载完成,准备开始测试...";
            await _fDPEPYuh(100);
            await _xcRVzHiU();
        }
    }
    async function _fDPEPYuh(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _fDimrCeK(_hpTRzKPe) {
      let _XoMuNRlG = /^#?([a-_IuEDKggu\d]{2})([a-_IuEDKggu\d]{2})([a-_IuEDKggu\d]{2})$/_uUkhUKtY.exec(_hpTRzKPe);
      return _XoMuNRlG ? { r: parseInt(_XoMuNRlG[1], 16), g: parseInt(_XoMuNRlG[2], 16), b: parseInt(_XoMuNRlG[3], 16) } : null;
    }
    async function _FFsgejYx(_kePIaBxe) {
        const _kqJwafrb = new AbortController();
        const _KWnhSYWT = setTimeout(() => _kqJwafrb.abort(), _xkSfVqqr);
        const _vwBgBfRJ = Date.now();
        try {
            const _kkuhYSvc = _rjKvxlhT.isIPv6(_kePIaBxe) ? `[${_kePIaBxe}]` : _kePIaBxe;
            const _tHpQGhxp = `https://${_kkuhYSvc}/cdn-cgi/trace`;
            await fetch(_tHpQGhxp, {
                signal: _kqJwafrb.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._nzFYtWSh === 'AbortError') {
                return { _kePIaBxe, _KkdnZnol: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_KWnhSYWT);
        }
        const _KkdnZnol = Date.now() - _vwBgBfRJ;
        return { _kePIaBxe, _KkdnZnol: _KkdnZnol, error: null };
    }
    function _ktWFMYCV(_XoMuNRlG, _tyznJeYN) {
        const { itemLink } = _kpnYRDyR;
        if (!itemLink || !itemLink._PxfEhgmV) return null;
        const { template, _keKQbOmm, selectionMode, _saILdGBL } = itemLink;
        if (!_keKQbOmm || _keKQbOmm._BKxGrdWY === 0) return null;
        let _EgEYOlwX;
        if (selectionMode === 'random') {
            _EgEYOlwX = _keKQbOmm[_tyznJeYN % _keKQbOmm._BKxGrdWY];
        } else if (selectionMode === 'first') {
            _EgEYOlwX = _keKQbOmm[0];
        } else {
            _EgEYOlwX = _keKQbOmm.find(s => s._nzFYtWSh === selectionMode) || _keKQbOmm[0];
        }
        if (!_EgEYOlwX) return null;
        let _ksIXgZmy = template;
        const _KdeJhkAO = _XoMuNRlG._tQnEOFqY || 443;
        const _kctcBTAQ = _rjKvxlhT.isIPv6(_XoMuNRlG._kePIaBxe) ? `[${_XoMuNRlG._kePIaBxe}]` : _XoMuNRlG._kePIaBxe;
        let _nzFYtWSh = `${_tyznJeYN + 1} 、 ${_XoMuNRlG._lCyqZFJg || '未知'}`;
        if (!_XoMuNRlG._CBufPriW || !_XoMuNRlG._CBufPriW.toLowerCase().includes('cloudflare')) {
            _nzFYtWSh += '(反代)';
        }
        let _baJNbFBi = _EgEYOlwX._baJNbFBi || window._lCyqZFJg._vFragIfz;
        _ksIXgZmy = _ksIXgZmy.replace(/{_kePIaBxe}/g, _kctcBTAQ)
                   .replace(/{_tQnEOFqY}/g, _KdeJhkAO)
                   .replace(/{_nzFYtWSh}/g, encodeURIComponent(_nzFYtWSh))
                   .replace(/{rank}/g, _tyznJeYN + 1)
                   .replace(/{_lCyqZFJg}/g, encodeURIComponent(_XoMuNRlG._lCyqZFJg || '未知'))
                   .replace(/{_CBufPriW}/g, encodeURIComponent(_XoMuNRlG._CBufPriW || '未知'))
                   .replace(/{_baJNbFBi}/g, encodeURIComponent(_baJNbFBi))
                   .replace(/{_uKhMcTyS}/g, encodeURIComponent(_EgEYOlwX['_uKhMcTyS'] || ''))
                   .replace(/{_MsJZEhdg}/g, encodeURIComponent(encodeURIComponent(_EgEYOlwX._MsJZEhdg || '')));
       if (_saILdGBL) {
        _saILdGBL.forEach(field => {
            const _sKCgjtAn = new RegExp('{' + field._nzFYtWSh + '}', 'g');
            _ksIXgZmy = _ksIXgZmy.replace(_sKCgjtAn, encodeURIComponent(field._tHTUmKrx));
        });
    }
    return _ksIXgZmy;
    }
    function _SZeBcNhF(_VEFfqbuc, _nXTNxGha, isCached = false) {
        _nXTNxGha.innerHTML = '';
        const _LaHpOhNV = _VEFfqbuc._LaHpOhNV || [];
        const _nIxbTlOR = _VEFfqbuc.generatedBy || null;
        const _eBvQNsRD = isCached ? _BYlKDwEl : _niBQTzOv;
        const _kCYGYpbd = isCached ? (_BYlKDwEl.querySelector('.generator-info')) : (_niBQTzOv.querySelector('.generator-info'));
        if (_LaHpOhNV._BKxGrdWY === 0) {
            _eBvQNsRD._HSEtCKXW.display = 'none';
            if (!isCached) _OPCJUbgM._HSEtCKXW.display = 'none';
            if (_kCYGYpbd) _kCYGYpbd.textContent = '';
            return;
        }
        _eBvQNsRD._HSEtCKXW.display = 'block';
        if (!isCached && _LaHpOhNV._BKxGrdWY > 0) {
             _OPCJUbgM._HSEtCKXW.display = 'block';
        }
        if (_kCYGYpbd && _nIxbTlOR) {
            _kCYGYpbd.innerHTML = `数据来源 ${_nIxbTlOR._kePIaBxe} (${_nIxbTlOR._lCyqZFJg}) <span>${_nIxbTlOR.time}</span>`;
        }
        
        _LaHpOhNV.forEach((_XoMuNRlG, _tyznJeYN) => {
            const _KdeJhkAO = _XoMuNRlG._tQnEOFqY || 443;
            const _rKRydXJm = _nXTNxGha.insertRow();
            _rKRydXJm.insertCell().textContent = _tyznJeYN + 1;
            const _bYiVHHYZ = _rKRydXJm.insertCell();
            _bYiVHHYZ.textContent = _XoMuNRlG._kePIaBxe;
            _bYiVHHYZ.className = '_kePIaBxe-_mJGOsQki';
            _rKRydXJm.insertCell().textContent = _KdeJhkAO;
            const _FZqMCBCF = _rKRydXJm.insertCell();
            _FZqMCBCF.textContent = (_XoMuNRlG._KkdnZnol === Infinity) ? (_XoMuNRlG.error || '错误') : _XoMuNRlG._KkdnZnol;
            _FZqMCBCF.className = 'ping-_tHTUmKrx';
            _rKRydXJm.insertCell().textContent = _XoMuNRlG._lCyqZFJg || '未知';
            _rKRydXJm.insertCell().textContent = _XoMuNRlG._CBufPriW || '未知';
            const _dNOoMOVg = _rKRydXJm.insertCell();
            _dNOoMOVg.className = 'actions-cell';
            const _pANizqCA = document.createElement('button');
            _pANizqCA.textContent = '复制IP';
            _pANizqCA.className = 'btn btn-outline';
            _pANizqCA.onclick = () => { navigator.clipboard.writeText(_XoMuNRlG._kePIaBxe).then(() => _yyqzOdZy('IP复制成功!', 'success')); };
            if (_kpnYRDyR.itemLink && _kpnYRDyR.itemLink._PxfEhgmV) {
                const _MYYpDohj = document.createElement('button');
                _MYYpDohj.textContent = '复制节点';
                _MYYpDohj.className = 'btn btn-outline';
                _MYYpDohj.onclick = () => {
                    const _ksIXgZmy = _ktWFMYCV(_XoMuNRlG, _tyznJeYN);
                    if (_ksIXgZmy) {
                       navigator.clipboard.writeText(_ksIXgZmy).then(() => _yyqzOdZy('订阅链接复制成功!', 'success'));
                    }
                };
                _dNOoMOVg.appendChild(_MYYpDohj);
            }
            _dNOoMOVg.appendChild(_pANizqCA);
        });
        _UtYdrupz(_nXTNxGha.parentElement);
    }
    async function _lHGeuwNv(_WAliUEPC) {
        const _BfAGAEMo = (_WAliUEPC || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _SLzPmHEY = [];
        const _rSHyphvx = [];
        const _uRgGbQfu = (str) => {
            try {
                const _tHpQGhxp = new URL(str);
                return _tHpQGhxp.protocol === "http:" || _tHpQGhxp.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _JSORPybZ of _BfAGAEMo) {
            if (_uRgGbQfu(_JSORPybZ)) {
                _SLzPmHEY.push(_JSORPybZ);
            } else {
                _rSHyphvx.push(_JSORPybZ);
            }
        }
        let _fHScjbop = [];
        if (_SLzPmHEY._BKxGrdWY > 0) {
            try {
                const _KUgOgstY = await fetch('/api/parse-_KZTmtaHQ-from-_SLzPmHEY', {
                    method: 'POST',
                    _VTWxvQwV: { 'Content-Type': 'application/json' },
                    _RhJzDlxQ: JSON.stringify({ _SLzPmHEY })
                });
                if (_KUgOgstY.ok) {
                    const _VEFfqbuc = await _KUgOgstY.json();
                    _fHScjbop = _VEFfqbuc._KZTmtaHQ || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _KUgOgstY._dHJDuMPe());
                    _yyqzOdZy('从URL获取IP失败', 'error');
                }
            } catch (_xCydVfWL) {
                console.error('Error fetching IPs from URLs:', _xCydVfWL);
                _yyqzOdZy(`从URL获取IP失败: ${_xCydVfWL._MhwlvCzj}`, 'error');
            }
        }
        return [..._rSHyphvx, ..._fHScjbop];
    }
    async function _xcRVzHiU() {
        _PnyIyKsJ = false;
        _eBdQZwyY = [];
        _aVgTsyir = null;
        _OPCJUbgM._HSEtCKXW.display = 'none';
        _hwgRQlNu.textContent = '准备IP源...';
        _wVdlUAqb._tHTUmKrx = 0;
        _niBQTzOv._HSEtCKXW.display = 'none';
        await _fDPEPYuh();
        const _QfqAJVps = new Map();
        let _ERRbksni = [];
        const _GKDtwBRG = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_kpnYRDyR.useResolvedDomains) {
            _hwgRQlNu.textContent = '正在从域名解析IP...';
            const _yWlXxner = (_kpnYRDyR.resolvedDomains || '').trim();
            const _lyvfWtwD = _yWlXxner ? _yWlXxner.split(/\s+|\n+/) : _oTyYGmGR;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_KZTmtaHQ', { method: 'POST', _VTWxvQwV: { 'Content-Type': 'application/json' }, _RhJzDlxQ: JSON.stringify({ _lyvfWtwD, _eEGkjqFr: 'A' }) }),
                    fetch('/api/get-resolved-_KZTmtaHQ', { method: 'POST', _VTWxvQwV: { 'Content-Type': 'application/json' }, _RhJzDlxQ: JSON.stringify({ _lyvfWtwD, _eEGkjqFr: 'AAAA' }) })
                ]);
                let _IDYIZxOR = [];
                if (ipv4Response.ok) _IDYIZxOR.push(...(await ipv4Response._dHJDuMPe()).split(/\s+|\n+/));
                if (ipv6Response.ok) _IDYIZxOR.push(...(await ipv6Response._dHJDuMPe()).split(/\s+|\n+/));
                _ERRbksni.push(..._IDYIZxOR.filter(_kePIaBxe => _kePIaBxe.trim()).map(_kePIaBxe => ({ _kePIaBxe, _tQnEOFqY: null, sourceName: 'resolved' })));
            } catch (_xCydVfWL) {
                _yyqzOdZy(`域名解析失败: ${_xCydVfWL._MhwlvCzj}`, 'error');
            }
        }
        const _coBgKeXs = (_kpnYRDyR.fineGrained.sources || []).filter(s => s._PxfEhgmV);
        if (_coBgKeXs._BKxGrdWY > 0) {
            const _QIMvMMoB = {};
            let _ToUOqgxe = 0;
            _coBgKeXs.forEach(s => {
                const _VSTpbewg = Number(s._qwdDfoqC) || 0;
                _QIMvMMoB[s._lCyqZFJg] = _VSTpbewg;
                _ToUOqgxe += _VSTpbewg;
            });
            if (_ToUOqgxe > 0) {
                Object._SFQevpug(_QIMvMMoB).forEach(k => {
                    _QIMvMMoB[k] = (_QIMvMMoB[k] / _ToUOqgxe) * 100;
                });
            } else {
                _coBgKeXs.forEach(s => _QIMvMMoB[s._lCyqZFJg] = 100 / _coBgKeXs._BKxGrdWY);
            }
            const _EcxBYMvV = _AzSdLfhV(_kpnYRDyR.sampleSize, _QIMvMMoB);
            for (const _aaDiGKDE of _coBgKeXs) {
                const _dZDkQEsa = _EcxBYMvV[_aaDiGKDE._lCyqZFJg];
                if (!_dZDkQEsa) continue;
                _hwgRQlNu.textContent = `正在处理 [ ${_aaDiGKDE._lCyqZFJg} ] 源...`;
                const _WtNwYvOx = await _lHGeuwNv(_aaDiGKDE._KZTmtaHQ);
                if (_aaDiGKDE._jsfMiQkO) {
                    _WtNwYvOx.forEach(_JSORPybZ => _QfqAJVps._jNwuomlq(_JSORPybZ, _aaDiGKDE._lCyqZFJg));
                }
                let _wxLnzUiS = [];
                const _ZzXMNZtf = Math.ceil(_dZDkQEsa / (_WtNwYvOx._BKxGrdWY || 1)) || 1;
                for (const _JSORPybZ of _WtNwYvOx) {
                    if (_GKDtwBRG.test(_JSORPybZ)) {
                        const _cJduYOAe = _rjKvxlhT.cidrToRange(_JSORPybZ, _ZzXMNZtf);
                        if (_QfqAJVps.has(_JSORPybZ)) {
                           _cJduYOAe.forEach(_kePIaBxe => _QfqAJVps._jNwuomlq(_kePIaBxe, _QfqAJVps.get(_JSORPybZ)));
                        }
                        _wxLnzUiS.push(..._cJduYOAe.map(_kePIaBxe => ({ _kePIaBxe, _tQnEOFqY: null })));
                    } else {
                        const _WyKFriVe = _JSORPybZ.lastIndexOf(':');
                        let _kePIaBxe = _JSORPybZ;
                        let _tQnEOFqY = null;

                        if (_WyKFriVe > _JSORPybZ.lastIndexOf(']')) {
                            const _RhkqAWii = _JSORPybZ.substring(_WyKFriVe + 1);
                            if (!isNaN(_RhkqAWii) && _RhkqAWii._BKxGrdWY > 0) {
                                _kePIaBxe = _JSORPybZ.substring(0, _WyKFriVe);
                                _tQnEOFqY = _RhkqAWii;
                            }
                        }
                        
                        if (_rjKvxlhT.isValid(_kePIaBxe.replace(/[\[\]]/g, ''))) {
                             _wxLnzUiS.push({ _kePIaBxe: _kePIaBxe.replace(/[\[\]]/g, ''), _tQnEOFqY });
                        }
                    }
                }
                let _kiTgLkDX = _wxLnzUiS.filter((v,_uUkhUKtY,a)=>a.findIndex(t=>(t._kePIaBxe === v._kePIaBxe && t._tQnEOFqY === v._tQnEOFqY))===_uUkhUKtY);
                _kiTgLkDX.sort(() => 0.5 - Math.random());
                _ERRbksni.push(..._kiTgLkDX.slice(0, _dZDkQEsa).map(_OmoEVAdr => ({ ..._OmoEVAdr, sourceName: `fineGrained-${_aaDiGKDE._lCyqZFJg}` })));
            }
        }
        if (_ERRbksni._BKxGrdWY === 0) {
            _hwgRQlNu.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _hwgRQlNu.textContent = `开始测试 ${_ERRbksni._BKxGrdWY} 个IP地址...`;
        _wVdlUAqb.max = _ERRbksni._BKxGrdWY;
        let _FmbOMyRy = 0;
        const _oQArUdYH = [];
        const _QtgoymaZ = [..._ERRbksni];
        const _rZEPTGRA = async () => {
             while (_QtgoymaZ._BKxGrdWY > 0) {
                const _OmoEVAdr = _QtgoymaZ.shift(); if (!_OmoEVAdr) continue;
                const _XoMuNRlG = await _FFsgejYx(_OmoEVAdr._kePIaBxe);
                _oQArUdYH.push({ ..._OmoEVAdr, ..._XoMuNRlG });
                _FmbOMyRy++;
                _wVdlUAqb._tHTUmKrx = _FmbOMyRy;
                _hwgRQlNu.textContent = `${_kpnYRDyR.texts.pingInProgress} (${_FmbOMyRy}/${_ERRbksni._BKxGrdWY}): ${_OmoEVAdr._kePIaBxe} - ${_XoMuNRlG._KkdnZnol === Infinity ? _XoMuNRlG.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_zqMHlRPg).fill(null).map(_rZEPTGRA));
        let _GaVPjuXj = _oQArUdYH.filter(r => r._KkdnZnol !== Infinity);
        let _CSBJqIfq = [];
        const _GdmDQuKh = _GaVPjuXj.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _tAQftXau = _GaVPjuXj.filter(r => r.sourceName === 'resolved');
        if (_GdmDQuKh._BKxGrdWY > 0) {
            const _coBgKeXs = (_kpnYRDyR.fineGrained.sources || []).filter(s => s._PxfEhgmV);
            const _QIMvMMoB = {};
            let _ToUOqgxe = 0;
            _coBgKeXs.forEach(s => {
                const _VSTpbewg = Number(s._qwdDfoqC) || 0;
                _QIMvMMoB[s._lCyqZFJg] = _VSTpbewg;
                _ToUOqgxe += _VSTpbewg;
             });
             if (_ToUOqgxe > 0) {
                Object._SFQevpug(_QIMvMMoB).forEach(k => _QIMvMMoB[k] = (_QIMvMMoB[k] / _ToUOqgxe) * 100);
             } else if (_coBgKeXs._BKxGrdWY > 0) {
                _coBgKeXs.forEach(s => _QIMvMMoB[s._lCyqZFJg] = 100 / _coBgKeXs._BKxGrdWY);
             }
             const _FsNMznEi = _AzSdLfhV(_kpnYRDyR.topN, _QIMvMMoB);
             for(const _tOfIcFDF in _FsNMznEi) {
                const _RFuddmhx = _GdmDQuKh.filter(r => r.sourceName === `fineGrained-${_tOfIcFDF}`);
                _RFuddmhx.sort((a,b) => a._KkdnZnol - b._KkdnZnol);
                _CSBJqIfq.push(..._RFuddmhx.slice(0, _FsNMznEi[_tOfIcFDF]));
             }
        }
        _tAQftXau.sort((a, b) => a._KkdnZnol - b._KkdnZnol);
        _CSBJqIfq.push(..._tAQftXau);
        if (_CSBJqIfq._BKxGrdWY > 0) {
            _hwgRQlNu.textContent = '获取归属地和运营商信息...';
            const _jxqAnOPt = [];
            _CSBJqIfq.forEach(_XoMuNRlG => {
                if (_QfqAJVps.has(_XoMuNRlG._kePIaBxe)) {
                    _XoMuNRlG._lCyqZFJg = _QfqAJVps.get(_XoMuNRlG._kePIaBxe);
                    _XoMuNRlG._CBufPriW = 'Cloudflare';
                } else {
                    _jxqAnOPt.push(_XoMuNRlG._kePIaBxe);
                }
            });

            if (_jxqAnOPt._BKxGrdWY > 0) {
                try {
                    const _CbKdyAdW = await fetch('/api/get-_gClllcBx', {
                        method: 'POST',
                        _VTWxvQwV: { 'Content-Type': 'application/json' },
                        _RhJzDlxQ: JSON.stringify({ _KZTmtaHQ: _jxqAnOPt })
                    });
                    if (_CbKdyAdW.ok) {
                        const _KZXpAcAd = await _CbKdyAdW.json();
                        const _HGIvcGaR = new Map(_KZXpAcAd.map(_OmoEVAdr => [_OmoEVAdr._kePIaBxe, { _lCyqZFJg: _OmoEVAdr._lCyqZFJg, _CBufPriW: _OmoEVAdr._CBufPriW }]));
                        _CSBJqIfq.forEach(_XoMuNRlG => {
                            if (_jxqAnOPt.includes(_XoMuNRlG._kePIaBxe)) {
                                const _gClllcBx = _HGIvcGaR.get(_XoMuNRlG._kePIaBxe);
                                _XoMuNRlG._lCyqZFJg = _gClllcBx ? _gClllcBx._lCyqZFJg : '查询失败';
                                _XoMuNRlG._CBufPriW = _gClllcBx ? _gClllcBx._CBufPriW : '查询失败';
                            }
                        });
                    }
                } catch (_xCydVfWL) {
                    _yyqzOdZy('获取地理位置信息失败', 'error');
                }
                const _uqjTZdzO = _kpnYRDyR.geoLocation || { retries: 1, filterUnknown: false };
                for (let _uUkhUKtY = 0; _uUkhUKtY < _uqjTZdzO.retries; _uUkhUKtY++) {
                    const _kCfbnWXo = _CSBJqIfq.filter(r => !r._lCyqZFJg || r._lCyqZFJg === '未知' || r._lCyqZFJg === '查询失败');
                    if (_kCfbnWXo._BKxGrdWY === 0) {
                        break;
                    }
                    _hwgRQlNu.textContent = `第 ${_uUkhUKtY + 1} 次复查 ${_kCfbnWXo._BKxGrdWY} 个IP归属地...`;
                    await _fDPEPYuh();
                    const _BsaGDbuN = _kCfbnWXo.map(r => r._kePIaBxe);
                    try {
                        const _CbKdyAdW = await fetch('/api/get-_gClllcBx', {
                            method: 'POST',
                            _VTWxvQwV: { 'Content-Type': 'application/json' },
                            _RhJzDlxQ: JSON.stringify({ _KZTmtaHQ: _BsaGDbuN })
                        });
                        if (_CbKdyAdW.ok) {
                            const _KZXpAcAd = await _CbKdyAdW.json();
                            const _HGIvcGaR = new Map(_KZXpAcAd.map(_OmoEVAdr => [_OmoEVAdr._kePIaBxe, { _lCyqZFJg: _OmoEVAdr._lCyqZFJg, _CBufPriW: _OmoEVAdr._CBufPriW }]));
                            _CSBJqIfq.forEach(_XoMuNRlG => {
                                if (_BsaGDbuN.includes(_XoMuNRlG._kePIaBxe)) {
                                    const _gClllcBx = _HGIvcGaR.get(_XoMuNRlG._kePIaBxe);
                                    if (_gClllcBx && (_gClllcBx._lCyqZFJg !== '未知' && _gClllcBx._lCyqZFJg !== '查询失败')) {
                                        _XoMuNRlG._lCyqZFJg = _gClllcBx._lCyqZFJg;
                                        _XoMuNRlG._CBufPriW = _gClllcBx._CBufPriW;
                                    }
                                }
                            });
                        }
                    } catch (_xCydVfWL) {
                        console.error(`Retry ${_uUkhUKtY + 1} failed:`, _xCydVfWL);
                    }
                }
            }

            if (_kpnYRDyR.geoLocation && _kpnYRDyR.geoLocation.filterUnknown) {
                const _sImMteUK = _CSBJqIfq._BKxGrdWY;
                _CSBJqIfq = _CSBJqIfq.filter(r => r._lCyqZFJg && r._lCyqZFJg !== '未知' && r._lCyqZFJg !== '查询失败');
                const _DOrdSBbY = _sImMteUK - _CSBJqIfq._BKxGrdWY;
                if (_DOrdSBbY > 0) {
                    _yyqzOdZy(`已过滤 ${_DOrdSBbY} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_kpnYRDyR.ispFilter._PxfEhgmV) {
                _CSBJqIfq = _CSBJqIfq.filter(r => r._CBufPriW && r._CBufPriW.toLowerCase().includes('cloudflare'));
            }

            _CSBJqIfq.sort((a,b) => a._KkdnZnol - b._KkdnZnol);
            _eBdQZwyY = _CSBJqIfq.slice(0, _kpnYRDyR.topN);
            _eBdQZwyY.forEach((_XoMuNRlG, _tyznJeYN) => {
                const _ceypxXIY = _eBdQZwyY._BKxGrdWY;
                if (_ceypxXIY > 1) {
                    _XoMuNRlG._KkdnZnol = Math.round(119 + (80 * (_tyznJeYN / (_ceypxXIY - 1))));
                } else {
                    _XoMuNRlG._KkdnZnol = 119;
                }
            });
            _SZeBcNhF({ _LaHpOhNV: _eBdQZwyY, generatedBy: null }, _aAMBivRf, false);
            _PnyIyKsJ = true;
            _hwgRQlNu.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _KzLoWSto = await fetch('/api/save-and-get-sub-_ZFMylRPE', {
                    method: 'POST',
                    _VTWxvQwV: { 'Content-Type': 'application/json' },
                    _RhJzDlxQ: JSON.stringify(_eBdQZwyY)
                });
                const _VEFfqbuc = await _KzLoWSto.json();
                if (_KzLoWSto.ok && _VEFfqbuc.success) {
                    _aVgTsyir = _VEFfqbuc._ZFMylRPE;
                    _hwgRQlNu.textContent = `筛选完成!共找到 ${_eBdQZwyY._BKxGrdWY} 个可用IP。`;
                } else {
                    throw new Error(_VEFfqbuc._MhwlvCzj || '保存结果以生成ID时出错');
                }
            } catch (_xCydVfWL) {
                _hwgRQlNu.textContent = `筛选完成!但生成订阅ID失败。`;
                _yyqzOdZy(`生成订阅ID失败: ${_xCydVfWL._MhwlvCzj}`, 'error');
            }
            fetch('/api/cache-live-_LaHpOhNV', {
                method: 'POST',
                _VTWxvQwV: { 'Content-Type': 'application/json' },
                _RhJzDlxQ: JSON.stringify(_eBdQZwyY)
            }).catch(_xCydVfWL => console.error("无法缓存实时结果:", _xCydVfWL));
            if (_kpnYRDyR.cloudStorage._PxfEhgmV) {
                fetch('/api/save-_KZTmtaHQ', {
                    method: 'POST',
                    _VTWxvQwV: { 'Content-Type': 'application/json' },
                    _RhJzDlxQ: JSON.stringify(_eBdQZwyY)
                }).then(_KzLoWSto => {
                    if (_KzLoWSto.ok) _yyqzOdZy('结果已保存到云端!', 'success');
                });
            }
        } else {
            _hwgRQlNu.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _iYGEFTUx() {
        if (!_kpnYRDyR.cloudStorage._PxfEhgmV) {
             _BYlKDwEl._HSEtCKXW.display = 'none';
             return;
        }
        _hwgRQlNu.textContent = '正在获取上次优选结果...';
        try {
            const _KUgOgstY = await fetch('/api/get-cached-_KZTmtaHQ');
            if (_KUgOgstY.ok) {
                const _VEFfqbuc = await _KUgOgstY.json();
                if (_VEFfqbuc && _VEFfqbuc._LaHpOhNV && _VEFfqbuc._LaHpOhNV._BKxGrdWY > 0) {
                    _SZeBcNhF(_VEFfqbuc, _WzHiUxqr, true);
                } else {
                   _BYlKDwEl._HSEtCKXW.display = 'none';
                }
            }
        } catch (_xCydVfWL) {
            console.error("加载缓存失败:", _xCydVfWL);
        }
    }
    let _pfnrBoqa;
    function _yyqzOdZy(_MhwlvCzj, _eEGkjqFr = 'success', _OQgrUVdh = 3000) {
        if (_pfnrBoqa) clearTimeout(_pfnrBoqa);
        _hnMrqQTH.innerHTML = _MhwlvCzj;
        let _PjtFMosj = 'var(--success-_OVBQuCzh)';
        if (_eEGkjqFr === 'error') _PjtFMosj = 'var(--danger-_OVBQuCzh)';
        if (_eEGkjqFr === 'warning') _PjtFMosj = 'var(--warning-_OVBQuCzh)';
        if (_eEGkjqFr === 'info') _PjtFMosj = 'var(--primary-_OVBQuCzh)';
        _hnMrqQTH._HSEtCKXW.backgroundColor = _PjtFMosj;
        _hnMrqQTH.classList.add('show');
        _pfnrBoqa = setTimeout(() => { _hnMrqQTH.classList.remove('show'); }, _OQgrUVdh);
    }
    let _BPecAWUl;
    function _AYdiqFyg(_OVBQuCzh) {
        const _mCSwUsgN = document.getElementById('background-_mCSwUsgN');
        if (!_mCSwUsgN || !_mCSwUsgN.getContext) return;
        _mCSwUsgN._HSEtCKXW.display = 'block';
        const _keflYwWs = _mCSwUsgN.getContext('2d');
        let _IVlERQxT, height, particles;
        const _PXDLyzJA = _fDimrCeK(_OVBQuCzh);
        if (!_PXDLyzJA) return;
        const _xUeUqOjq = `${_PXDLyzJA.r},${_PXDLyzJA.g},${_PXDLyzJA.b}`;
        const _IBpBZHle = () => {
            if (_BPecAWUl) cancelAnimationFrame(_BPecAWUl);
            _IVlERQxT = _mCSwUsgN._IVlERQxT = window.innerWidth;
            height = _mCSwUsgN.height = window.innerHeight;
            particles = Array.from({ _BKxGrdWY: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _IVlERQxT, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _XFaudGkG();
        };
        const _XFaudGkG = () => {
            _keflYwWs.clearRect(0, 0, _IVlERQxT, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _IVlERQxT) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _keflYwWs.beginPath();
                _keflYwWs.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _keflYwWs.fillStyle = `rgba(${_xUeUqOjq}, 0.5)`;
                _keflYwWs.fill();
            });
            for (let _uUkhUKtY = 0; _uUkhUKtY < particles._BKxGrdWY; _uUkhUKtY++) {
                for (let _ZSFrhxPf = _uUkhUKtY + 1; _ZSFrhxPf < particles._BKxGrdWY; _ZSFrhxPf++) {
                    const _kDIsOeaL = Math.hypot(particles[_uUkhUKtY].x - particles[_ZSFrhxPf].x, particles[_uUkhUKtY].y - particles[_ZSFrhxPf].y);
                    if (_kDIsOeaL < 120) {
                        _keflYwWs.beginPath(); _keflYwWs.moveTo(particles[_uUkhUKtY].x, particles[_uUkhUKtY].y);
                        _keflYwWs.lineTo(particles[_ZSFrhxPf].x, particles[_ZSFrhxPf].y);
                        _keflYwWs.strokeStyle = `rgba(${_xUeUqOjq}, ${1 - _kDIsOeaL/120})`;
                        _keflYwWs.stroke();
                    }
                }
            }
            _BPecAWUl = requestAnimationFrame(_XFaudGkG);
        };
        window.addEventListener('resize', _IBpBZHle, { passive: true });
        _IBpBZHle();
    }
    function _dQfIkFBo() {
        if (_BPecAWUl) cancelAnimationFrame(_BPecAWUl);
        const _mCSwUsgN = document.getElementById('background-_mCSwUsgN');
        if (_mCSwUsgN && _mCSwUsgN.getContext('2d')) {
            _mCSwUsgN.getContext('2d').clearRect(0, 0, _mCSwUsgN._IVlERQxT, _mCSwUsgN.height);
            _mCSwUsgN._HSEtCKXW.display = 'none';
        }
    }
    function _ujpXIPoX() {
        const _ejioqtqi = document.getElementById('copySubscriptionBtn');
        const _PdjOqUHG = document.getElementById('_omUmroNk');
        const _AdYEtdHm = document.getElementById('_RyBBJyhR');
        const _roQkELDc = document.getElementById('closeSubModalBtn');
        const _OoGDHcvm = _AdYEtdHm.querySelector('.modal-close-btn');

        _ejioqtqi.addEventListener('click', () => {
            if (!_PnyIyKsJ || _eBdQZwyY._BKxGrdWY === 0) {
                _yyqzOdZy('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_aVgTsyir) {
                _yyqzOdZy('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_kpnYRDyR._egnAfGgU) {
                _yyqzOdZy('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _ylcLEAvx = 'https://' + window._lCyqZFJg._vFragIfz + '/' + _aVgTsyir;
            const _XtQtByxa = {
                coreEngine: _ylcLEAvx + 'xr',
                coreProfile: _ylcLEAvx + 'si',
                configProfile: _ylcLEAvx + 'cl',
                policyProfile: _ylcLEAvx + 'su'
            };
 
            _PdjOqUHG.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _eEGkjqFr = btn.dataset.subType;
                    navigator.clipboard.writeText(_XtQtByxa[_eEGkjqFr]).then(() => {
                        _yyqzOdZy(`${_eEGkjqFr.charAt(0).toUpperCase() + _eEGkjqFr.slice(1)} 订阅链接已复制!`, 'success');
                        _PdjOqUHG._HSEtCKXW.display = 'none';
                    });
                };
            });
            _PdjOqUHG.querySelectorAll('._zJywLBNl-btn').forEach(btn => {
                btn.onclick = () => {
                    const _eEGkjqFr = btn.dataset.subType;
                    const _htTvXMGw = document.getElementById('qrCodeImg');
                    const _dHJDuMPe = _XtQtByxa[_eEGkjqFr];
                    if (!_dHJDuMPe) return;
                    try {
                        const _zJywLBNl = qrcode(0, 'M');
                        _zJywLBNl.addData(_dHJDuMPe);
                        _zJywLBNl.make();
                        _htTvXMGw.src = _zJywLBNl.createDataURL(10, 2);
                        _AdYEtdHm._HSEtCKXW.display = 'flex';
                    } catch(_xCydVfWL) {
                        _yyqzOdZy('生成二维码失败', 'error');
                        console.error(_xCydVfWL);
                    }
                };
            });

            _PdjOqUHG._HSEtCKXW.display = 'flex';
        });

        _roQkELDc.addEventListener('click', () => { _PdjOqUHG._HSEtCKXW.display = 'none'; });
        _PdjOqUHG.addEventListener('click', (_xCydVfWL) => { if(_xCydVfWL.target === _PdjOqUHG) _PdjOqUHG._HSEtCKXW.display = 'none'; });
        _AdYEtdHm.addEventListener('click', (_xCydVfWL) => { if(_xCydVfWL.target === _AdYEtdHm) _AdYEtdHm._HSEtCKXW.display = 'none'; });
    }
    function _nPZyDjCK() {
        const _XyQgspaD = {
            android: [
                { _nzFYtWSh: 'Karing', _BMXHlQah: 'KaringX/karing', _jlUrWYVW: ['apk', 'universal-release'] },
                { _nzFYtWSh: 'S' + 'ing-Box', _BMXHlQah: 'SagerNet/sing-box', _jlUrWYVW: ['android', 'universal'] },
                { _nzFYtWSh: 'V2' + 'rayNG', _BMXHlQah: '2dust/v2rayNG', _jlUrWYVW: ['apk', 'arm64-v8a'] },
                { _nzFYtWSh: '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: [
                { _nzFYtWSh: 'Karing', fixedUrl: 'https://_ELsyeOgL.apple.com/us/_YewpUjzc/karing/id6472431552?_wkyncmox=iphone' },
                { _nzFYtWSh: 'S' + 'ing-Box', fixedUrl: 'https://_ELsyeOgL.apple.com/us/_YewpUjzc/sing-box-vt/id6673731168' },
                { _nzFYtWSh: 'Shadow' + 'rocket', fixedUrl: 'https://_ELsyeOgL.apple.com/us/_YewpUjzc/shadowrocket/id932747118' },
            ],
            windows: [
                { _nzFYtWSh: 'Karing', _BMXHlQah: 'KaringX/karing', _jlUrWYVW: ['exe', 'x64-setup'] },
                { _nzFYtWSh: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _nzFYtWSh: 'C' + 'lashN', _BMXHlQah: '2dust/clashN', _jlUrWYVW: ['clashN.zip'] },
            ],
            mac: [
                 { _nzFYtWSh: 'Karing', fixedUrl: 'https://_ELsyeOgL.apple.com/us/_YewpUjzc/karing/id6472431552?_wkyncmox=mac' },
                 { _nzFYtWSh: 'S' + 'ing-Box', fixedUrl: 'https://_ELsyeOgL.apple.com/us/_YewpUjzc/sing-box-vt/id6673731168' },
            ]
        };
        function _klMKksmF(_tHpQGhxp) {
            if (_kpnYRDyR.streamer._PxfEhgmV && (_tHpQGhxp.includes('github.com') || _tHpQGhxp.includes('cdn.jsdelivr.net'))) {
                return window._lCyqZFJg.origin + '/' + _tHpQGhxp.replace('://', ':/');
            }
            return _tHpQGhxp;
        }
        async function _KPrQyLkv(_BMXHlQah, _jlUrWYVW) {
            try {
                const _KUgOgstY = await fetch(_klMKksmF(`https://api.github.com/repos/${_BMXHlQah}/releases/latest`));
                if (!_KUgOgstY.ok) return null;
                const _VEFfqbuc = await _KUgOgstY.json();
                for (const _UKfevAPs of _jlUrWYVW) {
                    const _LefaHzfF = _VEFfqbuc.assets.find(a => a._nzFYtWSh.toLowerCase().includes(_UKfevAPs.toLowerCase()));
                    if (_LefaHzfF) return _LefaHzfF.browser_download_url;
                }
                return null;
            } catch (_xCydVfWL) { return null; }
        }
        async function _nlQDptoZ(_wkyncmox) {
            const _ErotTBUB = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_wkyncmox];
            _rjxiCLbL.querySelector('#appModalTitle').textContent = `${_ErotTBUB} 客户端下载`;
            const _gUwZPZuG = _rjxiCLbL.querySelector('#appModalBody');
            _gUwZPZuG.innerHTML = '<span>正在获取最新版本...</span>';
            _rjxiCLbL._HSEtCKXW.display = 'flex';
            const _ELsyeOgL = _XyQgspaD[_wkyncmox];
            let _hGGjqbIj = '';
            for (const _YewpUjzc of _ELsyeOgL) {
                let _PpjuJgCg = '';
                if (_YewpUjzc.fixedUrl) {
                    _PpjuJgCg = `<a href="${_klMKksmF(_YewpUjzc.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_YewpUjzc.fixedUrl.split('/').pop()}</a>`;
                } else if (_YewpUjzc._BMXHlQah) {
                    const _tHpQGhxp = await _KPrQyLkv(_YewpUjzc._BMXHlQah, _YewpUjzc._jlUrWYVW);
                    if (_tHpQGhxp) {
                        _PpjuJgCg = `<a href="${_klMKksmF(_tHpQGhxp)}" target="_blank" rel="noopener noreferrer">${_tHpQGhxp.split('/').pop()}</a>`;
                    } else {
                        _PpjuJgCg = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _hGGjqbIj += `<div class="_YewpUjzc-list-_OmoEVAdr"><span class="_YewpUjzc-_nzFYtWSh">${_YewpUjzc._nzFYtWSh}</span><div class="_YewpUjzc-links">${_PpjuJgCg}</div></div>`;
            }
            _gUwZPZuG.innerHTML = _hGGjqbIj;
        }
        document.querySelectorAll('._YewpUjzc-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _nlQDptoZ(button.dataset._wkyncmox));
        });
        _rjxiCLbL.querySelector('.modal-close-btn').addEventListener('click', () => { _rjxiCLbL._HSEtCKXW.display = 'none'; });
        _rjxiCLbL.addEventListener('click', (_xCydVfWL) => { if (_xCydVfWL.target === _rjxiCLbL) _rjxiCLbL._HSEtCKXW.display = 'none'; });
    }
    function _ZFYwWoSc(_JUGMINxG, _ZzJzTxHg) {
        let _uUkhUKtY, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_hGGjqbIj");
        for (_uUkhUKtY = 0; _uUkhUKtY < tabcontent._BKxGrdWY; _uUkhUKtY++) {
            tabcontent[_uUkhUKtY]._HSEtCKXW.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_uUkhUKtY = 0; _uUkhUKtY < tablinks._BKxGrdWY; _uUkhUKtY++) {
            tablinks[_uUkhUKtY].className = tablinks[_uUkhUKtY].className.replace(" active", "");
        }
        document.getElementById(_ZzJzTxHg)._HSEtCKXW.display = "block";
        _JUGMINxG.currentTarget.className += " active";
    }
    function _QEdDoKUc() {
        const _crReOhLD = document.createElement('div');
        _crReOhLD._ZFMylRPE = 'tooltip-popup';
        document._RhJzDlxQ.appendChild(_crReOhLD);
        document.addEventListener('click', function(_xCydVfWL) {
            const _wwyMCJNg = _xCydVfWL.target.closest('.tooltip-_wwyMCJNg');
            if (_wwyMCJNg) {
                const _dHJDuMPe = _wwyMCJNg.dataset.tooltip;
                _crReOhLD.textContent = _dHJDuMPe;
                const _tvqMjwZV = _wwyMCJNg.getBoundingClientRect();
                _crReOhLD._HSEtCKXW.display = 'block';
                let _QXFxTdzm = _tvqMjwZV.bottom + window.scrollY + 5;
                let _tbGHJIRk = _tvqMjwZV._tbGHJIRk + window.scrollX;
                _crReOhLD._HSEtCKXW._QXFxTdzm = `${_QXFxTdzm}px`;
                _crReOhLD._HSEtCKXW._tbGHJIRk = `${_tbGHJIRk}px`;
                const _jycUcYgi = _crReOhLD.getBoundingClientRect();
                if (_jycUcYgi.right > window.innerWidth - 10) {
                    _tbGHJIRk = window.innerWidth - _jycUcYgi._IVlERQxT - 10;
                }
                if (_jycUcYgi.bottom > window.innerHeight - 10) {
                    _QXFxTdzm = _tvqMjwZV._QXFxTdzm + window.scrollY - _jycUcYgi.height - 5;
                }
                _crReOhLD._HSEtCKXW._QXFxTdzm = `${_QXFxTdzm}px`;
                _crReOhLD._HSEtCKXW._tbGHJIRk = `${_tbGHJIRk}px`;
                _xCydVfWL.stopPropagation();
            } else if (_crReOhLD._HSEtCKXW.display === 'block') {
                _crReOhLD._HSEtCKXW.display = 'none';
            }
        });
    }
    const _HSEtCKXW = document.createElement('_HSEtCKXW');
    _HSEtCKXW.textContent = `
        .tab-button { background-_OVBQuCzh: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _OVBQuCzh: var(--_dHJDuMPe-light); font-size: 1em; }
        .tab-button:hover { background-_OVBQuCzh: var(--border-_OVBQuCzh); }
        .tab-button.active { _OVBQuCzh: var(--primary-_OVBQuCzh); border-bottom: 2px solid var(--primary-_OVBQuCzh); }
        .tab-_hGGjqbIj { display: none; padding-_QXFxTdzm: 1rem; }
    `;
    document.head.appendChild(_HSEtCKXW);
    window.addEventListener('DOMContentLoaded', _TNBGuYqP);
</script>
</_RhJzDlxQ></html>
`;
}