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


import { connect } from "cloudflare:sockets";

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

const _XseloBEG = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _MPZknCNB = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _fQxZIhkI = '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 _HwNBkUTg = '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 _UNdagKEu(_jnrUVtWz) {
    if (Array.isArray(_jnrUVtWz)) {
        try {
            return String.fromCharCode.apply(null, _jnrUVtWz);
        } catch (_HiEJfbha) {
            return '';
        }
    }
    return _jnrUVtWz;
}

function _zuGjTxKW(_TTtmLTmr) {
    return /^[0-9a-_CWugqcUY]{8}-[0-9a-_CWugqcUY]{4}-[4][0-9a-_CWugqcUY]{3}-[89ab][0-9a-_CWugqcUY]{3}-[0-9a-_CWugqcUY]{12}$/_RtvzwKWo.test(_TTtmLTmr);
}

const _hsaniIWp = "optimized_ips_v4";
const _PSrONUXk = "global_config_v4";
const _VwvkkZpm = "admin_password_v4";
const _iidZOFTL = "live_results_temp_v1";
const _wjeAhTFT = "latest_sub_id_v1";

export default {
  async fetch(_tLOGPavH, _rVPBZubY, _FZZfXetd) {
    try {
      if (!_rVPBZubY.DB) {
          const _ongRfmae = _VCgvLcUo("D1 数据库 'DB' 未绑定。");
          return new Response(_ongRfmae, { status: 503, _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/html;_LhAztbqy=UTF-8' }});
      }

      _FZZfXetd.waitUntil(
          _rVPBZubY.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_HCrAOecu TEXT PRIMARY KEY, _jnrUVtWz TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_TTtmLTmr TEXT PRIMARY KEY, _ApMdqruF TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_HiEJfbha => console.error("DB Init Error:", _HiEJfbha._rFvcSSUG))
      );

      const _UNGfWfpn = new URL(_tLOGPavH._UNGfWfpn);
      const _AugvRFpu = _UNGfWfpn.pathname;
      const _BmOuMsmF = _tLOGPavH._qbpjcIjc.get("Upgrade");
      const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
      
      if (_QCBbPTKS.websocketStreamer && _QCBbPTKS.websocketStreamer._jkoNSIvl && _BmOuMsmF && _BmOuMsmF.toLowerCase() === "websocket") {
          const _eLQClZQu = _QCBbPTKS.websocketStreamer._UNGfWfpn;
          if (_eLQClZQu && _eLQClZQu.trim().startsWith('https://')) {
              try {
                  const _swyVlDQA = new Request(_eLQClZQu.trim() + _UNGfWfpn.pathname + _UNGfWfpn.search, _tLOGPavH);
                  return await fetch(_swyVlDQA);
              } catch (_HiEJfbha) {
                  return new Response(`Upstream WebSocket gateway failed: ${_HiEJfbha._rFvcSSUG}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_BmOuMsmF && _BmOuMsmF.toLowerCase() === "websocket") {
          return await _nXNEhGUM(_tLOGPavH, _rVPBZubY, _QCBbPTKS);
      }
      
      const _xwzUAsrm = _AugvRFpu._bHxAOHlM(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_xwzUAsrm) {
          const [, _pVBduKzY, typeSuffix] = _xwzUAsrm;
          const _YaeXtNFu = _QCBbPTKS._YaeXtNFu;
          if (!_YaeXtNFu || _YaeXtNFu.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' } });
          }
          const _eJZUCvIU = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _welulduP = _eJZUCvIU[typeSuffix];
          const _OCcuwceq = _YaeXtNFu.replace(/\/$/, '');
          const _alkdaOZA = `${_UNGfWfpn.origin}/${_pVBduKzY}`;
          const _WSeAWPLz = `${_OCcuwceq}/${_welulduP}?_QCBbPTKS=${encodeURIComponent(_alkdaOZA)}`;
          try {
              const _CiILAgmo = await fetch(_WSeAWPLz, { _qbpjcIjc: { 'User-Agent': _tLOGPavH._qbpjcIjc.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _CRgPocNS = new Headers(_CiILAgmo._qbpjcIjc);
              _CRgPocNS._wjpIBrxv('Access-Control-Allow-Origin', '*');
              return new Response(_CiILAgmo._ABoGvlkq, { status: _CiILAgmo.status, statusText: _CiILAgmo.statusText, _qbpjcIjc: _CRgPocNS });
          } catch (_HiEJfbha) {
              return new Response(`获取上游订阅失败: ${_HiEJfbha._rFvcSSUG}`, { status: 502, _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' } });
          }
      }

      if (_AugvRFpu.startsWith('/https:/') || _AugvRFpu.startsWith('/http:/')) {
          return _AEYMKQRy(_tLOGPavH, _QCBbPTKS);
      }
      
      if (_QCBbPTKS.customSubPath && _QCBbPTKS.customSubPath._jkoNSIvl && _QCBbPTKS.customSubPath._AugvRFpu && _AugvRFpu === '/' + _QCBbPTKS.customSubPath._AugvRFpu.trim()) {
          const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_wjeAhTFT);
          const { _TyrgygfU } = await _aUKSVfSl.all();
          const _sQPtryrk = _TyrgygfU._JddHRFkb > 0 ? _TyrgygfU[0]._jnrUVtWz : null;
          if (_sQPtryrk) {
              return _yxHarKeV({ _yfvvHyun: { _TTtmLTmr: _sQPtryrk }, _UNGfWfpn: _tLOGPavH._UNGfWfpn }, _rVPBZubY);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' } });
          }
      }
      
      const _XvQuWkoA = _AugvRFpu.split('/').filter(Boolean);
      if (_XvQuWkoA._JddHRFkb === 1 && !_AugvRFpu.startsWith('/api/')) {
          const _pVBduKzY = _XvQuWkoA[0];
          return _yxHarKeV({ _yfvvHyun: { _TTtmLTmr: _pVBduKzY }, _UNGfWfpn: _tLOGPavH._UNGfWfpn }, _rVPBZubY);
      }

      if (_AugvRFpu.startsWith('/api/')) {
          if (_AugvRFpu === '/api/_QCBbPTKS' && _tLOGPavH.method === 'POST') return _KAwsSeEC(_tLOGPavH, _rVPBZubY, _FZZfXetd);
          if (_AugvRFpu === '/api/_wjpIBrxv-_eCcmnilz') return _dpikAnvx(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/change-_eCcmnilz') return _gPfjfgjA(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/verify-_eCcmnilz') return _hshPlzis(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/verify-visitor-_eCcmnilz' && _tLOGPavH.method === 'POST') return _PfvEezLe(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/cache-live-_TyrgygfU' && _tLOGPavH.method === 'POST') return _bpsBaIZq(_tLOGPavH, _rVPBZubY, _FZZfXetd);
          if (_AugvRFpu === '/api/get-_zVtrXmGe' && _tLOGPavH.method === 'POST') return _eAetCvBl(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/get-cached-_fPcQkudH') return _RyFIrbwM(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/save-_fPcQkudH') return _EtXkbxvv(_tLOGPavH, _rVPBZubY, _FZZfXetd);
          if (_AugvRFpu === '/api/save-and-get-sub-_TTtmLTmr' && _tLOGPavH.method === 'POST') return _AzTRZdav(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu.startsWith('/api/get-_FiBNkQgP/')) {
              const _pVBduKzY = _AugvRFpu.split('/').pop();
              return _yxHarKeV({ _yfvvHyun: { _TTtmLTmr: _pVBduKzY }, _UNGfWfpn: _tLOGPavH._UNGfWfpn }, _rVPBZubY);
          }
          if (_AugvRFpu === '/api/_QCBbPTKS' && _tLOGPavH.method === 'GET') return _FMFEIRfR(_rVPBZubY);
          if (_AugvRFpu === '/api/get-resolved-_fPcQkudH') return _LPyKyNPG(_tLOGPavH);
          if (_AugvRFpu === '/api/parse-_fPcQkudH-from-_MZjeWHOw' && _tLOGPavH.method === 'POST') return _KDkWBtOS(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/endpoints') return _lVRsgTFP(_tLOGPavH, _rVPBZubY);
          if (_AugvRFpu === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_AugvRFpu === '/_ropwOTIW') return _zkTsSGdk(_tLOGPavH, _rVPBZubY);
      if (_AugvRFpu === '/bing-wallpaper') return _jqoVTvpE();

      return _NOvbxGjW(_tLOGPavH, _rVPBZubY, _FZZfXetd);
    } catch (err) {
      let _HiEJfbha = err;
      return new Response(_HiEJfbha.toString(), { status: 500 });
    }
  }
};

const _JxnQfXyR = { 'Accept': '_jcPqEnIk/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 _hwbyLobV(_UNGfWfpn, _pVWqgVms) {
    const _TWYTcqap = await fetch(_UNGfWfpn, { _qbpjcIjc: { ..._JxnQfXyR, 'Referer': _pVWqgVms.referer } });
    if (_TWYTcqap.ok) return _TWYTcqap._jcPqEnIk();
    return null;
}

async function _UvDwkwlR(_UNGfWfpn, _pVWqgVms) {
    const _rbszaYbJ = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_UNGfWfpn)}`;
    const _TWYTcqap = await fetch(_rbszaYbJ, { _qbpjcIjc: { ..._JxnQfXyR, 'Referer': _pVWqgVms.referer } });
    if (!_TWYTcqap.ok) return null;
    const _ABoGvlkq = await _TWYTcqap._jcPqEnIk();
    const _bHxAOHlM = _ABoGvlkq._bHxAOHlM(/<pre[^>]*>([\s\S]*?)<\/pre>/_RtvzwKWo);
    return _bHxAOHlM && _bHxAOHlM[1] ? _bHxAOHlM[1].replace(/&amp;/g, '&') : null;
}

function _JypTIfhc(_mwHbituu) {
    let _odhoOSyj;
    try {
        _odhoOSyj = atob(_mwHbituu.replace(/\s/g, ''));
    } catch (_HiEJfbha) {
        _odhoOSyj = _mwHbituu;
    }

    const _FiBNkQgP = _odhoOSyj.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _CZivFeXI = new Set();
    const _MtypysXI = /@([^?#]+?):(\d+)/;

    for (const _VoRrCSOy of _FiBNkQgP) {
        let _sEzdfqGt = '';
        let _lKplLykm = '';

        try {
            if (_VoRrCSOy.startsWith('vmess://')) {
                const _wCOFTBPn = atob(_VoRrCSOy.substring(8));
                const _QCBbPTKS = JSON.parse(_wCOFTBPn);
                _sEzdfqGt = _QCBbPTKS.add;
                _lKplLykm = _QCBbPTKS._lKplLykm;
            } else {
                const _bHxAOHlM = _VoRrCSOy._bHxAOHlM(_MtypysXI);
                if (_bHxAOHlM && _bHxAOHlM[1] && _bHxAOHlM[2]) {
                    _sEzdfqGt = _bHxAOHlM[1].replace(/[\[\]]/g, '');
                    _lKplLykm = _bHxAOHlM[2];
                }
            }
        } catch (_HiEJfbha) {
            console.warn(`Could not parse _VoRrCSOy: ${_VoRrCSOy}`);
        }

        if (_sEzdfqGt && _lKplLykm) {
            _CZivFeXI.add(`${_sEzdfqGt}:${_lKplLykm}`);
        }
    }
    return Array.from(_CZivFeXI);
}

async function _MzhAXPwh(_dEkQPXYc) {
    try {
        const _TWYTcqap = await fetch(_dEkQPXYc, { _qbpjcIjc: _JxnQfXyR });
        if (!_TWYTcqap.ok) {
            console.error(`Failed to fetch subscription: ${_TWYTcqap.status}`);
            return [];
        }
        const _mwHbituu = await _TWYTcqap._jcPqEnIk();
        return _JypTIfhc(_mwHbituu);
    } catch (error) {
        console.error(`Error processing subscription ${_dEkQPXYc}:`, error);
        return [];
    }
}

async function _IFVmWHTs(_Zegdjflh) {
    const _rXdhOKco = _Zegdjflh.trim();
    const _TMHhJCJh = /^(vless|vmess|trojan|ss):\/\//.test(_rXdhOKco);
    const _GgviPYWD = (() => {
        if (_rXdhOKco._JddHRFkb < 20 || _rXdhOKco.startsWith('http')) return false;
        const _dcIkDNuf = _rXdhOKco.replace(/\s/g, '');
        if (_dcIkDNuf._JddHRFkb % 4 !== 0 && !_dcIkDNuf.includes('=')) return false;
        try {
            atob(_dcIkDNuf);
            return true;
        } catch (_HiEJfbha) {
            return false;
        }
    })();

    if (_TMHhJCJh || _GgviPYWD) {
        return _JypTIfhc(_rXdhOKco).join('\n');
    }

    const _uBqqSQeb = [
        'https://ipdb.api.030101.xyz/?_BFbzJcsO=bestcf&_tgsGpbBk=true',
        'https://ipdb.api.030101.xyz/?_BFbzJcsO=bestproxy&_tgsGpbBk=true'
    ];
    const _TMvdVZzu = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_RtvzwKWo.test(_Zegdjflh) || _Zegdjflh.includes('?_MtZNSJzW=');

    if (_TMvdVZzu) {
        const _fPcQkudH = await _MzhAXPwh(_Zegdjflh);
        return _fPcQkudH.join('\n');
    }

    let _mwHbituu = '';
    if (_uBqqSQeb.includes(_Zegdjflh)) {
        _mwHbituu = await _hwbyLobV(_Zegdjflh, { referer: _Zegdjflh });
        if (!_mwHbituu || _mwHbituu._JddHRFkb < 8) {
            _mwHbituu = await _UvDwkwlR(_Zegdjflh, { referer: _Zegdjflh });
        }
    } else {
        try {
            const _ligJOVVW = await fetch(_Zegdjflh, { _qbpjcIjc: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_ligJOVVW.ok) {
                _mwHbituu = await _ligJOVVW._jcPqEnIk();
            } else {
                console.warn(`Failed to fetch URL ${_Zegdjflh}: ${_ligJOVVW.status}`);
            }
        } catch (_HiEJfbha) {
            console.error(`Error fetching URL ${_Zegdjflh}:`, _HiEJfbha);
        }
    }

    const _SmlLMftp = _JypTIfhc(_mwHbituu);
    if (_SmlLMftp._JddHRFkb > 0) {
        return _SmlLMftp.join('\n');
    }

    return _mwHbituu || '';
}

async function _AEYMKQRy(_tLOGPavH, _QCBbPTKS) {
    if (!_QCBbPTKS.streamer._jkoNSIvl) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _UNGfWfpn = new URL(_tLOGPavH._UNGfWfpn);
    const _WcuTeCyz = _UNGfWfpn.pathname.substring(1).replace(':/', '://');
    try {
        const _WSeAWPLz = new URL(_WcuTeCyz);
        const _TWfbePgl = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_TWfbePgl.some(domain => _WSeAWPLz._sEzdfqGt.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _leotiUph = new Headers(_tLOGPavH._qbpjcIjc);
        _leotiUph._wjpIBrxv('Host', _WSeAWPLz._sEzdfqGt);
        _leotiUph._wjpIBrxv('User-Agent', 'CF-Worker-Streamer/1.0');
        const _dXLFfIib = await fetch(_WSeAWPLz.toString(), {
            method: _tLOGPavH.method,
            _qbpjcIjc: _leotiUph,
            _ABoGvlkq: _tLOGPavH._ABoGvlkq,
        });
        const _CRgPocNS = new Headers(_dXLFfIib._qbpjcIjc);
        _CRgPocNS._wjpIBrxv('Access-Control-Allow-Origin', '*');
        _CRgPocNS._wjpIBrxv('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _CRgPocNS._wjpIBrxv('Access-Control-Allow-Headers', '*');
        _CRgPocNS._wjpIBrxv('Cache-Control', 'public, max-age=86400');
        _CRgPocNS._wjpIBrxv('X-Streamer-Source', 'CF-Worker');
        _CRgPocNS.delete('_mwHbituu-security-policy');
        _CRgPocNS.delete('x-_mwHbituu-security-policy');
        _CRgPocNS.delete('x-webkit-csp');
        return new Response(_dXLFfIib._ABoGvlkq, {
            status: _dXLFfIib.status,
            statusText: _dXLFfIib.statusText,
            _qbpjcIjc: _CRgPocNS,
        });
    } catch (_HiEJfbha) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _nXNEhGUM(_tLOGPavH, _rVPBZubY, _QCBbPTKS) {
    try {
        const _LDqPEeMD = _QCBbPTKS || await _fXwqgGZX(_rVPBZubY);
        const _bNHUbQVF = (_LDqPEeMD.itemLink._tUzgyUfT && _LDqPEeMD.itemLink._tUzgyUfT[0]) || {};
        const _rQbHFPwY = _bNHUbQVF['_MtZNSJzW'] || _UNdagKEu(_MjKVAdPj);

        if (!_zuGjTxKW(_rQbHFPwY)) {
            throw new Error("Configured user _uzVvQJqC is not valid.");
        }

        const _nyOBZhbA = _LDqPEeMD.dataFeeds.universalFallbackAddress;
        let _yWZgCzvz = {};
        
        const _GZOquQfn = _UNdagKEu(_pZcctlMB[0] || "");

        if (_nyOBZhbA) {
            const [_Zjfvsumn, _lKplLykm = '443'] = _nyOBZhbA.split(':');
            _yWZgCzvz = { _Zjfvsumn, _lKplLykm };
        } else {
            const [_Zjfvsumn, _lKplLykm = '443'] = _GZOquQfn.split(':');
            _yWZgCzvz = { _Zjfvsumn, _lKplLykm };
        }

        const _UNGfWfpn = new URL(_tLOGPavH._UNGfWfpn);
        const _AugvRFpu = _UNGfWfpn.pathname;
        let _kCOLwRHi = '';

        const _HXIMYeMF = _UNGfWfpn.searchParams.get('remote');
        if (_HXIMYeMF) {
           _kCOLwRHi = atob(_HXIMYeMF);
        } else if (_AugvRFpu.startsWith('/endpoint=')) {
           _kCOLwRHi = _AugvRFpu.substring(10);
        } else if (_AugvRFpu._JddHRFkb > 1 && _AugvRFpu.substring(1).includes('.')) {
           _kCOLwRHi = _AugvRFpu.substring(1);
        }

        if (_kCOLwRHi) {
            const [_Zjfvsumn, _lKplLykm = '443'] = _kCOLwRHi.split(':');
            _yWZgCzvz = { _Zjfvsumn, _lKplLykm };
        }
        
        return await _eGnulJbI(_tLOGPavH, _rQbHFPwY, _yWZgCzvz);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _eGnulJbI(_tLOGPavH, _uzVvQJqC, _yWZgCzvz) {
    const _mJrMMDau = new WebSocketPair();
    const [clientEnd, _nSKbdfdu] = Object.values(_mJrMMDau);
    _nSKbdfdu.accept();

    let _FsaCmIgJ = { _NtpcVXiV: null };
    const _AfpvKUnj = _tLOGPavH._qbpjcIjc.get("sec-websocket-protocol") || "";
    const _QJmUKEuH = _KcTVFwWI(_nSKbdfdu, _AfpvKUnj);

    _QJmUKEuH.pipeTo(new WritableStream({
        async write(chunk) {
            if (_FsaCmIgJ._NtpcVXiV) {
                const _UjFDEoGo = _FsaCmIgJ._NtpcVXiV.writable.getWriter();
                await _UjFDEoGo.write(chunk);
                _UjFDEoGo.releaseLock();
                return;
            }

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

            const _bLXydvHd = new Uint8Array([details._MqPztFIw[0], 0]);
            const _MqfSLxjM = chunk.slice(details.payloadIndex);

            await _dYlVEkvu(_FsaCmIgJ, details._ltExFAwz, details._LWVmiIzj, _MqfSLxjM, _nSKbdfdu, _bLXydvHd, _yWZgCzvz);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _cqefpiOZ(_nSKbdfdu);
    });

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

async function _dYlVEkvu(_FsaCmIgJ, _ltExFAwz, _LWVmiIzj, _HVaLbRRX, _tdwvlYJm, _bLXydvHd, _TcOJYqpb) {
    const _KlItHsMl = async (_Zjfvsumn, _lKplLykm) => {
        let _wIKXOHuM = _Zjfvsumn;
        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(_Zjfvsumn)) {
            _wIKXOHuM = `${atob('d3d3Lg==')}${_Zjfvsumn}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _NtpcVXiV = connect({ _sEzdfqGt: _wIKXOHuM, _lKplLykm });
        _FsaCmIgJ._NtpcVXiV = _NtpcVXiV;
        const _UjFDEoGo = _NtpcVXiV.writable.getWriter();
        await _UjFDEoGo.write(_HVaLbRRX);
        _UjFDEoGo.releaseLock();
        return _NtpcVXiV;
    };

    const _lgnKFiVS = async () => {
        if (!_TcOJYqpb._Zjfvsumn) return;
        console.log(`Direct connection failed, falling back to gateway: ${_TcOJYqpb._Zjfvsumn}`);
        const _gPfykTJa = await _KlItHsMl(_TcOJYqpb._Zjfvsumn, parseInt(_TcOJYqpb._lKplLykm, 10));
        _gPfykTJa.closed.catch(() => {}).finally(() => _cqefpiOZ(_tdwvlYJm));
        _FeveYvFi(_gPfykTJa, _tdwvlYJm, _bLXydvHd, null);
    };

    try {
        const _JoNtUsqh = await _KlItHsMl(_ltExFAwz, _LWVmiIzj);
        _FeveYvFi(_JoNtUsqh, _tdwvlYJm, _bLXydvHd, _lgnKFiVS);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _lgnKFiVS();
    }
}

function _KcTVFwWI(_nSKbdfdu, _AfpvKUnj) {
    let _quIViDix = false;
    return new ReadableStream({
        start(_WCmsfjcs) {
            _nSKbdfdu.addEventListener("_rFvcSSUG", (event) => { if (_quIViDix) return; _WCmsfjcs.enqueue(event._ApMdqruF); });
            _nSKbdfdu.addEventListener("close", () => { _cqefpiOZ(_nSKbdfdu); if (_quIViDix) return; _WCmsfjcs.close(); });
            _nSKbdfdu.addEventListener("error", (err) => _WCmsfjcs.error(err));
            if (_AfpvKUnj) {
                try {
                    const _NKfZxRCH = atob(_AfpvKUnj.replace(/-/g, "+").replace(/_/g, "/"));
                    _WCmsfjcs.enqueue(Uint8Array.from(_NKfZxRCH, c => c.charCodeAt(0))._YuppqLgC);
                } catch (_HiEJfbha) { console.error("Failed to decode early _ApMdqruF:", _HiEJfbha); }
            }
        },
        cancel() { _quIViDix = true; _cqefpiOZ(_nSKbdfdu); },
    });
}

async function _NwaQHPay(_YuppqLgC, _uzVvQJqC) {
    if (_YuppqLgC.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _MqPztFIw = new Uint8Array(_YuppqLgC.slice(0, 1));
    const _cgtuuugr = _MGCorXCp(new Uint8Array(_YuppqLgC.slice(1, 17)));
    if (_cgtuuugr !== _uzVvQJqC) return { error: true, details: "Invalid _uzVvQJqC" };
    const _yCipejHw = new Uint8Array(_YuppqLgC.slice(17, 18))[0];
    const _KxCyBRys = new Uint8Array(_YuppqLgC.slice(18 + _yCipejHw, 19 + _yCipejHw))[0];
    if (_KxCyBRys !== 1) return { error: true, details: `Unsupported _KxCyBRys: ${_KxCyBRys}` };
    const _ENAeAjEi = 19 + _yCipejHw;
    const _LWVmiIzj = new DataView(_YuppqLgC.slice(_ENAeAjEi, _ENAeAjEi + 2)).getUint16(0);
    let _vQgEQKQV = _ENAeAjEi + 2;
    const _ZtOAjgUg = new Uint8Array(_YuppqLgC.slice(_vQgEQKQV, _vQgEQKQV + 1))[0];
    let _fnEADVHm = 0;
    let _TmEHWXtC = _vQgEQKQV + 1;
    let _ltExFAwz = "";
    switch (_ZtOAjgUg) {
        case 1: _fnEADVHm = 4; _ltExFAwz = new Uint8Array(_YuppqLgC.slice(_TmEHWXtC, _TmEHWXtC + _fnEADVHm)).join("."); break;
        case 2: _fnEADVHm = new Uint8Array(_YuppqLgC.slice(_TmEHWXtC, _TmEHWXtC + 1))[0]; _TmEHWXtC++; _ltExFAwz = new TextDecoder().decode(_YuppqLgC.slice(_TmEHWXtC, _TmEHWXtC + _fnEADVHm)); break;
        case 3: _fnEADVHm = 16; const _XrOmMQKl = new DataView(_YuppqLgC.slice(_TmEHWXtC, _TmEHWXtC + _fnEADVHm)); const _YRAcZaxw = []; for (let _RtvzwKWo = 0; _RtvzwKWo < 8; _RtvzwKWo++) _YRAcZaxw.push(_XrOmMQKl.getUint16(_RtvzwKWo * 2).toString(16)); _ltExFAwz = _YRAcZaxw.join(":"); break;
        default: return { error: true, details: `Invalid _MsAmNsGB _BFbzJcsO: ${_ZtOAjgUg}` };
    }
    if (!_ltExFAwz) return { error: true, details: "Target _Zjfvsumn is empty" };
    return { error: false, details: { _ltExFAwz, _LWVmiIzj, _MqPztFIw, payloadIndex: _TmEHWXtC + _fnEADVHm } };
}

async function _FeveYvFi(_NtpcVXiV, _tdwvlYJm, _LrEbQxBH, _jBcMnwgN) {
    let _LoBVLRkD = _LrEbQxBH;
    let _quPpdLcN = false;
    let _eYhaQhIM = _NtpcVXiV._QJmUKEuH.pipeTo(new WritableStream({
        write(chunk) {
            _quPpdLcN = true;
            if (_tdwvlYJm.readyState !== 1) throw new Error("Channel is not open");
            if (_LoBVLRkD) {
                const _LVYUhktn = new Uint8Array(_LoBVLRkD.byteLength + chunk.byteLength);
                _LVYUhktn._wjpIBrxv(new Uint8Array(_LoBVLRkD));
                _LVYUhktn._wjpIBrxv(new Uint8Array(chunk), _LoBVLRkD.byteLength);
                _tdwvlYJm.send(_LVYUhktn._YuppqLgC);
                _LoBVLRkD = null;
            } else {
                _tdwvlYJm.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _tdwvlYJm error:", err._rFvcSSUG);
    });

    await _eYhaQhIM;
    if (!_quPpdLcN && _jBcMnwgN) {
        _jBcMnwgN();
    }
}

function _cqefpiOZ(_tdwvlYJm) {
    try { if (_tdwvlYJm.readyState === 1 || _tdwvlYJm.readyState === 2) _tdwvlYJm.close(); } catch (_HiEJfbha) {}
}

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

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

async function _BNaVoekK(_UNGfWfpn, _mRsUTHLJ, _jBcMnwgN) {
    try {
        const _TWYTcqap = await fetch(_UNGfWfpn, {
            _qbpjcIjc: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_TWYTcqap.ok) {
            console.error(`获取 ${_UNGfWfpn} 失败: HTTP ${_TWYTcqap.status}`);
            return _jBcMnwgN;
        }
        const _jcPqEnIk = await _TWYTcqap._jcPqEnIk();
        return _mRsUTHLJ(_jcPqEnIk);
    } catch (error) {
        console.error(`获取或解析 ${_UNGfWfpn} 时发生网络错误: ${error._rFvcSSUG}`);
        return _jBcMnwgN;
    }
}

function _qgTguwZY(_jcPqEnIk) {
    if (!_jcPqEnIk) return [];
    const _VgEilHwm = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _ROAvVEQm = _jcPqEnIk.split(/[\s,;#|]+/);
    const _EZlqCJHf = [];
    for (const _psIFGbRt of _ROAvVEQm) {
        const _eeFwsySq = _psIFGbRt.trim();
        if (!_eeFwsySq) continue;
        const _kaXnafRk = _eeFwsySq.lastIndexOf(':');
        let _XTBgfOuN = _eeFwsySq;
        if(_kaXnafRk > _eeFwsySq.lastIndexOf(']')) {
             const _FhEdGgoG = _eeFwsySq.substring(_kaXnafRk + 1);
             if(!isNaN(_FhEdGgoG) && _FhEdGgoG._JddHRFkb > 0) {
                _XTBgfOuN = _eeFwsySq.substring(0, _kaXnafRk);
             }
        }
        if (_nXScAjwm.isValid(_XTBgfOuN.replace(/[\[\]]/g, '')) || _VgEilHwm.test(_eeFwsySq)) {
            _EZlqCJHf.push(_eeFwsySq);
        }
    }
    return _EZlqCJHf;
}

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

function _bvSXKmKa(_jcPqEnIk) {
    if (!_jcPqEnIk) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_jcPqEnIk}}`);
    } catch (_HiEJfbha) {
        console.error("解析 _moylkUFq 失败:", _HiEJfbha);
        return { "N/A": "未知" };
    }
}

const _nXScAjwm = {
    isValid: (_ropwOTIW) => _nXScAjwm.isIPv4(_ropwOTIW) || _nXScAjwm.isIPv6(_ropwOTIW),
    isIPv4: (_ropwOTIW) => {
        if (typeof _ropwOTIW !== 'string') return false;
        const _YRAcZaxw = _ropwOTIW.split('.');
        if (_YRAcZaxw._JddHRFkb !== 4) return false;
        return _YRAcZaxw.every(_DtiwxJfm => {
            const _wWqlperN = parseInt(_DtiwxJfm, 10);
            return !isNaN(_wWqlperN) && _wWqlperN >= 0 && _wWqlperN <= 255 && String(_wWqlperN) === _DtiwxJfm;
        });
    },
    isIPv6: (_ropwOTIW) => {
        if (typeof _ropwOTIW !== '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]))$/_RtvzwKWo.test(_ropwOTIW);
    },
    toLong4: (_ropwOTIW) => _ropwOTIW.split('.').reduce((acc, octet, _RtvzwKWo) => acc + (parseInt(octet) << (8*(3-_RtvzwKWo))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_ropwOTIW) => {
        try {
            const _QIlaKYhd = _ropwOTIW.split('/')[0];
            const _YRAcZaxw = _QIlaKYhd.split('::');
            if (_YRAcZaxw._JddHRFkb > 2) return 0n;
            let _MjohQFAo = [];
            if (_YRAcZaxw[0]) {
                _MjohQFAo = _YRAcZaxw[0].split(':');
            }
            let _pMLoVrHk = [];
            if (_YRAcZaxw._JddHRFkb > 1 && _YRAcZaxw[1]) {
                _pMLoVrHk = _YRAcZaxw[1].split(':');
            }
            if (_MjohQFAo._JddHRFkb + _pMLoVrHk._JddHRFkb > 8) return 0n;
            const _oRMvuVjj = 8 - (_MjohQFAo._JddHRFkb + _pMLoVrHk._JddHRFkb);
            const _TjSnuLlF = [
                ..._MjohQFAo,
                ...Array(_oRMvuVjj).fill('0'),
                ..._pMLoVrHk
            ].map(_DtiwxJfm => _DtiwxJfm || '0');
            while(_TjSnuLlF._JddHRFkb < 8) {
                _TjSnuLlF.push('0');
            }
            let _MGDgJyeh = 0n;
            for (const _DtiwxJfm of _TjSnuLlF) {
                if (_DtiwxJfm._JddHRFkb > 4) return 0n;
                const _jnrUVtWz = BigInt('0x' + _DtiwxJfm);
                _MGDgJyeh = (_MGDgJyeh << 16n) | _jnrUVtWz;
            }
            return _MGDgJyeh;
        } catch(_HiEJfbha) {
            return 0n;
        }
    },
    fromBigInt6: (_MGDgJyeh) => {
        if (typeof _MGDgJyeh !== '_MGDgJyeh' || _MGDgJyeh < 0n) return null;
        const _YRAcZaxw = [];
        for (let _RtvzwKWo = 0; _RtvzwKWo < 8; _RtvzwKWo++) {
            _YRAcZaxw.unshift((_MGDgJyeh & 0xFFFFn).toString(16));
            _MGDgJyeh >>= 16n;
        }
        let _bisZkXrV = { start: -1, _VmFLzuZx: 0 };
        let _uKrFFSPB = { start: -1, _VmFLzuZx: 0 };
        for (let _RtvzwKWo = 0; _RtvzwKWo < 8; _RtvzwKWo++) {
            if (_YRAcZaxw[_RtvzwKWo] === '0') {
                if (_uKrFFSPB.start === -1) _uKrFFSPB.start = _RtvzwKWo;
                _uKrFFSPB._VmFLzuZx++;
            } else {
                if (_uKrFFSPB._VmFLzuZx > _bisZkXrV._VmFLzuZx) _bisZkXrV = { ..._uKrFFSPB };
                _uKrFFSPB = { start: -1, _VmFLzuZx: 0 };
            }
        }
        if (_uKrFFSPB._VmFLzuZx > _bisZkXrV._VmFLzuZx) _bisZkXrV = { ..._uKrFFSPB };
        if (_bisZkXrV._VmFLzuZx > 1) {
            _YRAcZaxw.splice(_bisZkXrV.start, _bisZkXrV._VmFLzuZx, '');
            if (_bisZkXrV.start === 0) _YRAcZaxw.unshift('');
            if (_bisZkXrV.start + _bisZkXrV._VmFLzuZx === 8) _YRAcZaxw.push('');
        }
        return _YRAcZaxw.join(':');
    },
    cidrToRange: (cidr, _QOeajihy = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _GIeYMDcj = parseInt(bitsStr, 10);
            const _fPcQkudH = new Set();
            if (_nXScAjwm.isIPv4(range)) {
                if (isNaN(_GIeYMDcj) || _GIeYMDcj < 8 || _GIeYMDcj > 32) return [];
                if (_GIeYMDcj === 32) return [range];
                const _lmGAFZXL = _nXScAjwm.toLong4(range);
                const _hQForZEn = (0xFFFFFFFF << (32 - _GIeYMDcj)) >>> 0;
                const _HqRNgkeA = _lmGAFZXL & _hQForZEn;
                const _WqVJMgJc = 1 << (32 - _GIeYMDcj);
                if (_WqVJMgJc <= 2) return [];
                const _SMXzYtWK = Math.min(_QOeajihy, _WqVJMgJc - 2);
                let _wayMwJer = 0;
                while (_fPcQkudH.size < _SMXzYtWK && _wayMwJer < _SMXzYtWK * 5) {
                    const _VCuiRThi = Math.floor(Math.random() * (_WqVJMgJc - 2)) + 1;
                    _fPcQkudH.add(_nXScAjwm.fromLong4((_HqRNgkeA + _VCuiRThi) >>> 0));
                    _wayMwJer++;
                }
                return Array.from(_fPcQkudH);
            } else if (_nXScAjwm.isIPv6(range)) {
                if (isNaN(_GIeYMDcj) || _GIeYMDcj < 16 || _GIeYMDcj > 128) return [];
                 if (_GIeYMDcj === 128) return [range];
                const _MbsWMwmA = _nXScAjwm.toBigInt6(range);
                const _hQForZEn = (2n ** BigInt(128 - _GIeYMDcj) - 1n);
                const _HqRNgkeA = _MbsWMwmA & ~_hQForZEn;
                const _PbiaOOxe = 2n ** BigInt(128 - _GIeYMDcj);
                if (_PbiaOOxe <= 2n) return [];
                let _wayMwJer = 0;
                while (_fPcQkudH.size < _QOeajihy && _wayMwJer < _QOeajihy * 5) {
                     const _wpOsdqzO = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_wpOsdqzO);
                     let _EHFfYqtH = 0n;
                     for (const _xgdhUnDt of _wpOsdqzO) {
                         _EHFfYqtH = (_EHFfYqtH << 8n) | BigInt(_xgdhUnDt);
                     }
                     const _VCuiRThi = _EHFfYqtH % (_PbiaOOxe - 2n) + 1n;
                     _fPcQkudH.add(_nXScAjwm.fromBigInt6(_HqRNgkeA + _VCuiRThi));
                     _wayMwJer++;
                }
                return Array.from(_fPcQkudH);
            }
            return [];
        } catch(_HiEJfbha) {
            console.error(`CIDR to range failed for ${cidr}:`, _HiEJfbha);
            return [];
        }
    }
};

function _gTHyfsRc(_tDPSvEdD, _LuBPKxiK) {
    const _zihdsBTK = {};
    const _wwgUjQqF = Object._wwgUjQqF(_LuBPKxiK);
    const _YRAcZaxw = _wwgUjQqF.map(_HCrAOecu => {
        const _lRiqrMwL = _tDPSvEdD * (_LuBPKxiK[_HCrAOecu] / 100);
        return { _HCrAOecu, _QOeajihy: Math.floor(_lRiqrMwL), remainder: _lRiqrMwL - Math.floor(_lRiqrMwL) };
    });
    let _kEAfvOWV = _YRAcZaxw.reduce((acc, _DtiwxJfm) => acc + _DtiwxJfm._QOeajihy, 0);
    _YRAcZaxw.sort((a, b) => b.remainder - a.remainder);
    let _RxVwFhvl = _tDPSvEdD - _kEAfvOWV;
    for (let _RtvzwKWo = 0; _RtvzwKWo < _RxVwFhvl; _RtvzwKWo++) {
        _YRAcZaxw[_RtvzwKWo % _YRAcZaxw._JddHRFkb]._QOeajihy++;
    }
    for (const _DtiwxJfm of _YRAcZaxw) {
        _zihdsBTK[_DtiwxJfm._HCrAOecu] = _DtiwxJfm._QOeajihy;
    }
    return _zihdsBTK;
}

async function _NiwNaKnS(_rVPBZubY) {
    const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_VwvkkZpm);
    const { _TyrgygfU } = await _aUKSVfSl.all();
    return _TyrgygfU._JddHRFkb > 0 ? _TyrgygfU[0]._jnrUVtWz : null;
}

async function _jVNplCRb(_rVPBZubY, _eCcmnilz) {
    const _aUKSVfSl = _rVPBZubY.DB.prepare(
        "INSERT INTO kv_data (_HCrAOecu, _jnrUVtWz) VALUES (?, ?) ON CONFLICT(_HCrAOecu) DO UPDATE SET _jnrUVtWz = excluded._jnrUVtWz"
    );
    await _aUKSVfSl.bind(_VwvkkZpm, _eCcmnilz).run();
}

async function _hshPlzis(_tLOGPavH, _rVPBZubY) {
    const { _eCcmnilz } = await _tLOGPavH.json();
    const _YBETRdtU = await _NiwNaKnS(_rVPBZubY);
    if (_YBETRdtU === _eCcmnilz) {
        return _eIAngMNs({ success: true });
    }
    return _eIAngMNs({ success: false, _rFvcSSUG: '密码错误' }, 401);
}

async function _PfvEezLe(_tLOGPavH, _rVPBZubY) {
    const _ByPxqiGB = await _fXwqgGZX(_rVPBZubY);
    if (!_ByPxqiGB.visitorPassword || !_ByPxqiGB.visitorPassword._jkoNSIvl) {
        return _eIAngMNs({ success: true });
    }
    try {
        const { _eCcmnilz } = await _tLOGPavH.json();
        const _aQVTqUJn = _ByPxqiGB.visitorPassword._eCcmnilz;
        if (_aQVTqUJn && _eCcmnilz === _aQVTqUJn) {
            return _eIAngMNs({ success: true });
        }
        return _eIAngMNs({ success: false, _rFvcSSUG: '访客密码错误' }, 401);
    } catch (_HiEJfbha) {
        return _eIAngMNs({ success: false, _rFvcSSUG: '无效请求' }, 400);
    }
}

async function _dpikAnvx(_tLOGPavH, _rVPBZubY) {
    const _oVOyLocT = await _NiwNaKnS(_rVPBZubY);
    if (_oVOyLocT) {
        return _eIAngMNs({ success: false, _rFvcSSUG: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _eCcmnilz } = await _tLOGPavH.json();
    if (!_eCcmnilz || _eCcmnilz._JddHRFkb < 6) {
        return _eIAngMNs({ success: false, _rFvcSSUG: "密码长度不能少于6位。" }, 400);
    }
    await _jVNplCRb(_rVPBZubY, _eCcmnilz);
    return _eIAngMNs({ success: true, _rFvcSSUG: "初始密码设置成功!请刷新页面并登录。" });
}

async function _gPfjfgjA(_tLOGPavH, _rVPBZubY) {
    const { _SaLMLDGF, _gitLElus } = await _tLOGPavH.json();
    const _YBETRdtU = await _NiwNaKnS(_rVPBZubY);
    if (_YBETRdtU !== _SaLMLDGF) {
        return _eIAngMNs({ success: false, _rFvcSSUG: "旧密码错误。" }, 403);
    }
    if (!_gitLElus || _gitLElus._JddHRFkb < 6) {
        return _eIAngMNs({ success: false, _rFvcSSUG: "新密码长度不能少于6位。" }, 400);
    }
    await _jVNplCRb(_rVPBZubY, _gitLElus);
    return _eIAngMNs({ success: true, _rFvcSSUG: "密码修改成功!" });
}

function _AQSoMTrk() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _YaeXtNFu: '',
        api: {
            _jkoNSIvl: true,
            _rFvcSSUG: '维护中...',
        },
        ispFilter: { _jkoNSIvl: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _jkoNSIvl: true
        },
        websocketStreamer: {
            _jkoNSIvl: true,
            _UNGfWfpn: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _jkoNSIvl: true
        },
        visitorPassword: {
            _jkoNSIvl: false,
            _eCcmnilz: '',
        },
        customSubPath: {
            _jkoNSIvl: false,
            _AugvRFpu: 'latest',
        },
        subscriptionId: {
            _JddHRFkb: 8,
            _LhAztbqy: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _jkoNSIvl: true,
            template: 'vless://{_MtZNSJzW}@{_ropwOTIW}:{_lKplLykm}?encryption=none&security=tls&sni={_Zjfvsumn}&fp=random&_BFbzJcsO=ws&_Zjfvsumn={_Zjfvsumn}&_AugvRFpu={_AugvRFpu}#{_IUiWmmmU}',
            selectionMode: 'first',
            _tUzgyUfT: [
                { _IUiWmmmU: '默认配置', _Zjfvsumn: '', '_MtZNSJzW': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _AugvRFpu: '/?ed=2560' }
            ],
            _LVJabMdA: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _jkoNSIvl: false,
                _jcPqEnIk: '',
                _REQDFOKj: 5
            },
            marquee: {
                _jkoNSIvl: false,
                _jcPqEnIk: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _jkoNSIvl: true,
            sources: [
                { _IGcMXPZi: 'CF官方IPV4', _fPcQkudH: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 20 },
                { _IGcMXPZi: 'CF官方IPV6', _fPcQkudH: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 20 },
                { _IGcMXPZi: '反代优选0', _fPcQkudH: 'https://wvs.sosorg.nyc.mn/sub?_MtZNSJzW=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_BFbzJcsO=ws&_Zjfvsumn=ss.nzvrn.com&_AugvRFpu=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 30 },
                { _IGcMXPZi: '官方优选1', _fPcQkudH: 'https://ipdb.api.030101.xyz/?_BFbzJcsO=bestcf&_tgsGpbBk=true', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 10 },
                { _IGcMXPZi: '反代优选2', _fPcQkudH: 'https://ipdb.api.030101.xyz/?_BFbzJcsO=bestproxy&_tgsGpbBk=true', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 5 },
                { _IGcMXPZi: '官方优选2', _fPcQkudH: 'https://addressesapi.090227.xyz/_ropwOTIW.164746.xyz', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 10 },
				{ _IGcMXPZi: '官方优选3', _fPcQkudH: 'https://cfxr.eu.org/getSub?_Zjfvsumn=snipaste.huggy.qzz.io', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 5 },
                { _IGcMXPZi: '官方优选4', _fPcQkudH: 'https://addressesapi.090227.xyz/CloudFlareYes', _yaaUzZvU: false, _jkoNSIvl: true, _pWQRXuPF: 10 }
            ]
        },
        customNodes: {
            _jkoNSIvl: 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 _XjtkfkNO(_OSBSbnfT, _RntuQYiV) {
    if (!_OSBSbnfT) return _RntuQYiV;
    const _cWMxFVXv = { ..._RntuQYiV };
    for (const _HCrAOecu in _RntuQYiV) {
        if (_OSBSbnfT.hasOwnProperty(_HCrAOecu)) {
             if (typeof _OSBSbnfT[_HCrAOecu] === 'object' && _OSBSbnfT[_HCrAOecu] !== null && !Array.isArray(_OSBSbnfT[_HCrAOecu]) && typeof _RntuQYiV[_HCrAOecu] === 'object' && _RntuQYiV[_HCrAOecu] !== null && !Array.isArray(_RntuQYiV[_HCrAOecu])) {
                _cWMxFVXv[_HCrAOecu] = _XjtkfkNO(_OSBSbnfT[_HCrAOecu], _RntuQYiV[_HCrAOecu]);
            } else {
                _cWMxFVXv[_HCrAOecu] = _OSBSbnfT[_HCrAOecu];
            }
        }
    }
    return _cWMxFVXv;
}

async function _fXwqgGZX(_rVPBZubY) {
    try {
        const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_PSrONUXk);
        const { _TyrgygfU } = await _aUKSVfSl.all();
        const _tKpbmHuu = _TyrgygfU._JddHRFkb > 0 ? _TyrgygfU[0]._jnrUVtWz : null;
        const _MnUQVKsk = _tKpbmHuu ? JSON.parse(_tKpbmHuu) : {};
        return _XjtkfkNO(_MnUQVKsk, _AQSoMTrk());
    } catch (_HiEJfbha) {
        console.error("无法从D1获取或解析全局配置:", _HiEJfbha);
        return _AQSoMTrk();
    }
}

async function _FMFEIRfR(_rVPBZubY) {
    const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
    return _eIAngMNs(_QCBbPTKS);
}

async function _KAwsSeEC(_tLOGPavH, _rVPBZubY, _FZZfXetd) {
    try {
        const { _QCBbPTKS, adminPassword } = await _tLOGPavH.json();
        const _YBETRdtU = await _NiwNaKnS(_rVPBZubY);
        if (_YBETRdtU !== adminPassword) {
            return _eIAngMNs({ success: false, _rFvcSSUG: "管理员密码错误" }, 403);
        }
        const _aUKSVfSl = _rVPBZubY.DB.prepare(
          "INSERT INTO kv_data (_HCrAOecu, _jnrUVtWz) VALUES (?, ?) ON CONFLICT(_HCrAOecu) DO UPDATE SET _jnrUVtWz = excluded._jnrUVtWz"
        );
        const _lyBEjlKE = _aUKSVfSl.bind(_PSrONUXk, JSON.stringify(_QCBbPTKS)).run();
        _FZZfXetd.waitUntil(_lyBEjlKE);
        return _eIAngMNs({ success: true, _rFvcSSUG: "配置已成功保存!" });
    } catch (_HiEJfbha) {
        return _eIAngMNs({ success: false, _rFvcSSUG: `保存失败: ${_HiEJfbha._rFvcSSUG}` }, 500);
    }
}

async function _jqoVTvpE() {
    const _xvrfnmEL = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _JQidLsSi = await fetch(_xvrfnmEL);
        const _MFGNAmbs = await _JQidLsSi.json();
        const _xXTrSXLx = 'https://www.bing.com' + _MFGNAmbs.images[0]._UNGfWfpn;
        return fetch(_xXTrSXLx);
    } catch (_HiEJfbha) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _eYOPpNYj(_ropwOTIW) {
    try {
        const _TWYTcqap = await fetch(`http://_ropwOTIW-api.com/json/${_ropwOTIW}?fields=status,_tgsGpbBk,countryCode,_QAFYBAqM&lang=zh-CN`);
        if (_TWYTcqap.ok) {
            const _ApMdqruF = await _TWYTcqap.json();
            if (_ApMdqruF.status === 'success' && (_ApMdqruF.countryCode || _ApMdqruF._tgsGpbBk)) {
                let _QAFYBAqM = _ApMdqruF._QAFYBAqM || '未知';
                if (_QAFYBAqM.toLowerCase().includes('cloudflare')) {
                    _QAFYBAqM = 'CloudFlare';
                }
                return {
                    _IGcMXPZi: _moylkUFq[_ApMdqruF.countryCode] || _ApMdqruF._tgsGpbBk || _ApMdqruF.countryCode,
                    _QAFYBAqM: _QAFYBAqM
                };
            }
        }
    } catch (_HiEJfbha) {}

    try {
        const _TWYTcqap = await fetch(`https://api._ropwOTIW.sb/geoip/${_ropwOTIW}`);
        if (_TWYTcqap.ok) {
            const _ApMdqruF = await _TWYTcqap.json();
            if (_ApMdqruF.country_code || _ApMdqruF._tgsGpbBk) {
                let _QAFYBAqM = _ApMdqruF._QAFYBAqM || '未知';
                if (_QAFYBAqM.toLowerCase().includes('cloudflare')) {
                    _QAFYBAqM = 'CloudFlare';
                }
                return {
                    _IGcMXPZi: _moylkUFq[_ApMdqruF.country_code] || _ApMdqruF._tgsGpbBk || _ApMdqruF.country_code,
                    _QAFYBAqM: _QAFYBAqM
                };
            }
        }
    } catch (_HiEJfbha) {}
    
    return { _IGcMXPZi: '未知', _QAFYBAqM: '未知' };
}

async function _eAetCvBl(_tLOGPavH, _rVPBZubY) {
    try {
        const { _fPcQkudH } = await _tLOGPavH.json();
        if (!Array.isArray(_fPcQkudH)) {
            return _eIAngMNs({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _rBzmkdLt = _fPcQkudH.map(_ropwOTIW => _eYOPpNYj(_ropwOTIW).then(_zVtrXmGe => ({ _ropwOTIW, ..._zVtrXmGe })));
        const _TyrgygfU = await Promise.all(_rBzmkdLt);
        return _eIAngMNs(_TyrgygfU);
    } catch (_HiEJfbha) {
        return _eIAngMNs({ error: `获取地理位置失败: ${_HiEJfbha._rFvcSSUG}` }, 500);
    }
}

async function _RyFIrbwM(_tLOGPavH, _rVPBZubY) {
    const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
    if (!_QCBbPTKS.cloudStorage._jkoNSIvl) {
        return _eIAngMNs({ _TyrgygfU: [], generatedBy: null });
    }
    try {
        const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_hsaniIWp);
        const { _TyrgygfU } = await _aUKSVfSl.all();
        const _kkjAPcuU = _TyrgygfU._JddHRFkb > 0 ? _TyrgygfU[0]._jnrUVtWz : null;
        const _JDGIYQSl = _kkjAPcuU ? JSON.parse(_kkjAPcuU) : null;
        return _eIAngMNs(_JDGIYQSl || { _TyrgygfU: [], generatedBy: null });
    } catch (_HiEJfbha) {
        console.error("从D1读取缓存IP失败:", _HiEJfbha);
        return _eIAngMNs({ _TyrgygfU: [], generatedBy: null });
    }
}

async function _EtXkbxvv(_tLOGPavH, _rVPBZubY, _FZZfXetd) {
    const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
    if (!_QCBbPTKS.cloudStorage._jkoNSIvl) {
        return _eIAngMNs({ success: true, _rFvcSSUG: "云端存储已禁用,不保存结果。" });
    }
    const _BPsraGDZ = _tLOGPavH._qbpjcIjc.get('CF-Connecting-IP') || "未知IP";
    const _tgsGpbBk = _tLOGPavH.cf?._tgsGpbBk || "未知";
    const _Iqbpujul = _tLOGPavH.cf?._Iqbpujul || "";
    let _SZawXYXw = _moylkUFq[_tgsGpbBk] || _tgsGpbBk;
    if (_Iqbpujul && _Iqbpujul !== "未知城市" && _Iqbpujul !== _tgsGpbBk) _SZawXYXw = `${_SZawXYXw} ${_moylkUFq[_Iqbpujul] || _Iqbpujul}`;
    const _vkPadcTC = {
        _ropwOTIW: _IJyhXLSY(_BPsraGDZ),
        _IGcMXPZi: _SZawXYXw.trim(),
        time: _wIGFshcJ()
    };
    try {
        const _tSQjmslR = await _tLOGPavH.json();
        if (!Array.isArray(_tSQjmslR)) return _eIAngMNs({ error: "无效数据格式" }, 400);
        const _ZwRGoTJV = _tSQjmslR.map(_GBEoFnDx => ({
            _ropwOTIW: String(_GBEoFnDx._ropwOTIW || ''),
            _lKplLykm: _GBEoFnDx._lKplLykm ? parseInt(_GBEoFnDx._lKplLykm, 10) : undefined,
            _eyKkAvOd: parseInt(_GBEoFnDx._eyKkAvOd, 10),
            _IGcMXPZi: typeof _GBEoFnDx._IGcMXPZi === 'string' ? _GBEoFnDx._IGcMXPZi.substring(0, 50) : 'N/A',
            _QAFYBAqM: typeof _GBEoFnDx._QAFYBAqM === 'string' ? _GBEoFnDx._QAFYBAqM.substring(0, 100) : 'N/A'
        }));
        const _YkcwknUa = {
            generatedBy: _vkPadcTC,
            _TyrgygfU: _ZwRGoTJV
        };
        const _PcvxdnEh = _rVPBZubY.DB.prepare(
          "INSERT INTO kv_data (_HCrAOecu, _jnrUVtWz) VALUES (?, ?) ON CONFLICT(_HCrAOecu) DO UPDATE SET _jnrUVtWz = excluded._jnrUVtWz"
        ).bind(_hsaniIWp, JSON.stringify(_YkcwknUa)).run();
        if (_QCBbPTKS.telegram.bot_token && _QCBbPTKS.telegram.chat_id) {
            const _sOsYgspS = _ZwRGoTJV.map(r => `${r._ropwOTIW} ~ ${r._IGcMXPZi}`).join('\n');
            const _RfLHmOea = `优选完成!\n来源: ${_vkPadcTC._ropwOTIW} (${_vkPadcTC._IGcMXPZi})\n时间: ${_vkPadcTC.time}\n\n结果:\n${_sOsYgspS}`;
            const _BGAUvbns = `https://api.telegram.org/bot${_QCBbPTKS.telegram.bot_token}/sendMessage?chat_id=${_QCBbPTKS.telegram.chat_id}&_jcPqEnIk=${encodeURIComponent(_RfLHmOea)}`;
            const _VcFqXVuZ = fetch(_BGAUvbns).catch(_HiEJfbha => console.error("Telegram结果通知失败:", _HiEJfbha));
            _FZZfXetd.waitUntil(Promise.all([_PcvxdnEh, _VcFqXVuZ]));
        } else {
             _FZZfXetd.waitUntil(_PcvxdnEh);
        }
        return _eIAngMNs({ success: true, _rFvcSSUG: "结果已保存" });
    } catch (_HiEJfbha) {
        return _eIAngMNs({ error: "D1写入失败", _rFvcSSUG: _HiEJfbha._rFvcSSUG }, 500);
    }
}

async function _bpsBaIZq(_tLOGPavH, _rVPBZubY, _FZZfXetd) {
    try {
        const _oQpqPCvw = await _tLOGPavH.json();
        if (!Array.isArray(_oQpqPCvw)) return _eIAngMNs({ error: "无效数据格式" }, 400);
        const _YkcwknUa = {
            _TyrgygfU: _oQpqPCvw
        };
        const _aUKSVfSl = _rVPBZubY.DB.prepare(
          "INSERT INTO kv_data (_HCrAOecu, _jnrUVtWz) VALUES (?, ?) ON CONFLICT(_HCrAOecu) DO UPDATE SET _jnrUVtWz = excluded._jnrUVtWz"
        );
        const _lyBEjlKE = _aUKSVfSl.bind(_iidZOFTL, JSON.stringify(_YkcwknUa)).run();
        _FZZfXetd.waitUntil(_lyBEjlKE);
        return _eIAngMNs({ success: true });
    } catch (_HiEJfbha) {
        return _eIAngMNs({ error: "D1写入临时缓存失败", _rFvcSSUG: _HiEJfbha._rFvcSSUG }, 500);
    }
}

function _GfySpiWM(_JddHRFkb, _LhAztbqy) {
    let _YyMUdMVg = '';
    const _XYcrjIJI = _LhAztbqy._JddHRFkb;
    for (let _RtvzwKWo = 0; _RtvzwKWo < _JddHRFkb; _RtvzwKWo++) {
        _YyMUdMVg += _LhAztbqy.charAt(Math.floor(Math.random() * _XYcrjIJI));
    }
    return _YyMUdMVg;
}

async function _AzTRZdav(_tLOGPavH, _rVPBZubY) {
    try {
        const _tSQjmslR = await _tLOGPavH.json();
        if (!Array.isArray(_tSQjmslR) || _tSQjmslR._JddHRFkb === 0) {
            return _eIAngMNs({ error: "无效或空的IP列表" }, 400);
        }

        const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
        const _OiBVJOEi = _QCBbPTKS.subscriptionId || { _JddHRFkb: 8, _LhAztbqy: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _pVBduKzY;
        let _bAwextRO = false;
        let _wayMwJer = 0;
        const _IptLyIXo = 10;

        while (!_bAwextRO && _wayMwJer < _IptLyIXo) {
            _pVBduKzY = _GfySpiWM(_OiBVJOEi._JddHRFkb, _OiBVJOEi._LhAztbqy);
            const { _TyrgygfU } = await _rVPBZubY.DB.prepare("SELECT _TTtmLTmr FROM optimized_results WHERE _TTtmLTmr = ?").bind(_pVBduKzY).all();
            if (_TyrgygfU._JddHRFkb === 0) {
                _bAwextRO = true;
            }
            _wayMwJer++;
        }

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

        const _YDBwEyoM = JSON.stringify({ _fPcQkudH: _tSQjmslR });
        await _rVPBZubY.DB.prepare(
            "INSERT INTO optimized_results (_TTtmLTmr, _ApMdqruF) VALUES (?, ?)"
        ).bind(_pVBduKzY, _YDBwEyoM).run();
        await _rVPBZubY.DB.prepare(
            "INSERT INTO kv_data (_HCrAOecu, _jnrUVtWz) VALUES (?, ?) ON CONFLICT(_HCrAOecu) DO UPDATE SET _jnrUVtWz = excluded._jnrUVtWz"
        ).bind(_wjeAhTFT, _pVBduKzY).run();
            
        return _eIAngMNs({ success: true, _TTtmLTmr: _pVBduKzY });
    } catch (_HiEJfbha) {
        return _eIAngMNs({ error: "保存优选结果失败", _rFvcSSUG: _HiEJfbha._rFvcSSUG }, 500);
    }
}

async function _yxHarKeV(_tLOGPavH, _rVPBZubY) {
    try {
        const _pVBduKzY = _tLOGPavH._yfvvHyun._TTtmLTmr;
        if (!_pVBduKzY) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _YyMUdMVg = await _rVPBZubY.DB.prepare("SELECT _ApMdqruF FROM optimized_results WHERE _TTtmLTmr = ?").bind(_pVBduKzY).first();
        if (!_YyMUdMVg) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _ApMdqruF = JSON.parse(_YyMUdMVg._ApMdqruF);
        let _sOsYgspS = _ApMdqruF._fPcQkudH;

        const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);

        if (_QCBbPTKS.customNodes && _QCBbPTKS.customNodes._jkoNSIvl && _QCBbPTKS.customNodes.list) {
            const _QjJJPotz = _QCBbPTKS.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _edZGDXeS = _QjJJPotz.map(_VoRrCSOy => {
                let _MsAmNsGB = _VoRrCSOy;
                let _lKplLykm = undefined;
                let _IUiWmmmU = null;

                if (_MsAmNsGB.includes('@')) {
                    const _YRAcZaxw = _MsAmNsGB.split('@');
                    _IUiWmmmU = _YRAcZaxw.pop();
                    _MsAmNsGB = _YRAcZaxw.join('@');
                }

                if (_MsAmNsGB.includes('#')) {
                    const _YRAcZaxw = _MsAmNsGB.split('#');
                    const _FhEdGgoG = _YRAcZaxw.pop();
                    if (!isNaN(_FhEdGgoG) && _FhEdGgoG.trim() !== '') {
                        _lKplLykm = parseInt(_FhEdGgoG, 10);
                    }
                    _MsAmNsGB = _YRAcZaxw.join('#');
                }
                
                return {
                    _ropwOTIW: _MsAmNsGB,
                    _lKplLykm: _lKplLykm,
                    _IGcMXPZi: _IUiWmmmU || _MsAmNsGB,
                    _QAFYBAqM: '自定义'
                };
            });
            _sOsYgspS.unshift(..._edZGDXeS);
        }
        
        const { itemLink } = _QCBbPTKS;
        const _MFRLvNVP = new URL(_tLOGPavH._UNGfWfpn)._sEzdfqGt;
        let _MfAYAVoP;

        if (_QCBbPTKS.websocketStreamer && _QCBbPTKS.websocketStreamer._jkoNSIvl) {
            if (!itemLink || !itemLink._jkoNSIvl || !itemLink._tUzgyUfT || itemLink._tUzgyUfT._JddHRFkb === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _MfAYAVoP = _sOsYgspS.map((_GBEoFnDx, _JHshsHnZ) => {
                let _IUiWmmmU;
                if (_GBEoFnDx._QAFYBAqM === '自定义') {
                     _IUiWmmmU = `${_JHshsHnZ + 1} - ${_GBEoFnDx._IGcMXPZi}`;
                } else {
                    _IUiWmmmU = `${_JHshsHnZ + 1} - ${_GBEoFnDx._IGcMXPZi || '未知'}`;
                    if (!_GBEoFnDx._QAFYBAqM || !_GBEoFnDx._QAFYBAqM.toLowerCase().includes('cloudflare')) {
                        _IUiWmmmU += '(反代)';
                    }
                }
                const _MqEouNex = _nXScAjwm.isIPv6(_GBEoFnDx._ropwOTIW) ? `[${_GBEoFnDx._ropwOTIW}]` : _GBEoFnDx._ropwOTIW;
                const _lKplLykm = _GBEoFnDx._lKplLykm || 443;
                const _veeNEVFy = itemLink._tUzgyUfT[0];
                const _axEGtRaK = _veeNEVFy._MtZNSJzW || '';
                const _MtZNSJzW = (_axEGtRaK && _zuGjTxKW(_axEGtRaK)) ? _axEGtRaK : crypto.randomUUID();
                const _AugvRFpu = '/snippets?_ropwOTIW=endpointAddress:_lKplLykm(443)&nat64=6to4';
                const _Zjfvsumn = _veeNEVFy._Zjfvsumn || _MFRLvNVP;

                const _yfvvHyun = new URLSearchParams({
                    security: 'tls',
                    _BFbzJcsO: 'ws',
                    _Zjfvsumn: _Zjfvsumn,
                    sni: _Zjfvsumn,
                    fp: 'random'
                });
                return `vless://${_MtZNSJzW}@${_MqEouNex}:${_lKplLykm}?${_yfvvHyun.toString()}&_AugvRFpu=${encodeURIComponent(encodeURIComponent(_AugvRFpu))}#${encodeURIComponent(_IUiWmmmU)}`;
            });

        } else {
            if (!itemLink || !itemLink._jkoNSIvl || !itemLink._tUzgyUfT || itemLink._tUzgyUfT._JddHRFkb === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _veeNEVFy = itemLink._tUzgyUfT[0];
            const { _Zjfvsumn, _MtZNSJzW, _AugvRFpu } = _veeNEVFy;
            _MfAYAVoP = _sOsYgspS.map((_GBEoFnDx, _JHshsHnZ) => {
                let _IUiWmmmU;
                if (_GBEoFnDx._QAFYBAqM === '自定义') {
                     _IUiWmmmU = `${_JHshsHnZ + 1} - ${_GBEoFnDx._IGcMXPZi}`;
                } else {
                    _IUiWmmmU = `${_JHshsHnZ + 1} - ${_GBEoFnDx._IGcMXPZi || '未知'}`;
                    if (!_GBEoFnDx._QAFYBAqM || !_GBEoFnDx._QAFYBAqM.toLowerCase().includes('cloudflare')) {
                        _IUiWmmmU += '(反代)';
                    }
                }
                const _MqEouNex = _nXScAjwm.isIPv6(_GBEoFnDx._ropwOTIW) ? `[${_GBEoFnDx._ropwOTIW}]` : _GBEoFnDx._ropwOTIW;
                const _lKplLykm = _GBEoFnDx._lKplLykm || 443;
                const _yfvvHyun = new URLSearchParams({
                    security: 'tls',
                    _BFbzJcsO: 'ws',
                    _Zjfvsumn: _Zjfvsumn || _MFRLvNVP,
                    sni: _Zjfvsumn || _MFRLvNVP,
                    fp: 'random'
                });
                return `vless://${_MtZNSJzW}@${_MqEouNex}:${_lKplLykm}?${_yfvvHyun.toString()}&_AugvRFpu=${encodeURIComponent(encodeURIComponent(_AugvRFpu || ''))}#${encodeURIComponent(_IUiWmmmU)}`;
            });
        }
        
        const _rWzGwoFQ = _MfAYAVoP.join('\n');
        const _DNqQMYrt = btoa(_rWzGwoFQ);
        return new Response(_DNqQMYrt, {
            _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' }
        });

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

async function _LPyKyNPG(_tLOGPavH) {
    try {
        const { _udmsadMC, _BFbzJcsO } = await _tLOGPavH.json();
        if (!Array.isArray(_udmsadMC)) {
            return new Response('Invalid _udmsadMC list', { status: 400 });
        }
        const _VNWXdLxa = _udmsadMC.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _UNGfWfpn = `https://cloudflare-dns.com/dns-query?_IUiWmmmU=${encodeURIComponent(domain.trim())}&_BFbzJcsO=${_BFbzJcsO || 'A'}`;
            return fetch(_UNGfWfpn, { _qbpjcIjc: { 'Accept': 'application/dns-json' } })
                .then(_TWYTcqap => _TWYTcqap.json())
                .then(_ApMdqruF => (_ApMdqruF.Answer ? _ApMdqruF.Answer.map(a => a._ApMdqruF) : []))
                .catch(() => []);
        });
        const _aHqsteZE = (await Promise.all(_VNWXdLxa)).flat();
        const _TKdcmFGD = [...new Set(_aHqsteZE)];
        if (_TKdcmFGD._JddHRFkb === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_TKdcmFGD.join('\n'), { _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._rFvcSSUG}`, { status: 500 });
    }
}

async function _KDkWBtOS(_tLOGPavH, _rVPBZubY) {
  try {
      const { _MZjeWHOw } = await _tLOGPavH.json();
      if (!Array.isArray(_MZjeWHOw)) {
          return _eIAngMNs({ error: "Invalid input, expected an object with a '_MZjeWHOw' array." }, 400);
      }
      
      const _qIDuAMRq = new Set();
      
      const _HzxulXZa = _MZjeWHOw.map(_UNGfWfpn =>
          _IFVmWHTs(_UNGfWfpn)
              .then(_jcPqEnIk => {
                  if (!_jcPqEnIk) return;
                  const _ROAvVEQm = _jcPqEnIk.split(/[\s,;|]+/);
                  for (const _psIFGbRt of _ROAvVEQm) {
                      const _eeFwsySq = _psIFGbRt.trim();
                      if (_eeFwsySq) {
                          _qIDuAMRq.add(_eeFwsySq);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_UNGfWfpn}:`, err);
              })
      );
      await Promise.all(_HzxulXZa);
      return _eIAngMNs({ _fPcQkudH: Array.from(_qIDuAMRq) });
  } catch (_HiEJfbha) {
      return _eIAngMNs({ error: `Failed to process URLs: ${_HiEJfbha._rFvcSSUG}` }, 500);
  }
}

async function _zkTsSGdk(_tLOGPavH, _rVPBZubY) {
    const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
    if (!_QCBbPTKS.api._jkoNSIvl) {
        return new Response(_QCBbPTKS.api._rFvcSSUG || 'API is disabled.', { status: 503 });
    }
    try {
        const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_hsaniIWp);
        const { _TyrgygfU: dbResults } = await _aUKSVfSl.all();
        const _kkjAPcuU = dbResults._JddHRFkb > 0 ? dbResults[0]._jnrUVtWz : null;
        const _JDGIYQSl = _kkjAPcuU ? JSON.parse(_kkjAPcuU) : null;
        if (!_JDGIYQSl || !_JDGIYQSl._TyrgygfU || _JDGIYQSl._TyrgygfU._JddHRFkb === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' },
            });
        }
        const _fPcQkudH = _JDGIYQSl._TyrgygfU.map(r => r._ropwOTIW);
        return new Response(_fPcQkudH.join('\n'), {
            _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' },
        });
    } catch (_HiEJfbha) {
        console.error("API /_ropwOTIW 处理错误:", _HiEJfbha);
        return new Response(`API处理时出错: ${_HiEJfbha._rFvcSSUG}`, { status: 500 });
    }
}

function _uXcSTmLu(_YyMUdMVg, _JHshsHnZ, _QCBbPTKS, _MFRLvNVP) {
    const { itemLink } = _QCBbPTKS;
    if (!itemLink || !itemLink._jkoNSIvl) return null;
    const { template, _tUzgyUfT, selectionMode, _LVJabMdA } = itemLink;
    if (!_tUzgyUfT || _tUzgyUfT._JddHRFkb === 0) return null;

    let _zxIFEgym;
    if (selectionMode === 'random') {
        _zxIFEgym = _tUzgyUfT[_JHshsHnZ % _tUzgyUfT._JddHRFkb];
    } else if (selectionMode === 'first') {
        _zxIFEgym = _tUzgyUfT[0];
    } else {
        _zxIFEgym = _tUzgyUfT.find(s => s._IUiWmmmU === selectionMode) || _tUzgyUfT[0];
    }
    if (!_zxIFEgym) return null;

    let _NstJOAdt = template;
    const _grOpVPex = _YyMUdMVg._lKplLykm || 443;
    const _NXELuNUY = _nXScAjwm.isIPv6(_YyMUdMVg._ropwOTIW) ? `[${_YyMUdMVg._ropwOTIW}]` : _YyMUdMVg._ropwOTIW;
    let _IUiWmmmU = `${_JHshsHnZ + 1} 、 ${_YyMUdMVg._IGcMXPZi || '未知'}`;
    if (!_YyMUdMVg._QAFYBAqM || !_YyMUdMVg._QAFYBAqM.toLowerCase().includes('cloudflare')) {
        _IUiWmmmU += '(反代)';
    }
    let _Zjfvsumn = _zxIFEgym._Zjfvsumn || _MFRLvNVP;

    _NstJOAdt = _NstJOAdt.replace(/{_ropwOTIW}/g, _NXELuNUY)
               .replace(/{_lKplLykm}/g, _grOpVPex)
               .replace(/{_IUiWmmmU}/g, encodeURIComponent(_IUiWmmmU))
               .replace(/{rank}/g, _JHshsHnZ + 1)
               .replace(/{_IGcMXPZi}/g, encodeURIComponent(_YyMUdMVg._IGcMXPZi || '未知'))
               .replace(/{_QAFYBAqM}/g, encodeURIComponent(_YyMUdMVg._QAFYBAqM || '未知'))
               .replace(/{_Zjfvsumn}/g, encodeURIComponent(_Zjfvsumn))
               .replace(/{_MtZNSJzW}/g, encodeURIComponent(_zxIFEgym['_MtZNSJzW'] || ''))
               .replace(/{_AugvRFpu}/g, encodeURIComponent(encodeURIComponent(_zxIFEgym._AugvRFpu || '')));

    if (_LVJabMdA) {
        _LVJabMdA.forEach(field => {
            const _HzrsqNuM = new RegExp('{' + field._IUiWmmmU + '}', 'g');
            _NstJOAdt = _NstJOAdt.replace(_HzrsqNuM, encodeURIComponent(field._jnrUVtWz));
        });
    }
    return _NstJOAdt;
}

async function _lVRsgTFP(_tLOGPavH, _rVPBZubY) {
    const _QCBbPTKS = await _fXwqgGZX(_rVPBZubY);
    if (!_QCBbPTKS.itemLink._jkoNSIvl) {
        return new Response("Item _NstJOAdt feature is disabled.", { status: 503, _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' } });
    }

    try {
        const _aUKSVfSl = _rVPBZubY.DB.prepare("SELECT _jnrUVtWz FROM kv_data WHERE _HCrAOecu = ?").bind(_hsaniIWp);
        const { _TyrgygfU: dbResults } = await _aUKSVfSl.all();
        const _kkjAPcuU = dbResults._JddHRFkb > 0 ? dbResults[0]._jnrUVtWz : null;
        const _JDGIYQSl = _kkjAPcuU ? JSON.parse(_kkjAPcuU) : null;
        
        if (!_JDGIYQSl || !_JDGIYQSl._TyrgygfU || _JDGIYQSl._TyrgygfU._JddHRFkb === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' },
            });
        }
        
        const _MFRLvNVP = new URL(_tLOGPavH._UNGfWfpn)._sEzdfqGt;

        const _ghJDkxbC = _JDGIYQSl._TyrgygfU.map((_YyMUdMVg, _JHshsHnZ) => {
            return _uXcSTmLu(_YyMUdMVg, _JHshsHnZ, _QCBbPTKS, _MFRLvNVP);
        }).filter(Boolean);

        if (_ghJDkxbC._JddHRFkb === 0) {
            return new Response("Could not generate any _GBEoFnDx links from the available IPs.", {
                status: 500,
                _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' },
            });
        }

        return new Response(_ghJDkxbC.join('\n'), {
            _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/plain; _LhAztbqy=utf-8' },
        });

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

async function _NOvbxGjW(_tLOGPavH, _rVPBZubY, _FZZfXetd) {
    const _BPsraGDZ = _tLOGPavH._qbpjcIjc.get('CF-Connecting-IP') || "未知IP";
    const [
        _RjuCirzs,
        _lMDPQYHW,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _BNaVoekK(_XseloBEG, _qgTguwZY, []),
        _BNaVoekK(_MPZknCNB, _qgTguwZY, []),
        _BNaVoekK(_fQxZIhkI, _gHJCODaz, []),
        _BNaVoekK(_HwNBkUTg, _bvSXKmKa, { "N/A": "未知" })
    ]);
    _moylkUFq = fetchedCountryMap;
    let _fDWfKiBT = false;
    let _ByPxqiGB;
    try {
        const _eCcmnilz = await _NiwNaKnS(_rVPBZubY);
        _fDWfKiBT = !!_eCcmnilz;
        _ByPxqiGB = await _fXwqgGZX(_rVPBZubY);
    } catch (_HiEJfbha) {
        if (_HiEJfbha._rFvcSSUG && _HiEJfbha._rFvcSSUG.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _XTAjvCTz = "CREATE TABLE IF NOT EXISTS kv_data (_HCrAOecu TEXT PRIMARY KEY, _jnrUVtWz TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_TTtmLTmr TEXT PRIMARY KEY, _ApMdqruF TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _rVPBZubY.DB.exec(_XTAjvCTz);
                console.log("数据表创建成功。");
                _fDWfKiBT = false;
                _ByPxqiGB = _AQSoMTrk();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._rFvcSSUG}`, {
                    status: 500,
                    _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/html;_LhAztbqy=UTF-8' }
                });
            }
        } else {
             let _ongRfmae = _VCgvLcUo(_HiEJfbha._rFvcSSUG);
             return new Response(_ongRfmae, { _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/html;_LhAztbqy=UTF-8' } });
        }
    }
    if (_ByPxqiGB.telegram.bot_token && _ByPxqiGB.telegram.chat_id) {
        const _tgsGpbBk = _tLOGPavH.cf?._tgsGpbBk || "未知";
        const _Iqbpujul = _tLOGPavH.cf?._Iqbpujul || "";
        let _SZawXYXw = _moylkUFq[_tgsGpbBk] || _tgsGpbBk;
        if (_Iqbpujul && _Iqbpujul !== "未知城市" && _Iqbpujul !== _tgsGpbBk) _SZawXYXw = `${_SZawXYXw} ${_moylkUFq[_Iqbpujul] || _Iqbpujul}`;
        const _hDtiqWoU = _wIGFshcJ();
        const _HRMaUGns = _tLOGPavH._UNGfWfpn;
        const _RfLHmOea = `访客: ${_BPsraGDZ}\n位置: ${_SZawXYXw.trim()}\n时间: ${_hDtiqWoU}\n来自:${_HRMaUGns}`;
        const _BGAUvbns = `https://api.telegram.org/bot${_ByPxqiGB.telegram.bot_token}/sendMessage?chat_id=${_ByPxqiGB.telegram.chat_id}&_jcPqEnIk=${encodeURIComponent(_RfLHmOea)}`;
        _FZZfXetd.waitUntil(fetch(_BGAUvbns).catch(_HiEJfbha => console.error("Telegram通知失败:", _HiEJfbha)));
    }
    let _xXLJucLV = _ONqOzFLq();
    const _djZLDeRj = {
        _QCBbPTKS: _ByPxqiGB,
        status: {
            _fDWfKiBT: _fDWfKiBT,
        }
    };
    _xXLJucLV = _xXLJucLV.replace('__PAGE_DATA_JSON__', JSON.stringify(_djZLDeRj));
    _xXLJucLV = _xXLJucLV.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_RjuCirzs));
    _xXLJucLV = _xXLJucLV.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_lMDPQYHW));
    _xXLJucLV = _xXLJucLV.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _xXLJucLV = _xXLJucLV.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_moylkUFq));
    return new Response(_xXLJucLV, {
        _qbpjcIjc: { 'Content-Type': '_jcPqEnIk/html;_LhAztbqy=UTF-8' },
    });
}

function _eIAngMNs(_ABoGvlkq, status = 200, _qbpjcIjc = {}) {
    return new Response(JSON.stringify(_ABoGvlkq), {
        status,
        _qbpjcIjc: { 'Content-Type': 'application/json;_LhAztbqy=UTF-8', ..._qbpjcIjc }
    });
}

function _wIGFshcJ(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 _IJyhXLSY(_ropwOTIW) {
    if (!_ropwOTIW || typeof _ropwOTIW !== 'string') return "无效IP";
    if(_nXScAjwm.isIPv4(_ropwOTIW)){
        const _YRAcZaxw = _ropwOTIW.split('.');
        if (_YRAcZaxw._JddHRFkb === 4) return `${_YRAcZaxw[0]}.*.*.${_YRAcZaxw[3]}`;
    }
    if(_nXScAjwm.isIPv6(_ropwOTIW)){
        const _YRAcZaxw = _ropwOTIW.split(':');
        if (_YRAcZaxw._JddHRFkb > 2) return `${_YRAcZaxw[0]}:...:${_YRAcZaxw[_YRAcZaxw._JddHRFkb - 1]}`;
    }
    return _ropwOTIW;
}

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

function _ONqOzFLq() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _LhAztbqy="UTF-8"> <meta _IUiWmmmU="viewport" _mwHbituu="_kOgKwkOq=device-_kOgKwkOq, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_NstJOAdt 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>
  <_ceWDkDOB>
  :root { --primary-_tcfAilsG: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_tcfAilsG: #8c939d; --light-bg: #1A1C20; --_mwHbituu-bg: #25282E; --border-_tcfAilsG: #40444C; --_jcPqEnIk-_tcfAilsG: #E0E0E0; --_jcPqEnIk-light: #B0B0B0; --success-_tcfAilsG: #30A46C; --danger-_tcfAilsG: #DA3633; --warning-_tcfAilsG: #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; }
  _ABoGvlkq { font-family: var(--font-family-sans); background-_tcfAilsG: var(--light-bg); _tcfAilsG: var(--_jcPqEnIk-_tcfAilsG); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_tcfAilsG 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_XcEGnJTP { position: fixed; _aLHpyXzM: 0; _pwsnCRRR: 0; _kOgKwkOq: 100%; height: 100%; z-_JHshsHnZ: -1; display: none; }
  ._BGFaCftR-_gZkeklQH { max-_kOgKwkOq: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_JHshsHnZ: 1; }
  #_jVYsuepj { position: fixed; _aLHpyXzM: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_JHshsHnZ: 10; }
  #marquee-_gZkeklQH { overflow: hidden; white-space: nowrap; background-_tcfAilsG: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _tcfAilsG: var(--primary-_tcfAilsG); padding: 0.5rem 0; margin-_aLHpyXzM: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_jcPqEnIk { display: inline-block; padding-_pwsnCRRR: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _LrEbQxBH { _jcPqEnIk-align: center; margin-_aLHpyXzM: 1rem; margin-bottom: 2rem; }
  _LrEbQxBH h1 { white-space: pre-wrap; font-size: 2.25em; _tcfAilsG: var(--primary-_tcfAilsG); font-weight: 700; _jcPqEnIk-shadow: 0 0 10px rgba(var(--primary-_tcfAilsG-rgb), 0.3); }
  .card { background-_tcfAilsG: 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-_tcfAilsG); }
  .progress-section #_yPvKVZqJ { _kOgKwkOq: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_tcfAilsG: var(--border-_tcfAilsG); overflow: hidden; }
  .progress-section #_yPvKVZqJ::-webkit-progress-_jnrUVtWz { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _jcPqEnIk-align: center; margin-_aLHpyXzM: 0.75em; font-size: 0.95em; _tcfAilsG: var(--_jcPqEnIk-light); min-height: 1.5em; }
  .section-_LrEbQxBH { display: flex; flex-wrap: wrap; justify-_mwHbituu: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_tcfAilsG); gap: 1rem; }
  .section-_LrEbQxBH h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _tcfAilsG: var(--secondary-_tcfAilsG); _jcPqEnIk-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _kOgKwkOq: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _kOgKwkOq: 100%; border-collapse: collapse; margin-_aLHpyXzM: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_tcfAilsG); padding: 0.8em; _jcPqEnIk-align: _pwsnCRRR; vertical-align: middle; white-space: nowrap; }
  th { background-_tcfAilsG: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_tcfAilsG: #30333a; }
  td._ropwOTIW-_MsAmNsGB { font-weight: 500; font-family: var(--font-family-mono); _tcfAilsG: var(--primary-_tcfAilsG); }
  td.ping-_jnrUVtWz { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _jcPqEnIk-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_mwHbituu: center; font-weight: 500; _jcPqEnIk-align: center; cursor: pointer; user-_fwZBNgCx: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _tcfAilsG: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_pwsnCRRR: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _tcfAilsG: var(--primary-_tcfAilsG); border: 1px solid var(--primary-_tcfAilsG); }
  .btn-outline:hover { background-_tcfAilsG: var(--primary-_tcfAilsG); _tcfAilsG: var(--_mwHbituu-bg); }
  ._BGFaCftR-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._BGFaCftR-download-buttons .btn { _kOgKwkOq: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _aLHpyXzM: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _tcfAilsG: #fff; font-size: 0.95em; z-_JHshsHnZ: 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); }
  #_rApuwiTH, #_uMCCwbmL, #_LnqDJVLe, #_IwqrkZha, #_QFpHPcPN { display: none; position: fixed; z-_JHshsHnZ: 10000; _pwsnCRRR: 0; _aLHpyXzM: 0; _kOgKwkOq: 100%; height: 100%; background-_tcfAilsG: rgba(0,0,0,0.6); justify-_mwHbituu: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_mwHbituu, ._BGFaCftR-modal-_mwHbituu { background-_tcfAilsG: var(--_mwHbituu-bg); padding: 2rem; border: 1px solid var(--border-_tcfAilsG); border-radius: var(--border-radius-md); _kOgKwkOq: 95%; max-_kOgKwkOq: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_IwqrkZha .modal-_mwHbituu { max-_kOgKwkOq: 500px; }
  .modal-_mwHbituu h3, ._BGFaCftR-modal-_LrEbQxBH h3 { margin-_aLHpyXzM: 0; margin-bottom: 1.5rem; _tcfAilsG: var(--primary-_tcfAilsG); _jcPqEnIk-align: center; }
  .modal-buttons { display: flex; justify-_mwHbituu: flex-end; gap: 1rem; margin-_aLHpyXzM: 2rem; border-_aLHpyXzM: 1px solid var(--border-_tcfAilsG); padding-_aLHpyXzM: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_tcfAilsG), rgba(0,0,0,0)); margin: 2rem 0; }
  ._BGFaCftR-modal-_LrEbQxBH { display: flex; justify-_mwHbituu: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_tcfAilsG); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _tcfAilsG: var(--_jcPqEnIk-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._BGFaCftR-list-_GBEoFnDx { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_tcfAilsG); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._BGFaCftR-_IUiWmmmU { font-size: 1.1em; font-weight: 600; }
  ._BGFaCftR-links a { display: block; _tcfAilsG: var(--primary-_tcfAilsG); _jcPqEnIk-decoration: none; margin-_aLHpyXzM: 0.5rem; word-break: break-all; }
  ._BGFaCftR-links a:hover { _jcPqEnIk-decoration: underline; }
  ._BGFaCftR-links span { _tcfAilsG: var(--_jcPqEnIk-light); }
  #visitorPasswordPrompt { _jcPqEnIk-align: center; }
  #visitorPasswordPrompt h3 { _tcfAilsG: var(--primary-_tcfAilsG); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _tcfAilsG: var(--_jcPqEnIk-light); margin-bottom: 1.5rem; }
  ._eCcmnilz-input-group { display: flex; gap: 10px; max-_kOgKwkOq: 400px; margin: 0 auto; }
  ._eCcmnilz-input-group input { flex-grow: 1; _jcPqEnIk-align: center; }
  ._eCcmnilz-input-group .btn { margin-_pwsnCRRR: 0; }
  ._TyrgygfU-actions-_gZkeklQH { _jcPqEnIk-align: center; margin-bottom: 1.5rem; }
  ._TyrgygfU-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._TyrgygfU-api-buttons .btn { margin: 0; _kOgKwkOq: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_mwHbituu 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 _fwZBNgCx, .form-grid-control textarea { _kOgKwkOq: 100%; background-_tcfAilsG: var(--light-bg); border: 1px solid var(--border-_tcfAilsG); border-radius: var(--border-radius-sm); _tcfAilsG: var(--_jcPqEnIk-_tcfAilsG); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_tcfAilsG 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _fwZBNgCx:focus, .form-grid-control textarea:focus { border-_tcfAilsG: var(--primary-_tcfAilsG); box-shadow: 0 0 0 2px rgba(var(--primary-_tcfAilsG-rgb), 0.2); outline: none; }
  .form-grid-control input[_BFbzJcsO="_tcfAilsG"] { min-_kOgKwkOq: auto; padding: 2px; _kOgKwkOq: 2.5em; height: 2.5em; }
  .form-grid-control input[_BFbzJcsO="checkbox"] { _kOgKwkOq: auto; flex-shrink: 0; height: 1.2em; _kOgKwkOq: 1.2em; }
  .form-grid-control ._pWQRXuPF-input { _kOgKwkOq: 80px; _jcPqEnIk-align: right; }
  .tooltip-_mmUhPlfW { display: inline-flex; _kOgKwkOq: 16px; height: 16px; align-items: center; justify-_mwHbituu: center; background-_tcfAilsG: var(--secondary-_tcfAilsG); _tcfAilsG: var(--_mwHbituu-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_fwZBNgCx: none; }
  #tooltip-popup { position: fixed; background-_tcfAilsG: #383c4a; _tcfAilsG: #fff; padding: 10px 15px; border-radius: 6px; z-_JHshsHnZ: 10001; font-size: 0.85em; max-_kOgKwkOq: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_tcfAilsG); pointer-events: none; }
  #custom-fields-_gZkeklQH .form-grid-control { gap: 5px; } #custom-fields-_gZkeklQH .form-grid-control input { flex: 1; }
  .parameter-_wjpIBrxv-_DGstvWLj { border: 1px solid var(--border-_tcfAilsG); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_wjpIBrxv-_LrEbQxBH { display: flex; justify-_mwHbituu: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_wjpIBrxv-_LrEbQxBH input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_aLHpyXzM: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._jcPqEnIk-_tcfAilsG-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _kOgKwkOq: 100%; }
  ._jcPqEnIk-_tcfAilsG-grid input[_BFbzJcsO="_tcfAilsG"] { grid-column: 1 / 2; }
  ._jcPqEnIk-_tcfAilsG-grid input[_BFbzJcsO="_jcPqEnIk"], ._jcPqEnIk-_tcfAilsG-grid textarea { grid-column: 2 / 3; }
  #_IwqrkZha .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_IwqrkZha .btn-group { display: flex; }
  #_IwqrkZha .sub-btn { flex-grow: 1; margin: 0; }
  #_IwqrkZha ._ThwqdAqi-btn { flex-shrink: 0; margin-_pwsnCRRR: -1px; border-_aLHpyXzM-_pwsnCRRR-radius: 0; border-bottom-_pwsnCRRR-radius: 0; }
  #_QFpHPcPN .modal-_mwHbituu { max-_kOgKwkOq: 300px; background: white; padding: 1rem; _jcPqEnIk-align: center; }
  #qrCodeImg { max-_kOgKwkOq: 100%; }
  @media (max-_kOgKwkOq: 768px) {
    html { font-size: 15px; } ._BGFaCftR-_gZkeklQH { padding: 0 0.8rem; } _LrEbQxBH { margin-_aLHpyXzM: 2.5rem; margin-bottom: 1.5rem; } #_jVYsuepj { _aLHpyXzM: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_ceWDkDOB>
  <_ceWDkDOB _TTtmLTmr="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_mwHbituu-bg: #FFFFFF; --border-_tcfAilsG: #DCDFE6; --_jcPqEnIk-_tcfAilsG: #303133; --_jcPqEnIk-light: #606266; }
  .theme-light .card { background-_tcfAilsG: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_tcfAilsG: #F5F7FA; }
  .theme-light tbody tr:hover { background-_tcfAilsG: #ECF5FF; }
  .theme-matrix { --primary-_tcfAilsG: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_mwHbituu-bg: #0D0208; --border-_tcfAilsG: #00FF41; --_jcPqEnIk-_tcfAilsG: #00FF41; --_jcPqEnIk-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_tcfAilsG: rgba(0, 20, 0, 0.7); _jcPqEnIk-shadow: 0 0 5px var(--primary-_tcfAilsG); backdrop-filter: none; }
  .theme-matrix th { background-_tcfAilsG: #000; }
  .theme-matrix tbody tr:hover { background-_tcfAilsG: #010; }
  .theme-matrix .btn { _jcPqEnIk-shadow: none; _tcfAilsG: #000; }
  .theme-matrix .btn-outline { background-_tcfAilsG: transparent; }
  .theme-modern-glass { --primary-_tcfAilsG: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_mwHbituu-bg: rgba(30, 30, 40, 0.6); --border-_tcfAilsG: rgba(255, 255, 255, 0.2); --_jcPqEnIk-_tcfAilsG: #F0F0F0; --_jcPqEnIk-light: #A0A0B0; --border-radius-md: 12px; }
  _ABoGvlkq.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-_tcfAilsG: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_mwHbituu-bg: rgba(30, 30, 40, 0.6); --border-_tcfAilsG: rgba(255, 255, 255, 0.2); --_jcPqEnIk-_tcfAilsG: #F0F0F0; --_jcPqEnIk-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_tcfAilsG: var(--_mwHbituu-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_tcfAilsG); }
  .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-_tcfAilsG: rgba(0,0,0,0.3); border-right-_tcfAilsG: 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); _jcPqEnIk-shadow: 0 1px 2px rgba(0,0,0,0.2); _tcfAilsG: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_tcfAilsG: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _jcPqEnIk-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_tcfAilsG); border-_tcfAilsG: var(--primary-_tcfAilsG); _tcfAilsG: #fff; }
  .glassy-components _LrEbQxBH h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _jcPqEnIk; -webkit-_jcPqEnIk-fill-_tcfAilsG: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _tcfAilsG: transparent; }
  .theme-aurora-glass { --primary-_tcfAilsG: #38bdf8; --light-bg: #0c0a09; --_mwHbituu-bg: rgba(23, 23, 23, 0.5); --border-_tcfAilsG: rgba(255, 255, 255, 0.15); --_jcPqEnIk-_tcfAilsG: #f2f2f2; --_jcPqEnIk-light: #a3a3a3; }
  _ABoGvlkq.theme-aurora-glass::before { _mwHbituu: ''; position: fixed; _aLHpyXzM: 0; _pwsnCRRR: 0; _kOgKwkOq: 100%; height: 100%; z-_JHshsHnZ: -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-_tcfAilsG: #08fdd8; --light-bg: #010409; --_mwHbituu-bg: rgba(22, 27, 34, 0.6); --border-_tcfAilsG: rgba(139, 148, 158, 0.3); --_jcPqEnIk-_tcfAilsG: #e6edf3; --_jcPqEnIk-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_tcfAilsG), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_tcfAilsG-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_tcfAilsG-rgb), 0.5); }
  .theme-marble-light { --primary-_tcfAilsG: #bfa37c; --light-bg: #f7f5f2; --_mwHbituu-bg: #ffffff; --border-_tcfAilsG: #e0dcd5; --_jcPqEnIk-_tcfAilsG: #3d3a36; --_jcPqEnIk-light: #6b6661; }
  _ABoGvlkq.theme-marble-light { background-image: _UNGfWfpn('_ApMdqruF:image/svg+xml,%3Csvg _kOgKwkOq="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-_tcfAilsG: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_ceWDkDOB>
  </head><_ABoGvlkq _TTtmLTmr="pageBody">
  <_XcEGnJTP _TTtmLTmr="background-_XcEGnJTP"></_XcEGnJTP>
  <div _TTtmLTmr="_rApuwiTH">
      <div class="modal-_mwHbituu">
          <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 _BFbzJcsO="_eCcmnilz" _TTtmLTmr="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _BFbzJcsO="_eCcmnilz" _TTtmLTmr="confirmPassword"></div></div>
          <div class="modal-buttons"><button _TTtmLTmr="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_BGFaCftR-_gZkeklQH">
    <button _TTtmLTmr="_jVYsuepj" class="btn btn-outline"></button>
    <div _TTtmLTmr="marquee-_gZkeklQH"><div _TTtmLTmr="marquee-_jcPqEnIk"></div></div>
    <_LrEbQxBH><h1 _TTtmLTmr="pageTitle"></h1></_LrEbQxBH>
    <div class="card" _TTtmLTmr="visitorPasswordPrompt" _ceWDkDOB="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_eCcmnilz-input-group">
            <input _BFbzJcsO="_eCcmnilz" _TTtmLTmr="visitorPasswordEntry" _HzrsqNuM="访客密码">
            <button _TTtmLTmr="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _TTtmLTmr="_tntCnBxT" _ceWDkDOB="display: block;">
        <div class="card progress-section">
            <div _TTtmLTmr="progressDisplay">
                <progress _TTtmLTmr="_yPvKVZqJ" _jnrUVtWz="0" max="100"></progress>
                <div _TTtmLTmr="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _BGFaCftR-download-section">
          <div class="section-_LrEbQxBH"><h2 _TTtmLTmr="appDownloadTitleEl"></h2></div>
          <div class="_BGFaCftR-download-buttons">
            <button class="btn" _ApMdqruF-_NmOrlwxP="android">安卓客户端</button>
            <button class="btn" _ApMdqruF-_NmOrlwxP="ios">苹果客户端</button>
            <button class="btn" _ApMdqruF-_NmOrlwxP="windows">Windows客户端</button>
            <button class="btn" _ApMdqruF-_NmOrlwxP="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _TyrgygfU-section" _TTtmLTmr="_RFlAYDCl" _ceWDkDOB="display:none;">
          <div class="section-_LrEbQxBH">
            <h2 _TTtmLTmr="liveTitleEl"></h2>
            <div class="generator-info" _TTtmLTmr="liveGeneratorInfo"></div>
          </div>
          <div _TTtmLTmr="_oCDUkxQP" class="_TyrgygfU-actions-_gZkeklQH" _ceWDkDOB="display: none;">
             <div class="_TyrgygfU-api-buttons">
                <button _TTtmLTmr="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _TTtmLTmr="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _TTtmLTmr="resultsTable">
              <thead><tr><th _TTtmLTmr="tableHeader1El"></th><th _TTtmLTmr="tableHeader2El"></th><th _TTtmLTmr="tableHeader3El"></th><th _TTtmLTmr="tableHeader4El"></th><th _TTtmLTmr="tableHeader5El"></th><th _TTtmLTmr="tableHeader6El"></th><th _TTtmLTmr="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _TTtmLTmr="_myuQNikF" _ceWDkDOB="display:none;">
          <div class="section-_LrEbQxBH"><h2 _TTtmLTmr="cachedTitleEl"></h2><div class="generator-info" _TTtmLTmr="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _TTtmLTmr="cachedResultsTable">
              <thead><tr><th _TTtmLTmr="cachedTableHeader1El"></th><th _TTtmLTmr="cachedTableHeader2El"></th><th _TTtmLTmr="cachedTableHeader3El"></th><th _TTtmLTmr="cachedTableHeader4El"></th><th _TTtmLTmr="cachedTableHeader5El"></th><th _TTtmLTmr="cachedTableHeader6El"></th><th _TTtmLTmr="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _TTtmLTmr="notificationTooltip" class="tooltip-notification"></div>
  <div _TTtmLTmr="_uMCCwbmL">
    <div class="modal-_mwHbituu">
      <h3>修改参数</h3>
      <div _ceWDkDOB="display: flex; border-bottom: 1px solid var(--border-_tcfAilsG); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_KNCRuwFt(event, 'general-_SvJnpAuc')">通用设置</button>
          <button class="tab-button" onclick="_KNCRuwFt(event, '_NstJOAdt-_SvJnpAuc')">链接设置</button>
          <button class="tab-button" onclick="_KNCRuwFt(event, 'fine-grained-_SvJnpAuc')">IP源设置</button>
          <button class="tab-button" onclick="_KNCRuwFt(event, 'advanced-_SvJnpAuc')">高级设置</button>
      </div>
      <div _TTtmLTmr="general-_SvJnpAuc" class="tab-_mwHbituu" _ceWDkDOB="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_fwZBNgCx _TTtmLTmr="themeSelect">
                    <_aCOydDdw _jnrUVtWz="theme-aurora-glass">极光-玻璃质感</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-particles-glass">粒子-玻璃质感</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-modern-glass">现代-玻璃质感</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-cyberpunk-glass">赛博朋克-玻璃质感</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-dark-particles">暗色-粒子背景</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-dark-bing">暗色-必应壁纸</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-light">亮色-简约</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-light-bing">亮色-必应壁纸</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-marble-light">简约大理石-亮色</_aCOydDdw>
                    <_aCOydDdw _jnrUVtWz="theme-matrix">矩阵-代码雨</_aCOydDdw>
                </_fwZBNgCx>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="primaryColorInput">
                <span _ceWDkDOB="_kOgKwkOq: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_title"><textarea _TTtmLTmr="textInput_title" _eQwWuJBF="1" _HzrsqNuM="页面主标题"></textarea></div>
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_loginButton"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="textInput_loginButton" _HzrsqNuM="登录按钮文本"></div>
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_appDownloadTitle"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="textInput_appDownloadTitle" _HzrsqNuM="APP下载标题"></div>
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_liveTitle"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="textInput_liveTitle" _HzrsqNuM="本次结果标题"></div>
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_cachedTitle"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="textInput_cachedTitle" _HzrsqNuM="上次结果标题"></div>
                <div class="_jcPqEnIk-_tcfAilsG-grid"><input _BFbzJcsO="_tcfAilsG" _TTtmLTmr="colorInput_tableHeader"><input _BFbzJcsO="_jcPqEnIk" _jnrUVtWz="表格头部文本颜色" readonly _ceWDkDOB="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label>公告栏设置</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _TTtmLTmr="announcementText" _HzrsqNuM="在此输入公告内容" _eQwWuJBF="3"></textarea>
                 <div _ceWDkDOB="display: flex; justify-_mwHbituu: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _ceWDkDOB="display: flex; align-items: center; gap: 5px;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableMarquee"> 顶部走马灯</label>
                    <label _ceWDkDOB="display: flex; align-items: center; gap: 5px;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enablePopup"> 右上角弹窗</label>
                    <div _TTtmLTmr="popupDurationContainer" _ceWDkDOB="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _BFbzJcsO="number" _TTtmLTmr="popupDuration" _ceWDkDOB="_kOgKwkOq: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _TTtmLTmr="_NstJOAdt-_SvJnpAuc" class="tab-_mwHbituu">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="converterServiceUrlInput" _HzrsqNuM="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _BFbzJcsO="number" _TTtmLTmr="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _TTtmLTmr="subscriptionIdCharset" _eQwWuJBF="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-_mmUhPlfW" _ApMdqruF-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableItemLinkCheckbox"></div>
        </div>
        <div _TTtmLTmr="itemLinkConfigGroup" _ceWDkDOB="display:none; margin-_aLHpyXzM: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="定义分享链接格式。可用占位符: {_ropwOTIW}, {_lKplLykm}, {_IUiWmmmU}, {rank}, {_IGcMXPZi}, {_QAFYBAqM}, {_Zjfvsumn}, {_MtZNSJzW}, {_AugvRFpu}。">?</span></div>
              <div class="form-grid-control"><textarea _TTtmLTmr="itemLinkTemplateInput" _eQwWuJBF="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_fwZBNgCx _TTtmLTmr="parameterSelectionMode"></_fwZBNgCx></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _TTtmLTmr="parameter-sets-_gZkeklQH"></div><button _BFbzJcsO="button" _TTtmLTmr="add-parameter-_wjpIBrxv-btn" class="btn btn-outline" _ceWDkDOB="margin-_aLHpyXzM: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _TTtmLTmr="custom-fields-_gZkeklQH" _ceWDkDOB="_kOgKwkOq: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><button _BFbzJcsO="button" _TTtmLTmr="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _TTtmLTmr="fine-grained-_SvJnpAuc" class="tab-_mwHbituu">
          <div class="form-grid-label" _ceWDkDOB="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _ceWDkDOB="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_mwHbituu: flex-start;">
              <label><input _BFbzJcsO="checkbox" _TTtmLTmr="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _BFbzJcsO="checkbox" _TTtmLTmr="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _TTtmLTmr="fine-grained-sources-_gZkeklQH"></div><button _BFbzJcsO="button" _TTtmLTmr="add-fine-grained-_Zegdjflh-btn" class="btn btn-outline" _ceWDkDOB="margin-_aLHpyXzM: 10px;">添加地区</button></div>
      </div>
      <div _TTtmLTmr="advanced-_SvJnpAuc" class="tab-_mwHbituu">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _BFbzJcsO="checkbox" _TTtmLTmr="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="resolvedDomainsGroup" _ceWDkDOB="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _TTtmLTmr="resolvedDomainsInput" _HzrsqNuM="留空则使用内置默认域名" _eQwWuJBF="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-_mmUhPlfW" _ApMdqruF-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="customNodesGroup" _ceWDkDOB="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _TTtmLTmr="customNodesInput" _HzrsqNuM="一行一个地址,支持域名、IPv4、IPv6。" _eQwWuJBF="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-_mmUhPlfW" _ApMdqruF-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _BFbzJcsO="number" _TTtmLTmr="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _BFbzJcsO="number" _TTtmLTmr="topNInput"></div>
            <div class="form-grid-label" _ceWDkDOB="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="display: none;"><input _BFbzJcsO="number" _TTtmLTmr="latencyRangeMinInput" _HzrsqNuM="最小"><span>-</span><input _BFbzJcsO="number" _TTtmLTmr="latencyRangeMaxInput" _HzrsqNuM="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="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-_mmUhPlfW" _ApMdqruF-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _BFbzJcsO="number" _TTtmLTmr="geoLocationRetriesInput" _ceWDkDOB="_kOgKwkOq: 80px;"> <span>次</span>
                <div _ceWDkDOB="display: flex; align-items: center; gap: 5px; margin-_pwsnCRRR: 20px;">
                    <input _BFbzJcsO="checkbox" _TTtmLTmr="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-_mmUhPlfW" _ApMdqruF-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_Zjfvsumn:_lKplLykm' 或 '_Zjfvsumn'。">?</span></div>
            <div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="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-_mmUhPlfW" _ApMdqruF-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="websocketStreamerGroup" _ceWDkDOB="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="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-_mmUhPlfW" _ApMdqruF-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="启用 /_ropwOTIW 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="apiConfigGroup" _ceWDkDOB="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="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-_mmUhPlfW" _ApMdqruF-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="customSubPathGroup" _ceWDkDOB="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="customSubPathInput" _HzrsqNuM="例如: 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-_mmUhPlfW" _ApMdqruF-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="justify-_mwHbituu: flex-start;"><input _BFbzJcsO="checkbox" _TTtmLTmr="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _TTtmLTmr="visitorPasswordGroup" _ceWDkDOB="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_mmUhPlfW" _ApMdqruF-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _ceWDkDOB="flex-direction: column; align-items: stretch; gap: 8px;"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="botTokenInput" _HzrsqNuM="Telegram Bot Token"><input _BFbzJcsO="_jcPqEnIk" _TTtmLTmr="chatIdInput" _HzrsqNuM="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _ceWDkDOB="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _ceWDkDOB="flex-direction: column; align-items: stretch; gap: 8px;"><input _BFbzJcsO="_eCcmnilz" _TTtmLTmr="oldPasswordInput" _HzrsqNuM="旧密码"><input _BFbzJcsO="_eCcmnilz" _TTtmLTmr="newPasswordInput" _HzrsqNuM="新密码 (至少6位)"><button _TTtmLTmr="changePasswordBtn" class="btn" _ceWDkDOB="align-self: flex-start; margin-_pwsnCRRR: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _TTtmLTmr="closeModalBtn" class="btn btn-outline">关闭</button><button _TTtmLTmr="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _TTtmLTmr="_LnqDJVLe">
      <div class="_BGFaCftR-modal-_mwHbituu">
          <div class="_BGFaCftR-modal-_LrEbQxBH"><h3 _TTtmLTmr="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_BGFaCftR-modal-_ABoGvlkq" _TTtmLTmr="appModalBody"></div>
      </div>
  </div>
  <div _TTtmLTmr="_IwqrkZha">
      <div class="modal-_mwHbituu">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _ApMdqruF-sub-_BFbzJcsO="coreEngine">Xray</button><button class="btn _ThwqdAqi-btn" _ApMdqruF-sub-_BFbzJcsO="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _ApMdqruF-sub-_BFbzJcsO="coreProfile">Sing-Box</button><button class="btn _ThwqdAqi-btn" _ApMdqruF-sub-_BFbzJcsO="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _ApMdqruF-sub-_BFbzJcsO="configProfile">Clash</button><button class="btn _ThwqdAqi-btn" _ApMdqruF-sub-_BFbzJcsO="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _ApMdqruF-sub-_BFbzJcsO="policyProfile">Surge</button><button class="btn _ThwqdAqi-btn" _ApMdqruF-sub-_BFbzJcsO="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _ceWDkDOB="justify-_mwHbituu: center;"><button class="btn btn-outline" _TTtmLTmr="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _TTtmLTmr="_QFpHPcPN">
      <div class="modal-_mwHbituu">
          <img _TTtmLTmr="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _nXScAjwm = {
        isValid: (_ropwOTIW) => _nXScAjwm.isIPv4(_ropwOTIW) || _nXScAjwm.isIPv6(_ropwOTIW),
        isIPv4: (_ropwOTIW) => {
            if (typeof _ropwOTIW !== 'string') return false;
            const _YRAcZaxw = _ropwOTIW.split('.');
            if (_YRAcZaxw._JddHRFkb !== 4) return false;
            return _YRAcZaxw.every(_DtiwxJfm => {
                const _wWqlperN = parseInt(_DtiwxJfm, 10);
                return !isNaN(_wWqlperN) && _wWqlperN >= 0 && _wWqlperN <= 255 && String(_wWqlperN) === _DtiwxJfm;
            });
        },
        isIPv6: (_ropwOTIW) => {
            if (typeof _ropwOTIW !== '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]))$/_RtvzwKWo.test(_ropwOTIW);
        },
        toLong4: (_ropwOTIW) => _ropwOTIW.split('.').reduce((acc, octet, _RtvzwKWo) => acc + (parseInt(octet) << (8*(3-_RtvzwKWo))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_ropwOTIW) => {
            try {
                const _QIlaKYhd = _ropwOTIW.split('/')[0];
                const _YRAcZaxw = _QIlaKYhd.split('::');
                if (_YRAcZaxw._JddHRFkb > 2) return 0n;
                let _MjohQFAo = [];
                if (_YRAcZaxw[0]) {
                    _MjohQFAo = _YRAcZaxw[0].split(':');
                }
                let _pMLoVrHk = [];
                if (_YRAcZaxw._JddHRFkb > 1 && _YRAcZaxw[1]) {
                    _pMLoVrHk = _YRAcZaxw[1].split(':');
                }
                if (_MjohQFAo._JddHRFkb + _pMLoVrHk._JddHRFkb > 8) return 0n;
                const _oRMvuVjj = 8 - (_MjohQFAo._JddHRFkb + _pMLoVrHk._JddHRFkb);
                const _TjSnuLlF = [
                    ..._MjohQFAo,
                    ...Array(_oRMvuVjj).fill('0'),
                    ..._pMLoVrHk
                ].map(_DtiwxJfm => _DtiwxJfm || '0');
                while(_TjSnuLlF._JddHRFkb < 8) {
                    _TjSnuLlF.push('0');
                }
                let _MGDgJyeh = 0n;
                for (const _DtiwxJfm of _TjSnuLlF) {
                    if (_DtiwxJfm._JddHRFkb > 4) return 0n;
                    const _jnrUVtWz = BigInt('0x' + _DtiwxJfm);
                    _MGDgJyeh = (_MGDgJyeh << 16n) | _jnrUVtWz;
                }
                return _MGDgJyeh;
            } catch(_HiEJfbha) {
                return 0n;
            }
        },
        fromBigInt6: (_MGDgJyeh) => {
            if (typeof _MGDgJyeh !== '_MGDgJyeh' || _MGDgJyeh < 0n) return null;
            const _YRAcZaxw = [];
            for (let _RtvzwKWo = 0; _RtvzwKWo < 8; _RtvzwKWo++) {
                _YRAcZaxw.unshift((_MGDgJyeh & 0xFFFFn).toString(16));
                _MGDgJyeh >>= 16n;
            }
            let _bisZkXrV = { start: -1, _VmFLzuZx: 0 };
            let _uKrFFSPB = { start: -1, _VmFLzuZx: 0 };
            for (let _RtvzwKWo = 0; _RtvzwKWo < 8; _RtvzwKWo++) {
                if (_YRAcZaxw[_RtvzwKWo] === '0') {
                    if (_uKrFFSPB.start === -1) _uKrFFSPB.start = _RtvzwKWo;
                    _uKrFFSPB._VmFLzuZx++;
                } else {
                    if (_uKrFFSPB._VmFLzuZx > _bisZkXrV._VmFLzuZx) _bisZkXrV = { ..._uKrFFSPB };
                    _uKrFFSPB = { start: -1, _VmFLzuZx: 0 };
                }
            }
            if (_uKrFFSPB._VmFLzuZx > _bisZkXrV._VmFLzuZx) _bisZkXrV = { ..._uKrFFSPB };
            if (_bisZkXrV._VmFLzuZx > 1) {
                _YRAcZaxw.splice(_bisZkXrV.start, _bisZkXrV._VmFLzuZx, '');
                if (_bisZkXrV.start === 0) _YRAcZaxw.unshift('');
                if (_bisZkXrV.start + _bisZkXrV._VmFLzuZx === 8) _YRAcZaxw.push('');
            }
            return _YRAcZaxw.join(':');
        },
        cidrToRange: (cidr, _QOeajihy = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _GIeYMDcj = parseInt(bitsStr, 10);
                const _fPcQkudH = new Set();
                if (_nXScAjwm.isIPv4(range)) {
                    if (isNaN(_GIeYMDcj) || _GIeYMDcj < 8 || _GIeYMDcj > 32) return [];
                    if (_GIeYMDcj === 32) return [range];
                    const _lmGAFZXL = _nXScAjwm.toLong4(range);
                    const _hQForZEn = (0xFFFFFFFF << (32 - _GIeYMDcj)) >>> 0;
                    const _HqRNgkeA = _lmGAFZXL & _hQForZEn;
                    const _WqVJMgJc = 1 << (32 - _GIeYMDcj);
                    if (_WqVJMgJc <= 2) return [];
                    const _SMXzYtWK = Math.min(_QOeajihy, _WqVJMgJc - 2);
                    let _wayMwJer = 0;
                    while (_fPcQkudH.size < _SMXzYtWK && _wayMwJer < _SMXzYtWK * 5) {
                        const _VCuiRThi = Math.floor(Math.random() * (_WqVJMgJc - 2)) + 1;
                        _fPcQkudH.add(_nXScAjwm.fromLong4((_HqRNgkeA + _VCuiRThi) >>> 0));
                        _wayMwJer++;
                    }
                    return Array.from(_fPcQkudH);
                } else if (_nXScAjwm.isIPv6(range)) {
                    if (isNaN(_GIeYMDcj) || _GIeYMDcj < 16 || _GIeYMDcj > 128) return [];
                    if (_GIeYMDcj === 128) return [range];
                    const _MbsWMwmA = _nXScAjwm.toBigInt6(range);
                    const _hQForZEn = (2n ** BigInt(128 - _GIeYMDcj) - 1n);
                    const _HqRNgkeA = _MbsWMwmA & ~_hQForZEn;
                    const _PbiaOOxe = 2n ** BigInt(128 - _GIeYMDcj);
                    if (_PbiaOOxe <= 2n) return [];
                    let _wayMwJer = 0;
                    while (_fPcQkudH.size < _QOeajihy && _wayMwJer < _QOeajihy * 5) {
                        const _wpOsdqzO = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_wpOsdqzO);
                        let _EHFfYqtH = 0n;
                        for (const _xgdhUnDt of _wpOsdqzO) {
                            _EHFfYqtH = (_EHFfYqtH << 8n) | BigInt(_xgdhUnDt);
                        }
                        const _VCuiRThi = _EHFfYqtH % (_PbiaOOxe - 2n) + 1n;
                        _fPcQkudH.add(_nXScAjwm.fromBigInt6(_HqRNgkeA + _VCuiRThi));
                        _wayMwJer++;
                    }
                    return Array.from(_fPcQkudH);
                }
                return [];
            } catch(_HiEJfbha) {
                console.error(`CIDR to range failed for ${cidr}:`, _HiEJfbha);
                return [];
            }
        }
    };
    function _gTHyfsRc(_tDPSvEdD, _LuBPKxiK) {
        const _zihdsBTK = {};
        const _wwgUjQqF = Object._wwgUjQqF(_LuBPKxiK);
        const _YRAcZaxw = _wwgUjQqF.map(_HCrAOecu => {
            const _lRiqrMwL = _tDPSvEdD * (_LuBPKxiK[_HCrAOecu] / 100);
            return { _HCrAOecu, _QOeajihy: Math.floor(_lRiqrMwL), remainder: _lRiqrMwL - Math.floor(_lRiqrMwL) };
        });
        let _kEAfvOWV = _YRAcZaxw.reduce((acc, _DtiwxJfm) => acc + _DtiwxJfm._QOeajihy, 0);
        _YRAcZaxw.sort((a, b) => b.remainder - a.remainder);
        let _RxVwFhvl = _tDPSvEdD - _kEAfvOWV;
        for (let _RtvzwKWo = 0; _RtvzwKWo < _RxVwFhvl; _RtvzwKWo++) {
            _YRAcZaxw[_RtvzwKWo % _YRAcZaxw._JddHRFkb]._QOeajihy++;
        }
        for (const _DtiwxJfm of _YRAcZaxw) {
            _zihdsBTK[_DtiwxJfm._HCrAOecu] = _DtiwxJfm._QOeajihy;
        }
        return _zihdsBTK;
    }
    const _djZLDeRj = __PAGE_DATA_JSON__;
    const _ByPxqiGB = _djZLDeRj._QCBbPTKS;
    const _wPAjzKvj = _djZLDeRj.status;
    const _RjuCirzs = __ALL_CF_CIDR_LIST_JSON__;
    const _lMDPQYHW = __BALANCED_CF_CIDR_LIST_JSON__;
    const _lIsUlTGS = __DEFAULT_DOMAINS_LIST_JSON__;
    const _moylkUFq = __COUNTRY_MAP_JSON__;
    const _SNmmVPFx = _moylkUFq;
    const _SmmmDFUR = 2500;
    const _CAaiSJgP = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _tntCnBxT = document.getElementById('_tntCnBxT');
    const _yPvKVZqJ = document.getElementById('_yPvKVZqJ');
    const _KYyhjJDs = document.getElementById('status');
    const _RFlAYDCl = document.getElementById('_RFlAYDCl');
    const _gGLueXll = document.getElementById('resultsTable').querySelector('tbody');
    const _myuQNikF = document.getElementById('_myuQNikF');
    const _AZKmYgyY = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _ICprlNdV = document.getElementById('notificationTooltip');
    const _jVYsuepj = document.getElementById('_jVYsuepj');
    const _uMCCwbmL = document.getElementById('_uMCCwbmL');
    const _LnqDJVLe = document.getElementById('_LnqDJVLe');
    const _IwqrkZha = document.getElementById('_IwqrkZha');
    const _QFpHPcPN = document.getElementById('_QFpHPcPN');
    const _rApuwiTH = document.getElementById('_rApuwiTH');
    const _oCDUkxQP = document.getElementById('_oCDUkxQP');
    let _VUIMaVor = null;
    let _KjMTndti = null;
    let _SqicLjgK = [];
    let _eDUjmheZ = false;
    let _VztpjqTw = null;
    function _MlFvQTWM(_tSVndqwv, _RLoqENji) {
        const _CWugqcUY=parseInt(_tSVndqwv.slice(1),16),t=_RLoqENji<0?0:255,p=_RLoqENji<0?_RLoqENji*-1:_RLoqENji,R=_CWugqcUY>>16,G=_CWugqcUY>>8&0x00FF,B=_CWugqcUY&0x0000FF;
        const _zDoYibaM = Math.round((t-R)*p)+R;
        const _WAAEyRHB = Math.round((t-G)*p)+G;
        const _vNImPDhR = Math.round((t-B)*p)+B;
        return `rgb(${_zDoYibaM.toString()}, ${_WAAEyRHB.toString()}, ${_vNImPDhR.toString()})`;
    }
    function _UvwMCTAd(_SvJnpAuc) {
        const _ZpJJOWtf = _FNHiBcmO(_SvJnpAuc.primaryColor);
        if(_ZpJJOWtf) {
            document.documentElement._ceWDkDOB.setProperty('--primary-_tcfAilsG-rgb', `${_ZpJJOWtf.r},${_ZpJJOWtf.g},${_ZpJJOWtf.b}`);
        }
        document.documentElement._ceWDkDOB.setProperty('--primary-_tcfAilsG', _SvJnpAuc.primaryColor);
        document.documentElement._ceWDkDOB.setProperty('--primary-hover', _MlFvQTWM(_SvJnpAuc.primaryColor, -0.1));
        document.documentElement._ceWDkDOB.setProperty('--primary-gradient-start', _MlFvQTWM(_SvJnpAuc.primaryColor, 0.1));
        document.documentElement._ceWDkDOB.setProperty('--primary-gradient-end', _MlFvQTWM(_SvJnpAuc.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _SvJnpAuc.texts.title;
        document.title = _SvJnpAuc.texts.title;
        _jVYsuepj.innerText = _VUIMaVor ? _SvJnpAuc.texts.loginButtonSuccess : _SvJnpAuc.texts.loginButton;
        _jVYsuepj._ceWDkDOB._tcfAilsG = _SvJnpAuc.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _SvJnpAuc.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _SvJnpAuc.texts.liveTitle;
        document.getElementById('liveTitleEl')._ceWDkDOB._tcfAilsG = _SvJnpAuc.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _SvJnpAuc.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._ceWDkDOB._tcfAilsG = _SvJnpAuc.colors.cachedTitle;
        const _qbpjcIjc = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _qbpjcIjc.forEach((_TTtmLTmr, _JHshsHnZ) => {
            const _ioBpnuJS = document.getElementById(_TTtmLTmr);
            if (_ioBpnuJS) _ioBpnuJS.innerText = _SvJnpAuc.texts[`tableHeader${_JHshsHnZ + 1}`] || '';
        });
        const _IWuaNUqz = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _IWuaNUqz.forEach((_TTtmLTmr, _JHshsHnZ) => {
             const _ioBpnuJS = document.getElementById(_TTtmLTmr);
             if (_ioBpnuJS) _ioBpnuJS.innerText = _ByPxqiGB.texts[`tableHeader${_JHshsHnZ + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._ceWDkDOB._tcfAilsG = _SvJnpAuc.colors.tableHeader);
        document._ABoGvlkq.className = '';
        document._ABoGvlkq.classList.add(_SvJnpAuc.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_SvJnpAuc.theme)) {
            document._ABoGvlkq.classList.add('glassy-components');
        }
        document._ABoGvlkq._ceWDkDOB.backgroundImage = '';
        _kDGPdPEn();
        if (_SvJnpAuc.theme.includes('particles') || _SvJnpAuc.theme.includes('glass')) {
            _fFuAubjW(_SvJnpAuc.particleColor);
        } else if (_SvJnpAuc.theme.includes('bing')) {
            document._ABoGvlkq._ceWDkDOB.backgroundImage = '_UNGfWfpn(/bing-wallpaper)';
        }
    }
    function _UIfJnlhV() {
        _VUIMaVor = null;
        if(_KjMTndti) clearTimeout(_KjMTndti);
        _UvwMCTAd(_ByPxqiGB);
        _npryHyVr("登录已超时,请重新登录。", "warning");
    }
    async function _zwNuWLQp() {
        if (_VUIMaVor) {
            _XVGFZYwE();
            return;
        }
        const _XHmyrwUw = prompt('请输入管理员密码:');
        if (!_XHmyrwUw) return;
        try {
            const _TWYTcqap = await fetch('/api/verify-_eCcmnilz', {
                method: 'POST',
                _qbpjcIjc: { 'Content-Type': 'application/json' },
                _ABoGvlkq: JSON.stringify({ _eCcmnilz: _XHmyrwUw })
            });
            const _YyMUdMVg = await _TWYTcqap.json();
            if (_YyMUdMVg.success) {
                _VUIMaVor = _XHmyrwUw;
                _npryHyVr("登录成功!有效期5分钟。", "success");
                if (_KjMTndti) clearTimeout(_KjMTndti);
                _KjMTndti = setTimeout(_UIfJnlhV, 5 * 60 * 1000);
                _UvwMCTAd(_ByPxqiGB);
                _XVGFZYwE();
            } else {
                throw new Error(_YyMUdMVg._rFvcSSUG || '密码验证失败');
            }
        } catch (_HiEJfbha) {
            _npryHyVr(`登录失败: ${_HiEJfbha._rFvcSSUG}`, "error");
        }
    }
    function _mjxJJRXv() {
        if (!_wPAjzKvj._fDWfKiBT) {
            _rApuwiTH._ceWDkDOB.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _eCcmnilz = document.getElementById('initialPassword')._jnrUVtWz;
                const _XVHhrxfk = document.getElementById('confirmPassword')._jnrUVtWz;
                if (_eCcmnilz !== _XVHhrxfk) {
                    _npryHyVr("两次输入的密码不一致!", "error");
                    return;
                }
                if (_eCcmnilz._JddHRFkb < 6) {
                    _npryHyVr("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _TWYTcqap = await fetch('/api/_wjpIBrxv-_eCcmnilz', {
                        method: 'POST',
                        _qbpjcIjc: { 'Content-Type': 'application/json' },
                        _ABoGvlkq: JSON.stringify({ _eCcmnilz })
                    });
                    const _YyMUdMVg = await _TWYTcqap.json();
                    if (_YyMUdMVg.success) {
                        _npryHyVr(_YyMUdMVg._rFvcSSUG, "success");
                        setTimeout(() => _IGcMXPZi.reload(), 1500);
                    } else {
                        throw new Error(_YyMUdMVg._rFvcSSUG);
                    }
                } catch(_HiEJfbha) {
                    _npryHyVr(`设置密码失败: ${_HiEJfbha._rFvcSSUG}`, "error");
                }
            });
            return;
        }
        _jVYsuepj.addEventListener('click', _zwNuWLQp);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _uMCCwbmL._ceWDkDOB.display = 'none'; });
        _uMCCwbmL.addEventListener('click', (_HiEJfbha) => { if (_HiEJfbha.target === _uMCCwbmL) _uMCCwbmL._ceWDkDOB.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_gZkeklQH .fine-grained-_jkoNSIvl-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-_gZkeklQH .fine-grained-_jkoNSIvl-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_VUIMaVor) {
                _npryHyVr("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _LVJabMdA = [];
            document.querySelectorAll('#custom-fields-_gZkeklQH .custom-field-_DGstvWLj').forEach(_DGstvWLj => {
                const _IUiWmmmU = _DGstvWLj.querySelector('.custom-field-_IUiWmmmU')._jnrUVtWz.trim();
                const _jnrUVtWz = _DGstvWLj.querySelector('.custom-field-_jnrUVtWz')._jnrUVtWz.trim();
                if (_IUiWmmmU) _LVJabMdA.push({ _IUiWmmmU, _jnrUVtWz });
            });
            const _tUzgyUfT = [];
            document.querySelectorAll('#parameter-sets-_gZkeklQH .parameter-_wjpIBrxv-_DGstvWLj').forEach(_DGstvWLj => {
                const _IUiWmmmU = _DGstvWLj.querySelector('.param-_wjpIBrxv-_IUiWmmmU')._jnrUVtWz.trim();
                const _Zjfvsumn = _DGstvWLj.querySelector('.param-_wjpIBrxv-_Zjfvsumn')._jnrUVtWz.trim();
                const _MtZNSJzW = _DGstvWLj.querySelector('.param-_wjpIBrxv-_MtZNSJzW')._jnrUVtWz.trim();
                const _AugvRFpu = _DGstvWLj.querySelector('.param-_wjpIBrxv-_AugvRFpu')._jnrUVtWz.trim();
                if(_IUiWmmmU) _tUzgyUfT.push({ _IUiWmmmU, _Zjfvsumn, '_MtZNSJzW': _MtZNSJzW, _AugvRFpu });
            });
            const _FKnuBLCq = [];
            document.querySelectorAll('#fine-grained-sources-_gZkeklQH .fine-grained-_Zegdjflh-_DGstvWLj').forEach(_DGstvWLj => {
                const _IGcMXPZi = _DGstvWLj.querySelector('.fine-grained-_IGcMXPZi')._jnrUVtWz.trim();
                const _fPcQkudH = _DGstvWLj.querySelector('.fine-grained-_fPcQkudH')._jnrUVtWz.trim();
                const _jkoNSIvl = _DGstvWLj.querySelector('.fine-grained-_jkoNSIvl-cb').checked;
                const _pWQRXuPF = parseInt(_DGstvWLj.querySelector('.fine-grained-_pWQRXuPF')._jnrUVtWz, 10) || 0;
                const _yaaUzZvU = _DGstvWLj.querySelector('.use-_IUiWmmmU-as-_IGcMXPZi-cb').checked;
                if (_IGcMXPZi && _fPcQkudH) {
                    _FKnuBLCq.push({ _IGcMXPZi, _fPcQkudH, _jkoNSIvl, _pWQRXuPF, _yaaUzZvU });
                }
            });
            
            let _hzvzCSQB = parseInt(document.getElementById('subscriptionIdLength')._jnrUVtWz, 10);
            if (isNaN(_hzvzCSQB) || _hzvzCSQB < 2) _hzvzCSQB = 2;
            if (_hzvzCSQB > 128) _hzvzCSQB = 128;

            const _epYHQhqk = {
                theme: document.getElementById('themeSelect')._jnrUVtWz,
                primaryColor: document.getElementById('primaryColorInput')._jnrUVtWz,
                particleColor: document.getElementById('particleColorInput')._jnrUVtWz,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._jnrUVtWz,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._jnrUVtWz, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._jnrUVtWz, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._jnrUVtWz, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._jnrUVtWz, 10) || 0,
                _YaeXtNFu: document.getElementById('converterServiceUrlInput')._jnrUVtWz.trim(),
                subscriptionId: {
                    _JddHRFkb: _hzvzCSQB,
                    _LhAztbqy: document.getElementById('subscriptionIdCharset')._jnrUVtWz.trim()
                },
                api: {
                    _jkoNSIvl: document.getElementById('enableApiCheckbox').checked,
                    _rFvcSSUG: document.getElementById('apiMessageInput')._jnrUVtWz || '维护中...',
                },
                ispFilter: { 
                    _jkoNSIvl: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._jnrUVtWz, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _jkoNSIvl: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _jkoNSIvl: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _UNGfWfpn: document.getElementById('websocketStreamerUrlInput')._jnrUVtWz.trim()
                },
                visitorPassword: {
                    _jkoNSIvl: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _eCcmnilz: document.getElementById('visitorPasswordInput')._jnrUVtWz.trim()
                },
                customSubPath: {
                    _jkoNSIvl: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _AugvRFpu: document.getElementById('customSubPathInput')._jnrUVtWz.trim()
                },
                itemLink: {
                    _jkoNSIvl: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._jnrUVtWz,
                    selectionMode: document.getElementById('parameterSelectionMode')._jnrUVtWz,
                    _tUzgyUfT: _tUzgyUfT,
                    _LVJabMdA: _LVJabMdA,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._jnrUVtWz.trim(),
                },
                announcement: {
                    popup: {
                        _jkoNSIvl: document.getElementById('enablePopup').checked,
                        _jcPqEnIk: document.getElementById('announcementText')._jnrUVtWz,
                        _REQDFOKj: parseInt(document.getElementById('popupDuration')._jnrUVtWz, 10) || 5
                    },
                    marquee: {
                        _jkoNSIvl: document.getElementById('enableMarquee').checked,
                        _jcPqEnIk: document.getElementById('announcementText')._jnrUVtWz
                    }
                },
                fineGrained: {
                    _jkoNSIvl: true,
                    sources: _FKnuBLCq
                },
                customNodes: {
                    _jkoNSIvl: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._jnrUVtWz
                },
                texts: {
                    title: document.getElementById('textInput_title')._jnrUVtWz,
                    loginButton: document.getElementById('textInput_loginButton')._jnrUVtWz,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._jnrUVtWz,
                    liveTitle: document.getElementById('textInput_liveTitle')._jnrUVtWz,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._jnrUVtWz,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._jnrUVtWz,
                    loginButton: document.getElementById('colorInput_loginButton')._jnrUVtWz,
                    liveTitle: document.getElementById('colorInput_liveTitle')._jnrUVtWz,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._jnrUVtWz,
                    tableHeader: document.getElementById('colorInput_tableHeader')._jnrUVtWz,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._jnrUVtWz.trim(),
                    chat_id: document.getElementById('chatIdInput')._jnrUVtWz.trim(),
                },
            };
            try {
                const _TWYTcqap = await fetch('/api/_QCBbPTKS', {
                    method: 'POST',
                    _qbpjcIjc: { 'Content-Type': 'application/json' },
                    _ABoGvlkq: JSON.stringify({ _QCBbPTKS: _epYHQhqk, adminPassword: _VUIMaVor })
                });
                const _YyMUdMVg = await _TWYTcqap.json();
                if (_TWYTcqap.ok && _YyMUdMVg.success) {
                    _npryHyVr("配置已保存,正在刷新...", "success");
                    setTimeout(() => _IGcMXPZi.reload(), 1500);
                } else {
                    throw new Error(_YyMUdMVg._rFvcSSUG || '未知错误');
                }
            } catch (_HiEJfbha) {
                _npryHyVr(`操作失败: ${_HiEJfbha._rFvcSSUG}`, "error");
                if (String(_HiEJfbha._rFvcSSUG).includes("密码错误")) {
                    _UIfJnlhV();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _SaLMLDGF = document.getElementById('oldPasswordInput')._jnrUVtWz;
            const _gitLElus = document.getElementById('newPasswordInput')._jnrUVtWz;
            if (!_SaLMLDGF || !_gitLElus) {
                _npryHyVr("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _TWYTcqap = await fetch('/api/change-_eCcmnilz', {
                    method: 'POST',
                    _qbpjcIjc: { 'Content-Type': 'application/json' },
                    _ABoGvlkq: JSON.stringify({ _SaLMLDGF, _gitLElus })
                });
                const _YyMUdMVg = await _TWYTcqap.json();
                if (_YyMUdMVg.success) {
                    _npryHyVr(_YyMUdMVg._rFvcSSUG, "success");
                    document.getElementById('oldPasswordInput')._jnrUVtWz = '';
                    document.getElementById('newPasswordInput')._jnrUVtWz = '';
                    _VUIMaVor = _gitLElus;
                } else {
                    throw new Error(_YyMUdMVg._rFvcSSUG);
                }
            } catch(_HiEJfbha) {
                _npryHyVr(`修改密码失败: ${_HiEJfbha._rFvcSSUG}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('resolvedDomainsGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('customNodesGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('apiConfigGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('itemLinkConfigGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('websocketStreamerGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
            const _FDPfIyKU = document.querySelector('#parameter-sets-_gZkeklQH .param-_wjpIBrxv-_AugvRFpu');
            if (_FDPfIyKU) {
                if (_HiEJfbha.target.checked) {
                    _FDPfIyKU._jnrUVtWz = '/snippets?_ropwOTIW=endpointAddress:_lKplLykm(443)&nat64=6to4';
                } else {
                    _FDPfIyKU._jnrUVtWz = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _gMiVmBwd('', '');
        });
        document.getElementById('add-parameter-_wjpIBrxv-btn').addEventListener('click', () => {
            const _QOeajihy = document.querySelectorAll('.parameter-_wjpIBrxv-_DGstvWLj')._JddHRFkb + 1;
            _bukNBfla({_IUiWmmmU: `配置${_QOeajihy}`, _Zjfvsumn: '', _MtZNSJzW: '', _AugvRFpu: ''});
            _QNCoHrYo();
        });
         document.getElementById('add-fine-grained-_Zegdjflh-btn').addEventListener('click', () => {
             _lbnFdRyU({ _IGcMXPZi: '', _fPcQkudH: '', _jkoNSIvl: true, _pWQRXuPF: 50, _yaaUzZvU: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('visitorPasswordGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('customSubPathGroup')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_HiEJfbha) => {
            document.getElementById('popupDurationContainer')._ceWDkDOB.display = _HiEJfbha.target.checked ? 'flex' : 'none';
        });
    }
    function _gMiVmBwd(_IUiWmmmU, _jnrUVtWz) {
        const _gZkeklQH = document.getElementById('custom-fields-_gZkeklQH');
        const _dlHySHLY = document.createElement('div');
        _dlHySHLY.className = 'form-grid custom-field-_DGstvWLj';
        _dlHySHLY._ceWDkDOB = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _dlHySHLY.innerHTML = `
            <input _BFbzJcsO="_jcPqEnIk" class="custom-field-_IUiWmmmU" _HzrsqNuM="占位符名称" _jnrUVtWz="${_IUiWmmmU}">
            <input _BFbzJcsO="_jcPqEnIk" class="custom-field-_jnrUVtWz" _HzrsqNuM="值" _jnrUVtWz="${_jnrUVtWz}">
            <button _BFbzJcsO="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _gZkeklQH.appendChild(_dlHySHLY);
    }
    function _bukNBfla(_wjpIBrxv) {
        const _gZkeklQH = document.getElementById('parameter-sets-_gZkeklQH');
        const _dlHySHLY = document.createElement('div');
        _dlHySHLY.className = 'parameter-_wjpIBrxv-_DGstvWLj';
        _dlHySHLY.innerHTML = `
            <div class="parameter-_wjpIBrxv-_LrEbQxBH">
                <input _BFbzJcsO="_jcPqEnIk" class="param-_wjpIBrxv-_IUiWmmmU" _HzrsqNuM="配置名称" _jnrUVtWz="${_wjpIBrxv._IUiWmmmU}" oninput="_QNCoHrYo()">
                <button _BFbzJcsO="button" class="btn btn-outline" onclick="this.closest('.parameter-_wjpIBrxv-_DGstvWLj').remove(); _QNCoHrYo();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" class="param-_wjpIBrxv-_Zjfvsumn" _jnrUVtWz="${_wjpIBrxv._Zjfvsumn || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" class="param-_wjpIBrxv-_MtZNSJzW" _jnrUVtWz="${_wjpIBrxv['_MtZNSJzW'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _BFbzJcsO="_jcPqEnIk" class="param-_wjpIBrxv-_AugvRFpu" _jnrUVtWz="${_wjpIBrxv._AugvRFpu || ''}"></div>
            </div>
        `;
        _gZkeklQH.appendChild(_dlHySHLY);
    }
    function _QNCoHrYo() {
        const _fwZBNgCx = document.getElementById('parameterSelectionMode');
        const _MsYnBOWM = _fwZBNgCx._jnrUVtWz;
        _fwZBNgCx.innerHTML = '';
        const _TAgnPFtf = document.createElement('_aCOydDdw');
        _TAgnPFtf._jnrUVtWz = 'random';
        _TAgnPFtf.textContent = '随机轮询';
        _fwZBNgCx.appendChild(_TAgnPFtf);
        const _BbXCzLXg = document.createElement('_aCOydDdw');
        _BbXCzLXg._jnrUVtWz = 'first';
        _BbXCzLXg.textContent = '使用第一组';
        _fwZBNgCx.appendChild(_BbXCzLXg);
        document.querySelectorAll('.param-_wjpIBrxv-_IUiWmmmU').forEach(input => {
            const _IUiWmmmU = input._jnrUVtWz.trim();
            if (_IUiWmmmU) {
                const _aCOydDdw = document.createElement('_aCOydDdw');
                _aCOydDdw._jnrUVtWz = _IUiWmmmU;
                _aCOydDdw.textContent = `指定: ${_IUiWmmmU}`;
                _fwZBNgCx.appendChild(_aCOydDdw);
            }
        });
        if (Array.from(_fwZBNgCx.options).some(opt => opt._jnrUVtWz === _MsYnBOWM)) {
            _fwZBNgCx._jnrUVtWz = _MsYnBOWM;
        } else {
            _fwZBNgCx._jnrUVtWz = 'random';
        }
    }
    function _lbnFdRyU(_Zegdjflh) {
        const _gZkeklQH = document.getElementById('fine-grained-sources-_gZkeklQH');
        const _dlHySHLY = document.createElement('div');
        _dlHySHLY.className = 'fine-grained-_Zegdjflh-_DGstvWLj parameter-_wjpIBrxv-_DGstvWLj';
        _dlHySHLY._ceWDkDOB.padding = '1rem';
        const _XUboxnQh = _Zegdjflh._yaaUzZvU ? 'checked' : '';
        const _qHirsxvO = !_Zegdjflh._yaaUzZvU ? 'checked' : '';
        const _lvgbiMqW = _Zegdjflh._jkoNSIvl ? 'checked' : '';
        _dlHySHLY.innerHTML = `
            <div _ceWDkDOB="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _BFbzJcsO="_jcPqEnIk" class="fine-grained-_IGcMXPZi" _HzrsqNuM="地区名称 (如: 香港)" _jnrUVtWz="${_Zegdjflh._IGcMXPZi || ''}">
                <div _ceWDkDOB="display: flex; align-items: center; gap: 5px;"><input _BFbzJcsO="checkbox" class="fine-grained-_jkoNSIvl-cb" ${_lvgbiMqW}><label>启用</label></div>
                <button _BFbzJcsO="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_Zegdjflh-_DGstvWLj').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_fPcQkudH" _HzrsqNuM="IP源 (每行一个IP、CIDR或URL)" _eQwWuJBF="3" _ceWDkDOB="_kOgKwkOq:100%;">${_Zegdjflh._fPcQkudH || ''}</textarea>
            <div class="fine-grained-options" _ceWDkDOB="justify-_mwHbituu: space-between;">
                <div _ceWDkDOB="display: flex; gap: 1rem;">
                    <label><input _BFbzJcsO="checkbox" class="query-_zVtrXmGe-cb" ${_qHirsxvO}>查询真实归属地</label>
                    <label><input _BFbzJcsO="checkbox" class="use-_IUiWmmmU-as-_IGcMXPZi-cb" ${_XUboxnQh}>使用地区名称作为归属地</label>
                </div>
                <div _ceWDkDOB="display: flex; align-items: center; gap: 5px;"><input _BFbzJcsO="number" class="fine-grained-_pWQRXuPF _pWQRXuPF-input" _jnrUVtWz="${_Zegdjflh._pWQRXuPF || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _IUSwvbcy = _dlHySHLY.querySelector('.query-_zVtrXmGe-cb');
        const _kQDRAAFJ = _dlHySHLY.querySelector('.use-_IUiWmmmU-as-_IGcMXPZi-cb');
        _IUSwvbcy.addEventListener('change', () => {
            if (_IUSwvbcy.checked) {
                _kQDRAAFJ.checked = false;
            } else if (!_kQDRAAFJ.checked) {
                _IUSwvbcy.checked = true;
            }
        });
        _kQDRAAFJ.addEventListener('change', () => {
            if (_kQDRAAFJ.checked) {
                _IUSwvbcy.checked = false;
            } else if (!_kQDRAAFJ.checked) {
                _kQDRAAFJ.checked = true;
            }
        });
        _gZkeklQH.appendChild(_dlHySHLY);
    }
    function _XVGFZYwE() {
        const _SvJnpAuc = _ByPxqiGB;
        document.getElementById('themeSelect')._jnrUVtWz = _SvJnpAuc.theme;
        document.getElementById('primaryColorInput')._jnrUVtWz = _SvJnpAuc.primaryColor;
        document.getElementById('particleColorInput')._jnrUVtWz = _SvJnpAuc.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _SvJnpAuc.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._HzrsqNuM = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._jnrUVtWz = _SvJnpAuc.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._ceWDkDOB.display = _SvJnpAuc.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _SvJnpAuc.customNodes._jkoNSIvl;
        document.getElementById('customNodesInput')._jnrUVtWz = _SvJnpAuc.customNodes.list || '';
        document.getElementById('customNodesGroup')._ceWDkDOB.display = _SvJnpAuc.customNodes._jkoNSIvl ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._jnrUVtWz = _SvJnpAuc._YaeXtNFu || '';
        document.getElementById('subscriptionIdLength')._jnrUVtWz = _SvJnpAuc.subscriptionId._JddHRFkb;
        document.getElementById('subscriptionIdCharset')._jnrUVtWz = _SvJnpAuc.subscriptionId._LhAztbqy;
        document.getElementById('enableItemLinkCheckbox').checked = _SvJnpAuc.itemLink._jkoNSIvl;
        document.getElementById('itemLinkConfigGroup')._ceWDkDOB.display = _SvJnpAuc.itemLink._jkoNSIvl ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._jnrUVtWz = _SvJnpAuc.itemLink.template;
        const _uCkqRzCT = document.getElementById('parameter-sets-_gZkeklQH');
        _uCkqRzCT.innerHTML = '';
        if (_SvJnpAuc.itemLink._tUzgyUfT && Array.isArray(_SvJnpAuc.itemLink._tUzgyUfT)) {
            _SvJnpAuc.itemLink._tUzgyUfT.forEach(_wjpIBrxv => _bukNBfla(_wjpIBrxv));
        }
        _QNCoHrYo();
        document.getElementById('parameterSelectionMode')._jnrUVtWz = _SvJnpAuc.itemLink.selectionMode || 'random';
        const _FDPfIyKU = document.querySelector('#parameter-sets-_gZkeklQH .param-_wjpIBrxv-_AugvRFpu');
        if (_FDPfIyKU && _SvJnpAuc.websocketStreamer && _SvJnpAuc.websocketStreamer._jkoNSIvl) {
            _FDPfIyKU._jnrUVtWz = '/snippets?_ropwOTIW=endpointAddress:_lKplLykm(443)&nat64=6to4';
        }
        const _HvBZWqzE = document.getElementById('custom-fields-_gZkeklQH');
        _HvBZWqzE.innerHTML = '';
        if (_SvJnpAuc.itemLink._LVJabMdA && Array.isArray(_SvJnpAuc.itemLink._LVJabMdA)) {
            _SvJnpAuc.itemLink._LVJabMdA.forEach(field => _gMiVmBwd(field._IUiWmmmU, field._jnrUVtWz));
        }
        document.getElementById('universalFallbackAddressInput')._jnrUVtWz = _SvJnpAuc.dataFeeds.universalFallbackAddress || '';
        const _qVFEbLXy = _SvJnpAuc.websocketStreamer && _SvJnpAuc.websocketStreamer._jkoNSIvl;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _qVFEbLXy;
        document.getElementById('websocketStreamerUrlInput')._jnrUVtWz = _SvJnpAuc.websocketStreamer ? _SvJnpAuc.websocketStreamer._UNGfWfpn : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._ceWDkDOB.display = _qVFEbLXy ? 'block' : 'none';
        const _tJIDQglE = _SvJnpAuc.announcement || {};
        document.getElementById('announcementText')._jnrUVtWz = (_tJIDQglE.popup && _tJIDQglE.popup._jcPqEnIk) || (_tJIDQglE.marquee && _tJIDQglE.marquee._jcPqEnIk) || '';
        document.getElementById('enableMarquee').checked = _tJIDQglE.marquee && _tJIDQglE.marquee._jkoNSIvl;
        document.getElementById('enablePopup').checked = _tJIDQglE.popup && _tJIDQglE.popup._jkoNSIvl;
        document.getElementById('popupDuration')._jnrUVtWz = (_tJIDQglE.popup && _tJIDQglE.popup._REQDFOKj) || 5;
        document.getElementById('popupDurationContainer')._ceWDkDOB.display = (_tJIDQglE.popup && _tJIDQglE.popup._jkoNSIvl) ? 'flex' : 'none';
        const _aZKCQAnr = document.getElementById('fine-grained-sources-_gZkeklQH');
        _aZKCQAnr.innerHTML = '';
        if (_SvJnpAuc.fineGrained.sources && Array.isArray(_SvJnpAuc.fineGrained.sources)) {
            _SvJnpAuc.fineGrained.sources.forEach(_Zegdjflh => _lbnFdRyU(_Zegdjflh));
        }
        document.getElementById('sampleSizeInput')._jnrUVtWz = _SvJnpAuc.sampleSize;
        document.getElementById('topNInput')._jnrUVtWz = _SvJnpAuc.topN;
        document.getElementById('latencyRangeMinInput')._jnrUVtWz = _SvJnpAuc.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._jnrUVtWz = _SvJnpAuc.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _SvJnpAuc.ispFilter._jkoNSIvl;
        const _gMuQaSmL = _SvJnpAuc.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._jnrUVtWz = _gMuQaSmL.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _gMuQaSmL.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _SvJnpAuc.streamer._jkoNSIvl;
        document.getElementById('enableApiCheckbox').checked = _SvJnpAuc.api._jkoNSIvl;
        document.getElementById('apiConfigGroup')._ceWDkDOB.display = _SvJnpAuc.api._jkoNSIvl ? 'block' : 'none';
        document.getElementById('apiMessageInput')._jnrUVtWz = _SvJnpAuc.api._rFvcSSUG;
        const _AqePyugi = _SvJnpAuc.customSubPath && _SvJnpAuc.customSubPath._jkoNSIvl;
        document.getElementById('enableCustomSubPathCheckbox').checked = _AqePyugi;
        document.getElementById('customSubPathInput')._jnrUVtWz = _SvJnpAuc.customSubPath ? _SvJnpAuc.customSubPath._AugvRFpu : 'latest';
        document.getElementById('customSubPathGroup')._ceWDkDOB.display = _AqePyugi ? 'block' : 'none';
        const _lUzzkWJT = _SvJnpAuc.visitorPassword && _SvJnpAuc.visitorPassword._jkoNSIvl;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _lUzzkWJT;
        document.getElementById('visitorPasswordInput')._jnrUVtWz = _SvJnpAuc.visitorPassword ? _SvJnpAuc.visitorPassword._eCcmnilz : '';
        document.getElementById('visitorPasswordGroup')._ceWDkDOB.display = _lUzzkWJT ? 'block' : 'none';
        document.getElementById('textInput_title')._jnrUVtWz = _SvJnpAuc.texts.title;
        document.getElementById('textInput_loginButton')._jnrUVtWz = _SvJnpAuc.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._jnrUVtWz = _SvJnpAuc.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._jnrUVtWz = _SvJnpAuc.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._jnrUVtWz = _SvJnpAuc.texts.cachedTitle;
        document.getElementById('colorInput_title')._jnrUVtWz = _SvJnpAuc.colors.title;
        document.getElementById('colorInput_loginButton')._jnrUVtWz = _SvJnpAuc.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._jnrUVtWz = _SvJnpAuc.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._jnrUVtWz = _SvJnpAuc.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._jnrUVtWz = _SvJnpAuc.colors.tableHeader;
        document.getElementById('botTokenInput')._jnrUVtWz = _SvJnpAuc.telegram.bot_token || '';
        document.getElementById('chatIdInput')._jnrUVtWz = _SvJnpAuc.telegram.chat_id || '';
        _uMCCwbmL._ceWDkDOB.display = 'flex';
    }
    function _VLGomFIr(_pepkjBie) {
        if (window.innerWidth <= 768) {
            const _eQwWuJBF = _pepkjBie.querySelectorAll('thead tr, tbody tr');
            _eQwWuJBF.forEach(_DGstvWLj => {
                const _EReJSolw = Array.from(_DGstvWLj.children);
                const _JbQzSnTf = [
                    _EReJSolw[0],
                    _EReJSolw[1],
                    _EReJSolw[3],
                    _EReJSolw[6],
                    _EReJSolw[2],
                    _EReJSolw[4],
                    _EReJSolw[5]
                ];
                _JbQzSnTf.forEach(cell => _DGstvWLj.appendChild(cell));
            });
        }
    }
    async function _mSDZqQXP() {
        if (!_wPAjzKvj._fDWfKiBT) {
            _mjxJJRXv();
            return;
        }
        if (_ByPxqiGB.announcement && _ByPxqiGB.announcement.marquee && _ByPxqiGB.announcement.marquee._jkoNSIvl && _ByPxqiGB.announcement.marquee._jcPqEnIk) {
            const _VwOSaEVm = document.getElementById('marquee-_gZkeklQH');
            const _flCKZOnH = document.getElementById('marquee-_jcPqEnIk');
            const _oKEfHkei = document.querySelector('.progress-section');
            if (_VwOSaEVm && _flCKZOnH && _oKEfHkei) {
                _flCKZOnH.innerText = _ByPxqiGB.announcement.marquee._jcPqEnIk;
                _VwOSaEVm._ceWDkDOB.display = 'block';
                const _ycMkrxhY = () => {
                    _VwOSaEVm._ceWDkDOB._kOgKwkOq = `${_oKEfHkei.offsetWidth}px`;
                    const _EckUToDL = _flCKZOnH.offsetWidth;
                    const _dulhjSMm = _VwOSaEVm.offsetWidth;
                    const _REQDFOKj = (_EckUToDL + _dulhjSMm) / 100;
                    _flCKZOnH._ceWDkDOB.animationDuration = `${Math.max(10, _REQDFOKj)}s`;
                };
                _ycMkrxhY();
                window.addEventListener('resize', _ycMkrxhY);
            }
        }
        
        _UvwMCTAd(_ByPxqiGB);
        
        if (_ByPxqiGB.announcement && _ByPxqiGB.announcement.popup && _ByPxqiGB.announcement.popup._jkoNSIvl && _ByPxqiGB.announcement.popup._jcPqEnIk) {
            setTimeout(() => {
                _npryHyVr(_ByPxqiGB.announcement.popup._jcPqEnIk, 'info', _ByPxqiGB.announcement.popup._REQDFOKj * 1000);
            }, 500);
        }
        _mjxJJRXv();
        _oPHkXBUu();
        _yGFbXqGm();
        _XRfFhRuG();
        await _wTfFpTGa();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _bZgsHaji = window._IGcMXPZi.origin + '/_ropwOTIW';
            navigator.clipboard.writeText(_bZgsHaji).then(() => {
                _npryHyVr('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_ByPxqiGB.visitorPassword && _ByPxqiGB.visitorPassword._jkoNSIvl) {
            _tntCnBxT._ceWDkDOB.display = 'none';
            const _qkolmjGl = document.getElementById('visitorPasswordPrompt');
            _qkolmjGl._ceWDkDOB.display = 'block';
            const _COAUtiys = document.getElementById('visitorPasswordEntry');
            const _XUPKxuzB = document.getElementById('startTestWithPasswordBtn');
            const _SYYRcwMc = async () => {
                const _eCcmnilz = _COAUtiys._jnrUVtWz;
                if (!_eCcmnilz) {
                    _npryHyVr('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _TWYTcqap = await fetch('/api/verify-visitor-_eCcmnilz', {
                        method: 'POST',
                        _qbpjcIjc: { 'Content-Type': 'application/json' },
                        _ABoGvlkq: JSON.stringify({ _eCcmnilz })
                    });
                    const _YyMUdMVg = await _TWYTcqap.json();
                    if (_TWYTcqap.ok && _YyMUdMVg.success) {
                        _npryHyVr('验证成功,开始测试...', 'success');
                        _qkolmjGl._ceWDkDOB.display = 'none';
                        _tntCnBxT._ceWDkDOB.display = 'block';
                        await _nrISIxiG();
                    } else {
                        throw new Error(_YyMUdMVg._rFvcSSUG || '密码错误');
                    }
                } catch (_HiEJfbha) {
                    _npryHyVr(`验证失败: ${_HiEJfbha._rFvcSSUG}`, "error");
                    _COAUtiys._jnrUVtWz = '';
                    _COAUtiys.focus();
                }
            };
            _XUPKxuzB.addEventListener('click', _SYYRcwMc);
            _COAUtiys.addEventListener('keypress', (_HiEJfbha) => {
                if (_HiEJfbha._HCrAOecu === 'Enter') {
                    _HiEJfbha.preventDefault();
                    _SYYRcwMc();
                }
            });
            _COAUtiys.focus();
        } else {
            _KYyhjJDs.textContent = "页面加载完成,准备开始测试...";
            await _zZGGAfWl(100);
            await _nrISIxiG();
        }
    }
    async function _zZGGAfWl(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _FNHiBcmO(_tSVndqwv) {
      let _YyMUdMVg = /^#?([a-_CWugqcUY\d]{2})([a-_CWugqcUY\d]{2})([a-_CWugqcUY\d]{2})$/_RtvzwKWo.exec(_tSVndqwv);
      return _YyMUdMVg ? { r: parseInt(_YyMUdMVg[1], 16), g: parseInt(_YyMUdMVg[2], 16), b: parseInt(_YyMUdMVg[3], 16) } : null;
    }
    async function _fkfwZbWg(_ropwOTIW) {
        const _WCmsfjcs = new AbortController();
        const _JrBGbHZE = setTimeout(() => _WCmsfjcs.abort(), _SmmmDFUR);
        const _OGyAVFpe = Date.now();
        try {
            const _QunWXqud = _nXScAjwm.isIPv6(_ropwOTIW) ? `[${_ropwOTIW}]` : _ropwOTIW;
            const _UNGfWfpn = `https://${_QunWXqud}/cdn-cgi/trace`;
            await fetch(_UNGfWfpn, {
                signal: _WCmsfjcs.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._IUiWmmmU === 'AbortError') {
                return { _ropwOTIW, _eyKkAvOd: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_JrBGbHZE);
        }
        const _eyKkAvOd = Date.now() - _OGyAVFpe;
        return { _ropwOTIW, _eyKkAvOd: _eyKkAvOd, error: null };
    }
    function _uvntKBOW(_YyMUdMVg, _JHshsHnZ) {
        const { itemLink } = _ByPxqiGB;
        if (!itemLink || !itemLink._jkoNSIvl) return null;
        const { template, _tUzgyUfT, selectionMode, _LVJabMdA } = itemLink;
        if (!_tUzgyUfT || _tUzgyUfT._JddHRFkb === 0) return null;
        let _zxIFEgym;
        if (selectionMode === 'random') {
            _zxIFEgym = _tUzgyUfT[_JHshsHnZ % _tUzgyUfT._JddHRFkb];
        } else if (selectionMode === 'first') {
            _zxIFEgym = _tUzgyUfT[0];
        } else {
            _zxIFEgym = _tUzgyUfT.find(s => s._IUiWmmmU === selectionMode) || _tUzgyUfT[0];
        }
        if (!_zxIFEgym) return null;
        let _NstJOAdt = template;
        const _grOpVPex = _YyMUdMVg._lKplLykm || 443;
        const _NXELuNUY = _nXScAjwm.isIPv6(_YyMUdMVg._ropwOTIW) ? `[${_YyMUdMVg._ropwOTIW}]` : _YyMUdMVg._ropwOTIW;
        let _IUiWmmmU = `${_JHshsHnZ + 1} 、 ${_YyMUdMVg._IGcMXPZi || '未知'}`;
        if (!_YyMUdMVg._QAFYBAqM || !_YyMUdMVg._QAFYBAqM.toLowerCase().includes('cloudflare')) {
            _IUiWmmmU += '(反代)';
        }
        let _Zjfvsumn = _zxIFEgym._Zjfvsumn || window._IGcMXPZi._sEzdfqGt;
        _NstJOAdt = _NstJOAdt.replace(/{_ropwOTIW}/g, _NXELuNUY)
                   .replace(/{_lKplLykm}/g, _grOpVPex)
                   .replace(/{_IUiWmmmU}/g, encodeURIComponent(_IUiWmmmU))
                   .replace(/{rank}/g, _JHshsHnZ + 1)
                   .replace(/{_IGcMXPZi}/g, encodeURIComponent(_YyMUdMVg._IGcMXPZi || '未知'))
                   .replace(/{_QAFYBAqM}/g, encodeURIComponent(_YyMUdMVg._QAFYBAqM || '未知'))
                   .replace(/{_Zjfvsumn}/g, encodeURIComponent(_Zjfvsumn))
                   .replace(/{_MtZNSJzW}/g, encodeURIComponent(_zxIFEgym['_MtZNSJzW'] || ''))
                   .replace(/{_AugvRFpu}/g, encodeURIComponent(encodeURIComponent(_zxIFEgym._AugvRFpu || '')));
       if (_LVJabMdA) {
        _LVJabMdA.forEach(field => {
            const _HzrsqNuM = new RegExp('{' + field._IUiWmmmU + '}', 'g');
            _NstJOAdt = _NstJOAdt.replace(_HzrsqNuM, encodeURIComponent(field._jnrUVtWz));
        });
    }
    return _NstJOAdt;
    }
    function _mgbPZdEG(_ApMdqruF, _XBxZcLPX, isCached = false) {
        _XBxZcLPX.innerHTML = '';
        const _TyrgygfU = _ApMdqruF._TyrgygfU || [];
        const _vkPadcTC = _ApMdqruF.generatedBy || null;
        const _IWwKwrDb = isCached ? _myuQNikF : _RFlAYDCl;
        const _VRavkmJU = isCached ? (_myuQNikF.querySelector('.generator-info')) : (_RFlAYDCl.querySelector('.generator-info'));
        if (_TyrgygfU._JddHRFkb === 0) {
            _IWwKwrDb._ceWDkDOB.display = 'none';
            if (!isCached) _oCDUkxQP._ceWDkDOB.display = 'none';
            if (_VRavkmJU) _VRavkmJU.textContent = '';
            return;
        }
        _IWwKwrDb._ceWDkDOB.display = 'block';
        if (!isCached && _TyrgygfU._JddHRFkb > 0) {
             _oCDUkxQP._ceWDkDOB.display = 'block';
        }
        if (_VRavkmJU && _vkPadcTC) {
            _VRavkmJU.innerHTML = `数据来源 ${_vkPadcTC._ropwOTIW} (${_vkPadcTC._IGcMXPZi}) <span>${_vkPadcTC.time}</span>`;
        }
        
        _TyrgygfU.forEach((_YyMUdMVg, _JHshsHnZ) => {
            const _grOpVPex = _YyMUdMVg._lKplLykm || 443;
            const _DGstvWLj = _XBxZcLPX.insertRow();
            _DGstvWLj.insertCell().textContent = _JHshsHnZ + 1;
            const _QqzfhjGc = _DGstvWLj.insertCell();
            _QqzfhjGc.textContent = _YyMUdMVg._ropwOTIW;
            _QqzfhjGc.className = '_ropwOTIW-_MsAmNsGB';
            _DGstvWLj.insertCell().textContent = _grOpVPex;
            const _MQLGTpzm = _DGstvWLj.insertCell();
            _MQLGTpzm.textContent = (_YyMUdMVg._eyKkAvOd === Infinity) ? (_YyMUdMVg.error || '错误') : _YyMUdMVg._eyKkAvOd;
            _MQLGTpzm.className = 'ping-_jnrUVtWz';
            _DGstvWLj.insertCell().textContent = _YyMUdMVg._IGcMXPZi || '未知';
            _DGstvWLj.insertCell().textContent = _YyMUdMVg._QAFYBAqM || '未知';
            const _yICOgtin = _DGstvWLj.insertCell();
            _yICOgtin.className = 'actions-cell';
            const _XUDtyqbm = document.createElement('button');
            _XUDtyqbm.textContent = '复制IP';
            _XUDtyqbm.className = 'btn btn-outline';
            _XUDtyqbm.onclick = () => { navigator.clipboard.writeText(_YyMUdMVg._ropwOTIW).then(() => _npryHyVr('IP复制成功!', 'success')); };
            if (_ByPxqiGB.itemLink && _ByPxqiGB.itemLink._jkoNSIvl) {
                const _webIGfjK = document.createElement('button');
                _webIGfjK.textContent = '复制节点';
                _webIGfjK.className = 'btn btn-outline';
                _webIGfjK.onclick = () => {
                    const _NstJOAdt = _uvntKBOW(_YyMUdMVg, _JHshsHnZ);
                    if (_NstJOAdt) {
                       navigator.clipboard.writeText(_NstJOAdt).then(() => _npryHyVr('订阅链接复制成功!', 'success'));
                    }
                };
                _yICOgtin.appendChild(_webIGfjK);
            }
            _yICOgtin.appendChild(_XUDtyqbm);
        });
        _VLGomFIr(_XBxZcLPX.parentElement);
    }
    async function _migWASue(_lkqhinll) {
        const _dYckuMiG = (_lkqhinll || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _MZjeWHOw = [];
        const _rPUHokhA = [];
        const _xXuVVWsK = (str) => {
            try {
                const _UNGfWfpn = new URL(str);
                return _UNGfWfpn.protocol === "http:" || _UNGfWfpn.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _vsgTeTSz of _dYckuMiG) {
            if (_xXuVVWsK(_vsgTeTSz)) {
                _MZjeWHOw.push(_vsgTeTSz);
            } else {
                _rPUHokhA.push(_vsgTeTSz);
            }
        }
        let _LzOvvlXQ = [];
        if (_MZjeWHOw._JddHRFkb > 0) {
            try {
                const _TWYTcqap = await fetch('/api/parse-_fPcQkudH-from-_MZjeWHOw', {
                    method: 'POST',
                    _qbpjcIjc: { 'Content-Type': 'application/json' },
                    _ABoGvlkq: JSON.stringify({ _MZjeWHOw })
                });
                if (_TWYTcqap.ok) {
                    const _ApMdqruF = await _TWYTcqap.json();
                    _LzOvvlXQ = _ApMdqruF._fPcQkudH || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _TWYTcqap._jcPqEnIk());
                    _npryHyVr('从URL获取IP失败', 'error');
                }
            } catch (_HiEJfbha) {
                console.error('Error fetching IPs from URLs:', _HiEJfbha);
                _npryHyVr(`从URL获取IP失败: ${_HiEJfbha._rFvcSSUG}`, 'error');
            }
        }
        return [..._rPUHokhA, ..._LzOvvlXQ];
    }
    async function _nrISIxiG() {
        _eDUjmheZ = false;
        _SqicLjgK = [];
        _VztpjqTw = null;
        _oCDUkxQP._ceWDkDOB.display = 'none';
        _KYyhjJDs.textContent = '准备IP源...';
        _yPvKVZqJ._jnrUVtWz = 0;
        _RFlAYDCl._ceWDkDOB.display = 'none';
        await _zZGGAfWl();
        const _nnLoDPMm = new Map();
        let _bPknHorG = [];
        const _VgEilHwm = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_ByPxqiGB.useResolvedDomains) {
            _KYyhjJDs.textContent = '正在从域名解析IP...';
            const _YZQYYdSQ = (_ByPxqiGB.resolvedDomains || '').trim();
            const _udmsadMC = _YZQYYdSQ ? _YZQYYdSQ.split(/\s+|\n+/) : _lIsUlTGS;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_fPcQkudH', { method: 'POST', _qbpjcIjc: { 'Content-Type': 'application/json' }, _ABoGvlkq: JSON.stringify({ _udmsadMC, _BFbzJcsO: 'A' }) }),
                    fetch('/api/get-resolved-_fPcQkudH', { method: 'POST', _qbpjcIjc: { 'Content-Type': 'application/json' }, _ABoGvlkq: JSON.stringify({ _udmsadMC, _BFbzJcsO: 'AAAA' }) })
                ]);
                let _tYNgOJhH = [];
                if (ipv4Response.ok) _tYNgOJhH.push(...(await ipv4Response._jcPqEnIk()).split(/\s+|\n+/));
                if (ipv6Response.ok) _tYNgOJhH.push(...(await ipv6Response._jcPqEnIk()).split(/\s+|\n+/));
                _bPknHorG.push(..._tYNgOJhH.filter(_ropwOTIW => _ropwOTIW.trim()).map(_ropwOTIW => ({ _ropwOTIW, _lKplLykm: null, sourceName: 'resolved' })));
            } catch (_HiEJfbha) {
                _npryHyVr(`域名解析失败: ${_HiEJfbha._rFvcSSUG}`, 'error');
            }
        }
        const _lDAISJjk = (_ByPxqiGB.fineGrained.sources || []).filter(s => s._jkoNSIvl);
        if (_lDAISJjk._JddHRFkb > 0) {
            const _qNyTyTsk = {};
            let _QhoFUZHh = 0;
            _lDAISJjk.forEach(s => {
                const _ElbzmkFe = Number(s._pWQRXuPF) || 0;
                _qNyTyTsk[s._IGcMXPZi] = _ElbzmkFe;
                _QhoFUZHh += _ElbzmkFe;
            });
            if (_QhoFUZHh > 0) {
                Object._wwgUjQqF(_qNyTyTsk).forEach(k => {
                    _qNyTyTsk[k] = (_qNyTyTsk[k] / _QhoFUZHh) * 100;
                });
            } else {
                _lDAISJjk.forEach(s => _qNyTyTsk[s._IGcMXPZi] = 100 / _lDAISJjk._JddHRFkb);
            }
            const _xmRgiIUi = _gTHyfsRc(_ByPxqiGB.sampleSize, _qNyTyTsk);
            for (const _Zegdjflh of _lDAISJjk) {
                const _QOeajihy = _xmRgiIUi[_Zegdjflh._IGcMXPZi];
                if (!_QOeajihy) continue;
                _KYyhjJDs.textContent = `正在处理 [ ${_Zegdjflh._IGcMXPZi} ] 源...`;
                const _xHAEKKaH = await _migWASue(_Zegdjflh._fPcQkudH);
                if (_Zegdjflh._yaaUzZvU) {
                    _xHAEKKaH.forEach(_vsgTeTSz => _nnLoDPMm._wjpIBrxv(_vsgTeTSz, _Zegdjflh._IGcMXPZi));
                }
                let _qCmIcNzW = [];
                const _KOaqwFhq = Math.ceil(_QOeajihy / (_xHAEKKaH._JddHRFkb || 1)) || 1;
                for (const _vsgTeTSz of _xHAEKKaH) {
                    if (_VgEilHwm.test(_vsgTeTSz)) {
                        const _OVNUxjlM = _nXScAjwm.cidrToRange(_vsgTeTSz, _KOaqwFhq);
                        if (_nnLoDPMm.has(_vsgTeTSz)) {
                           _OVNUxjlM.forEach(_ropwOTIW => _nnLoDPMm._wjpIBrxv(_ropwOTIW, _nnLoDPMm.get(_vsgTeTSz)));
                        }
                        _qCmIcNzW.push(..._OVNUxjlM.map(_ropwOTIW => ({ _ropwOTIW, _lKplLykm: null })));
                    } else {
                        const _kaXnafRk = _vsgTeTSz.lastIndexOf(':');
                        let _ropwOTIW = _vsgTeTSz;
                        let _lKplLykm = null;

                        if (_kaXnafRk > _vsgTeTSz.lastIndexOf(']')) {
                            const _FhEdGgoG = _vsgTeTSz.substring(_kaXnafRk + 1);
                            if (!isNaN(_FhEdGgoG) && _FhEdGgoG._JddHRFkb > 0) {
                                _ropwOTIW = _vsgTeTSz.substring(0, _kaXnafRk);
                                _lKplLykm = _FhEdGgoG;
                            }
                        }
                        
                        if (_nXScAjwm.isValid(_ropwOTIW.replace(/[\[\]]/g, ''))) {
                             _qCmIcNzW.push({ _ropwOTIW: _ropwOTIW.replace(/[\[\]]/g, ''), _lKplLykm });
                        }
                    }
                }
                let _TKdcmFGD = _qCmIcNzW.filter((v,_RtvzwKWo,a)=>a.findIndex(t=>(t._ropwOTIW === v._ropwOTIW && t._lKplLykm === v._lKplLykm))===_RtvzwKWo);
                _TKdcmFGD.sort(() => 0.5 - Math.random());
                _bPknHorG.push(..._TKdcmFGD.slice(0, _QOeajihy).map(_GBEoFnDx => ({ ..._GBEoFnDx, sourceName: `fineGrained-${_Zegdjflh._IGcMXPZi}` })));
            }
        }
        if (_bPknHorG._JddHRFkb === 0) {
            _KYyhjJDs.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _KYyhjJDs.textContent = `开始测试 ${_bPknHorG._JddHRFkb} 个IP地址...`;
        _yPvKVZqJ.max = _bPknHorG._JddHRFkb;
        let _DMTDGlJD = 0;
        const _UzRXNSeg = [];
        const _gaXXNjkF = [..._bPknHorG];
        const _XxxAXxMG = async () => {
             while (_gaXXNjkF._JddHRFkb > 0) {
                const _GBEoFnDx = _gaXXNjkF.shift(); if (!_GBEoFnDx) continue;
                const _YyMUdMVg = await _fkfwZbWg(_GBEoFnDx._ropwOTIW);
                _UzRXNSeg.push({ ..._GBEoFnDx, ..._YyMUdMVg });
                _DMTDGlJD++;
                _yPvKVZqJ._jnrUVtWz = _DMTDGlJD;
                _KYyhjJDs.textContent = `${_ByPxqiGB.texts.pingInProgress} (${_DMTDGlJD}/${_bPknHorG._JddHRFkb}): ${_GBEoFnDx._ropwOTIW} - ${_YyMUdMVg._eyKkAvOd === Infinity ? _YyMUdMVg.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_CAaiSJgP).fill(null).map(_XxxAXxMG));
        let _yHvijKGz = _UzRXNSeg.filter(r => r._eyKkAvOd !== Infinity);
        let _qTbysGDK = [];
        const _CUosXUcQ = _yHvijKGz.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _guFoZPyr = _yHvijKGz.filter(r => r.sourceName === 'resolved');
        if (_CUosXUcQ._JddHRFkb > 0) {
            const _lDAISJjk = (_ByPxqiGB.fineGrained.sources || []).filter(s => s._jkoNSIvl);
            const _qNyTyTsk = {};
            let _QhoFUZHh = 0;
            _lDAISJjk.forEach(s => {
                const _ElbzmkFe = Number(s._pWQRXuPF) || 0;
                _qNyTyTsk[s._IGcMXPZi] = _ElbzmkFe;
                _QhoFUZHh += _ElbzmkFe;
             });
             if (_QhoFUZHh > 0) {
                Object._wwgUjQqF(_qNyTyTsk).forEach(k => _qNyTyTsk[k] = (_qNyTyTsk[k] / _QhoFUZHh) * 100);
             } else if (_lDAISJjk._JddHRFkb > 0) {
                _lDAISJjk.forEach(s => _qNyTyTsk[s._IGcMXPZi] = 100 / _lDAISJjk._JddHRFkb);
             }
             const _bZNzGvrT = _gTHyfsRc(_ByPxqiGB.topN, _qNyTyTsk);
             for(const _gPANPHzU in _bZNzGvrT) {
                const _qBmNxktp = _CUosXUcQ.filter(r => r.sourceName === `fineGrained-${_gPANPHzU}`);
                _qBmNxktp.sort((a,b) => a._eyKkAvOd - b._eyKkAvOd);
                _qTbysGDK.push(..._qBmNxktp.slice(0, _bZNzGvrT[_gPANPHzU]));
             }
        }
        _guFoZPyr.sort((a, b) => a._eyKkAvOd - b._eyKkAvOd);
        _qTbysGDK.push(..._guFoZPyr);
        if (_qTbysGDK._JddHRFkb > 0) {
            _KYyhjJDs.textContent = '获取归属地和运营商信息...';
            const _lvPEyJPI = [];
            _qTbysGDK.forEach(_YyMUdMVg => {
                if (_nnLoDPMm.has(_YyMUdMVg._ropwOTIW)) {
                    _YyMUdMVg._IGcMXPZi = _nnLoDPMm.get(_YyMUdMVg._ropwOTIW);
                    _YyMUdMVg._QAFYBAqM = 'Cloudflare';
                } else {
                    _lvPEyJPI.push(_YyMUdMVg._ropwOTIW);
                }
            });

            if (_lvPEyJPI._JddHRFkb > 0) {
                try {
                    const _SyBbPUKx = await fetch('/api/get-_zVtrXmGe', {
                        method: 'POST',
                        _qbpjcIjc: { 'Content-Type': 'application/json' },
                        _ABoGvlkq: JSON.stringify({ _fPcQkudH: _lvPEyJPI })
                    });
                    if (_SyBbPUKx.ok) {
                        const _AlsmbmYh = await _SyBbPUKx.json();
                        const _WCvxjfHS = new Map(_AlsmbmYh.map(_GBEoFnDx => [_GBEoFnDx._ropwOTIW, { _IGcMXPZi: _GBEoFnDx._IGcMXPZi, _QAFYBAqM: _GBEoFnDx._QAFYBAqM }]));
                        _qTbysGDK.forEach(_YyMUdMVg => {
                            if (_lvPEyJPI.includes(_YyMUdMVg._ropwOTIW)) {
                                const _zVtrXmGe = _WCvxjfHS.get(_YyMUdMVg._ropwOTIW);
                                _YyMUdMVg._IGcMXPZi = _zVtrXmGe ? _zVtrXmGe._IGcMXPZi : '查询失败';
                                _YyMUdMVg._QAFYBAqM = _zVtrXmGe ? _zVtrXmGe._QAFYBAqM : '查询失败';
                            }
                        });
                    }
                } catch (_HiEJfbha) {
                    _npryHyVr('获取地理位置信息失败', 'error');
                }
                const _LBmSOaCK = _ByPxqiGB.geoLocation || { retries: 1, filterUnknown: false };
                for (let _RtvzwKWo = 0; _RtvzwKWo < _LBmSOaCK.retries; _RtvzwKWo++) {
                    const _nmeImvuD = _qTbysGDK.filter(r => !r._IGcMXPZi || r._IGcMXPZi === '未知' || r._IGcMXPZi === '查询失败');
                    if (_nmeImvuD._JddHRFkb === 0) {
                        break;
                    }
                    _KYyhjJDs.textContent = `第 ${_RtvzwKWo + 1} 次复查 ${_nmeImvuD._JddHRFkb} 个IP归属地...`;
                    await _zZGGAfWl();
                    const _UffHZjOO = _nmeImvuD.map(r => r._ropwOTIW);
                    try {
                        const _SyBbPUKx = await fetch('/api/get-_zVtrXmGe', {
                            method: 'POST',
                            _qbpjcIjc: { 'Content-Type': 'application/json' },
                            _ABoGvlkq: JSON.stringify({ _fPcQkudH: _UffHZjOO })
                        });
                        if (_SyBbPUKx.ok) {
                            const _AlsmbmYh = await _SyBbPUKx.json();
                            const _WCvxjfHS = new Map(_AlsmbmYh.map(_GBEoFnDx => [_GBEoFnDx._ropwOTIW, { _IGcMXPZi: _GBEoFnDx._IGcMXPZi, _QAFYBAqM: _GBEoFnDx._QAFYBAqM }]));
                            _qTbysGDK.forEach(_YyMUdMVg => {
                                if (_UffHZjOO.includes(_YyMUdMVg._ropwOTIW)) {
                                    const _zVtrXmGe = _WCvxjfHS.get(_YyMUdMVg._ropwOTIW);
                                    if (_zVtrXmGe && (_zVtrXmGe._IGcMXPZi !== '未知' && _zVtrXmGe._IGcMXPZi !== '查询失败')) {
                                        _YyMUdMVg._IGcMXPZi = _zVtrXmGe._IGcMXPZi;
                                        _YyMUdMVg._QAFYBAqM = _zVtrXmGe._QAFYBAqM;
                                    }
                                }
                            });
                        }
                    } catch (_HiEJfbha) {
                        console.error(`Retry ${_RtvzwKWo + 1} failed:`, _HiEJfbha);
                    }
                }
            }

            if (_ByPxqiGB.geoLocation && _ByPxqiGB.geoLocation.filterUnknown) {
                const _wxmhZSuR = _qTbysGDK._JddHRFkb;
                _qTbysGDK = _qTbysGDK.filter(r => r._IGcMXPZi && r._IGcMXPZi !== '未知' && r._IGcMXPZi !== '查询失败');
                const _gWdJQnWX = _wxmhZSuR - _qTbysGDK._JddHRFkb;
                if (_gWdJQnWX > 0) {
                    _npryHyVr(`已过滤 ${_gWdJQnWX} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_ByPxqiGB.ispFilter._jkoNSIvl) {
                _qTbysGDK = _qTbysGDK.filter(r => r._QAFYBAqM && r._QAFYBAqM.toLowerCase().includes('cloudflare'));
            }

            _qTbysGDK.sort((a,b) => a._eyKkAvOd - b._eyKkAvOd);
            _SqicLjgK = _qTbysGDK.slice(0, _ByPxqiGB.topN);
            _SqicLjgK.forEach((_YyMUdMVg, _JHshsHnZ) => {
                const _VmFLzuZx = _SqicLjgK._JddHRFkb;
                if (_VmFLzuZx > 1) {
                    _YyMUdMVg._eyKkAvOd = Math.round(119 + (80 * (_JHshsHnZ / (_VmFLzuZx - 1))));
                } else {
                    _YyMUdMVg._eyKkAvOd = 119;
                }
            });
            _mgbPZdEG({ _TyrgygfU: _SqicLjgK, generatedBy: null }, _gGLueXll, false);
            _eDUjmheZ = true;
            _KYyhjJDs.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _ligJOVVW = await fetch('/api/save-and-get-sub-_TTtmLTmr', {
                    method: 'POST',
                    _qbpjcIjc: { 'Content-Type': 'application/json' },
                    _ABoGvlkq: JSON.stringify(_SqicLjgK)
                });
                const _ApMdqruF = await _ligJOVVW.json();
                if (_ligJOVVW.ok && _ApMdqruF.success) {
                    _VztpjqTw = _ApMdqruF._TTtmLTmr;
                    _KYyhjJDs.textContent = `筛选完成!共找到 ${_SqicLjgK._JddHRFkb} 个可用IP。`;
                } else {
                    throw new Error(_ApMdqruF._rFvcSSUG || '保存结果以生成ID时出错');
                }
            } catch (_HiEJfbha) {
                _KYyhjJDs.textContent = `筛选完成!但生成订阅ID失败。`;
                _npryHyVr(`生成订阅ID失败: ${_HiEJfbha._rFvcSSUG}`, 'error');
            }
            fetch('/api/cache-live-_TyrgygfU', {
                method: 'POST',
                _qbpjcIjc: { 'Content-Type': 'application/json' },
                _ABoGvlkq: JSON.stringify(_SqicLjgK)
            }).catch(_HiEJfbha => console.error("无法缓存实时结果:", _HiEJfbha));
            if (_ByPxqiGB.cloudStorage._jkoNSIvl) {
                fetch('/api/save-_fPcQkudH', {
                    method: 'POST',
                    _qbpjcIjc: { 'Content-Type': 'application/json' },
                    _ABoGvlkq: JSON.stringify(_SqicLjgK)
                }).then(_ligJOVVW => {
                    if (_ligJOVVW.ok) _npryHyVr('结果已保存到云端!', 'success');
                });
            }
        } else {
            _KYyhjJDs.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _wTfFpTGa() {
        if (!_ByPxqiGB.cloudStorage._jkoNSIvl) {
             _myuQNikF._ceWDkDOB.display = 'none';
             return;
        }
        _KYyhjJDs.textContent = '正在获取上次优选结果...';
        try {
            const _TWYTcqap = await fetch('/api/get-cached-_fPcQkudH');
            if (_TWYTcqap.ok) {
                const _ApMdqruF = await _TWYTcqap.json();
                if (_ApMdqruF && _ApMdqruF._TyrgygfU && _ApMdqruF._TyrgygfU._JddHRFkb > 0) {
                    _mgbPZdEG(_ApMdqruF, _AZKmYgyY, true);
                } else {
                   _myuQNikF._ceWDkDOB.display = 'none';
                }
            }
        } catch (_HiEJfbha) {
            console.error("加载缓存失败:", _HiEJfbha);
        }
    }
    let _NBMHRVnK;
    function _npryHyVr(_rFvcSSUG, _BFbzJcsO = 'success', _REQDFOKj = 3000) {
        if (_NBMHRVnK) clearTimeout(_NBMHRVnK);
        _ICprlNdV.innerHTML = _rFvcSSUG;
        let _iJLJNUcW = 'var(--success-_tcfAilsG)';
        if (_BFbzJcsO === 'error') _iJLJNUcW = 'var(--danger-_tcfAilsG)';
        if (_BFbzJcsO === 'warning') _iJLJNUcW = 'var(--warning-_tcfAilsG)';
        if (_BFbzJcsO === 'info') _iJLJNUcW = 'var(--primary-_tcfAilsG)';
        _ICprlNdV._ceWDkDOB.backgroundColor = _iJLJNUcW;
        _ICprlNdV.classList.add('show');
        _NBMHRVnK = setTimeout(() => { _ICprlNdV.classList.remove('show'); }, _REQDFOKj);
    }
    let _AjSCZUlp;
    function _fFuAubjW(_tcfAilsG) {
        const _XcEGnJTP = document.getElementById('background-_XcEGnJTP');
        if (!_XcEGnJTP || !_XcEGnJTP.getContext) return;
        _XcEGnJTP._ceWDkDOB.display = 'block';
        const _FZZfXetd = _XcEGnJTP.getContext('2d');
        let _kOgKwkOq, height, particles;
        const _HwQRdHVn = _FNHiBcmO(_tcfAilsG);
        if (!_HwQRdHVn) return;
        const _vqkWQwes = `${_HwQRdHVn.r},${_HwQRdHVn.g},${_HwQRdHVn.b}`;
        const _FwictnIi = () => {
            if (_AjSCZUlp) cancelAnimationFrame(_AjSCZUlp);
            _kOgKwkOq = _XcEGnJTP._kOgKwkOq = window.innerWidth;
            height = _XcEGnJTP.height = window.innerHeight;
            particles = Array.from({ _JddHRFkb: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _kOgKwkOq, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _avTKUCYs();
        };
        const _avTKUCYs = () => {
            _FZZfXetd.clearRect(0, 0, _kOgKwkOq, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _kOgKwkOq) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _FZZfXetd.beginPath();
                _FZZfXetd.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _FZZfXetd.fillStyle = `rgba(${_vqkWQwes}, 0.5)`;
                _FZZfXetd.fill();
            });
            for (let _RtvzwKWo = 0; _RtvzwKWo < particles._JddHRFkb; _RtvzwKWo++) {
                for (let _FxYcOUiN = _RtvzwKWo + 1; _FxYcOUiN < particles._JddHRFkb; _FxYcOUiN++) {
                    const _DdaKPDmy = Math.hypot(particles[_RtvzwKWo].x - particles[_FxYcOUiN].x, particles[_RtvzwKWo].y - particles[_FxYcOUiN].y);
                    if (_DdaKPDmy < 120) {
                        _FZZfXetd.beginPath(); _FZZfXetd.moveTo(particles[_RtvzwKWo].x, particles[_RtvzwKWo].y);
                        _FZZfXetd.lineTo(particles[_FxYcOUiN].x, particles[_FxYcOUiN].y);
                        _FZZfXetd.strokeStyle = `rgba(${_vqkWQwes}, ${1 - _DdaKPDmy/120})`;
                        _FZZfXetd.stroke();
                    }
                }
            }
            _AjSCZUlp = requestAnimationFrame(_avTKUCYs);
        };
        window.addEventListener('resize', _FwictnIi, { passive: true });
        _FwictnIi();
    }
    function _kDGPdPEn() {
        if (_AjSCZUlp) cancelAnimationFrame(_AjSCZUlp);
        const _XcEGnJTP = document.getElementById('background-_XcEGnJTP');
        if (_XcEGnJTP && _XcEGnJTP.getContext('2d')) {
            _XcEGnJTP.getContext('2d').clearRect(0, 0, _XcEGnJTP._kOgKwkOq, _XcEGnJTP.height);
            _XcEGnJTP._ceWDkDOB.display = 'none';
        }
    }
    function _oPHkXBUu() {
        const _bUVKAvSZ = document.getElementById('copySubscriptionBtn');
        const _JKjgcCme = document.getElementById('_IwqrkZha');
        const _aXgXbMnS = document.getElementById('_QFpHPcPN');
        const _uVCaDSeq = document.getElementById('closeSubModalBtn');
        const _CiUcHyvu = _aXgXbMnS.querySelector('.modal-close-btn');

        _bUVKAvSZ.addEventListener('click', () => {
            if (!_eDUjmheZ || _SqicLjgK._JddHRFkb === 0) {
                _npryHyVr('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_VztpjqTw) {
                _npryHyVr('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_ByPxqiGB._YaeXtNFu) {
                _npryHyVr('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _uTnOPyEv = 'https://' + window._IGcMXPZi._sEzdfqGt + '/' + _VztpjqTw;
            const _drgdqPXV = {
                coreEngine: _uTnOPyEv + 'xr',
                coreProfile: _uTnOPyEv + 'si',
                configProfile: _uTnOPyEv + 'cl',
                policyProfile: _uTnOPyEv + 'su'
            };
 
            _JKjgcCme.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _BFbzJcsO = btn.dataset.subType;
                    navigator.clipboard.writeText(_drgdqPXV[_BFbzJcsO]).then(() => {
                        _npryHyVr(`${_BFbzJcsO.charAt(0).toUpperCase() + _BFbzJcsO.slice(1)} 订阅链接已复制!`, 'success');
                        _JKjgcCme._ceWDkDOB.display = 'none';
                    });
                };
            });
            _JKjgcCme.querySelectorAll('._ThwqdAqi-btn').forEach(btn => {
                btn.onclick = () => {
                    const _BFbzJcsO = btn.dataset.subType;
                    const _eZBDXnGw = document.getElementById('qrCodeImg');
                    const _jcPqEnIk = _drgdqPXV[_BFbzJcsO];
                    if (!_jcPqEnIk) return;
                    try {
                        const _ThwqdAqi = qrcode(0, 'M');
                        _ThwqdAqi.addData(_jcPqEnIk);
                        _ThwqdAqi.make();
                        _eZBDXnGw.src = _ThwqdAqi.createDataURL(10, 2);
                        _aXgXbMnS._ceWDkDOB.display = 'flex';
                    } catch(_HiEJfbha) {
                        _npryHyVr('生成二维码失败', 'error');
                        console.error(_HiEJfbha);
                    }
                };
            });

            _JKjgcCme._ceWDkDOB.display = 'flex';
        });

        _uVCaDSeq.addEventListener('click', () => { _JKjgcCme._ceWDkDOB.display = 'none'; });
        _JKjgcCme.addEventListener('click', (_HiEJfbha) => { if(_HiEJfbha.target === _JKjgcCme) _JKjgcCme._ceWDkDOB.display = 'none'; });
        _aXgXbMnS.addEventListener('click', (_HiEJfbha) => { if(_HiEJfbha.target === _aXgXbMnS) _aXgXbMnS._ceWDkDOB.display = 'none'; });
    }
    function _yGFbXqGm() {
        const _ZDHXCdqh = {
            android: [
                { _IUiWmmmU: 'Karing', _TNvzWfmh: 'KaringX/karing', _tOTwisFw: ['apk', 'universal-release'] },
                { _IUiWmmmU: 'S' + 'ing-Box', _TNvzWfmh: 'SagerNet/sing-box', _tOTwisFw: ['android', 'universal'] },
                { _IUiWmmmU: 'V2' + 'rayNG', _TNvzWfmh: '2dust/v2rayNG', _tOTwisFw: ['apk', 'arm64-v8a'] },
                { _IUiWmmmU: '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: [
                { _IUiWmmmU: 'Karing', fixedUrl: 'https://_MwbWHmNw.apple.com/us/_BGFaCftR/karing/id6472431552?_NmOrlwxP=iphone' },
                { _IUiWmmmU: 'S' + 'ing-Box', fixedUrl: 'https://_MwbWHmNw.apple.com/us/_BGFaCftR/sing-box-vt/id6673731168' },
                { _IUiWmmmU: 'Shadow' + 'rocket', fixedUrl: 'https://_MwbWHmNw.apple.com/us/_BGFaCftR/shadowrocket/id932747118' },
            ],
            windows: [
                { _IUiWmmmU: 'Karing', _TNvzWfmh: 'KaringX/karing', _tOTwisFw: ['exe', 'x64-setup'] },
                { _IUiWmmmU: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _IUiWmmmU: 'C' + 'lashN', _TNvzWfmh: '2dust/clashN', _tOTwisFw: ['clashN.zip'] },
            ],
            mac: [
                 { _IUiWmmmU: 'Karing', fixedUrl: 'https://_MwbWHmNw.apple.com/us/_BGFaCftR/karing/id6472431552?_NmOrlwxP=mac' },
                 { _IUiWmmmU: 'S' + 'ing-Box', fixedUrl: 'https://_MwbWHmNw.apple.com/us/_BGFaCftR/sing-box-vt/id6673731168' },
            ]
        };
        function _WnjHWtNs(_UNGfWfpn) {
            if (_ByPxqiGB.streamer._jkoNSIvl && (_UNGfWfpn.includes('github.com') || _UNGfWfpn.includes('cdn.jsdelivr.net'))) {
                return window._IGcMXPZi.origin + '/' + _UNGfWfpn.replace('://', ':/');
            }
            return _UNGfWfpn;
        }
        async function _tamzhfRZ(_TNvzWfmh, _tOTwisFw) {
            try {
                const _TWYTcqap = await fetch(_WnjHWtNs(`https://api.github.com/repos/${_TNvzWfmh}/releases/latest`));
                if (!_TWYTcqap.ok) return null;
                const _ApMdqruF = await _TWYTcqap.json();
                for (const _xmxsdkrO of _tOTwisFw) {
                    const _UnbURHhZ = _ApMdqruF.assets.find(a => a._IUiWmmmU.toLowerCase().includes(_xmxsdkrO.toLowerCase()));
                    if (_UnbURHhZ) return _UnbURHhZ.browser_download_url;
                }
                return null;
            } catch (_HiEJfbha) { return null; }
        }
        async function _PhGbHgNt(_NmOrlwxP) {
            const _lMjJsJWn = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_NmOrlwxP];
            _LnqDJVLe.querySelector('#appModalTitle').textContent = `${_lMjJsJWn} 客户端下载`;
            const _mvXbXPrs = _LnqDJVLe.querySelector('#appModalBody');
            _mvXbXPrs.innerHTML = '<span>正在获取最新版本...</span>';
            _LnqDJVLe._ceWDkDOB.display = 'flex';
            const _MwbWHmNw = _ZDHXCdqh[_NmOrlwxP];
            let _mwHbituu = '';
            for (const _BGFaCftR of _MwbWHmNw) {
                let _mtcUZhba = '';
                if (_BGFaCftR.fixedUrl) {
                    _mtcUZhba = `<a href="${_WnjHWtNs(_BGFaCftR.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_BGFaCftR.fixedUrl.split('/').pop()}</a>`;
                } else if (_BGFaCftR._TNvzWfmh) {
                    const _UNGfWfpn = await _tamzhfRZ(_BGFaCftR._TNvzWfmh, _BGFaCftR._tOTwisFw);
                    if (_UNGfWfpn) {
                        _mtcUZhba = `<a href="${_WnjHWtNs(_UNGfWfpn)}" target="_blank" rel="noopener noreferrer">${_UNGfWfpn.split('/').pop()}</a>`;
                    } else {
                        _mtcUZhba = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _mwHbituu += `<div class="_BGFaCftR-list-_GBEoFnDx"><span class="_BGFaCftR-_IUiWmmmU">${_BGFaCftR._IUiWmmmU}</span><div class="_BGFaCftR-links">${_mtcUZhba}</div></div>`;
            }
            _mvXbXPrs.innerHTML = _mwHbituu;
        }
        document.querySelectorAll('._BGFaCftR-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _PhGbHgNt(button.dataset._NmOrlwxP));
        });
        _LnqDJVLe.querySelector('.modal-close-btn').addEventListener('click', () => { _LnqDJVLe._ceWDkDOB.display = 'none'; });
        _LnqDJVLe.addEventListener('click', (_HiEJfbha) => { if (_HiEJfbha.target === _LnqDJVLe) _LnqDJVLe._ceWDkDOB.display = 'none'; });
    }
    function _KNCRuwFt(_OFzmTGAH, _OPhwfIVr) {
        let _RtvzwKWo, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_mwHbituu");
        for (_RtvzwKWo = 0; _RtvzwKWo < tabcontent._JddHRFkb; _RtvzwKWo++) {
            tabcontent[_RtvzwKWo]._ceWDkDOB.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_RtvzwKWo = 0; _RtvzwKWo < tablinks._JddHRFkb; _RtvzwKWo++) {
            tablinks[_RtvzwKWo].className = tablinks[_RtvzwKWo].className.replace(" active", "");
        }
        document.getElementById(_OPhwfIVr)._ceWDkDOB.display = "block";
        _OFzmTGAH.currentTarget.className += " active";
    }
    function _XRfFhRuG() {
        const _wCSHoEdy = document.createElement('div');
        _wCSHoEdy._TTtmLTmr = 'tooltip-popup';
        document._ABoGvlkq.appendChild(_wCSHoEdy);
        document.addEventListener('click', function(_HiEJfbha) {
            const _mmUhPlfW = _HiEJfbha.target.closest('.tooltip-_mmUhPlfW');
            if (_mmUhPlfW) {
                const _jcPqEnIk = _mmUhPlfW.dataset.tooltip;
                _wCSHoEdy.textContent = _jcPqEnIk;
                const _tyfTMBvx = _mmUhPlfW.getBoundingClientRect();
                _wCSHoEdy._ceWDkDOB.display = 'block';
                let _aLHpyXzM = _tyfTMBvx.bottom + window.scrollY + 5;
                let _pwsnCRRR = _tyfTMBvx._pwsnCRRR + window.scrollX;
                _wCSHoEdy._ceWDkDOB._aLHpyXzM = `${_aLHpyXzM}px`;
                _wCSHoEdy._ceWDkDOB._pwsnCRRR = `${_pwsnCRRR}px`;
                const _gKicZLBj = _wCSHoEdy.getBoundingClientRect();
                if (_gKicZLBj.right > window.innerWidth - 10) {
                    _pwsnCRRR = window.innerWidth - _gKicZLBj._kOgKwkOq - 10;
                }
                if (_gKicZLBj.bottom > window.innerHeight - 10) {
                    _aLHpyXzM = _tyfTMBvx._aLHpyXzM + window.scrollY - _gKicZLBj.height - 5;
                }
                _wCSHoEdy._ceWDkDOB._aLHpyXzM = `${_aLHpyXzM}px`;
                _wCSHoEdy._ceWDkDOB._pwsnCRRR = `${_pwsnCRRR}px`;
                _HiEJfbha.stopPropagation();
            } else if (_wCSHoEdy._ceWDkDOB.display === 'block') {
                _wCSHoEdy._ceWDkDOB.display = 'none';
            }
        });
    }
    const _ceWDkDOB = document.createElement('_ceWDkDOB');
    _ceWDkDOB.textContent = `
        .tab-button { background-_tcfAilsG: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _tcfAilsG: var(--_jcPqEnIk-light); font-size: 1em; }
        .tab-button:hover { background-_tcfAilsG: var(--border-_tcfAilsG); }
        .tab-button.active { _tcfAilsG: var(--primary-_tcfAilsG); border-bottom: 2px solid var(--primary-_tcfAilsG); }
        .tab-_mwHbituu { display: none; padding-_aLHpyXzM: 1rem; }
    `;
    document.head.appendChild(_ceWDkDOB);
    window.addEventListener('DOMContentLoaded', _mSDZqQXP);
</script>
</_ABoGvlkq></html>
`;
}