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


import { connect } from "cloudflare:sockets";

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

const _kqqwolDJ = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _ZpPHRpfd = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _IAFHVsyR = '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 _liChpaeb = '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 _UfBntfDo(_IxrLQWZq) {
    if (Array.isArray(_IxrLQWZq)) {
        try {
            return String.fromCharCode.apply(null, _IxrLQWZq);
        } catch (_UQsFbFsZ) {
            return '';
        }
    }
    return _IxrLQWZq;
}

function _DOCiPENj(_XItBVrFU) {
    return /^[0-9a-_QcKgtEtx]{8}-[0-9a-_QcKgtEtx]{4}-[4][0-9a-_QcKgtEtx]{3}-[89ab][0-9a-_QcKgtEtx]{3}-[0-9a-_QcKgtEtx]{12}$/_LzBQhpmd.test(_XItBVrFU);
}

const _HhqOqBkO = "optimized_ips_v4";
const _pIxYFgkO = "global_config_v4";
const _WYaMwXlS = "admin_password_v4";
const _IPFloQZt = "live_results_temp_v1";
const _GNBhRUEW = "latest_sub_id_v1";

export default {
  async fetch(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn) {
    try {
      if (!_fRlqVqCR.DB) {
          const _TtvzioYR = _iDpgbbSE("D1 数据库 'DB' 未绑定。");
          return new Response(_TtvzioYR, { status: 503, _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/html;_wtqCubuY=UTF-8' }});
      }

      _RDoWEHOn.waitUntil(
          _fRlqVqCR.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_WwdZHVsG TEXT PRIMARY KEY, _IxrLQWZq TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_XItBVrFU TEXT PRIMARY KEY, _EXQSsAbG TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_UQsFbFsZ => console.error("DB Init Error:", _UQsFbFsZ._YzuxBjrd))
      );

      const _uHSLwcDj = new URL(_IzHLhEGJ._uHSLwcDj);
      const _jzqYlrFe = _uHSLwcDj.pathname;
      const _pxTndKnb = _IzHLhEGJ._nQQyxIvQ.get("Upgrade");
      const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
      
      if (_VWOaYrNv.websocketStreamer && _VWOaYrNv.websocketStreamer._RHiGlNGb && _pxTndKnb && _pxTndKnb.toLowerCase() === "websocket") {
          const _dxWjwwRt = _VWOaYrNv.websocketStreamer._uHSLwcDj;
          if (_dxWjwwRt && _dxWjwwRt.trim().startsWith('https://')) {
              try {
                  const _uolWbQgI = new Request(_dxWjwwRt.trim() + _uHSLwcDj.pathname + _uHSLwcDj.search, _IzHLhEGJ);
                  return await fetch(_uolWbQgI);
              } catch (_UQsFbFsZ) {
                  return new Response(`Upstream WebSocket gateway failed: ${_UQsFbFsZ._YzuxBjrd}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_pxTndKnb && _pxTndKnb.toLowerCase() === "websocket") {
          return await _TsvtuFjx(_IzHLhEGJ, _fRlqVqCR, _VWOaYrNv);
      }
      
      const _QnRqOGRA = _jzqYlrFe._oXzxHYhu(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_QnRqOGRA) {
          const [, _nWJKBZJF, typeSuffix] = _QnRqOGRA;
          const _vTMflxAD = _VWOaYrNv._vTMflxAD;
          if (!_vTMflxAD || _vTMflxAD.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' } });
          }
          const _bIDFptcq = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _TYsuVITA = _bIDFptcq[typeSuffix];
          const _YnsWVFER = _vTMflxAD.replace(/\/$/, '');
          const _XttcCVwE = `${_uHSLwcDj.origin}/${_nWJKBZJF}`;
          const _SBXbOrij = `${_YnsWVFER}/${_TYsuVITA}?_VWOaYrNv=${encodeURIComponent(_XttcCVwE)}`;
          try {
              const _bZxeLCuY = await fetch(_SBXbOrij, { _nQQyxIvQ: { 'User-Agent': _IzHLhEGJ._nQQyxIvQ.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _cKPoPsmx = new Headers(_bZxeLCuY._nQQyxIvQ);
              _cKPoPsmx._YZJNJqsS('Access-Control-Allow-Origin', '*');
              return new Response(_bZxeLCuY._xiSDFndW, { status: _bZxeLCuY.status, statusText: _bZxeLCuY.statusText, _nQQyxIvQ: _cKPoPsmx });
          } catch (_UQsFbFsZ) {
              return new Response(`获取上游订阅失败: ${_UQsFbFsZ._YzuxBjrd}`, { status: 502, _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' } });
          }
      }

      if (_jzqYlrFe.startsWith('/https:/') || _jzqYlrFe.startsWith('/http:/')) {
          return _YOILxXeX(_IzHLhEGJ, _VWOaYrNv);
      }
      
      if (_VWOaYrNv.customSubPath && _VWOaYrNv.customSubPath._RHiGlNGb && _VWOaYrNv.customSubPath._jzqYlrFe && _jzqYlrFe === '/' + _VWOaYrNv.customSubPath._jzqYlrFe.trim()) {
          const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_GNBhRUEW);
          const { _QaSvivmg } = await _rxHoczFd.all();
          const _YiUxCUQJ = _QaSvivmg._aXvlfeii > 0 ? _QaSvivmg[0]._IxrLQWZq : null;
          if (_YiUxCUQJ) {
              return _IeAcZAUB({ _EhWeuwtF: { _XItBVrFU: _YiUxCUQJ }, _uHSLwcDj: _IzHLhEGJ._uHSLwcDj }, _fRlqVqCR);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' } });
          }
      }
      
      const _HnLrgaLt = _jzqYlrFe.split('/').filter(Boolean);
      if (_HnLrgaLt._aXvlfeii === 1 && !_jzqYlrFe.startsWith('/api/')) {
          const _nWJKBZJF = _HnLrgaLt[0];
          return _IeAcZAUB({ _EhWeuwtF: { _XItBVrFU: _nWJKBZJF }, _uHSLwcDj: _IzHLhEGJ._uHSLwcDj }, _fRlqVqCR);
      }

      if (_jzqYlrFe.startsWith('/api/')) {
          if (_jzqYlrFe === '/api/_VWOaYrNv' && _IzHLhEGJ.method === 'POST') return _IsuFaPGn(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn);
          if (_jzqYlrFe === '/api/_YZJNJqsS-_PbKatdDE') return _qHymETtQ(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/change-_PbKatdDE') return _DReQXHLh(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/verify-_PbKatdDE') return _XGkYfole(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/verify-visitor-_PbKatdDE' && _IzHLhEGJ.method === 'POST') return _zvfZTEjr(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/cache-live-_QaSvivmg' && _IzHLhEGJ.method === 'POST') return _VmXEUIss(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn);
          if (_jzqYlrFe === '/api/get-_Ygipgubb' && _IzHLhEGJ.method === 'POST') return _powCXolo(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/get-cached-_eHoapFhh') return _IhbehSHn(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/save-_eHoapFhh') return _wKAXeIha(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn);
          if (_jzqYlrFe === '/api/save-and-get-sub-_XItBVrFU' && _IzHLhEGJ.method === 'POST') return _ravTHgoO(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe.startsWith('/api/get-_fcHQUaic/')) {
              const _nWJKBZJF = _jzqYlrFe.split('/').pop();
              return _IeAcZAUB({ _EhWeuwtF: { _XItBVrFU: _nWJKBZJF }, _uHSLwcDj: _IzHLhEGJ._uHSLwcDj }, _fRlqVqCR);
          }
          if (_jzqYlrFe === '/api/_VWOaYrNv' && _IzHLhEGJ.method === 'GET') return _AtCDIeEa(_fRlqVqCR);
          if (_jzqYlrFe === '/api/get-resolved-_eHoapFhh') return _hqQErygz(_IzHLhEGJ);
          if (_jzqYlrFe === '/api/parse-_eHoapFhh-from-_OUKPxFzd' && _IzHLhEGJ.method === 'POST') return _avDFBUXi(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/endpoints') return _VssdmWeb(_IzHLhEGJ, _fRlqVqCR);
          if (_jzqYlrFe === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_jzqYlrFe === '/_WHEPWUJQ') return _JnMsNcrd(_IzHLhEGJ, _fRlqVqCR);
      if (_jzqYlrFe === '/bing-wallpaper') return _vbIjzxXX();

      return _xvOlDQTH(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn);
    } catch (err) {
      let _UQsFbFsZ = err;
      return new Response(_UQsFbFsZ.toString(), { status: 500 });
    }
  }
};

const _XUXRxobm = { 'Accept': '_YjWVVcUA/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 _eQsAtboL(_uHSLwcDj, _MRqFAmJB) {
    const _AaBQCexz = await fetch(_uHSLwcDj, { _nQQyxIvQ: { ..._XUXRxobm, 'Referer': _MRqFAmJB.referer } });
    if (_AaBQCexz.ok) return _AaBQCexz._YjWVVcUA();
    return null;
}

async function _VWQUmAoB(_uHSLwcDj, _MRqFAmJB) {
    const _JSNSAWTf = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_uHSLwcDj)}`;
    const _AaBQCexz = await fetch(_JSNSAWTf, { _nQQyxIvQ: { ..._XUXRxobm, 'Referer': _MRqFAmJB.referer } });
    if (!_AaBQCexz.ok) return null;
    const _xiSDFndW = await _AaBQCexz._YjWVVcUA();
    const _oXzxHYhu = _xiSDFndW._oXzxHYhu(/<pre[^>]*>([\s\S]*?)<\/pre>/_LzBQhpmd);
    return _oXzxHYhu && _oXzxHYhu[1] ? _oXzxHYhu[1].replace(/&amp;/g, '&') : null;
}

function _WpsuvhPG(_jGOnnFBw) {
    let _ruleHGYe;
    try {
        _ruleHGYe = atob(_jGOnnFBw.replace(/\s/g, ''));
    } catch (_UQsFbFsZ) {
        _ruleHGYe = _jGOnnFBw;
    }

    const _fcHQUaic = _ruleHGYe.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _fivUmUZJ = new Set();
    const _blPrKItQ = /@([^?#]+?):(\d+)/;

    for (const _FJBpMokz of _fcHQUaic) {
        let _UQUUFArf = '';
        let _hZFhznoG = '';

        try {
            if (_FJBpMokz.startsWith('vmess://')) {
                const _UDXgyHoj = atob(_FJBpMokz.substring(8));
                const _VWOaYrNv = JSON.parse(_UDXgyHoj);
                _UQUUFArf = _VWOaYrNv.add;
                _hZFhznoG = _VWOaYrNv._hZFhznoG;
            } else {
                const _oXzxHYhu = _FJBpMokz._oXzxHYhu(_blPrKItQ);
                if (_oXzxHYhu && _oXzxHYhu[1] && _oXzxHYhu[2]) {
                    _UQUUFArf = _oXzxHYhu[1].replace(/[\[\]]/g, '');
                    _hZFhznoG = _oXzxHYhu[2];
                }
            }
        } catch (_UQsFbFsZ) {
            console.warn(`Could not parse _FJBpMokz: ${_FJBpMokz}`);
        }

        if (_UQUUFArf && _hZFhznoG) {
            _fivUmUZJ.add(`${_UQUUFArf}:${_hZFhznoG}`);
        }
    }
    return Array.from(_fivUmUZJ);
}

async function _mKFhOqOU(_TNwwePBG) {
    try {
        const _AaBQCexz = await fetch(_TNwwePBG, { _nQQyxIvQ: _XUXRxobm });
        if (!_AaBQCexz.ok) {
            console.error(`Failed to fetch subscription: ${_AaBQCexz.status}`);
            return [];
        }
        const _jGOnnFBw = await _AaBQCexz._YjWVVcUA();
        return _WpsuvhPG(_jGOnnFBw);
    } catch (error) {
        console.error(`Error processing subscription ${_TNwwePBG}:`, error);
        return [];
    }
}

async function _PqQZFqjx(_vYeMoSlI) {
    const _grsmmpsD = _vYeMoSlI.trim();
    const _yfoaQEdm = /^(vless|vmess|trojan|ss):\/\//.test(_grsmmpsD);
    const _uURvUcTg = (() => {
        if (_grsmmpsD._aXvlfeii < 20 || _grsmmpsD.startsWith('http')) return false;
        const _fTWvnHsm = _grsmmpsD.replace(/\s/g, '');
        if (_fTWvnHsm._aXvlfeii % 4 !== 0 && !_fTWvnHsm.includes('=')) return false;
        try {
            atob(_fTWvnHsm);
            return true;
        } catch (_UQsFbFsZ) {
            return false;
        }
    })();

    if (_yfoaQEdm || _uURvUcTg) {
        return _WpsuvhPG(_grsmmpsD).join('\n');
    }

    const _pkTLIETg = [
        'https://ipdb.api.030101.xyz/?_OZZMoDle=bestcf&_UYlmFqeX=true',
        'https://ipdb.api.030101.xyz/?_OZZMoDle=bestproxy&_UYlmFqeX=true'
    ];
    const _WXBEkqNP = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_LzBQhpmd.test(_vYeMoSlI) || _vYeMoSlI.includes('?_rwOMWNnH=');

    if (_WXBEkqNP) {
        const _eHoapFhh = await _mKFhOqOU(_vYeMoSlI);
        return _eHoapFhh.join('\n');
    }

    let _jGOnnFBw = '';
    if (_pkTLIETg.includes(_vYeMoSlI)) {
        _jGOnnFBw = await _eQsAtboL(_vYeMoSlI, { referer: _vYeMoSlI });
        if (!_jGOnnFBw || _jGOnnFBw._aXvlfeii < 8) {
            _jGOnnFBw = await _VWQUmAoB(_vYeMoSlI, { referer: _vYeMoSlI });
        }
    } else {
        try {
            const _XyPGHhwU = await fetch(_vYeMoSlI, { _nQQyxIvQ: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_XyPGHhwU.ok) {
                _jGOnnFBw = await _XyPGHhwU._YjWVVcUA();
            } else {
                console.warn(`Failed to fetch URL ${_vYeMoSlI}: ${_XyPGHhwU.status}`);
            }
        } catch (_UQsFbFsZ) {
            console.error(`Error fetching URL ${_vYeMoSlI}:`, _UQsFbFsZ);
        }
    }

    const _ayqOGFGV = _WpsuvhPG(_jGOnnFBw);
    if (_ayqOGFGV._aXvlfeii > 0) {
        return _ayqOGFGV.join('\n');
    }

    return _jGOnnFBw || '';
}

async function _YOILxXeX(_IzHLhEGJ, _VWOaYrNv) {
    if (!_VWOaYrNv.streamer._RHiGlNGb) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _uHSLwcDj = new URL(_IzHLhEGJ._uHSLwcDj);
    const _nAEUZxIn = _uHSLwcDj.pathname.substring(1).replace(':/', '://');
    try {
        const _SBXbOrij = new URL(_nAEUZxIn);
        const _AguvEeps = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_AguvEeps.some(domain => _SBXbOrij._UQUUFArf.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _HdpFQNWS = new Headers(_IzHLhEGJ._nQQyxIvQ);
        _HdpFQNWS._YZJNJqsS('Host', _SBXbOrij._UQUUFArf);
        _HdpFQNWS._YZJNJqsS('User-Agent', 'CF-Worker-Streamer/1.0');
        const _LasrysoY = await fetch(_SBXbOrij.toString(), {
            method: _IzHLhEGJ.method,
            _nQQyxIvQ: _HdpFQNWS,
            _xiSDFndW: _IzHLhEGJ._xiSDFndW,
        });
        const _cKPoPsmx = new Headers(_LasrysoY._nQQyxIvQ);
        _cKPoPsmx._YZJNJqsS('Access-Control-Allow-Origin', '*');
        _cKPoPsmx._YZJNJqsS('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _cKPoPsmx._YZJNJqsS('Access-Control-Allow-Headers', '*');
        _cKPoPsmx._YZJNJqsS('Cache-Control', 'public, max-age=86400');
        _cKPoPsmx._YZJNJqsS('X-Streamer-Source', 'CF-Worker');
        _cKPoPsmx.delete('_jGOnnFBw-security-policy');
        _cKPoPsmx.delete('x-_jGOnnFBw-security-policy');
        _cKPoPsmx.delete('x-webkit-csp');
        return new Response(_LasrysoY._xiSDFndW, {
            status: _LasrysoY.status,
            statusText: _LasrysoY.statusText,
            _nQQyxIvQ: _cKPoPsmx,
        });
    } catch (_UQsFbFsZ) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _TsvtuFjx(_IzHLhEGJ, _fRlqVqCR, _VWOaYrNv) {
    try {
        const _suecgqge = _VWOaYrNv || await _KlZgCIHm(_fRlqVqCR);
        const _gyeByGJv = (_suecgqge.itemLink._LziXBEPf && _suecgqge.itemLink._LziXBEPf[0]) || {};
        const _ByRSPghN = _gyeByGJv['_rwOMWNnH'] || _UfBntfDo(_eatyxIxj);

        if (!_DOCiPENj(_ByRSPghN)) {
            throw new Error("Configured user _nMOGxCIe is not valid.");
        }

        const _ezeSjlDr = _suecgqge.dataFeeds.universalFallbackAddress;
        let _yPXtaBzJ = {};
        
        const _eJUtcDfz = _UfBntfDo(_YqNRSMAM[0] || "");

        if (_ezeSjlDr) {
            const [_QovRIXIW, _hZFhznoG = '443'] = _ezeSjlDr.split(':');
            _yPXtaBzJ = { _QovRIXIW, _hZFhznoG };
        } else {
            const [_QovRIXIW, _hZFhznoG = '443'] = _eJUtcDfz.split(':');
            _yPXtaBzJ = { _QovRIXIW, _hZFhznoG };
        }

        const _uHSLwcDj = new URL(_IzHLhEGJ._uHSLwcDj);
        const _jzqYlrFe = _uHSLwcDj.pathname;
        let _xIRSFAox = '';

        const _usCcKHKd = _uHSLwcDj.searchParams.get('remote');
        if (_usCcKHKd) {
           _xIRSFAox = atob(_usCcKHKd);
        } else if (_jzqYlrFe.startsWith('/endpoint=')) {
           _xIRSFAox = _jzqYlrFe.substring(10);
        } else if (_jzqYlrFe._aXvlfeii > 1 && _jzqYlrFe.substring(1).includes('.')) {
           _xIRSFAox = _jzqYlrFe.substring(1);
        }

        if (_xIRSFAox) {
            const [_QovRIXIW, _hZFhznoG = '443'] = _xIRSFAox.split(':');
            _yPXtaBzJ = { _QovRIXIW, _hZFhznoG };
        }
        
        return await _YPFsMQzP(_IzHLhEGJ, _ByRSPghN, _yPXtaBzJ);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _YPFsMQzP(_IzHLhEGJ, _nMOGxCIe, _yPXtaBzJ) {
    const _DkwQGjUX = new WebSocketPair();
    const [clientEnd, _kdEYnFql] = Object.values(_DkwQGjUX);
    _kdEYnFql.accept();

    let _jJvyeCCD = { _OaueNlGE: null };
    const _MDikCBTy = _IzHLhEGJ._nQQyxIvQ.get("sec-websocket-protocol") || "";
    const _jxBMyroA = _MajInASX(_kdEYnFql, _MDikCBTy);

    _jxBMyroA.pipeTo(new WritableStream({
        async write(chunk) {
            if (_jJvyeCCD._OaueNlGE) {
                const _qLFjMmtn = _jJvyeCCD._OaueNlGE.writable.getWriter();
                await _qLFjMmtn.write(chunk);
                _qLFjMmtn.releaseLock();
                return;
            }

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

            const _OZlgnrwJ = new Uint8Array([details._GzHBjrdz[0], 0]);
            const _vBNxHLYz = chunk.slice(details.payloadIndex);

            await _ksIAMXcr(_jJvyeCCD, details._yqXaiMkr, details._phGrOGZh, _vBNxHLYz, _kdEYnFql, _OZlgnrwJ, _yPXtaBzJ);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _DjzyzXhX(_kdEYnFql);
    });

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

async function _ksIAMXcr(_jJvyeCCD, _yqXaiMkr, _phGrOGZh, _ebQNUozQ, _QjGYFSBu, _OZlgnrwJ, _wAnmCsIX) {
    const _SZiTFMlz = async (_QovRIXIW, _hZFhznoG) => {
        let _vfPalhGE = _QovRIXIW;
        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(_QovRIXIW)) {
            _vfPalhGE = `${atob('d3d3Lg==')}${_QovRIXIW}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _OaueNlGE = connect({ _UQUUFArf: _vfPalhGE, _hZFhznoG });
        _jJvyeCCD._OaueNlGE = _OaueNlGE;
        const _qLFjMmtn = _OaueNlGE.writable.getWriter();
        await _qLFjMmtn.write(_ebQNUozQ);
        _qLFjMmtn.releaseLock();
        return _OaueNlGE;
    };

    const _kyUmlsLH = async () => {
        if (!_wAnmCsIX._QovRIXIW) return;
        console.log(`Direct connection failed, falling back to gateway: ${_wAnmCsIX._QovRIXIW}`);
        const _UGVBACxN = await _SZiTFMlz(_wAnmCsIX._QovRIXIW, parseInt(_wAnmCsIX._hZFhznoG, 10));
        _UGVBACxN.closed.catch(() => {}).finally(() => _DjzyzXhX(_QjGYFSBu));
        _NfPhXlzc(_UGVBACxN, _QjGYFSBu, _OZlgnrwJ, null);
    };

    try {
        const _PowwrUSx = await _SZiTFMlz(_yqXaiMkr, _phGrOGZh);
        _NfPhXlzc(_PowwrUSx, _QjGYFSBu, _OZlgnrwJ, _kyUmlsLH);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _kyUmlsLH();
    }
}

function _MajInASX(_kdEYnFql, _MDikCBTy) {
    let _tJbiQsGR = false;
    return new ReadableStream({
        start(_kLPWFJdW) {
            _kdEYnFql.addEventListener("_YzuxBjrd", (event) => { if (_tJbiQsGR) return; _kLPWFJdW.enqueue(event._EXQSsAbG); });
            _kdEYnFql.addEventListener("close", () => { _DjzyzXhX(_kdEYnFql); if (_tJbiQsGR) return; _kLPWFJdW.close(); });
            _kdEYnFql.addEventListener("error", (err) => _kLPWFJdW.error(err));
            if (_MDikCBTy) {
                try {
                    const _KFYzzhVo = atob(_MDikCBTy.replace(/-/g, "+").replace(/_/g, "/"));
                    _kLPWFJdW.enqueue(Uint8Array.from(_KFYzzhVo, c => c.charCodeAt(0))._GeOZCbBA);
                } catch (_UQsFbFsZ) { console.error("Failed to decode early _EXQSsAbG:", _UQsFbFsZ); }
            }
        },
        cancel() { _tJbiQsGR = true; _DjzyzXhX(_kdEYnFql); },
    });
}

async function _omYXVPQH(_GeOZCbBA, _nMOGxCIe) {
    if (_GeOZCbBA.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _GzHBjrdz = new Uint8Array(_GeOZCbBA.slice(0, 1));
    const _MSvpnMWD = _sZGepLLj(new Uint8Array(_GeOZCbBA.slice(1, 17)));
    if (_MSvpnMWD !== _nMOGxCIe) return { error: true, details: "Invalid _nMOGxCIe" };
    const _kfpRaQSC = new Uint8Array(_GeOZCbBA.slice(17, 18))[0];
    const _weGJSgfP = new Uint8Array(_GeOZCbBA.slice(18 + _kfpRaQSC, 19 + _kfpRaQSC))[0];
    if (_weGJSgfP !== 1) return { error: true, details: `Unsupported _weGJSgfP: ${_weGJSgfP}` };
    const _azzkeAws = 19 + _kfpRaQSC;
    const _phGrOGZh = new DataView(_GeOZCbBA.slice(_azzkeAws, _azzkeAws + 2)).getUint16(0);
    let _nasOiekm = _azzkeAws + 2;
    const _bFfeWNLk = new Uint8Array(_GeOZCbBA.slice(_nasOiekm, _nasOiekm + 1))[0];
    let _WpUxiNFI = 0;
    let _JZrziYYI = _nasOiekm + 1;
    let _yqXaiMkr = "";
    switch (_bFfeWNLk) {
        case 1: _WpUxiNFI = 4; _yqXaiMkr = new Uint8Array(_GeOZCbBA.slice(_JZrziYYI, _JZrziYYI + _WpUxiNFI)).join("."); break;
        case 2: _WpUxiNFI = new Uint8Array(_GeOZCbBA.slice(_JZrziYYI, _JZrziYYI + 1))[0]; _JZrziYYI++; _yqXaiMkr = new TextDecoder().decode(_GeOZCbBA.slice(_JZrziYYI, _JZrziYYI + _WpUxiNFI)); break;
        case 3: _WpUxiNFI = 16; const _bFsofaqD = new DataView(_GeOZCbBA.slice(_JZrziYYI, _JZrziYYI + _WpUxiNFI)); const _pcSTngrT = []; for (let _LzBQhpmd = 0; _LzBQhpmd < 8; _LzBQhpmd++) _pcSTngrT.push(_bFsofaqD.getUint16(_LzBQhpmd * 2).toString(16)); _yqXaiMkr = _pcSTngrT.join(":"); break;
        default: return { error: true, details: `Invalid _WTImSQLA _OZZMoDle: ${_bFfeWNLk}` };
    }
    if (!_yqXaiMkr) return { error: true, details: "Target _QovRIXIW is empty" };
    return { error: false, details: { _yqXaiMkr, _phGrOGZh, _GzHBjrdz, payloadIndex: _JZrziYYI + _WpUxiNFI } };
}

async function _NfPhXlzc(_OaueNlGE, _QjGYFSBu, _QzJtcmPz, _hRidXDbF) {
    let _GIniaklg = _QzJtcmPz;
    let _TRKEkjUv = false;
    let _QEGGFqMf = _OaueNlGE._jxBMyroA.pipeTo(new WritableStream({
        write(chunk) {
            _TRKEkjUv = true;
            if (_QjGYFSBu.readyState !== 1) throw new Error("Channel is not open");
            if (_GIniaklg) {
                const _bHWvsGMr = new Uint8Array(_GIniaklg.byteLength + chunk.byteLength);
                _bHWvsGMr._YZJNJqsS(new Uint8Array(_GIniaklg));
                _bHWvsGMr._YZJNJqsS(new Uint8Array(chunk), _GIniaklg.byteLength);
                _QjGYFSBu.send(_bHWvsGMr._GeOZCbBA);
                _GIniaklg = null;
            } else {
                _QjGYFSBu.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _QjGYFSBu error:", err._YzuxBjrd);
    });

    await _QEGGFqMf;
    if (!_TRKEkjUv && _hRidXDbF) {
        _hRidXDbF();
    }
}

function _DjzyzXhX(_QjGYFSBu) {
    try { if (_QjGYFSBu.readyState === 1 || _QjGYFSBu.readyState === 2) _QjGYFSBu.close(); } catch (_UQsFbFsZ) {}
}

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

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

async function _KDYmvXSP(_uHSLwcDj, _OhPGAFjc, _hRidXDbF) {
    try {
        const _AaBQCexz = await fetch(_uHSLwcDj, {
            _nQQyxIvQ: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_AaBQCexz.ok) {
            console.error(`获取 ${_uHSLwcDj} 失败: HTTP ${_AaBQCexz.status}`);
            return _hRidXDbF;
        }
        const _YjWVVcUA = await _AaBQCexz._YjWVVcUA();
        return _OhPGAFjc(_YjWVVcUA);
    } catch (error) {
        console.error(`获取或解析 ${_uHSLwcDj} 时发生网络错误: ${error._YzuxBjrd}`);
        return _hRidXDbF;
    }
}

function _gzreHkGw(_YjWVVcUA) {
    if (!_YjWVVcUA) return [];
    const _ebzlZgAi = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _szmRZjXd = _YjWVVcUA.split(/[\s,;#|]+/);
    const _FTbokEbG = [];
    for (const _DnqUVMvP of _szmRZjXd) {
        const _UWfoXSOv = _DnqUVMvP.trim();
        if (!_UWfoXSOv) continue;
        const _clHsYBvA = _UWfoXSOv.lastIndexOf(':');
        let _sIrwLHPu = _UWfoXSOv;
        if(_clHsYBvA > _UWfoXSOv.lastIndexOf(']')) {
             const _FVOJLqxU = _UWfoXSOv.substring(_clHsYBvA + 1);
             if(!isNaN(_FVOJLqxU) && _FVOJLqxU._aXvlfeii > 0) {
                _sIrwLHPu = _UWfoXSOv.substring(0, _clHsYBvA);
             }
        }
        if (_appCKURi.isValid(_sIrwLHPu.replace(/[\[\]]/g, '')) || _ebzlZgAi.test(_UWfoXSOv)) {
            _FTbokEbG.push(_UWfoXSOv);
        }
    }
    return _FTbokEbG;
}

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

function _NfQrvLCW(_YjWVVcUA) {
    if (!_YjWVVcUA) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_YjWVVcUA}}`);
    } catch (_UQsFbFsZ) {
        console.error("解析 _ZuaBDvTh 失败:", _UQsFbFsZ);
        return { "N/A": "未知" };
    }
}

const _appCKURi = {
    isValid: (_WHEPWUJQ) => _appCKURi.isIPv4(_WHEPWUJQ) || _appCKURi.isIPv6(_WHEPWUJQ),
    isIPv4: (_WHEPWUJQ) => {
        if (typeof _WHEPWUJQ !== 'string') return false;
        const _pcSTngrT = _WHEPWUJQ.split('.');
        if (_pcSTngrT._aXvlfeii !== 4) return false;
        return _pcSTngrT.every(_qfWwpMQy => {
            const _DIqEgDYQ = parseInt(_qfWwpMQy, 10);
            return !isNaN(_DIqEgDYQ) && _DIqEgDYQ >= 0 && _DIqEgDYQ <= 255 && String(_DIqEgDYQ) === _qfWwpMQy;
        });
    },
    isIPv6: (_WHEPWUJQ) => {
        if (typeof _WHEPWUJQ !== '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]))$/_LzBQhpmd.test(_WHEPWUJQ);
    },
    toLong4: (_WHEPWUJQ) => _WHEPWUJQ.split('.').reduce((acc, octet, _LzBQhpmd) => acc + (parseInt(octet) << (8*(3-_LzBQhpmd))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_WHEPWUJQ) => {
        try {
            const _sBEvfjUU = _WHEPWUJQ.split('/')[0];
            const _pcSTngrT = _sBEvfjUU.split('::');
            if (_pcSTngrT._aXvlfeii > 2) return 0n;
            let _IkyrzizL = [];
            if (_pcSTngrT[0]) {
                _IkyrzizL = _pcSTngrT[0].split(':');
            }
            let _vUWrFlbd = [];
            if (_pcSTngrT._aXvlfeii > 1 && _pcSTngrT[1]) {
                _vUWrFlbd = _pcSTngrT[1].split(':');
            }
            if (_IkyrzizL._aXvlfeii + _vUWrFlbd._aXvlfeii > 8) return 0n;
            const _fWXZfxNJ = 8 - (_IkyrzizL._aXvlfeii + _vUWrFlbd._aXvlfeii);
            const _QamkWOaA = [
                ..._IkyrzizL,
                ...Array(_fWXZfxNJ).fill('0'),
                ..._vUWrFlbd
            ].map(_qfWwpMQy => _qfWwpMQy || '0');
            while(_QamkWOaA._aXvlfeii < 8) {
                _QamkWOaA.push('0');
            }
            let _HXlcLjpK = 0n;
            for (const _qfWwpMQy of _QamkWOaA) {
                if (_qfWwpMQy._aXvlfeii > 4) return 0n;
                const _IxrLQWZq = BigInt('0x' + _qfWwpMQy);
                _HXlcLjpK = (_HXlcLjpK << 16n) | _IxrLQWZq;
            }
            return _HXlcLjpK;
        } catch(_UQsFbFsZ) {
            return 0n;
        }
    },
    fromBigInt6: (_HXlcLjpK) => {
        if (typeof _HXlcLjpK !== '_HXlcLjpK' || _HXlcLjpK < 0n) return null;
        const _pcSTngrT = [];
        for (let _LzBQhpmd = 0; _LzBQhpmd < 8; _LzBQhpmd++) {
            _pcSTngrT.unshift((_HXlcLjpK & 0xFFFFn).toString(16));
            _HXlcLjpK >>= 16n;
        }
        let _JLJGEJYx = { start: -1, _COOdZUSo: 0 };
        let _XOXmjZnt = { start: -1, _COOdZUSo: 0 };
        for (let _LzBQhpmd = 0; _LzBQhpmd < 8; _LzBQhpmd++) {
            if (_pcSTngrT[_LzBQhpmd] === '0') {
                if (_XOXmjZnt.start === -1) _XOXmjZnt.start = _LzBQhpmd;
                _XOXmjZnt._COOdZUSo++;
            } else {
                if (_XOXmjZnt._COOdZUSo > _JLJGEJYx._COOdZUSo) _JLJGEJYx = { ..._XOXmjZnt };
                _XOXmjZnt = { start: -1, _COOdZUSo: 0 };
            }
        }
        if (_XOXmjZnt._COOdZUSo > _JLJGEJYx._COOdZUSo) _JLJGEJYx = { ..._XOXmjZnt };
        if (_JLJGEJYx._COOdZUSo > 1) {
            _pcSTngrT.splice(_JLJGEJYx.start, _JLJGEJYx._COOdZUSo, '');
            if (_JLJGEJYx.start === 0) _pcSTngrT.unshift('');
            if (_JLJGEJYx.start + _JLJGEJYx._COOdZUSo === 8) _pcSTngrT.push('');
        }
        return _pcSTngrT.join(':');
    },
    cidrToRange: (cidr, _BPHWddUk = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _VSdOCNqB = parseInt(bitsStr, 10);
            const _eHoapFhh = new Set();
            if (_appCKURi.isIPv4(range)) {
                if (isNaN(_VSdOCNqB) || _VSdOCNqB < 8 || _VSdOCNqB > 32) return [];
                if (_VSdOCNqB === 32) return [range];
                const _jIUErqAD = _appCKURi.toLong4(range);
                const _QSvjfhKC = (0xFFFFFFFF << (32 - _VSdOCNqB)) >>> 0;
                const _QJIzIOAy = _jIUErqAD & _QSvjfhKC;
                const _CfGXUuzO = 1 << (32 - _VSdOCNqB);
                if (_CfGXUuzO <= 2) return [];
                const _hmnpyFzh = Math.min(_BPHWddUk, _CfGXUuzO - 2);
                let _EMJGrGJh = 0;
                while (_eHoapFhh.size < _hmnpyFzh && _EMJGrGJh < _hmnpyFzh * 5) {
                    const _vLnoZIKR = Math.floor(Math.random() * (_CfGXUuzO - 2)) + 1;
                    _eHoapFhh.add(_appCKURi.fromLong4((_QJIzIOAy + _vLnoZIKR) >>> 0));
                    _EMJGrGJh++;
                }
                return Array.from(_eHoapFhh);
            } else if (_appCKURi.isIPv6(range)) {
                if (isNaN(_VSdOCNqB) || _VSdOCNqB < 16 || _VSdOCNqB > 128) return [];
                 if (_VSdOCNqB === 128) return [range];
                const _hiGMTfrg = _appCKURi.toBigInt6(range);
                const _QSvjfhKC = (2n ** BigInt(128 - _VSdOCNqB) - 1n);
                const _QJIzIOAy = _hiGMTfrg & ~_QSvjfhKC;
                const _WGvUxCoa = 2n ** BigInt(128 - _VSdOCNqB);
                if (_WGvUxCoa <= 2n) return [];
                let _EMJGrGJh = 0;
                while (_eHoapFhh.size < _BPHWddUk && _EMJGrGJh < _BPHWddUk * 5) {
                     const _FIsArHlT = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_FIsArHlT);
                     let _iUYECJQB = 0n;
                     for (const _KOabrntZ of _FIsArHlT) {
                         _iUYECJQB = (_iUYECJQB << 8n) | BigInt(_KOabrntZ);
                     }
                     const _vLnoZIKR = _iUYECJQB % (_WGvUxCoa - 2n) + 1n;
                     _eHoapFhh.add(_appCKURi.fromBigInt6(_QJIzIOAy + _vLnoZIKR));
                     _EMJGrGJh++;
                }
                return Array.from(_eHoapFhh);
            }
            return [];
        } catch(_UQsFbFsZ) {
            console.error(`CIDR to range failed for ${cidr}:`, _UQsFbFsZ);
            return [];
        }
    }
};

function _udwmUafU(_NZfsEYqG, _GMrCzQPY) {
    const _MpssZshV = {};
    const _gQKOaGLK = Object._gQKOaGLK(_GMrCzQPY);
    const _pcSTngrT = _gQKOaGLK.map(_WwdZHVsG => {
        const _VIhEOqPz = _NZfsEYqG * (_GMrCzQPY[_WwdZHVsG] / 100);
        return { _WwdZHVsG, _BPHWddUk: Math.floor(_VIhEOqPz), remainder: _VIhEOqPz - Math.floor(_VIhEOqPz) };
    });
    let _oHlxTSwz = _pcSTngrT.reduce((acc, _qfWwpMQy) => acc + _qfWwpMQy._BPHWddUk, 0);
    _pcSTngrT.sort((a, b) => b.remainder - a.remainder);
    let _gZtkUvDv = _NZfsEYqG - _oHlxTSwz;
    for (let _LzBQhpmd = 0; _LzBQhpmd < _gZtkUvDv; _LzBQhpmd++) {
        _pcSTngrT[_LzBQhpmd % _pcSTngrT._aXvlfeii]._BPHWddUk++;
    }
    for (const _qfWwpMQy of _pcSTngrT) {
        _MpssZshV[_qfWwpMQy._WwdZHVsG] = _qfWwpMQy._BPHWddUk;
    }
    return _MpssZshV;
}

async function _NSZEvqJq(_fRlqVqCR) {
    const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_WYaMwXlS);
    const { _QaSvivmg } = await _rxHoczFd.all();
    return _QaSvivmg._aXvlfeii > 0 ? _QaSvivmg[0]._IxrLQWZq : null;
}

async function _ReKShSRJ(_fRlqVqCR, _PbKatdDE) {
    const _rxHoczFd = _fRlqVqCR.DB.prepare(
        "INSERT INTO kv_data (_WwdZHVsG, _IxrLQWZq) VALUES (?, ?) ON CONFLICT(_WwdZHVsG) DO UPDATE SET _IxrLQWZq = excluded._IxrLQWZq"
    );
    await _rxHoczFd.bind(_WYaMwXlS, _PbKatdDE).run();
}

async function _XGkYfole(_IzHLhEGJ, _fRlqVqCR) {
    const { _PbKatdDE } = await _IzHLhEGJ.json();
    const _bNlaJhKK = await _NSZEvqJq(_fRlqVqCR);
    if (_bNlaJhKK === _PbKatdDE) {
        return _gJBAaLEx({ success: true });
    }
    return _gJBAaLEx({ success: false, _YzuxBjrd: '密码错误' }, 401);
}

async function _zvfZTEjr(_IzHLhEGJ, _fRlqVqCR) {
    const _vdylzgFG = await _KlZgCIHm(_fRlqVqCR);
    if (!_vdylzgFG.visitorPassword || !_vdylzgFG.visitorPassword._RHiGlNGb) {
        return _gJBAaLEx({ success: true });
    }
    try {
        const { _PbKatdDE } = await _IzHLhEGJ.json();
        const _GQZbvUZO = _vdylzgFG.visitorPassword._PbKatdDE;
        if (_GQZbvUZO && _PbKatdDE === _GQZbvUZO) {
            return _gJBAaLEx({ success: true });
        }
        return _gJBAaLEx({ success: false, _YzuxBjrd: '访客密码错误' }, 401);
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: '无效请求' }, 400);
    }
}

async function _qHymETtQ(_IzHLhEGJ, _fRlqVqCR) {
    const _AQhinxTa = await _NSZEvqJq(_fRlqVqCR);
    if (_AQhinxTa) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _PbKatdDE } = await _IzHLhEGJ.json();
    if (!_PbKatdDE || _PbKatdDE._aXvlfeii < 6) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: "密码长度不能少于6位。" }, 400);
    }
    await _ReKShSRJ(_fRlqVqCR, _PbKatdDE);
    return _gJBAaLEx({ success: true, _YzuxBjrd: "初始密码设置成功!请刷新页面并登录。" });
}

async function _DReQXHLh(_IzHLhEGJ, _fRlqVqCR) {
    const { _itFxKLth, _dKocdSnm } = await _IzHLhEGJ.json();
    const _bNlaJhKK = await _NSZEvqJq(_fRlqVqCR);
    if (_bNlaJhKK !== _itFxKLth) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: "旧密码错误。" }, 403);
    }
    if (!_dKocdSnm || _dKocdSnm._aXvlfeii < 6) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: "新密码长度不能少于6位。" }, 400);
    }
    await _ReKShSRJ(_fRlqVqCR, _dKocdSnm);
    return _gJBAaLEx({ success: true, _YzuxBjrd: "密码修改成功!" });
}

function _FaZtWAUF() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _vTMflxAD: '',
        api: {
            _RHiGlNGb: true,
            _YzuxBjrd: '维护中...',
        },
        ispFilter: { _RHiGlNGb: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _RHiGlNGb: true
        },
        websocketStreamer: {
            _RHiGlNGb: true,
            _uHSLwcDj: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _RHiGlNGb: true
        },
        visitorPassword: {
            _RHiGlNGb: false,
            _PbKatdDE: '',
        },
        customSubPath: {
            _RHiGlNGb: false,
            _jzqYlrFe: 'latest',
        },
        subscriptionId: {
            _aXvlfeii: 8,
            _wtqCubuY: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _RHiGlNGb: true,
            template: 'vless://{_rwOMWNnH}@{_WHEPWUJQ}:{_hZFhznoG}?encryption=none&security=tls&sni={_QovRIXIW}&fp=random&_OZZMoDle=ws&_QovRIXIW={_QovRIXIW}&_jzqYlrFe={_jzqYlrFe}#{_EGokjVLK}',
            selectionMode: 'first',
            _LziXBEPf: [
                { _EGokjVLK: '默认配置', _QovRIXIW: '', '_rwOMWNnH': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _jzqYlrFe: '/?ed=2560' }
            ],
            _otJqhsFn: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _RHiGlNGb: false,
                _YjWVVcUA: '',
                _zTnlloQX: 5
            },
            marquee: {
                _RHiGlNGb: false,
                _YjWVVcUA: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _RHiGlNGb: true,
            sources: [
                { _eUhZBiAC: 'CF官方IPV4', _eHoapFhh: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 20 },
                { _eUhZBiAC: 'CF官方IPV6', _eHoapFhh: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 20 },
                { _eUhZBiAC: '反代优选0', _eHoapFhh: 'https://wvs.sosorg.nyc.mn/sub?_rwOMWNnH=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_OZZMoDle=ws&_QovRIXIW=ss.nzvrn.com&_jzqYlrFe=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 30 },
                { _eUhZBiAC: '官方优选1', _eHoapFhh: 'https://ipdb.api.030101.xyz/?_OZZMoDle=bestcf&_UYlmFqeX=true', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 10 },
                { _eUhZBiAC: '反代优选2', _eHoapFhh: 'https://ipdb.api.030101.xyz/?_OZZMoDle=bestproxy&_UYlmFqeX=true', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 5 },
                { _eUhZBiAC: '官方优选2', _eHoapFhh: 'https://addressesapi.090227.xyz/_WHEPWUJQ.164746.xyz', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 10 },
				{ _eUhZBiAC: '官方优选3', _eHoapFhh: 'https://cfxr.eu.org/getSub?_QovRIXIW=snipaste.huggy.qzz.io', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 5 },
                { _eUhZBiAC: '官方优选4', _eHoapFhh: 'https://addressesapi.090227.xyz/CloudFlareYes', _NWFRkhAb: false, _RHiGlNGb: true, _ehzgUHhj: 10 }
            ]
        },
        customNodes: {
            _RHiGlNGb: 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 _JtnxrShE(_lsUMsBNd, _dKeNfbSt) {
    if (!_lsUMsBNd) return _dKeNfbSt;
    const _DVkPolqs = { ..._dKeNfbSt };
    for (const _WwdZHVsG in _dKeNfbSt) {
        if (_lsUMsBNd.hasOwnProperty(_WwdZHVsG)) {
             if (typeof _lsUMsBNd[_WwdZHVsG] === 'object' && _lsUMsBNd[_WwdZHVsG] !== null && !Array.isArray(_lsUMsBNd[_WwdZHVsG]) && typeof _dKeNfbSt[_WwdZHVsG] === 'object' && _dKeNfbSt[_WwdZHVsG] !== null && !Array.isArray(_dKeNfbSt[_WwdZHVsG])) {
                _DVkPolqs[_WwdZHVsG] = _JtnxrShE(_lsUMsBNd[_WwdZHVsG], _dKeNfbSt[_WwdZHVsG]);
            } else {
                _DVkPolqs[_WwdZHVsG] = _lsUMsBNd[_WwdZHVsG];
            }
        }
    }
    return _DVkPolqs;
}

async function _KlZgCIHm(_fRlqVqCR) {
    try {
        const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_pIxYFgkO);
        const { _QaSvivmg } = await _rxHoczFd.all();
        const _YjyAAnTD = _QaSvivmg._aXvlfeii > 0 ? _QaSvivmg[0]._IxrLQWZq : null;
        const _wwbLvvKt = _YjyAAnTD ? JSON.parse(_YjyAAnTD) : {};
        return _JtnxrShE(_wwbLvvKt, _FaZtWAUF());
    } catch (_UQsFbFsZ) {
        console.error("无法从D1获取或解析全局配置:", _UQsFbFsZ);
        return _FaZtWAUF();
    }
}

async function _AtCDIeEa(_fRlqVqCR) {
    const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
    return _gJBAaLEx(_VWOaYrNv);
}

async function _IsuFaPGn(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn) {
    try {
        const { _VWOaYrNv, adminPassword } = await _IzHLhEGJ.json();
        const _bNlaJhKK = await _NSZEvqJq(_fRlqVqCR);
        if (_bNlaJhKK !== adminPassword) {
            return _gJBAaLEx({ success: false, _YzuxBjrd: "管理员密码错误" }, 403);
        }
        const _rxHoczFd = _fRlqVqCR.DB.prepare(
          "INSERT INTO kv_data (_WwdZHVsG, _IxrLQWZq) VALUES (?, ?) ON CONFLICT(_WwdZHVsG) DO UPDATE SET _IxrLQWZq = excluded._IxrLQWZq"
        );
        const _QKfrdwHi = _rxHoczFd.bind(_pIxYFgkO, JSON.stringify(_VWOaYrNv)).run();
        _RDoWEHOn.waitUntil(_QKfrdwHi);
        return _gJBAaLEx({ success: true, _YzuxBjrd: "配置已成功保存!" });
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ success: false, _YzuxBjrd: `保存失败: ${_UQsFbFsZ._YzuxBjrd}` }, 500);
    }
}

async function _vbIjzxXX() {
    const _pfAuedql = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _hSVqkvTQ = await fetch(_pfAuedql);
        const _GCMbCTvX = await _hSVqkvTQ.json();
        const _mKOmcTSZ = 'https://www.bing.com' + _GCMbCTvX.images[0]._uHSLwcDj;
        return fetch(_mKOmcTSZ);
    } catch (_UQsFbFsZ) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _apdQiggz(_WHEPWUJQ) {
    try {
        const _AaBQCexz = await fetch(`http://_WHEPWUJQ-api.com/json/${_WHEPWUJQ}?fields=status,_UYlmFqeX,countryCode,_hDjAPNtA&lang=zh-CN`);
        if (_AaBQCexz.ok) {
            const _EXQSsAbG = await _AaBQCexz.json();
            if (_EXQSsAbG.status === 'success' && (_EXQSsAbG.countryCode || _EXQSsAbG._UYlmFqeX)) {
                let _hDjAPNtA = _EXQSsAbG._hDjAPNtA || '未知';
                if (_hDjAPNtA.toLowerCase().includes('cloudflare')) {
                    _hDjAPNtA = 'CloudFlare';
                }
                return {
                    _eUhZBiAC: _ZuaBDvTh[_EXQSsAbG.countryCode] || _EXQSsAbG._UYlmFqeX || _EXQSsAbG.countryCode,
                    _hDjAPNtA: _hDjAPNtA
                };
            }
        }
    } catch (_UQsFbFsZ) {}

    try {
        const _AaBQCexz = await fetch(`https://api._WHEPWUJQ.sb/geoip/${_WHEPWUJQ}`);
        if (_AaBQCexz.ok) {
            const _EXQSsAbG = await _AaBQCexz.json();
            if (_EXQSsAbG.country_code || _EXQSsAbG._UYlmFqeX) {
                let _hDjAPNtA = _EXQSsAbG._hDjAPNtA || '未知';
                if (_hDjAPNtA.toLowerCase().includes('cloudflare')) {
                    _hDjAPNtA = 'CloudFlare';
                }
                return {
                    _eUhZBiAC: _ZuaBDvTh[_EXQSsAbG.country_code] || _EXQSsAbG._UYlmFqeX || _EXQSsAbG.country_code,
                    _hDjAPNtA: _hDjAPNtA
                };
            }
        }
    } catch (_UQsFbFsZ) {}
    
    return { _eUhZBiAC: '未知', _hDjAPNtA: '未知' };
}

async function _powCXolo(_IzHLhEGJ, _fRlqVqCR) {
    try {
        const { _eHoapFhh } = await _IzHLhEGJ.json();
        if (!Array.isArray(_eHoapFhh)) {
            return _gJBAaLEx({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _zrfLSTlq = _eHoapFhh.map(_WHEPWUJQ => _apdQiggz(_WHEPWUJQ).then(_Ygipgubb => ({ _WHEPWUJQ, ..._Ygipgubb })));
        const _QaSvivmg = await Promise.all(_zrfLSTlq);
        return _gJBAaLEx(_QaSvivmg);
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ error: `获取地理位置失败: ${_UQsFbFsZ._YzuxBjrd}` }, 500);
    }
}

async function _IhbehSHn(_IzHLhEGJ, _fRlqVqCR) {
    const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
    if (!_VWOaYrNv.cloudStorage._RHiGlNGb) {
        return _gJBAaLEx({ _QaSvivmg: [], generatedBy: null });
    }
    try {
        const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_HhqOqBkO);
        const { _QaSvivmg } = await _rxHoczFd.all();
        const _FrRdkUIV = _QaSvivmg._aXvlfeii > 0 ? _QaSvivmg[0]._IxrLQWZq : null;
        const _vIFWLKTh = _FrRdkUIV ? JSON.parse(_FrRdkUIV) : null;
        return _gJBAaLEx(_vIFWLKTh || { _QaSvivmg: [], generatedBy: null });
    } catch (_UQsFbFsZ) {
        console.error("从D1读取缓存IP失败:", _UQsFbFsZ);
        return _gJBAaLEx({ _QaSvivmg: [], generatedBy: null });
    }
}

async function _wKAXeIha(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn) {
    const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
    if (!_VWOaYrNv.cloudStorage._RHiGlNGb) {
        return _gJBAaLEx({ success: true, _YzuxBjrd: "云端存储已禁用,不保存结果。" });
    }
    const _awxiMkom = _IzHLhEGJ._nQQyxIvQ.get('CF-Connecting-IP') || "未知IP";
    const _UYlmFqeX = _IzHLhEGJ.cf?._UYlmFqeX || "未知";
    const _ShqcviBz = _IzHLhEGJ.cf?._ShqcviBz || "";
    let _fGwvLdOW = _ZuaBDvTh[_UYlmFqeX] || _UYlmFqeX;
    if (_ShqcviBz && _ShqcviBz !== "未知城市" && _ShqcviBz !== _UYlmFqeX) _fGwvLdOW = `${_fGwvLdOW} ${_ZuaBDvTh[_ShqcviBz] || _ShqcviBz}`;
    const _WRJZQQRl = {
        _WHEPWUJQ: _ALqLdNXN(_awxiMkom),
        _eUhZBiAC: _fGwvLdOW.trim(),
        time: _OKqGclKV()
    };
    try {
        const _qHLHYwJO = await _IzHLhEGJ.json();
        if (!Array.isArray(_qHLHYwJO)) return _gJBAaLEx({ error: "无效数据格式" }, 400);
        const _QIZwaHiD = _qHLHYwJO.map(_tgGvJszX => ({
            _WHEPWUJQ: String(_tgGvJszX._WHEPWUJQ || ''),
            _hZFhznoG: _tgGvJszX._hZFhznoG ? parseInt(_tgGvJszX._hZFhznoG, 10) : undefined,
            _lElJfGaG: parseInt(_tgGvJszX._lElJfGaG, 10),
            _eUhZBiAC: typeof _tgGvJszX._eUhZBiAC === 'string' ? _tgGvJszX._eUhZBiAC.substring(0, 50) : 'N/A',
            _hDjAPNtA: typeof _tgGvJszX._hDjAPNtA === 'string' ? _tgGvJszX._hDjAPNtA.substring(0, 100) : 'N/A'
        }));
        const _gBZEKSEE = {
            generatedBy: _WRJZQQRl,
            _QaSvivmg: _QIZwaHiD
        };
        const _yXDGPkVY = _fRlqVqCR.DB.prepare(
          "INSERT INTO kv_data (_WwdZHVsG, _IxrLQWZq) VALUES (?, ?) ON CONFLICT(_WwdZHVsG) DO UPDATE SET _IxrLQWZq = excluded._IxrLQWZq"
        ).bind(_HhqOqBkO, JSON.stringify(_gBZEKSEE)).run();
        if (_VWOaYrNv.telegram.bot_token && _VWOaYrNv.telegram.chat_id) {
            const _CkoVOKYc = _QIZwaHiD.map(r => `${r._WHEPWUJQ} ~ ${r._eUhZBiAC}`).join('\n');
            const _HIGCtwWz = `优选完成!\n来源: ${_WRJZQQRl._WHEPWUJQ} (${_WRJZQQRl._eUhZBiAC})\n时间: ${_WRJZQQRl.time}\n\n结果:\n${_CkoVOKYc}`;
            const _BDUbzrWb = `https://api.telegram.org/bot${_VWOaYrNv.telegram.bot_token}/sendMessage?chat_id=${_VWOaYrNv.telegram.chat_id}&_YjWVVcUA=${encodeURIComponent(_HIGCtwWz)}`;
            const _wRonplZr = fetch(_BDUbzrWb).catch(_UQsFbFsZ => console.error("Telegram结果通知失败:", _UQsFbFsZ));
            _RDoWEHOn.waitUntil(Promise.all([_yXDGPkVY, _wRonplZr]));
        } else {
             _RDoWEHOn.waitUntil(_yXDGPkVY);
        }
        return _gJBAaLEx({ success: true, _YzuxBjrd: "结果已保存" });
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ error: "D1写入失败", _YzuxBjrd: _UQsFbFsZ._YzuxBjrd }, 500);
    }
}

async function _VmXEUIss(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn) {
    try {
        const _TDUFoAJJ = await _IzHLhEGJ.json();
        if (!Array.isArray(_TDUFoAJJ)) return _gJBAaLEx({ error: "无效数据格式" }, 400);
        const _gBZEKSEE = {
            _QaSvivmg: _TDUFoAJJ
        };
        const _rxHoczFd = _fRlqVqCR.DB.prepare(
          "INSERT INTO kv_data (_WwdZHVsG, _IxrLQWZq) VALUES (?, ?) ON CONFLICT(_WwdZHVsG) DO UPDATE SET _IxrLQWZq = excluded._IxrLQWZq"
        );
        const _QKfrdwHi = _rxHoczFd.bind(_IPFloQZt, JSON.stringify(_gBZEKSEE)).run();
        _RDoWEHOn.waitUntil(_QKfrdwHi);
        return _gJBAaLEx({ success: true });
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ error: "D1写入临时缓存失败", _YzuxBjrd: _UQsFbFsZ._YzuxBjrd }, 500);
    }
}

function _CUVFGxHZ(_aXvlfeii, _wtqCubuY) {
    let _AeRUZbns = '';
    const _VpdMWuXA = _wtqCubuY._aXvlfeii;
    for (let _LzBQhpmd = 0; _LzBQhpmd < _aXvlfeii; _LzBQhpmd++) {
        _AeRUZbns += _wtqCubuY.charAt(Math.floor(Math.random() * _VpdMWuXA));
    }
    return _AeRUZbns;
}

async function _ravTHgoO(_IzHLhEGJ, _fRlqVqCR) {
    try {
        const _qHLHYwJO = await _IzHLhEGJ.json();
        if (!Array.isArray(_qHLHYwJO) || _qHLHYwJO._aXvlfeii === 0) {
            return _gJBAaLEx({ error: "无效或空的IP列表" }, 400);
        }

        const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
        const _EyFyLKkf = _VWOaYrNv.subscriptionId || { _aXvlfeii: 8, _wtqCubuY: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _nWJKBZJF;
        let _dBVLpnkj = false;
        let _EMJGrGJh = 0;
        const _inJrpIfA = 10;

        while (!_dBVLpnkj && _EMJGrGJh < _inJrpIfA) {
            _nWJKBZJF = _CUVFGxHZ(_EyFyLKkf._aXvlfeii, _EyFyLKkf._wtqCubuY);
            const { _QaSvivmg } = await _fRlqVqCR.DB.prepare("SELECT _XItBVrFU FROM optimized_results WHERE _XItBVrFU = ?").bind(_nWJKBZJF).all();
            if (_QaSvivmg._aXvlfeii === 0) {
                _dBVLpnkj = true;
            }
            _EMJGrGJh++;
        }

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

        const _ekNUNAoJ = JSON.stringify({ _eHoapFhh: _qHLHYwJO });
        await _fRlqVqCR.DB.prepare(
            "INSERT INTO optimized_results (_XItBVrFU, _EXQSsAbG) VALUES (?, ?)"
        ).bind(_nWJKBZJF, _ekNUNAoJ).run();
        await _fRlqVqCR.DB.prepare(
            "INSERT INTO kv_data (_WwdZHVsG, _IxrLQWZq) VALUES (?, ?) ON CONFLICT(_WwdZHVsG) DO UPDATE SET _IxrLQWZq = excluded._IxrLQWZq"
        ).bind(_GNBhRUEW, _nWJKBZJF).run();
            
        return _gJBAaLEx({ success: true, _XItBVrFU: _nWJKBZJF });
    } catch (_UQsFbFsZ) {
        return _gJBAaLEx({ error: "保存优选结果失败", _YzuxBjrd: _UQsFbFsZ._YzuxBjrd }, 500);
    }
}

async function _IeAcZAUB(_IzHLhEGJ, _fRlqVqCR) {
    try {
        const _nWJKBZJF = _IzHLhEGJ._EhWeuwtF._XItBVrFU;
        if (!_nWJKBZJF) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _AeRUZbns = await _fRlqVqCR.DB.prepare("SELECT _EXQSsAbG FROM optimized_results WHERE _XItBVrFU = ?").bind(_nWJKBZJF).first();
        if (!_AeRUZbns) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _EXQSsAbG = JSON.parse(_AeRUZbns._EXQSsAbG);
        let _CkoVOKYc = _EXQSsAbG._eHoapFhh;

        const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);

        if (_VWOaYrNv.customNodes && _VWOaYrNv.customNodes._RHiGlNGb && _VWOaYrNv.customNodes.list) {
            const _CtwGfvwU = _VWOaYrNv.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _HzJmcvky = _CtwGfvwU.map(_FJBpMokz => {
                let _WTImSQLA = _FJBpMokz;
                let _hZFhznoG = undefined;
                let _EGokjVLK = null;

                if (_WTImSQLA.includes('@')) {
                    const _pcSTngrT = _WTImSQLA.split('@');
                    _EGokjVLK = _pcSTngrT.pop();
                    _WTImSQLA = _pcSTngrT.join('@');
                }

                if (_WTImSQLA.includes('#')) {
                    const _pcSTngrT = _WTImSQLA.split('#');
                    const _FVOJLqxU = _pcSTngrT.pop();
                    if (!isNaN(_FVOJLqxU) && _FVOJLqxU.trim() !== '') {
                        _hZFhznoG = parseInt(_FVOJLqxU, 10);
                    }
                    _WTImSQLA = _pcSTngrT.join('#');
                }
                
                return {
                    _WHEPWUJQ: _WTImSQLA,
                    _hZFhznoG: _hZFhznoG,
                    _eUhZBiAC: _EGokjVLK || _WTImSQLA,
                    _hDjAPNtA: '自定义'
                };
            });
            _CkoVOKYc.unshift(..._HzJmcvky);
        }
        
        const { itemLink } = _VWOaYrNv;
        const _aufghgUk = new URL(_IzHLhEGJ._uHSLwcDj)._UQUUFArf;
        let _SOMXqBvL;

        if (_VWOaYrNv.websocketStreamer && _VWOaYrNv.websocketStreamer._RHiGlNGb) {
            if (!itemLink || !itemLink._RHiGlNGb || !itemLink._LziXBEPf || itemLink._LziXBEPf._aXvlfeii === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _SOMXqBvL = _CkoVOKYc.map((_tgGvJszX, _HhnPIkCo) => {
                let _EGokjVLK;
                if (_tgGvJszX._hDjAPNtA === '自定义') {
                     _EGokjVLK = `${_HhnPIkCo + 1} - ${_tgGvJszX._eUhZBiAC}`;
                } else {
                    _EGokjVLK = `${_HhnPIkCo + 1} - ${_tgGvJszX._eUhZBiAC || '未知'}`;
                    if (!_tgGvJszX._hDjAPNtA || !_tgGvJszX._hDjAPNtA.toLowerCase().includes('cloudflare')) {
                        _EGokjVLK += '(反代)';
                    }
                }
                const _qgYuqtFd = _appCKURi.isIPv6(_tgGvJszX._WHEPWUJQ) ? `[${_tgGvJszX._WHEPWUJQ}]` : _tgGvJszX._WHEPWUJQ;
                const _hZFhznoG = _tgGvJszX._hZFhznoG || 443;
                const _KQDbMtEv = itemLink._LziXBEPf[0];
                const _UqDyYVuo = _KQDbMtEv._rwOMWNnH || '';
                const _rwOMWNnH = (_UqDyYVuo && _DOCiPENj(_UqDyYVuo)) ? _UqDyYVuo : crypto.randomUUID();
                const _jzqYlrFe = '/snippets?_WHEPWUJQ=endpointAddress:_hZFhznoG(443)&nat64=6to4';
                const _QovRIXIW = _KQDbMtEv._QovRIXIW || _aufghgUk;

                const _EhWeuwtF = new URLSearchParams({
                    security: 'tls',
                    _OZZMoDle: 'ws',
                    _QovRIXIW: _QovRIXIW,
                    sni: _QovRIXIW,
                    fp: 'random'
                });
                return `vless://${_rwOMWNnH}@${_qgYuqtFd}:${_hZFhznoG}?${_EhWeuwtF.toString()}&_jzqYlrFe=${encodeURIComponent(encodeURIComponent(_jzqYlrFe))}#${encodeURIComponent(_EGokjVLK)}`;
            });

        } else {
            if (!itemLink || !itemLink._RHiGlNGb || !itemLink._LziXBEPf || itemLink._LziXBEPf._aXvlfeii === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _KQDbMtEv = itemLink._LziXBEPf[0];
            const { _QovRIXIW, _rwOMWNnH, _jzqYlrFe } = _KQDbMtEv;
            _SOMXqBvL = _CkoVOKYc.map((_tgGvJszX, _HhnPIkCo) => {
                let _EGokjVLK;
                if (_tgGvJszX._hDjAPNtA === '自定义') {
                     _EGokjVLK = `${_HhnPIkCo + 1} - ${_tgGvJszX._eUhZBiAC}`;
                } else {
                    _EGokjVLK = `${_HhnPIkCo + 1} - ${_tgGvJszX._eUhZBiAC || '未知'}`;
                    if (!_tgGvJszX._hDjAPNtA || !_tgGvJszX._hDjAPNtA.toLowerCase().includes('cloudflare')) {
                        _EGokjVLK += '(反代)';
                    }
                }
                const _qgYuqtFd = _appCKURi.isIPv6(_tgGvJszX._WHEPWUJQ) ? `[${_tgGvJszX._WHEPWUJQ}]` : _tgGvJszX._WHEPWUJQ;
                const _hZFhznoG = _tgGvJszX._hZFhznoG || 443;
                const _EhWeuwtF = new URLSearchParams({
                    security: 'tls',
                    _OZZMoDle: 'ws',
                    _QovRIXIW: _QovRIXIW || _aufghgUk,
                    sni: _QovRIXIW || _aufghgUk,
                    fp: 'random'
                });
                return `vless://${_rwOMWNnH}@${_qgYuqtFd}:${_hZFhznoG}?${_EhWeuwtF.toString()}&_jzqYlrFe=${encodeURIComponent(encodeURIComponent(_jzqYlrFe || ''))}#${encodeURIComponent(_EGokjVLK)}`;
            });
        }
        
        const _DxqyLhvi = _SOMXqBvL.join('\n');
        const _ZAZjDZDe = btoa(_DxqyLhvi);
        return new Response(_ZAZjDZDe, {
            _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' }
        });

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

async function _hqQErygz(_IzHLhEGJ) {
    try {
        const { _cNkKXAYg, _OZZMoDle } = await _IzHLhEGJ.json();
        if (!Array.isArray(_cNkKXAYg)) {
            return new Response('Invalid _cNkKXAYg list', { status: 400 });
        }
        const _vXQUYUTU = _cNkKXAYg.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _uHSLwcDj = `https://cloudflare-dns.com/dns-query?_EGokjVLK=${encodeURIComponent(domain.trim())}&_OZZMoDle=${_OZZMoDle || 'A'}`;
            return fetch(_uHSLwcDj, { _nQQyxIvQ: { 'Accept': 'application/dns-json' } })
                .then(_AaBQCexz => _AaBQCexz.json())
                .then(_EXQSsAbG => (_EXQSsAbG.Answer ? _EXQSsAbG.Answer.map(a => a._EXQSsAbG) : []))
                .catch(() => []);
        });
        const _YFdoDVXG = (await Promise.all(_vXQUYUTU)).flat();
        const _wReyPxrk = [...new Set(_YFdoDVXG)];
        if (_wReyPxrk._aXvlfeii === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_wReyPxrk.join('\n'), { _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._YzuxBjrd}`, { status: 500 });
    }
}

async function _avDFBUXi(_IzHLhEGJ, _fRlqVqCR) {
  try {
      const { _OUKPxFzd } = await _IzHLhEGJ.json();
      if (!Array.isArray(_OUKPxFzd)) {
          return _gJBAaLEx({ error: "Invalid input, expected an object with a '_OUKPxFzd' array." }, 400);
      }
      
      const _xTQHmJSS = new Set();
      
      const _SlgJzwnl = _OUKPxFzd.map(_uHSLwcDj =>
          _PqQZFqjx(_uHSLwcDj)
              .then(_YjWVVcUA => {
                  if (!_YjWVVcUA) return;
                  const _szmRZjXd = _YjWVVcUA.split(/[\s,;|]+/);
                  for (const _DnqUVMvP of _szmRZjXd) {
                      const _UWfoXSOv = _DnqUVMvP.trim();
                      if (_UWfoXSOv) {
                          _xTQHmJSS.add(_UWfoXSOv);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_uHSLwcDj}:`, err);
              })
      );
      await Promise.all(_SlgJzwnl);
      return _gJBAaLEx({ _eHoapFhh: Array.from(_xTQHmJSS) });
  } catch (_UQsFbFsZ) {
      return _gJBAaLEx({ error: `Failed to process URLs: ${_UQsFbFsZ._YzuxBjrd}` }, 500);
  }
}

async function _JnMsNcrd(_IzHLhEGJ, _fRlqVqCR) {
    const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
    if (!_VWOaYrNv.api._RHiGlNGb) {
        return new Response(_VWOaYrNv.api._YzuxBjrd || 'API is disabled.', { status: 503 });
    }
    try {
        const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_HhqOqBkO);
        const { _QaSvivmg: dbResults } = await _rxHoczFd.all();
        const _FrRdkUIV = dbResults._aXvlfeii > 0 ? dbResults[0]._IxrLQWZq : null;
        const _vIFWLKTh = _FrRdkUIV ? JSON.parse(_FrRdkUIV) : null;
        if (!_vIFWLKTh || !_vIFWLKTh._QaSvivmg || _vIFWLKTh._QaSvivmg._aXvlfeii === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' },
            });
        }
        const _eHoapFhh = _vIFWLKTh._QaSvivmg.map(r => r._WHEPWUJQ);
        return new Response(_eHoapFhh.join('\n'), {
            _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' },
        });
    } catch (_UQsFbFsZ) {
        console.error("API /_WHEPWUJQ 处理错误:", _UQsFbFsZ);
        return new Response(`API处理时出错: ${_UQsFbFsZ._YzuxBjrd}`, { status: 500 });
    }
}

function _CPaIDIYp(_AeRUZbns, _HhnPIkCo, _VWOaYrNv, _aufghgUk) {
    const { itemLink } = _VWOaYrNv;
    if (!itemLink || !itemLink._RHiGlNGb) return null;
    const { template, _LziXBEPf, selectionMode, _otJqhsFn } = itemLink;
    if (!_LziXBEPf || _LziXBEPf._aXvlfeii === 0) return null;

    let _ceimPTfA;
    if (selectionMode === 'random') {
        _ceimPTfA = _LziXBEPf[_HhnPIkCo % _LziXBEPf._aXvlfeii];
    } else if (selectionMode === 'first') {
        _ceimPTfA = _LziXBEPf[0];
    } else {
        _ceimPTfA = _LziXBEPf.find(s => s._EGokjVLK === selectionMode) || _LziXBEPf[0];
    }
    if (!_ceimPTfA) return null;

    let _nGBEnOxo = template;
    const _CQYKdoBx = _AeRUZbns._hZFhznoG || 443;
    const _vazRcMja = _appCKURi.isIPv6(_AeRUZbns._WHEPWUJQ) ? `[${_AeRUZbns._WHEPWUJQ}]` : _AeRUZbns._WHEPWUJQ;
    let _EGokjVLK = `${_HhnPIkCo + 1} 、 ${_AeRUZbns._eUhZBiAC || '未知'}`;
    if (!_AeRUZbns._hDjAPNtA || !_AeRUZbns._hDjAPNtA.toLowerCase().includes('cloudflare')) {
        _EGokjVLK += '(反代)';
    }
    let _QovRIXIW = _ceimPTfA._QovRIXIW || _aufghgUk;

    _nGBEnOxo = _nGBEnOxo.replace(/{_WHEPWUJQ}/g, _vazRcMja)
               .replace(/{_hZFhznoG}/g, _CQYKdoBx)
               .replace(/{_EGokjVLK}/g, encodeURIComponent(_EGokjVLK))
               .replace(/{rank}/g, _HhnPIkCo + 1)
               .replace(/{_eUhZBiAC}/g, encodeURIComponent(_AeRUZbns._eUhZBiAC || '未知'))
               .replace(/{_hDjAPNtA}/g, encodeURIComponent(_AeRUZbns._hDjAPNtA || '未知'))
               .replace(/{_QovRIXIW}/g, encodeURIComponent(_QovRIXIW))
               .replace(/{_rwOMWNnH}/g, encodeURIComponent(_ceimPTfA['_rwOMWNnH'] || ''))
               .replace(/{_jzqYlrFe}/g, encodeURIComponent(encodeURIComponent(_ceimPTfA._jzqYlrFe || '')));

    if (_otJqhsFn) {
        _otJqhsFn.forEach(field => {
            const _BsCcdtSt = new RegExp('{' + field._EGokjVLK + '}', 'g');
            _nGBEnOxo = _nGBEnOxo.replace(_BsCcdtSt, encodeURIComponent(field._IxrLQWZq));
        });
    }
    return _nGBEnOxo;
}

async function _VssdmWeb(_IzHLhEGJ, _fRlqVqCR) {
    const _VWOaYrNv = await _KlZgCIHm(_fRlqVqCR);
    if (!_VWOaYrNv.itemLink._RHiGlNGb) {
        return new Response("Item _nGBEnOxo feature is disabled.", { status: 503, _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' } });
    }

    try {
        const _rxHoczFd = _fRlqVqCR.DB.prepare("SELECT _IxrLQWZq FROM kv_data WHERE _WwdZHVsG = ?").bind(_HhqOqBkO);
        const { _QaSvivmg: dbResults } = await _rxHoczFd.all();
        const _FrRdkUIV = dbResults._aXvlfeii > 0 ? dbResults[0]._IxrLQWZq : null;
        const _vIFWLKTh = _FrRdkUIV ? JSON.parse(_FrRdkUIV) : null;
        
        if (!_vIFWLKTh || !_vIFWLKTh._QaSvivmg || _vIFWLKTh._QaSvivmg._aXvlfeii === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' },
            });
        }
        
        const _aufghgUk = new URL(_IzHLhEGJ._uHSLwcDj)._UQUUFArf;

        const _LwVxoBxv = _vIFWLKTh._QaSvivmg.map((_AeRUZbns, _HhnPIkCo) => {
            return _CPaIDIYp(_AeRUZbns, _HhnPIkCo, _VWOaYrNv, _aufghgUk);
        }).filter(Boolean);

        if (_LwVxoBxv._aXvlfeii === 0) {
            return new Response("Could not generate any _tgGvJszX links from the available IPs.", {
                status: 500,
                _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' },
            });
        }

        return new Response(_LwVxoBxv.join('\n'), {
            _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/plain; _wtqCubuY=utf-8' },
        });

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

async function _xvOlDQTH(_IzHLhEGJ, _fRlqVqCR, _RDoWEHOn) {
    const _awxiMkom = _IzHLhEGJ._nQQyxIvQ.get('CF-Connecting-IP') || "未知IP";
    const [
        _SopTVGod,
        _nkCvItDc,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _KDYmvXSP(_kqqwolDJ, _gzreHkGw, []),
        _KDYmvXSP(_ZpPHRpfd, _gzreHkGw, []),
        _KDYmvXSP(_IAFHVsyR, _mjUxZupR, []),
        _KDYmvXSP(_liChpaeb, _NfQrvLCW, { "N/A": "未知" })
    ]);
    _ZuaBDvTh = fetchedCountryMap;
    let _ZGvdyWcm = false;
    let _vdylzgFG;
    try {
        const _PbKatdDE = await _NSZEvqJq(_fRlqVqCR);
        _ZGvdyWcm = !!_PbKatdDE;
        _vdylzgFG = await _KlZgCIHm(_fRlqVqCR);
    } catch (_UQsFbFsZ) {
        if (_UQsFbFsZ._YzuxBjrd && _UQsFbFsZ._YzuxBjrd.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _wDftFloy = "CREATE TABLE IF NOT EXISTS kv_data (_WwdZHVsG TEXT PRIMARY KEY, _IxrLQWZq TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_XItBVrFU TEXT PRIMARY KEY, _EXQSsAbG TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _fRlqVqCR.DB.exec(_wDftFloy);
                console.log("数据表创建成功。");
                _ZGvdyWcm = false;
                _vdylzgFG = _FaZtWAUF();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._YzuxBjrd}`, {
                    status: 500,
                    _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/html;_wtqCubuY=UTF-8' }
                });
            }
        } else {
             let _TtvzioYR = _iDpgbbSE(_UQsFbFsZ._YzuxBjrd);
             return new Response(_TtvzioYR, { _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/html;_wtqCubuY=UTF-8' } });
        }
    }
    if (_vdylzgFG.telegram.bot_token && _vdylzgFG.telegram.chat_id) {
        const _UYlmFqeX = _IzHLhEGJ.cf?._UYlmFqeX || "未知";
        const _ShqcviBz = _IzHLhEGJ.cf?._ShqcviBz || "";
        let _fGwvLdOW = _ZuaBDvTh[_UYlmFqeX] || _UYlmFqeX;
        if (_ShqcviBz && _ShqcviBz !== "未知城市" && _ShqcviBz !== _UYlmFqeX) _fGwvLdOW = `${_fGwvLdOW} ${_ZuaBDvTh[_ShqcviBz] || _ShqcviBz}`;
        const _GXzRZzOI = _OKqGclKV();
        const _WwtwADnk = _IzHLhEGJ._uHSLwcDj;
        const _HIGCtwWz = `访客: ${_awxiMkom}\n位置: ${_fGwvLdOW.trim()}\n时间: ${_GXzRZzOI}\n来自:${_WwtwADnk}`;
        const _BDUbzrWb = `https://api.telegram.org/bot${_vdylzgFG.telegram.bot_token}/sendMessage?chat_id=${_vdylzgFG.telegram.chat_id}&_YjWVVcUA=${encodeURIComponent(_HIGCtwWz)}`;
        _RDoWEHOn.waitUntil(fetch(_BDUbzrWb).catch(_UQsFbFsZ => console.error("Telegram通知失败:", _UQsFbFsZ)));
    }
    let _QXbKLtqH = _nwoeiAEX();
    const _NxfYIIeD = {
        _VWOaYrNv: _vdylzgFG,
        status: {
            _ZGvdyWcm: _ZGvdyWcm,
        }
    };
    _QXbKLtqH = _QXbKLtqH.replace('__PAGE_DATA_JSON__', JSON.stringify(_NxfYIIeD));
    _QXbKLtqH = _QXbKLtqH.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_SopTVGod));
    _QXbKLtqH = _QXbKLtqH.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_nkCvItDc));
    _QXbKLtqH = _QXbKLtqH.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _QXbKLtqH = _QXbKLtqH.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_ZuaBDvTh));
    return new Response(_QXbKLtqH, {
        _nQQyxIvQ: { 'Content-Type': '_YjWVVcUA/html;_wtqCubuY=UTF-8' },
    });
}

function _gJBAaLEx(_xiSDFndW, status = 200, _nQQyxIvQ = {}) {
    return new Response(JSON.stringify(_xiSDFndW), {
        status,
        _nQQyxIvQ: { 'Content-Type': 'application/json;_wtqCubuY=UTF-8', ..._nQQyxIvQ }
    });
}

function _OKqGclKV(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 _ALqLdNXN(_WHEPWUJQ) {
    if (!_WHEPWUJQ || typeof _WHEPWUJQ !== 'string') return "无效IP";
    if(_appCKURi.isIPv4(_WHEPWUJQ)){
        const _pcSTngrT = _WHEPWUJQ.split('.');
        if (_pcSTngrT._aXvlfeii === 4) return `${_pcSTngrT[0]}.*.*.${_pcSTngrT[3]}`;
    }
    if(_appCKURi.isIPv6(_WHEPWUJQ)){
        const _pcSTngrT = _WHEPWUJQ.split(':');
        if (_pcSTngrT._aXvlfeii > 2) return `${_pcSTngrT[0]}:...:${_pcSTngrT[_pcSTngrT._aXvlfeii - 1]}`;
    }
    return _WHEPWUJQ;
}

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

function _nwoeiAEX() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _wtqCubuY="UTF-8"> <meta _EGokjVLK="viewport" _jGOnnFBw="_OOUiGycq=device-_OOUiGycq, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_nGBEnOxo 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>
  <_UkmOYHpC>
  :root { --primary-_OYIlBRow: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_OYIlBRow: #8c939d; --light-bg: #1A1C20; --_jGOnnFBw-bg: #25282E; --border-_OYIlBRow: #40444C; --_YjWVVcUA-_OYIlBRow: #E0E0E0; --_YjWVVcUA-light: #B0B0B0; --success-_OYIlBRow: #30A46C; --danger-_OYIlBRow: #DA3633; --warning-_OYIlBRow: #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; }
  _xiSDFndW { font-family: var(--font-family-sans); background-_OYIlBRow: var(--light-bg); _OYIlBRow: var(--_YjWVVcUA-_OYIlBRow); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_OYIlBRow 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_mNTcLHpe { position: fixed; _TQhFmdgx: 0; _qpYqmuXV: 0; _OOUiGycq: 100%; height: 100%; z-_HhnPIkCo: -1; display: none; }
  ._kuWdNOSz-_LiVohnGY { max-_OOUiGycq: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_HhnPIkCo: 1; }
  #_wZNpvSVi { position: fixed; _TQhFmdgx: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_HhnPIkCo: 10; }
  #marquee-_LiVohnGY { overflow: hidden; white-space: nowrap; background-_OYIlBRow: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _OYIlBRow: var(--primary-_OYIlBRow); padding: 0.5rem 0; margin-_TQhFmdgx: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_YjWVVcUA { display: inline-block; padding-_qpYqmuXV: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _QzJtcmPz { _YjWVVcUA-align: center; margin-_TQhFmdgx: 1rem; margin-bottom: 2rem; }
  _QzJtcmPz h1 { white-space: pre-wrap; font-size: 2.25em; _OYIlBRow: var(--primary-_OYIlBRow); font-weight: 700; _YjWVVcUA-shadow: 0 0 10px rgba(var(--primary-_OYIlBRow-rgb), 0.3); }
  .card { background-_OYIlBRow: 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-_OYIlBRow); }
  .progress-section #_dbdgYNTv { _OOUiGycq: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_OYIlBRow: var(--border-_OYIlBRow); overflow: hidden; }
  .progress-section #_dbdgYNTv::-webkit-progress-_IxrLQWZq { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _YjWVVcUA-align: center; margin-_TQhFmdgx: 0.75em; font-size: 0.95em; _OYIlBRow: var(--_YjWVVcUA-light); min-height: 1.5em; }
  .section-_QzJtcmPz { display: flex; flex-wrap: wrap; justify-_jGOnnFBw: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_OYIlBRow); gap: 1rem; }
  .section-_QzJtcmPz h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _OYIlBRow: var(--secondary-_OYIlBRow); _YjWVVcUA-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _OOUiGycq: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _OOUiGycq: 100%; border-collapse: collapse; margin-_TQhFmdgx: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_OYIlBRow); padding: 0.8em; _YjWVVcUA-align: _qpYqmuXV; vertical-align: middle; white-space: nowrap; }
  th { background-_OYIlBRow: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_OYIlBRow: #30333a; }
  td._WHEPWUJQ-_WTImSQLA { font-weight: 500; font-family: var(--font-family-mono); _OYIlBRow: var(--primary-_OYIlBRow); }
  td.ping-_IxrLQWZq { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _YjWVVcUA-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_jGOnnFBw: center; font-weight: 500; _YjWVVcUA-align: center; cursor: pointer; user-_QWphmrip: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _OYIlBRow: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_qpYqmuXV: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _OYIlBRow: var(--primary-_OYIlBRow); border: 1px solid var(--primary-_OYIlBRow); }
  .btn-outline:hover { background-_OYIlBRow: var(--primary-_OYIlBRow); _OYIlBRow: var(--_jGOnnFBw-bg); }
  ._kuWdNOSz-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._kuWdNOSz-download-buttons .btn { _OOUiGycq: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _TQhFmdgx: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _OYIlBRow: #fff; font-size: 0.95em; z-_HhnPIkCo: 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); }
  #_VozkIoTi, #_sRwhGwnq, #_SKRhiZBK, #_udFcrkHG, #_gLmMRDmw { display: none; position: fixed; z-_HhnPIkCo: 10000; _qpYqmuXV: 0; _TQhFmdgx: 0; _OOUiGycq: 100%; height: 100%; background-_OYIlBRow: rgba(0,0,0,0.6); justify-_jGOnnFBw: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_jGOnnFBw, ._kuWdNOSz-modal-_jGOnnFBw { background-_OYIlBRow: var(--_jGOnnFBw-bg); padding: 2rem; border: 1px solid var(--border-_OYIlBRow); border-radius: var(--border-radius-md); _OOUiGycq: 95%; max-_OOUiGycq: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_udFcrkHG .modal-_jGOnnFBw { max-_OOUiGycq: 500px; }
  .modal-_jGOnnFBw h3, ._kuWdNOSz-modal-_QzJtcmPz h3 { margin-_TQhFmdgx: 0; margin-bottom: 1.5rem; _OYIlBRow: var(--primary-_OYIlBRow); _YjWVVcUA-align: center; }
  .modal-buttons { display: flex; justify-_jGOnnFBw: flex-end; gap: 1rem; margin-_TQhFmdgx: 2rem; border-_TQhFmdgx: 1px solid var(--border-_OYIlBRow); padding-_TQhFmdgx: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_OYIlBRow), rgba(0,0,0,0)); margin: 2rem 0; }
  ._kuWdNOSz-modal-_QzJtcmPz { display: flex; justify-_jGOnnFBw: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_OYIlBRow); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _OYIlBRow: var(--_YjWVVcUA-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._kuWdNOSz-list-_tgGvJszX { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_OYIlBRow); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._kuWdNOSz-_EGokjVLK { font-size: 1.1em; font-weight: 600; }
  ._kuWdNOSz-links a { display: block; _OYIlBRow: var(--primary-_OYIlBRow); _YjWVVcUA-decoration: none; margin-_TQhFmdgx: 0.5rem; word-break: break-all; }
  ._kuWdNOSz-links a:hover { _YjWVVcUA-decoration: underline; }
  ._kuWdNOSz-links span { _OYIlBRow: var(--_YjWVVcUA-light); }
  #visitorPasswordPrompt { _YjWVVcUA-align: center; }
  #visitorPasswordPrompt h3 { _OYIlBRow: var(--primary-_OYIlBRow); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _OYIlBRow: var(--_YjWVVcUA-light); margin-bottom: 1.5rem; }
  ._PbKatdDE-input-group { display: flex; gap: 10px; max-_OOUiGycq: 400px; margin: 0 auto; }
  ._PbKatdDE-input-group input { flex-grow: 1; _YjWVVcUA-align: center; }
  ._PbKatdDE-input-group .btn { margin-_qpYqmuXV: 0; }
  ._QaSvivmg-actions-_LiVohnGY { _YjWVVcUA-align: center; margin-bottom: 1.5rem; }
  ._QaSvivmg-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._QaSvivmg-api-buttons .btn { margin: 0; _OOUiGycq: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_jGOnnFBw 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 _QWphmrip, .form-grid-control textarea { _OOUiGycq: 100%; background-_OYIlBRow: var(--light-bg); border: 1px solid var(--border-_OYIlBRow); border-radius: var(--border-radius-sm); _OYIlBRow: var(--_YjWVVcUA-_OYIlBRow); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_OYIlBRow 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _QWphmrip:focus, .form-grid-control textarea:focus { border-_OYIlBRow: var(--primary-_OYIlBRow); box-shadow: 0 0 0 2px rgba(var(--primary-_OYIlBRow-rgb), 0.2); outline: none; }
  .form-grid-control input[_OZZMoDle="_OYIlBRow"] { min-_OOUiGycq: auto; padding: 2px; _OOUiGycq: 2.5em; height: 2.5em; }
  .form-grid-control input[_OZZMoDle="checkbox"] { _OOUiGycq: auto; flex-shrink: 0; height: 1.2em; _OOUiGycq: 1.2em; }
  .form-grid-control ._ehzgUHhj-input { _OOUiGycq: 80px; _YjWVVcUA-align: right; }
  .tooltip-_NvMTEfhN { display: inline-flex; _OOUiGycq: 16px; height: 16px; align-items: center; justify-_jGOnnFBw: center; background-_OYIlBRow: var(--secondary-_OYIlBRow); _OYIlBRow: var(--_jGOnnFBw-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_QWphmrip: none; }
  #tooltip-popup { position: fixed; background-_OYIlBRow: #383c4a; _OYIlBRow: #fff; padding: 10px 15px; border-radius: 6px; z-_HhnPIkCo: 10001; font-size: 0.85em; max-_OOUiGycq: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_OYIlBRow); pointer-events: none; }
  #custom-fields-_LiVohnGY .form-grid-control { gap: 5px; } #custom-fields-_LiVohnGY .form-grid-control input { flex: 1; }
  .parameter-_YZJNJqsS-_OAAlOKOG { border: 1px solid var(--border-_OYIlBRow); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_YZJNJqsS-_QzJtcmPz { display: flex; justify-_jGOnnFBw: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_YZJNJqsS-_QzJtcmPz input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_TQhFmdgx: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._YjWVVcUA-_OYIlBRow-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _OOUiGycq: 100%; }
  ._YjWVVcUA-_OYIlBRow-grid input[_OZZMoDle="_OYIlBRow"] { grid-column: 1 / 2; }
  ._YjWVVcUA-_OYIlBRow-grid input[_OZZMoDle="_YjWVVcUA"], ._YjWVVcUA-_OYIlBRow-grid textarea { grid-column: 2 / 3; }
  #_udFcrkHG .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_udFcrkHG .btn-group { display: flex; }
  #_udFcrkHG .sub-btn { flex-grow: 1; margin: 0; }
  #_udFcrkHG ._RWHwPNGh-btn { flex-shrink: 0; margin-_qpYqmuXV: -1px; border-_TQhFmdgx-_qpYqmuXV-radius: 0; border-bottom-_qpYqmuXV-radius: 0; }
  #_gLmMRDmw .modal-_jGOnnFBw { max-_OOUiGycq: 300px; background: white; padding: 1rem; _YjWVVcUA-align: center; }
  #qrCodeImg { max-_OOUiGycq: 100%; }
  @media (max-_OOUiGycq: 768px) {
    html { font-size: 15px; } ._kuWdNOSz-_LiVohnGY { padding: 0 0.8rem; } _QzJtcmPz { margin-_TQhFmdgx: 2.5rem; margin-bottom: 1.5rem; } #_wZNpvSVi { _TQhFmdgx: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_UkmOYHpC>
  <_UkmOYHpC _XItBVrFU="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_jGOnnFBw-bg: #FFFFFF; --border-_OYIlBRow: #DCDFE6; --_YjWVVcUA-_OYIlBRow: #303133; --_YjWVVcUA-light: #606266; }
  .theme-light .card { background-_OYIlBRow: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_OYIlBRow: #F5F7FA; }
  .theme-light tbody tr:hover { background-_OYIlBRow: #ECF5FF; }
  .theme-matrix { --primary-_OYIlBRow: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_jGOnnFBw-bg: #0D0208; --border-_OYIlBRow: #00FF41; --_YjWVVcUA-_OYIlBRow: #00FF41; --_YjWVVcUA-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_OYIlBRow: rgba(0, 20, 0, 0.7); _YjWVVcUA-shadow: 0 0 5px var(--primary-_OYIlBRow); backdrop-filter: none; }
  .theme-matrix th { background-_OYIlBRow: #000; }
  .theme-matrix tbody tr:hover { background-_OYIlBRow: #010; }
  .theme-matrix .btn { _YjWVVcUA-shadow: none; _OYIlBRow: #000; }
  .theme-matrix .btn-outline { background-_OYIlBRow: transparent; }
  .theme-modern-glass { --primary-_OYIlBRow: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_jGOnnFBw-bg: rgba(30, 30, 40, 0.6); --border-_OYIlBRow: rgba(255, 255, 255, 0.2); --_YjWVVcUA-_OYIlBRow: #F0F0F0; --_YjWVVcUA-light: #A0A0B0; --border-radius-md: 12px; }
  _xiSDFndW.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-_OYIlBRow: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_jGOnnFBw-bg: rgba(30, 30, 40, 0.6); --border-_OYIlBRow: rgba(255, 255, 255, 0.2); --_YjWVVcUA-_OYIlBRow: #F0F0F0; --_YjWVVcUA-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_OYIlBRow: var(--_jGOnnFBw-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_OYIlBRow); }
  .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-_OYIlBRow: rgba(0,0,0,0.3); border-right-_OYIlBRow: 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); _YjWVVcUA-shadow: 0 1px 2px rgba(0,0,0,0.2); _OYIlBRow: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_OYIlBRow: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _YjWVVcUA-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_OYIlBRow); border-_OYIlBRow: var(--primary-_OYIlBRow); _OYIlBRow: #fff; }
  .glassy-components _QzJtcmPz h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _YjWVVcUA; -webkit-_YjWVVcUA-fill-_OYIlBRow: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _OYIlBRow: transparent; }
  .theme-aurora-glass { --primary-_OYIlBRow: #38bdf8; --light-bg: #0c0a09; --_jGOnnFBw-bg: rgba(23, 23, 23, 0.5); --border-_OYIlBRow: rgba(255, 255, 255, 0.15); --_YjWVVcUA-_OYIlBRow: #f2f2f2; --_YjWVVcUA-light: #a3a3a3; }
  _xiSDFndW.theme-aurora-glass::before { _jGOnnFBw: ''; position: fixed; _TQhFmdgx: 0; _qpYqmuXV: 0; _OOUiGycq: 100%; height: 100%; z-_HhnPIkCo: -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-_OYIlBRow: #08fdd8; --light-bg: #010409; --_jGOnnFBw-bg: rgba(22, 27, 34, 0.6); --border-_OYIlBRow: rgba(139, 148, 158, 0.3); --_YjWVVcUA-_OYIlBRow: #e6edf3; --_YjWVVcUA-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_OYIlBRow), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_OYIlBRow-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_OYIlBRow-rgb), 0.5); }
  .theme-marble-light { --primary-_OYIlBRow: #bfa37c; --light-bg: #f7f5f2; --_jGOnnFBw-bg: #ffffff; --border-_OYIlBRow: #e0dcd5; --_YjWVVcUA-_OYIlBRow: #3d3a36; --_YjWVVcUA-light: #6b6661; }
  _xiSDFndW.theme-marble-light { background-image: _uHSLwcDj('_EXQSsAbG:image/svg+xml,%3Csvg _OOUiGycq="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-_OYIlBRow: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_UkmOYHpC>
  </head><_xiSDFndW _XItBVrFU="pageBody">
  <_mNTcLHpe _XItBVrFU="background-_mNTcLHpe"></_mNTcLHpe>
  <div _XItBVrFU="_VozkIoTi">
      <div class="modal-_jGOnnFBw">
          <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 _OZZMoDle="_PbKatdDE" _XItBVrFU="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _OZZMoDle="_PbKatdDE" _XItBVrFU="confirmPassword"></div></div>
          <div class="modal-buttons"><button _XItBVrFU="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_kuWdNOSz-_LiVohnGY">
    <button _XItBVrFU="_wZNpvSVi" class="btn btn-outline"></button>
    <div _XItBVrFU="marquee-_LiVohnGY"><div _XItBVrFU="marquee-_YjWVVcUA"></div></div>
    <_QzJtcmPz><h1 _XItBVrFU="pageTitle"></h1></_QzJtcmPz>
    <div class="card" _XItBVrFU="visitorPasswordPrompt" _UkmOYHpC="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_PbKatdDE-input-group">
            <input _OZZMoDle="_PbKatdDE" _XItBVrFU="visitorPasswordEntry" _BsCcdtSt="访客密码">
            <button _XItBVrFU="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _XItBVrFU="_yMEQLBEu" _UkmOYHpC="display: block;">
        <div class="card progress-section">
            <div _XItBVrFU="progressDisplay">
                <progress _XItBVrFU="_dbdgYNTv" _IxrLQWZq="0" max="100"></progress>
                <div _XItBVrFU="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _kuWdNOSz-download-section">
          <div class="section-_QzJtcmPz"><h2 _XItBVrFU="appDownloadTitleEl"></h2></div>
          <div class="_kuWdNOSz-download-buttons">
            <button class="btn" _EXQSsAbG-_zqeMDzyR="android">安卓客户端</button>
            <button class="btn" _EXQSsAbG-_zqeMDzyR="ios">苹果客户端</button>
            <button class="btn" _EXQSsAbG-_zqeMDzyR="windows">Windows客户端</button>
            <button class="btn" _EXQSsAbG-_zqeMDzyR="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _QaSvivmg-section" _XItBVrFU="_kfbOFCcg" _UkmOYHpC="display:none;">
          <div class="section-_QzJtcmPz">
            <h2 _XItBVrFU="liveTitleEl"></h2>
            <div class="generator-info" _XItBVrFU="liveGeneratorInfo"></div>
          </div>
          <div _XItBVrFU="_fFFohDTl" class="_QaSvivmg-actions-_LiVohnGY" _UkmOYHpC="display: none;">
             <div class="_QaSvivmg-api-buttons">
                <button _XItBVrFU="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _XItBVrFU="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _XItBVrFU="resultsTable">
              <thead><tr><th _XItBVrFU="tableHeader1El"></th><th _XItBVrFU="tableHeader2El"></th><th _XItBVrFU="tableHeader3El"></th><th _XItBVrFU="tableHeader4El"></th><th _XItBVrFU="tableHeader5El"></th><th _XItBVrFU="tableHeader6El"></th><th _XItBVrFU="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _XItBVrFU="_eiwrPhDh" _UkmOYHpC="display:none;">
          <div class="section-_QzJtcmPz"><h2 _XItBVrFU="cachedTitleEl"></h2><div class="generator-info" _XItBVrFU="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _XItBVrFU="cachedResultsTable">
              <thead><tr><th _XItBVrFU="cachedTableHeader1El"></th><th _XItBVrFU="cachedTableHeader2El"></th><th _XItBVrFU="cachedTableHeader3El"></th><th _XItBVrFU="cachedTableHeader4El"></th><th _XItBVrFU="cachedTableHeader5El"></th><th _XItBVrFU="cachedTableHeader6El"></th><th _XItBVrFU="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _XItBVrFU="notificationTooltip" class="tooltip-notification"></div>
  <div _XItBVrFU="_sRwhGwnq">
    <div class="modal-_jGOnnFBw">
      <h3>修改参数</h3>
      <div _UkmOYHpC="display: flex; border-bottom: 1px solid var(--border-_OYIlBRow); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_Djbnidzv(event, 'general-_rnkaYpvb')">通用设置</button>
          <button class="tab-button" onclick="_Djbnidzv(event, '_nGBEnOxo-_rnkaYpvb')">链接设置</button>
          <button class="tab-button" onclick="_Djbnidzv(event, 'fine-grained-_rnkaYpvb')">IP源设置</button>
          <button class="tab-button" onclick="_Djbnidzv(event, 'advanced-_rnkaYpvb')">高级设置</button>
      </div>
      <div _XItBVrFU="general-_rnkaYpvb" class="tab-_jGOnnFBw" _UkmOYHpC="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_QWphmrip _XItBVrFU="themeSelect">
                    <_KncfItPD _IxrLQWZq="theme-aurora-glass">极光-玻璃质感</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-particles-glass">粒子-玻璃质感</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-modern-glass">现代-玻璃质感</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-cyberpunk-glass">赛博朋克-玻璃质感</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-dark-particles">暗色-粒子背景</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-dark-bing">暗色-必应壁纸</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-light">亮色-简约</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-light-bing">亮色-必应壁纸</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-marble-light">简约大理石-亮色</_KncfItPD>
                    <_KncfItPD _IxrLQWZq="theme-matrix">矩阵-代码雨</_KncfItPD>
                </_QWphmrip>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _OZZMoDle="_OYIlBRow" _XItBVrFU="primaryColorInput">
                <span _UkmOYHpC="_OOUiGycq: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _OZZMoDle="_OYIlBRow" _XItBVrFU="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_title"><textarea _XItBVrFU="textInput_title" _OKuGmbFI="1" _BsCcdtSt="页面主标题"></textarea></div>
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_loginButton"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="textInput_loginButton" _BsCcdtSt="登录按钮文本"></div>
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_appDownloadTitle"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="textInput_appDownloadTitle" _BsCcdtSt="APP下载标题"></div>
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_liveTitle"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="textInput_liveTitle" _BsCcdtSt="本次结果标题"></div>
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_cachedTitle"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="textInput_cachedTitle" _BsCcdtSt="上次结果标题"></div>
                <div class="_YjWVVcUA-_OYIlBRow-grid"><input _OZZMoDle="_OYIlBRow" _XItBVrFU="colorInput_tableHeader"><input _OZZMoDle="_YjWVVcUA" _IxrLQWZq="表格头部文本颜色" readonly _UkmOYHpC="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label>公告栏设置</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _XItBVrFU="announcementText" _BsCcdtSt="在此输入公告内容" _OKuGmbFI="3"></textarea>
                 <div _UkmOYHpC="display: flex; justify-_jGOnnFBw: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _UkmOYHpC="display: flex; align-items: center; gap: 5px;"><input _OZZMoDle="checkbox" _XItBVrFU="enableMarquee"> 顶部走马灯</label>
                    <label _UkmOYHpC="display: flex; align-items: center; gap: 5px;"><input _OZZMoDle="checkbox" _XItBVrFU="enablePopup"> 右上角弹窗</label>
                    <div _XItBVrFU="popupDurationContainer" _UkmOYHpC="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _OZZMoDle="number" _XItBVrFU="popupDuration" _UkmOYHpC="_OOUiGycq: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _XItBVrFU="_nGBEnOxo-_rnkaYpvb" class="tab-_jGOnnFBw">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="converterServiceUrlInput" _BsCcdtSt="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _OZZMoDle="number" _XItBVrFU="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _XItBVrFU="subscriptionIdCharset" _OKuGmbFI="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-_NvMTEfhN" _EXQSsAbG-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableItemLinkCheckbox"></div>
        </div>
        <div _XItBVrFU="itemLinkConfigGroup" _UkmOYHpC="display:none; margin-_TQhFmdgx: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="定义分享链接格式。可用占位符: {_WHEPWUJQ}, {_hZFhznoG}, {_EGokjVLK}, {rank}, {_eUhZBiAC}, {_hDjAPNtA}, {_QovRIXIW}, {_rwOMWNnH}, {_jzqYlrFe}。">?</span></div>
              <div class="form-grid-control"><textarea _XItBVrFU="itemLinkTemplateInput" _OKuGmbFI="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_QWphmrip _XItBVrFU="parameterSelectionMode"></_QWphmrip></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _XItBVrFU="parameter-sets-_LiVohnGY"></div><button _OZZMoDle="button" _XItBVrFU="add-parameter-_YZJNJqsS-btn" class="btn btn-outline" _UkmOYHpC="margin-_TQhFmdgx: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _XItBVrFU="custom-fields-_LiVohnGY" _UkmOYHpC="_OOUiGycq: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><button _OZZMoDle="button" _XItBVrFU="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _XItBVrFU="fine-grained-_rnkaYpvb" class="tab-_jGOnnFBw">
          <div class="form-grid-label" _UkmOYHpC="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _UkmOYHpC="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_jGOnnFBw: flex-start;">
              <label><input _OZZMoDle="checkbox" _XItBVrFU="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _OZZMoDle="checkbox" _XItBVrFU="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _XItBVrFU="fine-grained-sources-_LiVohnGY"></div><button _OZZMoDle="button" _XItBVrFU="add-fine-grained-_vYeMoSlI-btn" class="btn btn-outline" _UkmOYHpC="margin-_TQhFmdgx: 10px;">添加地区</button></div>
      </div>
      <div _XItBVrFU="advanced-_rnkaYpvb" class="tab-_jGOnnFBw">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _OZZMoDle="checkbox" _XItBVrFU="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="resolvedDomainsGroup" _UkmOYHpC="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _XItBVrFU="resolvedDomainsInput" _BsCcdtSt="留空则使用内置默认域名" _OKuGmbFI="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-_NvMTEfhN" _EXQSsAbG-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _OZZMoDle="checkbox" _XItBVrFU="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="customNodesGroup" _UkmOYHpC="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _XItBVrFU="customNodesInput" _BsCcdtSt="一行一个地址,支持域名、IPv4、IPv6。" _OKuGmbFI="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-_NvMTEfhN" _EXQSsAbG-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _OZZMoDle="number" _XItBVrFU="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _OZZMoDle="number" _XItBVrFU="topNInput"></div>
            <div class="form-grid-label" _UkmOYHpC="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="display: none;"><input _OZZMoDle="number" _XItBVrFU="latencyRangeMinInput" _BsCcdtSt="最小"><span>-</span><input _OZZMoDle="number" _XItBVrFU="latencyRangeMaxInput" _BsCcdtSt="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="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-_NvMTEfhN" _EXQSsAbG-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _OZZMoDle="number" _XItBVrFU="geoLocationRetriesInput" _UkmOYHpC="_OOUiGycq: 80px;"> <span>次</span>
                <div _UkmOYHpC="display: flex; align-items: center; gap: 5px; margin-_qpYqmuXV: 20px;">
                    <input _OZZMoDle="checkbox" _XItBVrFU="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-_NvMTEfhN" _EXQSsAbG-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_QovRIXIW:_hZFhznoG' 或 '_QovRIXIW'。">?</span></div>
            <div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="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-_NvMTEfhN" _EXQSsAbG-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="websocketStreamerGroup" _UkmOYHpC="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="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-_NvMTEfhN" _EXQSsAbG-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="启用 /_WHEPWUJQ 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="apiConfigGroup" _UkmOYHpC="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="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-_NvMTEfhN" _EXQSsAbG-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="customSubPathGroup" _UkmOYHpC="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="customSubPathInput" _BsCcdtSt="例如: 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-_NvMTEfhN" _EXQSsAbG-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="justify-_jGOnnFBw: flex-start;"><input _OZZMoDle="checkbox" _XItBVrFU="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _XItBVrFU="visitorPasswordGroup" _UkmOYHpC="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_NvMTEfhN" _EXQSsAbG-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _UkmOYHpC="flex-direction: column; align-items: stretch; gap: 8px;"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="botTokenInput" _BsCcdtSt="Telegram Bot Token"><input _OZZMoDle="_YjWVVcUA" _XItBVrFU="chatIdInput" _BsCcdtSt="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _UkmOYHpC="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _UkmOYHpC="flex-direction: column; align-items: stretch; gap: 8px;"><input _OZZMoDle="_PbKatdDE" _XItBVrFU="oldPasswordInput" _BsCcdtSt="旧密码"><input _OZZMoDle="_PbKatdDE" _XItBVrFU="newPasswordInput" _BsCcdtSt="新密码 (至少6位)"><button _XItBVrFU="changePasswordBtn" class="btn" _UkmOYHpC="align-self: flex-start; margin-_qpYqmuXV: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _XItBVrFU="closeModalBtn" class="btn btn-outline">关闭</button><button _XItBVrFU="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _XItBVrFU="_SKRhiZBK">
      <div class="_kuWdNOSz-modal-_jGOnnFBw">
          <div class="_kuWdNOSz-modal-_QzJtcmPz"><h3 _XItBVrFU="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_kuWdNOSz-modal-_xiSDFndW" _XItBVrFU="appModalBody"></div>
      </div>
  </div>
  <div _XItBVrFU="_udFcrkHG">
      <div class="modal-_jGOnnFBw">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _EXQSsAbG-sub-_OZZMoDle="coreEngine">Xray</button><button class="btn _RWHwPNGh-btn" _EXQSsAbG-sub-_OZZMoDle="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _EXQSsAbG-sub-_OZZMoDle="coreProfile">Sing-Box</button><button class="btn _RWHwPNGh-btn" _EXQSsAbG-sub-_OZZMoDle="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _EXQSsAbG-sub-_OZZMoDle="configProfile">Clash</button><button class="btn _RWHwPNGh-btn" _EXQSsAbG-sub-_OZZMoDle="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _EXQSsAbG-sub-_OZZMoDle="policyProfile">Surge</button><button class="btn _RWHwPNGh-btn" _EXQSsAbG-sub-_OZZMoDle="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _UkmOYHpC="justify-_jGOnnFBw: center;"><button class="btn btn-outline" _XItBVrFU="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _XItBVrFU="_gLmMRDmw">
      <div class="modal-_jGOnnFBw">
          <img _XItBVrFU="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _appCKURi = {
        isValid: (_WHEPWUJQ) => _appCKURi.isIPv4(_WHEPWUJQ) || _appCKURi.isIPv6(_WHEPWUJQ),
        isIPv4: (_WHEPWUJQ) => {
            if (typeof _WHEPWUJQ !== 'string') return false;
            const _pcSTngrT = _WHEPWUJQ.split('.');
            if (_pcSTngrT._aXvlfeii !== 4) return false;
            return _pcSTngrT.every(_qfWwpMQy => {
                const _DIqEgDYQ = parseInt(_qfWwpMQy, 10);
                return !isNaN(_DIqEgDYQ) && _DIqEgDYQ >= 0 && _DIqEgDYQ <= 255 && String(_DIqEgDYQ) === _qfWwpMQy;
            });
        },
        isIPv6: (_WHEPWUJQ) => {
            if (typeof _WHEPWUJQ !== '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]))$/_LzBQhpmd.test(_WHEPWUJQ);
        },
        toLong4: (_WHEPWUJQ) => _WHEPWUJQ.split('.').reduce((acc, octet, _LzBQhpmd) => acc + (parseInt(octet) << (8*(3-_LzBQhpmd))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_WHEPWUJQ) => {
            try {
                const _sBEvfjUU = _WHEPWUJQ.split('/')[0];
                const _pcSTngrT = _sBEvfjUU.split('::');
                if (_pcSTngrT._aXvlfeii > 2) return 0n;
                let _IkyrzizL = [];
                if (_pcSTngrT[0]) {
                    _IkyrzizL = _pcSTngrT[0].split(':');
                }
                let _vUWrFlbd = [];
                if (_pcSTngrT._aXvlfeii > 1 && _pcSTngrT[1]) {
                    _vUWrFlbd = _pcSTngrT[1].split(':');
                }
                if (_IkyrzizL._aXvlfeii + _vUWrFlbd._aXvlfeii > 8) return 0n;
                const _fWXZfxNJ = 8 - (_IkyrzizL._aXvlfeii + _vUWrFlbd._aXvlfeii);
                const _QamkWOaA = [
                    ..._IkyrzizL,
                    ...Array(_fWXZfxNJ).fill('0'),
                    ..._vUWrFlbd
                ].map(_qfWwpMQy => _qfWwpMQy || '0');
                while(_QamkWOaA._aXvlfeii < 8) {
                    _QamkWOaA.push('0');
                }
                let _HXlcLjpK = 0n;
                for (const _qfWwpMQy of _QamkWOaA) {
                    if (_qfWwpMQy._aXvlfeii > 4) return 0n;
                    const _IxrLQWZq = BigInt('0x' + _qfWwpMQy);
                    _HXlcLjpK = (_HXlcLjpK << 16n) | _IxrLQWZq;
                }
                return _HXlcLjpK;
            } catch(_UQsFbFsZ) {
                return 0n;
            }
        },
        fromBigInt6: (_HXlcLjpK) => {
            if (typeof _HXlcLjpK !== '_HXlcLjpK' || _HXlcLjpK < 0n) return null;
            const _pcSTngrT = [];
            for (let _LzBQhpmd = 0; _LzBQhpmd < 8; _LzBQhpmd++) {
                _pcSTngrT.unshift((_HXlcLjpK & 0xFFFFn).toString(16));
                _HXlcLjpK >>= 16n;
            }
            let _JLJGEJYx = { start: -1, _COOdZUSo: 0 };
            let _XOXmjZnt = { start: -1, _COOdZUSo: 0 };
            for (let _LzBQhpmd = 0; _LzBQhpmd < 8; _LzBQhpmd++) {
                if (_pcSTngrT[_LzBQhpmd] === '0') {
                    if (_XOXmjZnt.start === -1) _XOXmjZnt.start = _LzBQhpmd;
                    _XOXmjZnt._COOdZUSo++;
                } else {
                    if (_XOXmjZnt._COOdZUSo > _JLJGEJYx._COOdZUSo) _JLJGEJYx = { ..._XOXmjZnt };
                    _XOXmjZnt = { start: -1, _COOdZUSo: 0 };
                }
            }
            if (_XOXmjZnt._COOdZUSo > _JLJGEJYx._COOdZUSo) _JLJGEJYx = { ..._XOXmjZnt };
            if (_JLJGEJYx._COOdZUSo > 1) {
                _pcSTngrT.splice(_JLJGEJYx.start, _JLJGEJYx._COOdZUSo, '');
                if (_JLJGEJYx.start === 0) _pcSTngrT.unshift('');
                if (_JLJGEJYx.start + _JLJGEJYx._COOdZUSo === 8) _pcSTngrT.push('');
            }
            return _pcSTngrT.join(':');
        },
        cidrToRange: (cidr, _BPHWddUk = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _VSdOCNqB = parseInt(bitsStr, 10);
                const _eHoapFhh = new Set();
                if (_appCKURi.isIPv4(range)) {
                    if (isNaN(_VSdOCNqB) || _VSdOCNqB < 8 || _VSdOCNqB > 32) return [];
                    if (_VSdOCNqB === 32) return [range];
                    const _jIUErqAD = _appCKURi.toLong4(range);
                    const _QSvjfhKC = (0xFFFFFFFF << (32 - _VSdOCNqB)) >>> 0;
                    const _QJIzIOAy = _jIUErqAD & _QSvjfhKC;
                    const _CfGXUuzO = 1 << (32 - _VSdOCNqB);
                    if (_CfGXUuzO <= 2) return [];
                    const _hmnpyFzh = Math.min(_BPHWddUk, _CfGXUuzO - 2);
                    let _EMJGrGJh = 0;
                    while (_eHoapFhh.size < _hmnpyFzh && _EMJGrGJh < _hmnpyFzh * 5) {
                        const _vLnoZIKR = Math.floor(Math.random() * (_CfGXUuzO - 2)) + 1;
                        _eHoapFhh.add(_appCKURi.fromLong4((_QJIzIOAy + _vLnoZIKR) >>> 0));
                        _EMJGrGJh++;
                    }
                    return Array.from(_eHoapFhh);
                } else if (_appCKURi.isIPv6(range)) {
                    if (isNaN(_VSdOCNqB) || _VSdOCNqB < 16 || _VSdOCNqB > 128) return [];
                    if (_VSdOCNqB === 128) return [range];
                    const _hiGMTfrg = _appCKURi.toBigInt6(range);
                    const _QSvjfhKC = (2n ** BigInt(128 - _VSdOCNqB) - 1n);
                    const _QJIzIOAy = _hiGMTfrg & ~_QSvjfhKC;
                    const _WGvUxCoa = 2n ** BigInt(128 - _VSdOCNqB);
                    if (_WGvUxCoa <= 2n) return [];
                    let _EMJGrGJh = 0;
                    while (_eHoapFhh.size < _BPHWddUk && _EMJGrGJh < _BPHWddUk * 5) {
                        const _FIsArHlT = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_FIsArHlT);
                        let _iUYECJQB = 0n;
                        for (const _KOabrntZ of _FIsArHlT) {
                            _iUYECJQB = (_iUYECJQB << 8n) | BigInt(_KOabrntZ);
                        }
                        const _vLnoZIKR = _iUYECJQB % (_WGvUxCoa - 2n) + 1n;
                        _eHoapFhh.add(_appCKURi.fromBigInt6(_QJIzIOAy + _vLnoZIKR));
                        _EMJGrGJh++;
                    }
                    return Array.from(_eHoapFhh);
                }
                return [];
            } catch(_UQsFbFsZ) {
                console.error(`CIDR to range failed for ${cidr}:`, _UQsFbFsZ);
                return [];
            }
        }
    };
    function _udwmUafU(_NZfsEYqG, _GMrCzQPY) {
        const _MpssZshV = {};
        const _gQKOaGLK = Object._gQKOaGLK(_GMrCzQPY);
        const _pcSTngrT = _gQKOaGLK.map(_WwdZHVsG => {
            const _VIhEOqPz = _NZfsEYqG * (_GMrCzQPY[_WwdZHVsG] / 100);
            return { _WwdZHVsG, _BPHWddUk: Math.floor(_VIhEOqPz), remainder: _VIhEOqPz - Math.floor(_VIhEOqPz) };
        });
        let _oHlxTSwz = _pcSTngrT.reduce((acc, _qfWwpMQy) => acc + _qfWwpMQy._BPHWddUk, 0);
        _pcSTngrT.sort((a, b) => b.remainder - a.remainder);
        let _gZtkUvDv = _NZfsEYqG - _oHlxTSwz;
        for (let _LzBQhpmd = 0; _LzBQhpmd < _gZtkUvDv; _LzBQhpmd++) {
            _pcSTngrT[_LzBQhpmd % _pcSTngrT._aXvlfeii]._BPHWddUk++;
        }
        for (const _qfWwpMQy of _pcSTngrT) {
            _MpssZshV[_qfWwpMQy._WwdZHVsG] = _qfWwpMQy._BPHWddUk;
        }
        return _MpssZshV;
    }
    const _NxfYIIeD = __PAGE_DATA_JSON__;
    const _vdylzgFG = _NxfYIIeD._VWOaYrNv;
    const _FSscbNPY = _NxfYIIeD.status;
    const _SopTVGod = __ALL_CF_CIDR_LIST_JSON__;
    const _nkCvItDc = __BALANCED_CF_CIDR_LIST_JSON__;
    const _EoWkXagF = __DEFAULT_DOMAINS_LIST_JSON__;
    const _ZuaBDvTh = __COUNTRY_MAP_JSON__;
    const _lBQHGXFr = _ZuaBDvTh;
    const _xFhqnEdt = 2500;
    const _JPTEdyum = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _yMEQLBEu = document.getElementById('_yMEQLBEu');
    const _dbdgYNTv = document.getElementById('_dbdgYNTv');
    const _KJNqEnTb = document.getElementById('status');
    const _kfbOFCcg = document.getElementById('_kfbOFCcg');
    const _tUoKYsfT = document.getElementById('resultsTable').querySelector('tbody');
    const _eiwrPhDh = document.getElementById('_eiwrPhDh');
    const _DlBhghNy = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _yTtUKDXH = document.getElementById('notificationTooltip');
    const _wZNpvSVi = document.getElementById('_wZNpvSVi');
    const _sRwhGwnq = document.getElementById('_sRwhGwnq');
    const _SKRhiZBK = document.getElementById('_SKRhiZBK');
    const _udFcrkHG = document.getElementById('_udFcrkHG');
    const _gLmMRDmw = document.getElementById('_gLmMRDmw');
    const _VozkIoTi = document.getElementById('_VozkIoTi');
    const _fFFohDTl = document.getElementById('_fFFohDTl');
    let _iBrQfdHp = null;
    let _GMYfFpIM = null;
    let _AgIEbNEp = [];
    let _YcwRaKwJ = false;
    let _DCAYnqUc = null;
    function _fLZOdbbj(_SgdcsNox, _TTrRYeYz) {
        const _QcKgtEtx=parseInt(_SgdcsNox.slice(1),16),t=_TTrRYeYz<0?0:255,p=_TTrRYeYz<0?_TTrRYeYz*-1:_TTrRYeYz,R=_QcKgtEtx>>16,G=_QcKgtEtx>>8&0x00FF,B=_QcKgtEtx&0x0000FF;
        const _tMKHRBEE = Math.round((t-R)*p)+R;
        const _kvejUdWn = Math.round((t-G)*p)+G;
        const _adDMSlYi = Math.round((t-B)*p)+B;
        return `rgb(${_tMKHRBEE.toString()}, ${_kvejUdWn.toString()}, ${_adDMSlYi.toString()})`;
    }
    function _EnVSJzeX(_rnkaYpvb) {
        const _YuznHXFN = _VatRuJjZ(_rnkaYpvb.primaryColor);
        if(_YuznHXFN) {
            document.documentElement._UkmOYHpC.setProperty('--primary-_OYIlBRow-rgb', `${_YuznHXFN.r},${_YuznHXFN.g},${_YuznHXFN.b}`);
        }
        document.documentElement._UkmOYHpC.setProperty('--primary-_OYIlBRow', _rnkaYpvb.primaryColor);
        document.documentElement._UkmOYHpC.setProperty('--primary-hover', _fLZOdbbj(_rnkaYpvb.primaryColor, -0.1));
        document.documentElement._UkmOYHpC.setProperty('--primary-gradient-start', _fLZOdbbj(_rnkaYpvb.primaryColor, 0.1));
        document.documentElement._UkmOYHpC.setProperty('--primary-gradient-end', _fLZOdbbj(_rnkaYpvb.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _rnkaYpvb.texts.title;
        document.title = _rnkaYpvb.texts.title;
        _wZNpvSVi.innerText = _iBrQfdHp ? _rnkaYpvb.texts.loginButtonSuccess : _rnkaYpvb.texts.loginButton;
        _wZNpvSVi._UkmOYHpC._OYIlBRow = _rnkaYpvb.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _rnkaYpvb.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _rnkaYpvb.texts.liveTitle;
        document.getElementById('liveTitleEl')._UkmOYHpC._OYIlBRow = _rnkaYpvb.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _rnkaYpvb.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._UkmOYHpC._OYIlBRow = _rnkaYpvb.colors.cachedTitle;
        const _nQQyxIvQ = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _nQQyxIvQ.forEach((_XItBVrFU, _HhnPIkCo) => {
            const _DvldUiRw = document.getElementById(_XItBVrFU);
            if (_DvldUiRw) _DvldUiRw.innerText = _rnkaYpvb.texts[`tableHeader${_HhnPIkCo + 1}`] || '';
        });
        const _ZtvZcxwC = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _ZtvZcxwC.forEach((_XItBVrFU, _HhnPIkCo) => {
             const _DvldUiRw = document.getElementById(_XItBVrFU);
             if (_DvldUiRw) _DvldUiRw.innerText = _vdylzgFG.texts[`tableHeader${_HhnPIkCo + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._UkmOYHpC._OYIlBRow = _rnkaYpvb.colors.tableHeader);
        document._xiSDFndW.className = '';
        document._xiSDFndW.classList.add(_rnkaYpvb.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_rnkaYpvb.theme)) {
            document._xiSDFndW.classList.add('glassy-components');
        }
        document._xiSDFndW._UkmOYHpC.backgroundImage = '';
        _IUxxovxC();
        if (_rnkaYpvb.theme.includes('particles') || _rnkaYpvb.theme.includes('glass')) {
            _nPmUywmE(_rnkaYpvb.particleColor);
        } else if (_rnkaYpvb.theme.includes('bing')) {
            document._xiSDFndW._UkmOYHpC.backgroundImage = '_uHSLwcDj(/bing-wallpaper)';
        }
    }
    function _XFDLPTeJ() {
        _iBrQfdHp = null;
        if(_GMYfFpIM) clearTimeout(_GMYfFpIM);
        _EnVSJzeX(_vdylzgFG);
        _oIstirHt("登录已超时,请重新登录。", "warning");
    }
    async function _fNIhRete() {
        if (_iBrQfdHp) {
            _QApuKLWH();
            return;
        }
        const _RVlhwbsF = prompt('请输入管理员密码:');
        if (!_RVlhwbsF) return;
        try {
            const _AaBQCexz = await fetch('/api/verify-_PbKatdDE', {
                method: 'POST',
                _nQQyxIvQ: { 'Content-Type': 'application/json' },
                _xiSDFndW: JSON.stringify({ _PbKatdDE: _RVlhwbsF })
            });
            const _AeRUZbns = await _AaBQCexz.json();
            if (_AeRUZbns.success) {
                _iBrQfdHp = _RVlhwbsF;
                _oIstirHt("登录成功!有效期5分钟。", "success");
                if (_GMYfFpIM) clearTimeout(_GMYfFpIM);
                _GMYfFpIM = setTimeout(_XFDLPTeJ, 5 * 60 * 1000);
                _EnVSJzeX(_vdylzgFG);
                _QApuKLWH();
            } else {
                throw new Error(_AeRUZbns._YzuxBjrd || '密码验证失败');
            }
        } catch (_UQsFbFsZ) {
            _oIstirHt(`登录失败: ${_UQsFbFsZ._YzuxBjrd}`, "error");
        }
    }
    function _uIKBKetr() {
        if (!_FSscbNPY._ZGvdyWcm) {
            _VozkIoTi._UkmOYHpC.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _PbKatdDE = document.getElementById('initialPassword')._IxrLQWZq;
                const _bpuAKOiw = document.getElementById('confirmPassword')._IxrLQWZq;
                if (_PbKatdDE !== _bpuAKOiw) {
                    _oIstirHt("两次输入的密码不一致!", "error");
                    return;
                }
                if (_PbKatdDE._aXvlfeii < 6) {
                    _oIstirHt("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _AaBQCexz = await fetch('/api/_YZJNJqsS-_PbKatdDE', {
                        method: 'POST',
                        _nQQyxIvQ: { 'Content-Type': 'application/json' },
                        _xiSDFndW: JSON.stringify({ _PbKatdDE })
                    });
                    const _AeRUZbns = await _AaBQCexz.json();
                    if (_AeRUZbns.success) {
                        _oIstirHt(_AeRUZbns._YzuxBjrd, "success");
                        setTimeout(() => _eUhZBiAC.reload(), 1500);
                    } else {
                        throw new Error(_AeRUZbns._YzuxBjrd);
                    }
                } catch(_UQsFbFsZ) {
                    _oIstirHt(`设置密码失败: ${_UQsFbFsZ._YzuxBjrd}`, "error");
                }
            });
            return;
        }
        _wZNpvSVi.addEventListener('click', _fNIhRete);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _sRwhGwnq._UkmOYHpC.display = 'none'; });
        _sRwhGwnq.addEventListener('click', (_UQsFbFsZ) => { if (_UQsFbFsZ.target === _sRwhGwnq) _sRwhGwnq._UkmOYHpC.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_LiVohnGY .fine-grained-_RHiGlNGb-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-_LiVohnGY .fine-grained-_RHiGlNGb-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_iBrQfdHp) {
                _oIstirHt("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _otJqhsFn = [];
            document.querySelectorAll('#custom-fields-_LiVohnGY .custom-field-_OAAlOKOG').forEach(_OAAlOKOG => {
                const _EGokjVLK = _OAAlOKOG.querySelector('.custom-field-_EGokjVLK')._IxrLQWZq.trim();
                const _IxrLQWZq = _OAAlOKOG.querySelector('.custom-field-_IxrLQWZq')._IxrLQWZq.trim();
                if (_EGokjVLK) _otJqhsFn.push({ _EGokjVLK, _IxrLQWZq });
            });
            const _LziXBEPf = [];
            document.querySelectorAll('#parameter-sets-_LiVohnGY .parameter-_YZJNJqsS-_OAAlOKOG').forEach(_OAAlOKOG => {
                const _EGokjVLK = _OAAlOKOG.querySelector('.param-_YZJNJqsS-_EGokjVLK')._IxrLQWZq.trim();
                const _QovRIXIW = _OAAlOKOG.querySelector('.param-_YZJNJqsS-_QovRIXIW')._IxrLQWZq.trim();
                const _rwOMWNnH = _OAAlOKOG.querySelector('.param-_YZJNJqsS-_rwOMWNnH')._IxrLQWZq.trim();
                const _jzqYlrFe = _OAAlOKOG.querySelector('.param-_YZJNJqsS-_jzqYlrFe')._IxrLQWZq.trim();
                if(_EGokjVLK) _LziXBEPf.push({ _EGokjVLK, _QovRIXIW, '_rwOMWNnH': _rwOMWNnH, _jzqYlrFe });
            });
            const _BiOVAOnq = [];
            document.querySelectorAll('#fine-grained-sources-_LiVohnGY .fine-grained-_vYeMoSlI-_OAAlOKOG').forEach(_OAAlOKOG => {
                const _eUhZBiAC = _OAAlOKOG.querySelector('.fine-grained-_eUhZBiAC')._IxrLQWZq.trim();
                const _eHoapFhh = _OAAlOKOG.querySelector('.fine-grained-_eHoapFhh')._IxrLQWZq.trim();
                const _RHiGlNGb = _OAAlOKOG.querySelector('.fine-grained-_RHiGlNGb-cb').checked;
                const _ehzgUHhj = parseInt(_OAAlOKOG.querySelector('.fine-grained-_ehzgUHhj')._IxrLQWZq, 10) || 0;
                const _NWFRkhAb = _OAAlOKOG.querySelector('.use-_EGokjVLK-as-_eUhZBiAC-cb').checked;
                if (_eUhZBiAC && _eHoapFhh) {
                    _BiOVAOnq.push({ _eUhZBiAC, _eHoapFhh, _RHiGlNGb, _ehzgUHhj, _NWFRkhAb });
                }
            });
            
            let _UkJIgdXW = parseInt(document.getElementById('subscriptionIdLength')._IxrLQWZq, 10);
            if (isNaN(_UkJIgdXW) || _UkJIgdXW < 2) _UkJIgdXW = 2;
            if (_UkJIgdXW > 128) _UkJIgdXW = 128;

            const _MxQLqjNl = {
                theme: document.getElementById('themeSelect')._IxrLQWZq,
                primaryColor: document.getElementById('primaryColorInput')._IxrLQWZq,
                particleColor: document.getElementById('particleColorInput')._IxrLQWZq,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._IxrLQWZq,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._IxrLQWZq, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._IxrLQWZq, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._IxrLQWZq, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._IxrLQWZq, 10) || 0,
                _vTMflxAD: document.getElementById('converterServiceUrlInput')._IxrLQWZq.trim(),
                subscriptionId: {
                    _aXvlfeii: _UkJIgdXW,
                    _wtqCubuY: document.getElementById('subscriptionIdCharset')._IxrLQWZq.trim()
                },
                api: {
                    _RHiGlNGb: document.getElementById('enableApiCheckbox').checked,
                    _YzuxBjrd: document.getElementById('apiMessageInput')._IxrLQWZq || '维护中...',
                },
                ispFilter: { 
                    _RHiGlNGb: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._IxrLQWZq, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _RHiGlNGb: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _RHiGlNGb: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _uHSLwcDj: document.getElementById('websocketStreamerUrlInput')._IxrLQWZq.trim()
                },
                visitorPassword: {
                    _RHiGlNGb: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _PbKatdDE: document.getElementById('visitorPasswordInput')._IxrLQWZq.trim()
                },
                customSubPath: {
                    _RHiGlNGb: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _jzqYlrFe: document.getElementById('customSubPathInput')._IxrLQWZq.trim()
                },
                itemLink: {
                    _RHiGlNGb: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._IxrLQWZq,
                    selectionMode: document.getElementById('parameterSelectionMode')._IxrLQWZq,
                    _LziXBEPf: _LziXBEPf,
                    _otJqhsFn: _otJqhsFn,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._IxrLQWZq.trim(),
                },
                announcement: {
                    popup: {
                        _RHiGlNGb: document.getElementById('enablePopup').checked,
                        _YjWVVcUA: document.getElementById('announcementText')._IxrLQWZq,
                        _zTnlloQX: parseInt(document.getElementById('popupDuration')._IxrLQWZq, 10) || 5
                    },
                    marquee: {
                        _RHiGlNGb: document.getElementById('enableMarquee').checked,
                        _YjWVVcUA: document.getElementById('announcementText')._IxrLQWZq
                    }
                },
                fineGrained: {
                    _RHiGlNGb: true,
                    sources: _BiOVAOnq
                },
                customNodes: {
                    _RHiGlNGb: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._IxrLQWZq
                },
                texts: {
                    title: document.getElementById('textInput_title')._IxrLQWZq,
                    loginButton: document.getElementById('textInput_loginButton')._IxrLQWZq,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._IxrLQWZq,
                    liveTitle: document.getElementById('textInput_liveTitle')._IxrLQWZq,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._IxrLQWZq,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._IxrLQWZq,
                    loginButton: document.getElementById('colorInput_loginButton')._IxrLQWZq,
                    liveTitle: document.getElementById('colorInput_liveTitle')._IxrLQWZq,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._IxrLQWZq,
                    tableHeader: document.getElementById('colorInput_tableHeader')._IxrLQWZq,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._IxrLQWZq.trim(),
                    chat_id: document.getElementById('chatIdInput')._IxrLQWZq.trim(),
                },
            };
            try {
                const _AaBQCexz = await fetch('/api/_VWOaYrNv', {
                    method: 'POST',
                    _nQQyxIvQ: { 'Content-Type': 'application/json' },
                    _xiSDFndW: JSON.stringify({ _VWOaYrNv: _MxQLqjNl, adminPassword: _iBrQfdHp })
                });
                const _AeRUZbns = await _AaBQCexz.json();
                if (_AaBQCexz.ok && _AeRUZbns.success) {
                    _oIstirHt("配置已保存,正在刷新...", "success");
                    setTimeout(() => _eUhZBiAC.reload(), 1500);
                } else {
                    throw new Error(_AeRUZbns._YzuxBjrd || '未知错误');
                }
            } catch (_UQsFbFsZ) {
                _oIstirHt(`操作失败: ${_UQsFbFsZ._YzuxBjrd}`, "error");
                if (String(_UQsFbFsZ._YzuxBjrd).includes("密码错误")) {
                    _XFDLPTeJ();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _itFxKLth = document.getElementById('oldPasswordInput')._IxrLQWZq;
            const _dKocdSnm = document.getElementById('newPasswordInput')._IxrLQWZq;
            if (!_itFxKLth || !_dKocdSnm) {
                _oIstirHt("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _AaBQCexz = await fetch('/api/change-_PbKatdDE', {
                    method: 'POST',
                    _nQQyxIvQ: { 'Content-Type': 'application/json' },
                    _xiSDFndW: JSON.stringify({ _itFxKLth, _dKocdSnm })
                });
                const _AeRUZbns = await _AaBQCexz.json();
                if (_AeRUZbns.success) {
                    _oIstirHt(_AeRUZbns._YzuxBjrd, "success");
                    document.getElementById('oldPasswordInput')._IxrLQWZq = '';
                    document.getElementById('newPasswordInput')._IxrLQWZq = '';
                    _iBrQfdHp = _dKocdSnm;
                } else {
                    throw new Error(_AeRUZbns._YzuxBjrd);
                }
            } catch(_UQsFbFsZ) {
                _oIstirHt(`修改密码失败: ${_UQsFbFsZ._YzuxBjrd}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('resolvedDomainsGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('customNodesGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('apiConfigGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('itemLinkConfigGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('websocketStreamerGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
            const _JbtSblBi = document.querySelector('#parameter-sets-_LiVohnGY .param-_YZJNJqsS-_jzqYlrFe');
            if (_JbtSblBi) {
                if (_UQsFbFsZ.target.checked) {
                    _JbtSblBi._IxrLQWZq = '/snippets?_WHEPWUJQ=endpointAddress:_hZFhznoG(443)&nat64=6to4';
                } else {
                    _JbtSblBi._IxrLQWZq = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _BghlbQsD('', '');
        });
        document.getElementById('add-parameter-_YZJNJqsS-btn').addEventListener('click', () => {
            const _BPHWddUk = document.querySelectorAll('.parameter-_YZJNJqsS-_OAAlOKOG')._aXvlfeii + 1;
            _grAtsbhW({_EGokjVLK: `配置${_BPHWddUk}`, _QovRIXIW: '', _rwOMWNnH: '', _jzqYlrFe: ''});
            _GVScRIZO();
        });
         document.getElementById('add-fine-grained-_vYeMoSlI-btn').addEventListener('click', () => {
             _MEhonaHV({ _eUhZBiAC: '', _eHoapFhh: '', _RHiGlNGb: true, _ehzgUHhj: 50, _NWFRkhAb: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('visitorPasswordGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('customSubPathGroup')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_UQsFbFsZ) => {
            document.getElementById('popupDurationContainer')._UkmOYHpC.display = _UQsFbFsZ.target.checked ? 'flex' : 'none';
        });
    }
    function _BghlbQsD(_EGokjVLK, _IxrLQWZq) {
        const _LiVohnGY = document.getElementById('custom-fields-_LiVohnGY');
        const _BsTeKwCc = document.createElement('div');
        _BsTeKwCc.className = 'form-grid custom-field-_OAAlOKOG';
        _BsTeKwCc._UkmOYHpC = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _BsTeKwCc.innerHTML = `
            <input _OZZMoDle="_YjWVVcUA" class="custom-field-_EGokjVLK" _BsCcdtSt="占位符名称" _IxrLQWZq="${_EGokjVLK}">
            <input _OZZMoDle="_YjWVVcUA" class="custom-field-_IxrLQWZq" _BsCcdtSt="值" _IxrLQWZq="${_IxrLQWZq}">
            <button _OZZMoDle="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _LiVohnGY.appendChild(_BsTeKwCc);
    }
    function _grAtsbhW(_YZJNJqsS) {
        const _LiVohnGY = document.getElementById('parameter-sets-_LiVohnGY');
        const _BsTeKwCc = document.createElement('div');
        _BsTeKwCc.className = 'parameter-_YZJNJqsS-_OAAlOKOG';
        _BsTeKwCc.innerHTML = `
            <div class="parameter-_YZJNJqsS-_QzJtcmPz">
                <input _OZZMoDle="_YjWVVcUA" class="param-_YZJNJqsS-_EGokjVLK" _BsCcdtSt="配置名称" _IxrLQWZq="${_YZJNJqsS._EGokjVLK}" oninput="_GVScRIZO()">
                <button _OZZMoDle="button" class="btn btn-outline" onclick="this.closest('.parameter-_YZJNJqsS-_OAAlOKOG').remove(); _GVScRIZO();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" class="param-_YZJNJqsS-_QovRIXIW" _IxrLQWZq="${_YZJNJqsS._QovRIXIW || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" class="param-_YZJNJqsS-_rwOMWNnH" _IxrLQWZq="${_YZJNJqsS['_rwOMWNnH'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _OZZMoDle="_YjWVVcUA" class="param-_YZJNJqsS-_jzqYlrFe" _IxrLQWZq="${_YZJNJqsS._jzqYlrFe || ''}"></div>
            </div>
        `;
        _LiVohnGY.appendChild(_BsTeKwCc);
    }
    function _GVScRIZO() {
        const _QWphmrip = document.getElementById('parameterSelectionMode');
        const _zvRvNtxE = _QWphmrip._IxrLQWZq;
        _QWphmrip.innerHTML = '';
        const _bgQpAkiL = document.createElement('_KncfItPD');
        _bgQpAkiL._IxrLQWZq = 'random';
        _bgQpAkiL.textContent = '随机轮询';
        _QWphmrip.appendChild(_bgQpAkiL);
        const _gxNlzeWw = document.createElement('_KncfItPD');
        _gxNlzeWw._IxrLQWZq = 'first';
        _gxNlzeWw.textContent = '使用第一组';
        _QWphmrip.appendChild(_gxNlzeWw);
        document.querySelectorAll('.param-_YZJNJqsS-_EGokjVLK').forEach(input => {
            const _EGokjVLK = input._IxrLQWZq.trim();
            if (_EGokjVLK) {
                const _KncfItPD = document.createElement('_KncfItPD');
                _KncfItPD._IxrLQWZq = _EGokjVLK;
                _KncfItPD.textContent = `指定: ${_EGokjVLK}`;
                _QWphmrip.appendChild(_KncfItPD);
            }
        });
        if (Array.from(_QWphmrip.options).some(opt => opt._IxrLQWZq === _zvRvNtxE)) {
            _QWphmrip._IxrLQWZq = _zvRvNtxE;
        } else {
            _QWphmrip._IxrLQWZq = 'random';
        }
    }
    function _MEhonaHV(_vYeMoSlI) {
        const _LiVohnGY = document.getElementById('fine-grained-sources-_LiVohnGY');
        const _BsTeKwCc = document.createElement('div');
        _BsTeKwCc.className = 'fine-grained-_vYeMoSlI-_OAAlOKOG parameter-_YZJNJqsS-_OAAlOKOG';
        _BsTeKwCc._UkmOYHpC.padding = '1rem';
        const _AEZXuAWa = _vYeMoSlI._NWFRkhAb ? 'checked' : '';
        const _cARkBtWH = !_vYeMoSlI._NWFRkhAb ? 'checked' : '';
        const _DUaegRMb = _vYeMoSlI._RHiGlNGb ? 'checked' : '';
        _BsTeKwCc.innerHTML = `
            <div _UkmOYHpC="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _OZZMoDle="_YjWVVcUA" class="fine-grained-_eUhZBiAC" _BsCcdtSt="地区名称 (如: 香港)" _IxrLQWZq="${_vYeMoSlI._eUhZBiAC || ''}">
                <div _UkmOYHpC="display: flex; align-items: center; gap: 5px;"><input _OZZMoDle="checkbox" class="fine-grained-_RHiGlNGb-cb" ${_DUaegRMb}><label>启用</label></div>
                <button _OZZMoDle="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_vYeMoSlI-_OAAlOKOG').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_eHoapFhh" _BsCcdtSt="IP源 (每行一个IP、CIDR或URL)" _OKuGmbFI="3" _UkmOYHpC="_OOUiGycq:100%;">${_vYeMoSlI._eHoapFhh || ''}</textarea>
            <div class="fine-grained-options" _UkmOYHpC="justify-_jGOnnFBw: space-between;">
                <div _UkmOYHpC="display: flex; gap: 1rem;">
                    <label><input _OZZMoDle="checkbox" class="query-_Ygipgubb-cb" ${_cARkBtWH}>查询真实归属地</label>
                    <label><input _OZZMoDle="checkbox" class="use-_EGokjVLK-as-_eUhZBiAC-cb" ${_AEZXuAWa}>使用地区名称作为归属地</label>
                </div>
                <div _UkmOYHpC="display: flex; align-items: center; gap: 5px;"><input _OZZMoDle="number" class="fine-grained-_ehzgUHhj _ehzgUHhj-input" _IxrLQWZq="${_vYeMoSlI._ehzgUHhj || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _qWQcjYWq = _BsTeKwCc.querySelector('.query-_Ygipgubb-cb');
        const _rIrorEYm = _BsTeKwCc.querySelector('.use-_EGokjVLK-as-_eUhZBiAC-cb');
        _qWQcjYWq.addEventListener('change', () => {
            if (_qWQcjYWq.checked) {
                _rIrorEYm.checked = false;
            } else if (!_rIrorEYm.checked) {
                _qWQcjYWq.checked = true;
            }
        });
        _rIrorEYm.addEventListener('change', () => {
            if (_rIrorEYm.checked) {
                _qWQcjYWq.checked = false;
            } else if (!_rIrorEYm.checked) {
                _rIrorEYm.checked = true;
            }
        });
        _LiVohnGY.appendChild(_BsTeKwCc);
    }
    function _QApuKLWH() {
        const _rnkaYpvb = _vdylzgFG;
        document.getElementById('themeSelect')._IxrLQWZq = _rnkaYpvb.theme;
        document.getElementById('primaryColorInput')._IxrLQWZq = _rnkaYpvb.primaryColor;
        document.getElementById('particleColorInput')._IxrLQWZq = _rnkaYpvb.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _rnkaYpvb.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._BsCcdtSt = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._IxrLQWZq = _rnkaYpvb.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._UkmOYHpC.display = _rnkaYpvb.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _rnkaYpvb.customNodes._RHiGlNGb;
        document.getElementById('customNodesInput')._IxrLQWZq = _rnkaYpvb.customNodes.list || '';
        document.getElementById('customNodesGroup')._UkmOYHpC.display = _rnkaYpvb.customNodes._RHiGlNGb ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._IxrLQWZq = _rnkaYpvb._vTMflxAD || '';
        document.getElementById('subscriptionIdLength')._IxrLQWZq = _rnkaYpvb.subscriptionId._aXvlfeii;
        document.getElementById('subscriptionIdCharset')._IxrLQWZq = _rnkaYpvb.subscriptionId._wtqCubuY;
        document.getElementById('enableItemLinkCheckbox').checked = _rnkaYpvb.itemLink._RHiGlNGb;
        document.getElementById('itemLinkConfigGroup')._UkmOYHpC.display = _rnkaYpvb.itemLink._RHiGlNGb ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._IxrLQWZq = _rnkaYpvb.itemLink.template;
        const _sOwlGTOB = document.getElementById('parameter-sets-_LiVohnGY');
        _sOwlGTOB.innerHTML = '';
        if (_rnkaYpvb.itemLink._LziXBEPf && Array.isArray(_rnkaYpvb.itemLink._LziXBEPf)) {
            _rnkaYpvb.itemLink._LziXBEPf.forEach(_YZJNJqsS => _grAtsbhW(_YZJNJqsS));
        }
        _GVScRIZO();
        document.getElementById('parameterSelectionMode')._IxrLQWZq = _rnkaYpvb.itemLink.selectionMode || 'random';
        const _JbtSblBi = document.querySelector('#parameter-sets-_LiVohnGY .param-_YZJNJqsS-_jzqYlrFe');
        if (_JbtSblBi && _rnkaYpvb.websocketStreamer && _rnkaYpvb.websocketStreamer._RHiGlNGb) {
            _JbtSblBi._IxrLQWZq = '/snippets?_WHEPWUJQ=endpointAddress:_hZFhznoG(443)&nat64=6to4';
        }
        const _jsLGfwhZ = document.getElementById('custom-fields-_LiVohnGY');
        _jsLGfwhZ.innerHTML = '';
        if (_rnkaYpvb.itemLink._otJqhsFn && Array.isArray(_rnkaYpvb.itemLink._otJqhsFn)) {
            _rnkaYpvb.itemLink._otJqhsFn.forEach(field => _BghlbQsD(field._EGokjVLK, field._IxrLQWZq));
        }
        document.getElementById('universalFallbackAddressInput')._IxrLQWZq = _rnkaYpvb.dataFeeds.universalFallbackAddress || '';
        const _xJwnZtIe = _rnkaYpvb.websocketStreamer && _rnkaYpvb.websocketStreamer._RHiGlNGb;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _xJwnZtIe;
        document.getElementById('websocketStreamerUrlInput')._IxrLQWZq = _rnkaYpvb.websocketStreamer ? _rnkaYpvb.websocketStreamer._uHSLwcDj : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._UkmOYHpC.display = _xJwnZtIe ? 'block' : 'none';
        const _KuvzbgvL = _rnkaYpvb.announcement || {};
        document.getElementById('announcementText')._IxrLQWZq = (_KuvzbgvL.popup && _KuvzbgvL.popup._YjWVVcUA) || (_KuvzbgvL.marquee && _KuvzbgvL.marquee._YjWVVcUA) || '';
        document.getElementById('enableMarquee').checked = _KuvzbgvL.marquee && _KuvzbgvL.marquee._RHiGlNGb;
        document.getElementById('enablePopup').checked = _KuvzbgvL.popup && _KuvzbgvL.popup._RHiGlNGb;
        document.getElementById('popupDuration')._IxrLQWZq = (_KuvzbgvL.popup && _KuvzbgvL.popup._zTnlloQX) || 5;
        document.getElementById('popupDurationContainer')._UkmOYHpC.display = (_KuvzbgvL.popup && _KuvzbgvL.popup._RHiGlNGb) ? 'flex' : 'none';
        const _SCIwvrYC = document.getElementById('fine-grained-sources-_LiVohnGY');
        _SCIwvrYC.innerHTML = '';
        if (_rnkaYpvb.fineGrained.sources && Array.isArray(_rnkaYpvb.fineGrained.sources)) {
            _rnkaYpvb.fineGrained.sources.forEach(_vYeMoSlI => _MEhonaHV(_vYeMoSlI));
        }
        document.getElementById('sampleSizeInput')._IxrLQWZq = _rnkaYpvb.sampleSize;
        document.getElementById('topNInput')._IxrLQWZq = _rnkaYpvb.topN;
        document.getElementById('latencyRangeMinInput')._IxrLQWZq = _rnkaYpvb.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._IxrLQWZq = _rnkaYpvb.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _rnkaYpvb.ispFilter._RHiGlNGb;
        const _iUphkczi = _rnkaYpvb.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._IxrLQWZq = _iUphkczi.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _iUphkczi.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _rnkaYpvb.streamer._RHiGlNGb;
        document.getElementById('enableApiCheckbox').checked = _rnkaYpvb.api._RHiGlNGb;
        document.getElementById('apiConfigGroup')._UkmOYHpC.display = _rnkaYpvb.api._RHiGlNGb ? 'block' : 'none';
        document.getElementById('apiMessageInput')._IxrLQWZq = _rnkaYpvb.api._YzuxBjrd;
        const _yIoFlZln = _rnkaYpvb.customSubPath && _rnkaYpvb.customSubPath._RHiGlNGb;
        document.getElementById('enableCustomSubPathCheckbox').checked = _yIoFlZln;
        document.getElementById('customSubPathInput')._IxrLQWZq = _rnkaYpvb.customSubPath ? _rnkaYpvb.customSubPath._jzqYlrFe : 'latest';
        document.getElementById('customSubPathGroup')._UkmOYHpC.display = _yIoFlZln ? 'block' : 'none';
        const _XqCafcxn = _rnkaYpvb.visitorPassword && _rnkaYpvb.visitorPassword._RHiGlNGb;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _XqCafcxn;
        document.getElementById('visitorPasswordInput')._IxrLQWZq = _rnkaYpvb.visitorPassword ? _rnkaYpvb.visitorPassword._PbKatdDE : '';
        document.getElementById('visitorPasswordGroup')._UkmOYHpC.display = _XqCafcxn ? 'block' : 'none';
        document.getElementById('textInput_title')._IxrLQWZq = _rnkaYpvb.texts.title;
        document.getElementById('textInput_loginButton')._IxrLQWZq = _rnkaYpvb.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._IxrLQWZq = _rnkaYpvb.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._IxrLQWZq = _rnkaYpvb.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._IxrLQWZq = _rnkaYpvb.texts.cachedTitle;
        document.getElementById('colorInput_title')._IxrLQWZq = _rnkaYpvb.colors.title;
        document.getElementById('colorInput_loginButton')._IxrLQWZq = _rnkaYpvb.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._IxrLQWZq = _rnkaYpvb.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._IxrLQWZq = _rnkaYpvb.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._IxrLQWZq = _rnkaYpvb.colors.tableHeader;
        document.getElementById('botTokenInput')._IxrLQWZq = _rnkaYpvb.telegram.bot_token || '';
        document.getElementById('chatIdInput')._IxrLQWZq = _rnkaYpvb.telegram.chat_id || '';
        _sRwhGwnq._UkmOYHpC.display = 'flex';
    }
    function _SIwmqJUs(_LBbpAWQA) {
        if (window.innerWidth <= 768) {
            const _OKuGmbFI = _LBbpAWQA.querySelectorAll('thead tr, tbody tr');
            _OKuGmbFI.forEach(_OAAlOKOG => {
                const _uBDsDpsW = Array.from(_OAAlOKOG.children);
                const _JvbLoAvH = [
                    _uBDsDpsW[0],
                    _uBDsDpsW[1],
                    _uBDsDpsW[3],
                    _uBDsDpsW[6],
                    _uBDsDpsW[2],
                    _uBDsDpsW[4],
                    _uBDsDpsW[5]
                ];
                _JvbLoAvH.forEach(cell => _OAAlOKOG.appendChild(cell));
            });
        }
    }
    async function _QACQjqZR() {
        if (!_FSscbNPY._ZGvdyWcm) {
            _uIKBKetr();
            return;
        }
        if (_vdylzgFG.announcement && _vdylzgFG.announcement.marquee && _vdylzgFG.announcement.marquee._RHiGlNGb && _vdylzgFG.announcement.marquee._YjWVVcUA) {
            const _uIcUVXBK = document.getElementById('marquee-_LiVohnGY');
            const _swwFNRFw = document.getElementById('marquee-_YjWVVcUA');
            const _qyqHMVgj = document.querySelector('.progress-section');
            if (_uIcUVXBK && _swwFNRFw && _qyqHMVgj) {
                _swwFNRFw.innerText = _vdylzgFG.announcement.marquee._YjWVVcUA;
                _uIcUVXBK._UkmOYHpC.display = 'block';
                const _bSScvpdI = () => {
                    _uIcUVXBK._UkmOYHpC._OOUiGycq = `${_qyqHMVgj.offsetWidth}px`;
                    const _rsESFyAT = _swwFNRFw.offsetWidth;
                    const _xlmwqrHX = _uIcUVXBK.offsetWidth;
                    const _zTnlloQX = (_rsESFyAT + _xlmwqrHX) / 100;
                    _swwFNRFw._UkmOYHpC.animationDuration = `${Math.max(10, _zTnlloQX)}s`;
                };
                _bSScvpdI();
                window.addEventListener('resize', _bSScvpdI);
            }
        }
        
        _EnVSJzeX(_vdylzgFG);
        
        if (_vdylzgFG.announcement && _vdylzgFG.announcement.popup && _vdylzgFG.announcement.popup._RHiGlNGb && _vdylzgFG.announcement.popup._YjWVVcUA) {
            setTimeout(() => {
                _oIstirHt(_vdylzgFG.announcement.popup._YjWVVcUA, 'info', _vdylzgFG.announcement.popup._zTnlloQX * 1000);
            }, 500);
        }
        _uIKBKetr();
        _dtYtmsFF();
        _RBkjWpVh();
        _ssefyZFW();
        await _yfavkCsE();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _MmtRmUcb = window._eUhZBiAC.origin + '/_WHEPWUJQ';
            navigator.clipboard.writeText(_MmtRmUcb).then(() => {
                _oIstirHt('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_vdylzgFG.visitorPassword && _vdylzgFG.visitorPassword._RHiGlNGb) {
            _yMEQLBEu._UkmOYHpC.display = 'none';
            const _yvsYVsex = document.getElementById('visitorPasswordPrompt');
            _yvsYVsex._UkmOYHpC.display = 'block';
            const _NgKOOrSH = document.getElementById('visitorPasswordEntry');
            const _QxEcwDUw = document.getElementById('startTestWithPasswordBtn');
            const _slhHkhyW = async () => {
                const _PbKatdDE = _NgKOOrSH._IxrLQWZq;
                if (!_PbKatdDE) {
                    _oIstirHt('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _AaBQCexz = await fetch('/api/verify-visitor-_PbKatdDE', {
                        method: 'POST',
                        _nQQyxIvQ: { 'Content-Type': 'application/json' },
                        _xiSDFndW: JSON.stringify({ _PbKatdDE })
                    });
                    const _AeRUZbns = await _AaBQCexz.json();
                    if (_AaBQCexz.ok && _AeRUZbns.success) {
                        _oIstirHt('验证成功,开始测试...', 'success');
                        _yvsYVsex._UkmOYHpC.display = 'none';
                        _yMEQLBEu._UkmOYHpC.display = 'block';
                        await _WzPUQwqF();
                    } else {
                        throw new Error(_AeRUZbns._YzuxBjrd || '密码错误');
                    }
                } catch (_UQsFbFsZ) {
                    _oIstirHt(`验证失败: ${_UQsFbFsZ._YzuxBjrd}`, "error");
                    _NgKOOrSH._IxrLQWZq = '';
                    _NgKOOrSH.focus();
                }
            };
            _QxEcwDUw.addEventListener('click', _slhHkhyW);
            _NgKOOrSH.addEventListener('keypress', (_UQsFbFsZ) => {
                if (_UQsFbFsZ._WwdZHVsG === 'Enter') {
                    _UQsFbFsZ.preventDefault();
                    _slhHkhyW();
                }
            });
            _NgKOOrSH.focus();
        } else {
            _KJNqEnTb.textContent = "页面加载完成,准备开始测试...";
            await _xIocfjQU(100);
            await _WzPUQwqF();
        }
    }
    async function _xIocfjQU(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _VatRuJjZ(_SgdcsNox) {
      let _AeRUZbns = /^#?([a-_QcKgtEtx\d]{2})([a-_QcKgtEtx\d]{2})([a-_QcKgtEtx\d]{2})$/_LzBQhpmd.exec(_SgdcsNox);
      return _AeRUZbns ? { r: parseInt(_AeRUZbns[1], 16), g: parseInt(_AeRUZbns[2], 16), b: parseInt(_AeRUZbns[3], 16) } : null;
    }
    async function _IfwlaYHw(_WHEPWUJQ) {
        const _kLPWFJdW = new AbortController();
        const _lZayeUJR = setTimeout(() => _kLPWFJdW.abort(), _xFhqnEdt);
        const _fkWNbomm = Date.now();
        try {
            const _dlztkhuQ = _appCKURi.isIPv6(_WHEPWUJQ) ? `[${_WHEPWUJQ}]` : _WHEPWUJQ;
            const _uHSLwcDj = `https://${_dlztkhuQ}/cdn-cgi/trace`;
            await fetch(_uHSLwcDj, {
                signal: _kLPWFJdW.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._EGokjVLK === 'AbortError') {
                return { _WHEPWUJQ, _lElJfGaG: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_lZayeUJR);
        }
        const _lElJfGaG = Date.now() - _fkWNbomm;
        return { _WHEPWUJQ, _lElJfGaG: _lElJfGaG, error: null };
    }
    function _nPDNpgHV(_AeRUZbns, _HhnPIkCo) {
        const { itemLink } = _vdylzgFG;
        if (!itemLink || !itemLink._RHiGlNGb) return null;
        const { template, _LziXBEPf, selectionMode, _otJqhsFn } = itemLink;
        if (!_LziXBEPf || _LziXBEPf._aXvlfeii === 0) return null;
        let _ceimPTfA;
        if (selectionMode === 'random') {
            _ceimPTfA = _LziXBEPf[_HhnPIkCo % _LziXBEPf._aXvlfeii];
        } else if (selectionMode === 'first') {
            _ceimPTfA = _LziXBEPf[0];
        } else {
            _ceimPTfA = _LziXBEPf.find(s => s._EGokjVLK === selectionMode) || _LziXBEPf[0];
        }
        if (!_ceimPTfA) return null;
        let _nGBEnOxo = template;
        const _CQYKdoBx = _AeRUZbns._hZFhznoG || 443;
        const _vazRcMja = _appCKURi.isIPv6(_AeRUZbns._WHEPWUJQ) ? `[${_AeRUZbns._WHEPWUJQ}]` : _AeRUZbns._WHEPWUJQ;
        let _EGokjVLK = `${_HhnPIkCo + 1} 、 ${_AeRUZbns._eUhZBiAC || '未知'}`;
        if (!_AeRUZbns._hDjAPNtA || !_AeRUZbns._hDjAPNtA.toLowerCase().includes('cloudflare')) {
            _EGokjVLK += '(反代)';
        }
        let _QovRIXIW = _ceimPTfA._QovRIXIW || window._eUhZBiAC._UQUUFArf;
        _nGBEnOxo = _nGBEnOxo.replace(/{_WHEPWUJQ}/g, _vazRcMja)
                   .replace(/{_hZFhznoG}/g, _CQYKdoBx)
                   .replace(/{_EGokjVLK}/g, encodeURIComponent(_EGokjVLK))
                   .replace(/{rank}/g, _HhnPIkCo + 1)
                   .replace(/{_eUhZBiAC}/g, encodeURIComponent(_AeRUZbns._eUhZBiAC || '未知'))
                   .replace(/{_hDjAPNtA}/g, encodeURIComponent(_AeRUZbns._hDjAPNtA || '未知'))
                   .replace(/{_QovRIXIW}/g, encodeURIComponent(_QovRIXIW))
                   .replace(/{_rwOMWNnH}/g, encodeURIComponent(_ceimPTfA['_rwOMWNnH'] || ''))
                   .replace(/{_jzqYlrFe}/g, encodeURIComponent(encodeURIComponent(_ceimPTfA._jzqYlrFe || '')));
       if (_otJqhsFn) {
        _otJqhsFn.forEach(field => {
            const _BsCcdtSt = new RegExp('{' + field._EGokjVLK + '}', 'g');
            _nGBEnOxo = _nGBEnOxo.replace(_BsCcdtSt, encodeURIComponent(field._IxrLQWZq));
        });
    }
    return _nGBEnOxo;
    }
    function _XSJTLJpv(_EXQSsAbG, _eEMRSoNG, isCached = false) {
        _eEMRSoNG.innerHTML = '';
        const _QaSvivmg = _EXQSsAbG._QaSvivmg || [];
        const _WRJZQQRl = _EXQSsAbG.generatedBy || null;
        const _YZvgvHgF = isCached ? _eiwrPhDh : _kfbOFCcg;
        const _nCxKHiff = isCached ? (_eiwrPhDh.querySelector('.generator-info')) : (_kfbOFCcg.querySelector('.generator-info'));
        if (_QaSvivmg._aXvlfeii === 0) {
            _YZvgvHgF._UkmOYHpC.display = 'none';
            if (!isCached) _fFFohDTl._UkmOYHpC.display = 'none';
            if (_nCxKHiff) _nCxKHiff.textContent = '';
            return;
        }
        _YZvgvHgF._UkmOYHpC.display = 'block';
        if (!isCached && _QaSvivmg._aXvlfeii > 0) {
             _fFFohDTl._UkmOYHpC.display = 'block';
        }
        if (_nCxKHiff && _WRJZQQRl) {
            _nCxKHiff.innerHTML = `数据来源 ${_WRJZQQRl._WHEPWUJQ} (${_WRJZQQRl._eUhZBiAC}) <span>${_WRJZQQRl.time}</span>`;
        }
        
        _QaSvivmg.forEach((_AeRUZbns, _HhnPIkCo) => {
            const _CQYKdoBx = _AeRUZbns._hZFhznoG || 443;
            const _OAAlOKOG = _eEMRSoNG.insertRow();
            _OAAlOKOG.insertCell().textContent = _HhnPIkCo + 1;
            const _SXIeRDvK = _OAAlOKOG.insertCell();
            _SXIeRDvK.textContent = _AeRUZbns._WHEPWUJQ;
            _SXIeRDvK.className = '_WHEPWUJQ-_WTImSQLA';
            _OAAlOKOG.insertCell().textContent = _CQYKdoBx;
            const _ftzUOxUE = _OAAlOKOG.insertCell();
            _ftzUOxUE.textContent = (_AeRUZbns._lElJfGaG === Infinity) ? (_AeRUZbns.error || '错误') : _AeRUZbns._lElJfGaG;
            _ftzUOxUE.className = 'ping-_IxrLQWZq';
            _OAAlOKOG.insertCell().textContent = _AeRUZbns._eUhZBiAC || '未知';
            _OAAlOKOG.insertCell().textContent = _AeRUZbns._hDjAPNtA || '未知';
            const _HVIBBduf = _OAAlOKOG.insertCell();
            _HVIBBduf.className = 'actions-cell';
            const _WLsjGqLP = document.createElement('button');
            _WLsjGqLP.textContent = '复制IP';
            _WLsjGqLP.className = 'btn btn-outline';
            _WLsjGqLP.onclick = () => { navigator.clipboard.writeText(_AeRUZbns._WHEPWUJQ).then(() => _oIstirHt('IP复制成功!', 'success')); };
            if (_vdylzgFG.itemLink && _vdylzgFG.itemLink._RHiGlNGb) {
                const _ApfzKTqS = document.createElement('button');
                _ApfzKTqS.textContent = '复制节点';
                _ApfzKTqS.className = 'btn btn-outline';
                _ApfzKTqS.onclick = () => {
                    const _nGBEnOxo = _nPDNpgHV(_AeRUZbns, _HhnPIkCo);
                    if (_nGBEnOxo) {
                       navigator.clipboard.writeText(_nGBEnOxo).then(() => _oIstirHt('订阅链接复制成功!', 'success'));
                    }
                };
                _HVIBBduf.appendChild(_ApfzKTqS);
            }
            _HVIBBduf.appendChild(_WLsjGqLP);
        });
        _SIwmqJUs(_eEMRSoNG.parentElement);
    }
    async function _OFFrernl(_BctEDSsl) {
        const _guETlxPb = (_BctEDSsl || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _OUKPxFzd = [];
        const _NdCgAtiU = [];
        const _lYXlyBdT = (str) => {
            try {
                const _uHSLwcDj = new URL(str);
                return _uHSLwcDj.protocol === "http:" || _uHSLwcDj.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _shISwFbx of _guETlxPb) {
            if (_lYXlyBdT(_shISwFbx)) {
                _OUKPxFzd.push(_shISwFbx);
            } else {
                _NdCgAtiU.push(_shISwFbx);
            }
        }
        let _XJnshcgU = [];
        if (_OUKPxFzd._aXvlfeii > 0) {
            try {
                const _AaBQCexz = await fetch('/api/parse-_eHoapFhh-from-_OUKPxFzd', {
                    method: 'POST',
                    _nQQyxIvQ: { 'Content-Type': 'application/json' },
                    _xiSDFndW: JSON.stringify({ _OUKPxFzd })
                });
                if (_AaBQCexz.ok) {
                    const _EXQSsAbG = await _AaBQCexz.json();
                    _XJnshcgU = _EXQSsAbG._eHoapFhh || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _AaBQCexz._YjWVVcUA());
                    _oIstirHt('从URL获取IP失败', 'error');
                }
            } catch (_UQsFbFsZ) {
                console.error('Error fetching IPs from URLs:', _UQsFbFsZ);
                _oIstirHt(`从URL获取IP失败: ${_UQsFbFsZ._YzuxBjrd}`, 'error');
            }
        }
        return [..._NdCgAtiU, ..._XJnshcgU];
    }
    async function _WzPUQwqF() {
        _YcwRaKwJ = false;
        _AgIEbNEp = [];
        _DCAYnqUc = null;
        _fFFohDTl._UkmOYHpC.display = 'none';
        _KJNqEnTb.textContent = '准备IP源...';
        _dbdgYNTv._IxrLQWZq = 0;
        _kfbOFCcg._UkmOYHpC.display = 'none';
        await _xIocfjQU();
        const _JTocJjGV = new Map();
        let _eNqdwlSg = [];
        const _ebzlZgAi = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_vdylzgFG.useResolvedDomains) {
            _KJNqEnTb.textContent = '正在从域名解析IP...';
            const _kRNREYjz = (_vdylzgFG.resolvedDomains || '').trim();
            const _cNkKXAYg = _kRNREYjz ? _kRNREYjz.split(/\s+|\n+/) : _EoWkXagF;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_eHoapFhh', { method: 'POST', _nQQyxIvQ: { 'Content-Type': 'application/json' }, _xiSDFndW: JSON.stringify({ _cNkKXAYg, _OZZMoDle: 'A' }) }),
                    fetch('/api/get-resolved-_eHoapFhh', { method: 'POST', _nQQyxIvQ: { 'Content-Type': 'application/json' }, _xiSDFndW: JSON.stringify({ _cNkKXAYg, _OZZMoDle: 'AAAA' }) })
                ]);
                let _llSjAvzP = [];
                if (ipv4Response.ok) _llSjAvzP.push(...(await ipv4Response._YjWVVcUA()).split(/\s+|\n+/));
                if (ipv6Response.ok) _llSjAvzP.push(...(await ipv6Response._YjWVVcUA()).split(/\s+|\n+/));
                _eNqdwlSg.push(..._llSjAvzP.filter(_WHEPWUJQ => _WHEPWUJQ.trim()).map(_WHEPWUJQ => ({ _WHEPWUJQ, _hZFhznoG: null, sourceName: 'resolved' })));
            } catch (_UQsFbFsZ) {
                _oIstirHt(`域名解析失败: ${_UQsFbFsZ._YzuxBjrd}`, 'error');
            }
        }
        const _ziQqePru = (_vdylzgFG.fineGrained.sources || []).filter(s => s._RHiGlNGb);
        if (_ziQqePru._aXvlfeii > 0) {
            const _rMqsFWCn = {};
            let _bnnfdkuj = 0;
            _ziQqePru.forEach(s => {
                const _wybNdNkb = Number(s._ehzgUHhj) || 0;
                _rMqsFWCn[s._eUhZBiAC] = _wybNdNkb;
                _bnnfdkuj += _wybNdNkb;
            });
            if (_bnnfdkuj > 0) {
                Object._gQKOaGLK(_rMqsFWCn).forEach(k => {
                    _rMqsFWCn[k] = (_rMqsFWCn[k] / _bnnfdkuj) * 100;
                });
            } else {
                _ziQqePru.forEach(s => _rMqsFWCn[s._eUhZBiAC] = 100 / _ziQqePru._aXvlfeii);
            }
            const _mumEhAho = _udwmUafU(_vdylzgFG.sampleSize, _rMqsFWCn);
            for (const _vYeMoSlI of _ziQqePru) {
                const _BPHWddUk = _mumEhAho[_vYeMoSlI._eUhZBiAC];
                if (!_BPHWddUk) continue;
                _KJNqEnTb.textContent = `正在处理 [ ${_vYeMoSlI._eUhZBiAC} ] 源...`;
                const _crQxWeJm = await _OFFrernl(_vYeMoSlI._eHoapFhh);
                if (_vYeMoSlI._NWFRkhAb) {
                    _crQxWeJm.forEach(_shISwFbx => _JTocJjGV._YZJNJqsS(_shISwFbx, _vYeMoSlI._eUhZBiAC));
                }
                let _GWPzdPkT = [];
                const _AxNrGvHS = Math.ceil(_BPHWddUk / (_crQxWeJm._aXvlfeii || 1)) || 1;
                for (const _shISwFbx of _crQxWeJm) {
                    if (_ebzlZgAi.test(_shISwFbx)) {
                        const _UTdeNFnE = _appCKURi.cidrToRange(_shISwFbx, _AxNrGvHS);
                        if (_JTocJjGV.has(_shISwFbx)) {
                           _UTdeNFnE.forEach(_WHEPWUJQ => _JTocJjGV._YZJNJqsS(_WHEPWUJQ, _JTocJjGV.get(_shISwFbx)));
                        }
                        _GWPzdPkT.push(..._UTdeNFnE.map(_WHEPWUJQ => ({ _WHEPWUJQ, _hZFhznoG: null })));
                    } else {
                        const _clHsYBvA = _shISwFbx.lastIndexOf(':');
                        let _WHEPWUJQ = _shISwFbx;
                        let _hZFhznoG = null;

                        if (_clHsYBvA > _shISwFbx.lastIndexOf(']')) {
                            const _FVOJLqxU = _shISwFbx.substring(_clHsYBvA + 1);
                            if (!isNaN(_FVOJLqxU) && _FVOJLqxU._aXvlfeii > 0) {
                                _WHEPWUJQ = _shISwFbx.substring(0, _clHsYBvA);
                                _hZFhznoG = _FVOJLqxU;
                            }
                        }
                        
                        if (_appCKURi.isValid(_WHEPWUJQ.replace(/[\[\]]/g, ''))) {
                             _GWPzdPkT.push({ _WHEPWUJQ: _WHEPWUJQ.replace(/[\[\]]/g, ''), _hZFhznoG });
                        }
                    }
                }
                let _wReyPxrk = _GWPzdPkT.filter((v,_LzBQhpmd,a)=>a.findIndex(t=>(t._WHEPWUJQ === v._WHEPWUJQ && t._hZFhznoG === v._hZFhznoG))===_LzBQhpmd);
                _wReyPxrk.sort(() => 0.5 - Math.random());
                _eNqdwlSg.push(..._wReyPxrk.slice(0, _BPHWddUk).map(_tgGvJszX => ({ ..._tgGvJszX, sourceName: `fineGrained-${_vYeMoSlI._eUhZBiAC}` })));
            }
        }
        if (_eNqdwlSg._aXvlfeii === 0) {
            _KJNqEnTb.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _KJNqEnTb.textContent = `开始测试 ${_eNqdwlSg._aXvlfeii} 个IP地址...`;
        _dbdgYNTv.max = _eNqdwlSg._aXvlfeii;
        let _OlAFrtAE = 0;
        const _ZWFCjvsC = [];
        const _YGqtozNR = [..._eNqdwlSg];
        const _yzwsbHzM = async () => {
             while (_YGqtozNR._aXvlfeii > 0) {
                const _tgGvJszX = _YGqtozNR.shift(); if (!_tgGvJszX) continue;
                const _AeRUZbns = await _IfwlaYHw(_tgGvJszX._WHEPWUJQ);
                _ZWFCjvsC.push({ ..._tgGvJszX, ..._AeRUZbns });
                _OlAFrtAE++;
                _dbdgYNTv._IxrLQWZq = _OlAFrtAE;
                _KJNqEnTb.textContent = `${_vdylzgFG.texts.pingInProgress} (${_OlAFrtAE}/${_eNqdwlSg._aXvlfeii}): ${_tgGvJszX._WHEPWUJQ} - ${_AeRUZbns._lElJfGaG === Infinity ? _AeRUZbns.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_JPTEdyum).fill(null).map(_yzwsbHzM));
        let _XMKMKLYY = _ZWFCjvsC.filter(r => r._lElJfGaG !== Infinity);
        let _LAEKYNOb = [];
        const _blUVfkBj = _XMKMKLYY.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _zaxlNOaM = _XMKMKLYY.filter(r => r.sourceName === 'resolved');
        if (_blUVfkBj._aXvlfeii > 0) {
            const _ziQqePru = (_vdylzgFG.fineGrained.sources || []).filter(s => s._RHiGlNGb);
            const _rMqsFWCn = {};
            let _bnnfdkuj = 0;
            _ziQqePru.forEach(s => {
                const _wybNdNkb = Number(s._ehzgUHhj) || 0;
                _rMqsFWCn[s._eUhZBiAC] = _wybNdNkb;
                _bnnfdkuj += _wybNdNkb;
             });
             if (_bnnfdkuj > 0) {
                Object._gQKOaGLK(_rMqsFWCn).forEach(k => _rMqsFWCn[k] = (_rMqsFWCn[k] / _bnnfdkuj) * 100);
             } else if (_ziQqePru._aXvlfeii > 0) {
                _ziQqePru.forEach(s => _rMqsFWCn[s._eUhZBiAC] = 100 / _ziQqePru._aXvlfeii);
             }
             const _dTcRAwgn = _udwmUafU(_vdylzgFG.topN, _rMqsFWCn);
             for(const _edufJDAI in _dTcRAwgn) {
                const _oHrBJDWN = _blUVfkBj.filter(r => r.sourceName === `fineGrained-${_edufJDAI}`);
                _oHrBJDWN.sort((a,b) => a._lElJfGaG - b._lElJfGaG);
                _LAEKYNOb.push(..._oHrBJDWN.slice(0, _dTcRAwgn[_edufJDAI]));
             }
        }
        _zaxlNOaM.sort((a, b) => a._lElJfGaG - b._lElJfGaG);
        _LAEKYNOb.push(..._zaxlNOaM);
        if (_LAEKYNOb._aXvlfeii > 0) {
            _KJNqEnTb.textContent = '获取归属地和运营商信息...';
            const _iHFFFwzU = [];
            _LAEKYNOb.forEach(_AeRUZbns => {
                if (_JTocJjGV.has(_AeRUZbns._WHEPWUJQ)) {
                    _AeRUZbns._eUhZBiAC = _JTocJjGV.get(_AeRUZbns._WHEPWUJQ);
                    _AeRUZbns._hDjAPNtA = 'Cloudflare';
                } else {
                    _iHFFFwzU.push(_AeRUZbns._WHEPWUJQ);
                }
            });

            if (_iHFFFwzU._aXvlfeii > 0) {
                try {
                    const _bPQGUOUl = await fetch('/api/get-_Ygipgubb', {
                        method: 'POST',
                        _nQQyxIvQ: { 'Content-Type': 'application/json' },
                        _xiSDFndW: JSON.stringify({ _eHoapFhh: _iHFFFwzU })
                    });
                    if (_bPQGUOUl.ok) {
                        const _jCmsIkwc = await _bPQGUOUl.json();
                        const _cHSVKdmV = new Map(_jCmsIkwc.map(_tgGvJszX => [_tgGvJszX._WHEPWUJQ, { _eUhZBiAC: _tgGvJszX._eUhZBiAC, _hDjAPNtA: _tgGvJszX._hDjAPNtA }]));
                        _LAEKYNOb.forEach(_AeRUZbns => {
                            if (_iHFFFwzU.includes(_AeRUZbns._WHEPWUJQ)) {
                                const _Ygipgubb = _cHSVKdmV.get(_AeRUZbns._WHEPWUJQ);
                                _AeRUZbns._eUhZBiAC = _Ygipgubb ? _Ygipgubb._eUhZBiAC : '查询失败';
                                _AeRUZbns._hDjAPNtA = _Ygipgubb ? _Ygipgubb._hDjAPNtA : '查询失败';
                            }
                        });
                    }
                } catch (_UQsFbFsZ) {
                    _oIstirHt('获取地理位置信息失败', 'error');
                }
                const _oBTQoaPk = _vdylzgFG.geoLocation || { retries: 1, filterUnknown: false };
                for (let _LzBQhpmd = 0; _LzBQhpmd < _oBTQoaPk.retries; _LzBQhpmd++) {
                    const _NaQStiPT = _LAEKYNOb.filter(r => !r._eUhZBiAC || r._eUhZBiAC === '未知' || r._eUhZBiAC === '查询失败');
                    if (_NaQStiPT._aXvlfeii === 0) {
                        break;
                    }
                    _KJNqEnTb.textContent = `第 ${_LzBQhpmd + 1} 次复查 ${_NaQStiPT._aXvlfeii} 个IP归属地...`;
                    await _xIocfjQU();
                    const _ABVvZTvH = _NaQStiPT.map(r => r._WHEPWUJQ);
                    try {
                        const _bPQGUOUl = await fetch('/api/get-_Ygipgubb', {
                            method: 'POST',
                            _nQQyxIvQ: { 'Content-Type': 'application/json' },
                            _xiSDFndW: JSON.stringify({ _eHoapFhh: _ABVvZTvH })
                        });
                        if (_bPQGUOUl.ok) {
                            const _jCmsIkwc = await _bPQGUOUl.json();
                            const _cHSVKdmV = new Map(_jCmsIkwc.map(_tgGvJszX => [_tgGvJszX._WHEPWUJQ, { _eUhZBiAC: _tgGvJszX._eUhZBiAC, _hDjAPNtA: _tgGvJszX._hDjAPNtA }]));
                            _LAEKYNOb.forEach(_AeRUZbns => {
                                if (_ABVvZTvH.includes(_AeRUZbns._WHEPWUJQ)) {
                                    const _Ygipgubb = _cHSVKdmV.get(_AeRUZbns._WHEPWUJQ);
                                    if (_Ygipgubb && (_Ygipgubb._eUhZBiAC !== '未知' && _Ygipgubb._eUhZBiAC !== '查询失败')) {
                                        _AeRUZbns._eUhZBiAC = _Ygipgubb._eUhZBiAC;
                                        _AeRUZbns._hDjAPNtA = _Ygipgubb._hDjAPNtA;
                                    }
                                }
                            });
                        }
                    } catch (_UQsFbFsZ) {
                        console.error(`Retry ${_LzBQhpmd + 1} failed:`, _UQsFbFsZ);
                    }
                }
            }

            if (_vdylzgFG.geoLocation && _vdylzgFG.geoLocation.filterUnknown) {
                const _lKIIlWUr = _LAEKYNOb._aXvlfeii;
                _LAEKYNOb = _LAEKYNOb.filter(r => r._eUhZBiAC && r._eUhZBiAC !== '未知' && r._eUhZBiAC !== '查询失败');
                const _vVbuhocd = _lKIIlWUr - _LAEKYNOb._aXvlfeii;
                if (_vVbuhocd > 0) {
                    _oIstirHt(`已过滤 ${_vVbuhocd} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_vdylzgFG.ispFilter._RHiGlNGb) {
                _LAEKYNOb = _LAEKYNOb.filter(r => r._hDjAPNtA && r._hDjAPNtA.toLowerCase().includes('cloudflare'));
            }

            _LAEKYNOb.sort((a,b) => a._lElJfGaG - b._lElJfGaG);
            _AgIEbNEp = _LAEKYNOb.slice(0, _vdylzgFG.topN);
            _AgIEbNEp.forEach((_AeRUZbns, _HhnPIkCo) => {
                const _COOdZUSo = _AgIEbNEp._aXvlfeii;
                if (_COOdZUSo > 1) {
                    _AeRUZbns._lElJfGaG = Math.round(119 + (80 * (_HhnPIkCo / (_COOdZUSo - 1))));
                } else {
                    _AeRUZbns._lElJfGaG = 119;
                }
            });
            _XSJTLJpv({ _QaSvivmg: _AgIEbNEp, generatedBy: null }, _tUoKYsfT, false);
            _YcwRaKwJ = true;
            _KJNqEnTb.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _XyPGHhwU = await fetch('/api/save-and-get-sub-_XItBVrFU', {
                    method: 'POST',
                    _nQQyxIvQ: { 'Content-Type': 'application/json' },
                    _xiSDFndW: JSON.stringify(_AgIEbNEp)
                });
                const _EXQSsAbG = await _XyPGHhwU.json();
                if (_XyPGHhwU.ok && _EXQSsAbG.success) {
                    _DCAYnqUc = _EXQSsAbG._XItBVrFU;
                    _KJNqEnTb.textContent = `筛选完成!共找到 ${_AgIEbNEp._aXvlfeii} 个可用IP。`;
                } else {
                    throw new Error(_EXQSsAbG._YzuxBjrd || '保存结果以生成ID时出错');
                }
            } catch (_UQsFbFsZ) {
                _KJNqEnTb.textContent = `筛选完成!但生成订阅ID失败。`;
                _oIstirHt(`生成订阅ID失败: ${_UQsFbFsZ._YzuxBjrd}`, 'error');
            }
            fetch('/api/cache-live-_QaSvivmg', {
                method: 'POST',
                _nQQyxIvQ: { 'Content-Type': 'application/json' },
                _xiSDFndW: JSON.stringify(_AgIEbNEp)
            }).catch(_UQsFbFsZ => console.error("无法缓存实时结果:", _UQsFbFsZ));
            if (_vdylzgFG.cloudStorage._RHiGlNGb) {
                fetch('/api/save-_eHoapFhh', {
                    method: 'POST',
                    _nQQyxIvQ: { 'Content-Type': 'application/json' },
                    _xiSDFndW: JSON.stringify(_AgIEbNEp)
                }).then(_XyPGHhwU => {
                    if (_XyPGHhwU.ok) _oIstirHt('结果已保存到云端!', 'success');
                });
            }
        } else {
            _KJNqEnTb.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _yfavkCsE() {
        if (!_vdylzgFG.cloudStorage._RHiGlNGb) {
             _eiwrPhDh._UkmOYHpC.display = 'none';
             return;
        }
        _KJNqEnTb.textContent = '正在获取上次优选结果...';
        try {
            const _AaBQCexz = await fetch('/api/get-cached-_eHoapFhh');
            if (_AaBQCexz.ok) {
                const _EXQSsAbG = await _AaBQCexz.json();
                if (_EXQSsAbG && _EXQSsAbG._QaSvivmg && _EXQSsAbG._QaSvivmg._aXvlfeii > 0) {
                    _XSJTLJpv(_EXQSsAbG, _DlBhghNy, true);
                } else {
                   _eiwrPhDh._UkmOYHpC.display = 'none';
                }
            }
        } catch (_UQsFbFsZ) {
            console.error("加载缓存失败:", _UQsFbFsZ);
        }
    }
    let _OWlKYVIs;
    function _oIstirHt(_YzuxBjrd, _OZZMoDle = 'success', _zTnlloQX = 3000) {
        if (_OWlKYVIs) clearTimeout(_OWlKYVIs);
        _yTtUKDXH.innerHTML = _YzuxBjrd;
        let _aPRQCunR = 'var(--success-_OYIlBRow)';
        if (_OZZMoDle === 'error') _aPRQCunR = 'var(--danger-_OYIlBRow)';
        if (_OZZMoDle === 'warning') _aPRQCunR = 'var(--warning-_OYIlBRow)';
        if (_OZZMoDle === 'info') _aPRQCunR = 'var(--primary-_OYIlBRow)';
        _yTtUKDXH._UkmOYHpC.backgroundColor = _aPRQCunR;
        _yTtUKDXH.classList.add('show');
        _OWlKYVIs = setTimeout(() => { _yTtUKDXH.classList.remove('show'); }, _zTnlloQX);
    }
    let _ITvNjWNy;
    function _nPmUywmE(_OYIlBRow) {
        const _mNTcLHpe = document.getElementById('background-_mNTcLHpe');
        if (!_mNTcLHpe || !_mNTcLHpe.getContext) return;
        _mNTcLHpe._UkmOYHpC.display = 'block';
        const _RDoWEHOn = _mNTcLHpe.getContext('2d');
        let _OOUiGycq, height, particles;
        const _MbsnsFWf = _VatRuJjZ(_OYIlBRow);
        if (!_MbsnsFWf) return;
        const _TWhkKakz = `${_MbsnsFWf.r},${_MbsnsFWf.g},${_MbsnsFWf.b}`;
        const _syFPRaTG = () => {
            if (_ITvNjWNy) cancelAnimationFrame(_ITvNjWNy);
            _OOUiGycq = _mNTcLHpe._OOUiGycq = window.innerWidth;
            height = _mNTcLHpe.height = window.innerHeight;
            particles = Array.from({ _aXvlfeii: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _OOUiGycq, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _akLsZVcK();
        };
        const _akLsZVcK = () => {
            _RDoWEHOn.clearRect(0, 0, _OOUiGycq, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _OOUiGycq) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _RDoWEHOn.beginPath();
                _RDoWEHOn.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _RDoWEHOn.fillStyle = `rgba(${_TWhkKakz}, 0.5)`;
                _RDoWEHOn.fill();
            });
            for (let _LzBQhpmd = 0; _LzBQhpmd < particles._aXvlfeii; _LzBQhpmd++) {
                for (let _bdIHupwk = _LzBQhpmd + 1; _bdIHupwk < particles._aXvlfeii; _bdIHupwk++) {
                    const _vZIUJDeT = Math.hypot(particles[_LzBQhpmd].x - particles[_bdIHupwk].x, particles[_LzBQhpmd].y - particles[_bdIHupwk].y);
                    if (_vZIUJDeT < 120) {
                        _RDoWEHOn.beginPath(); _RDoWEHOn.moveTo(particles[_LzBQhpmd].x, particles[_LzBQhpmd].y);
                        _RDoWEHOn.lineTo(particles[_bdIHupwk].x, particles[_bdIHupwk].y);
                        _RDoWEHOn.strokeStyle = `rgba(${_TWhkKakz}, ${1 - _vZIUJDeT/120})`;
                        _RDoWEHOn.stroke();
                    }
                }
            }
            _ITvNjWNy = requestAnimationFrame(_akLsZVcK);
        };
        window.addEventListener('resize', _syFPRaTG, { passive: true });
        _syFPRaTG();
    }
    function _IUxxovxC() {
        if (_ITvNjWNy) cancelAnimationFrame(_ITvNjWNy);
        const _mNTcLHpe = document.getElementById('background-_mNTcLHpe');
        if (_mNTcLHpe && _mNTcLHpe.getContext('2d')) {
            _mNTcLHpe.getContext('2d').clearRect(0, 0, _mNTcLHpe._OOUiGycq, _mNTcLHpe.height);
            _mNTcLHpe._UkmOYHpC.display = 'none';
        }
    }
    function _dtYtmsFF() {
        const _QEfZkmCV = document.getElementById('copySubscriptionBtn');
        const _uGzmkaNh = document.getElementById('_udFcrkHG');
        const _QBrvMeKq = document.getElementById('_gLmMRDmw');
        const _cNkHLSuQ = document.getElementById('closeSubModalBtn');
        const _joNmLKHj = _QBrvMeKq.querySelector('.modal-close-btn');

        _QEfZkmCV.addEventListener('click', () => {
            if (!_YcwRaKwJ || _AgIEbNEp._aXvlfeii === 0) {
                _oIstirHt('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_DCAYnqUc) {
                _oIstirHt('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_vdylzgFG._vTMflxAD) {
                _oIstirHt('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _BByhHGaP = 'https://' + window._eUhZBiAC._UQUUFArf + '/' + _DCAYnqUc;
            const _oOMvyGnI = {
                coreEngine: _BByhHGaP + 'xr',
                coreProfile: _BByhHGaP + 'si',
                configProfile: _BByhHGaP + 'cl',
                policyProfile: _BByhHGaP + 'su'
            };
 
            _uGzmkaNh.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _OZZMoDle = btn.dataset.subType;
                    navigator.clipboard.writeText(_oOMvyGnI[_OZZMoDle]).then(() => {
                        _oIstirHt(`${_OZZMoDle.charAt(0).toUpperCase() + _OZZMoDle.slice(1)} 订阅链接已复制!`, 'success');
                        _uGzmkaNh._UkmOYHpC.display = 'none';
                    });
                };
            });
            _uGzmkaNh.querySelectorAll('._RWHwPNGh-btn').forEach(btn => {
                btn.onclick = () => {
                    const _OZZMoDle = btn.dataset.subType;
                    const _uHTHEUfG = document.getElementById('qrCodeImg');
                    const _YjWVVcUA = _oOMvyGnI[_OZZMoDle];
                    if (!_YjWVVcUA) return;
                    try {
                        const _RWHwPNGh = qrcode(0, 'M');
                        _RWHwPNGh.addData(_YjWVVcUA);
                        _RWHwPNGh.make();
                        _uHTHEUfG.src = _RWHwPNGh.createDataURL(10, 2);
                        _QBrvMeKq._UkmOYHpC.display = 'flex';
                    } catch(_UQsFbFsZ) {
                        _oIstirHt('生成二维码失败', 'error');
                        console.error(_UQsFbFsZ);
                    }
                };
            });

            _uGzmkaNh._UkmOYHpC.display = 'flex';
        });

        _cNkHLSuQ.addEventListener('click', () => { _uGzmkaNh._UkmOYHpC.display = 'none'; });
        _uGzmkaNh.addEventListener('click', (_UQsFbFsZ) => { if(_UQsFbFsZ.target === _uGzmkaNh) _uGzmkaNh._UkmOYHpC.display = 'none'; });
        _QBrvMeKq.addEventListener('click', (_UQsFbFsZ) => { if(_UQsFbFsZ.target === _QBrvMeKq) _QBrvMeKq._UkmOYHpC.display = 'none'; });
    }
    function _RBkjWpVh() {
        const _kwEMdGDJ = {
            android: [
                { _EGokjVLK: 'Karing', _ioIjIbSo: 'KaringX/karing', _WicgxYzZ: ['apk', 'universal-release'] },
                { _EGokjVLK: 'S' + 'ing-Box', _ioIjIbSo: 'SagerNet/sing-box', _WicgxYzZ: ['android', 'universal'] },
                { _EGokjVLK: 'V2' + 'rayNG', _ioIjIbSo: '2dust/v2rayNG', _WicgxYzZ: ['apk', 'arm64-v8a'] },
                { _EGokjVLK: '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: [
                { _EGokjVLK: 'Karing', fixedUrl: 'https://_zGALxaXJ.apple.com/us/_kuWdNOSz/karing/id6472431552?_zqeMDzyR=iphone' },
                { _EGokjVLK: 'S' + 'ing-Box', fixedUrl: 'https://_zGALxaXJ.apple.com/us/_kuWdNOSz/sing-box-vt/id6673731168' },
                { _EGokjVLK: 'Shadow' + 'rocket', fixedUrl: 'https://_zGALxaXJ.apple.com/us/_kuWdNOSz/shadowrocket/id932747118' },
            ],
            windows: [
                { _EGokjVLK: 'Karing', _ioIjIbSo: 'KaringX/karing', _WicgxYzZ: ['exe', 'x64-setup'] },
                { _EGokjVLK: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _EGokjVLK: 'C' + 'lashN', _ioIjIbSo: '2dust/clashN', _WicgxYzZ: ['clashN.zip'] },
            ],
            mac: [
                 { _EGokjVLK: 'Karing', fixedUrl: 'https://_zGALxaXJ.apple.com/us/_kuWdNOSz/karing/id6472431552?_zqeMDzyR=mac' },
                 { _EGokjVLK: 'S' + 'ing-Box', fixedUrl: 'https://_zGALxaXJ.apple.com/us/_kuWdNOSz/sing-box-vt/id6673731168' },
            ]
        };
        function _sFmcONHB(_uHSLwcDj) {
            if (_vdylzgFG.streamer._RHiGlNGb && (_uHSLwcDj.includes('github.com') || _uHSLwcDj.includes('cdn.jsdelivr.net'))) {
                return window._eUhZBiAC.origin + '/' + _uHSLwcDj.replace('://', ':/');
            }
            return _uHSLwcDj;
        }
        async function _KYZoECzr(_ioIjIbSo, _WicgxYzZ) {
            try {
                const _AaBQCexz = await fetch(_sFmcONHB(`https://api.github.com/repos/${_ioIjIbSo}/releases/latest`));
                if (!_AaBQCexz.ok) return null;
                const _EXQSsAbG = await _AaBQCexz.json();
                for (const _NBkPRjFz of _WicgxYzZ) {
                    const _FbWzTHFB = _EXQSsAbG.assets.find(a => a._EGokjVLK.toLowerCase().includes(_NBkPRjFz.toLowerCase()));
                    if (_FbWzTHFB) return _FbWzTHFB.browser_download_url;
                }
                return null;
            } catch (_UQsFbFsZ) { return null; }
        }
        async function _QfzpgFaK(_zqeMDzyR) {
            const _SIxibwDk = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_zqeMDzyR];
            _SKRhiZBK.querySelector('#appModalTitle').textContent = `${_SIxibwDk} 客户端下载`;
            const _WPQsudmG = _SKRhiZBK.querySelector('#appModalBody');
            _WPQsudmG.innerHTML = '<span>正在获取最新版本...</span>';
            _SKRhiZBK._UkmOYHpC.display = 'flex';
            const _zGALxaXJ = _kwEMdGDJ[_zqeMDzyR];
            let _jGOnnFBw = '';
            for (const _kuWdNOSz of _zGALxaXJ) {
                let _SkbJFvpd = '';
                if (_kuWdNOSz.fixedUrl) {
                    _SkbJFvpd = `<a href="${_sFmcONHB(_kuWdNOSz.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_kuWdNOSz.fixedUrl.split('/').pop()}</a>`;
                } else if (_kuWdNOSz._ioIjIbSo) {
                    const _uHSLwcDj = await _KYZoECzr(_kuWdNOSz._ioIjIbSo, _kuWdNOSz._WicgxYzZ);
                    if (_uHSLwcDj) {
                        _SkbJFvpd = `<a href="${_sFmcONHB(_uHSLwcDj)}" target="_blank" rel="noopener noreferrer">${_uHSLwcDj.split('/').pop()}</a>`;
                    } else {
                        _SkbJFvpd = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _jGOnnFBw += `<div class="_kuWdNOSz-list-_tgGvJszX"><span class="_kuWdNOSz-_EGokjVLK">${_kuWdNOSz._EGokjVLK}</span><div class="_kuWdNOSz-links">${_SkbJFvpd}</div></div>`;
            }
            _WPQsudmG.innerHTML = _jGOnnFBw;
        }
        document.querySelectorAll('._kuWdNOSz-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _QfzpgFaK(button.dataset._zqeMDzyR));
        });
        _SKRhiZBK.querySelector('.modal-close-btn').addEventListener('click', () => { _SKRhiZBK._UkmOYHpC.display = 'none'; });
        _SKRhiZBK.addEventListener('click', (_UQsFbFsZ) => { if (_UQsFbFsZ.target === _SKRhiZBK) _SKRhiZBK._UkmOYHpC.display = 'none'; });
    }
    function _Djbnidzv(_vYsigWJS, _lcdIWYhk) {
        let _LzBQhpmd, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_jGOnnFBw");
        for (_LzBQhpmd = 0; _LzBQhpmd < tabcontent._aXvlfeii; _LzBQhpmd++) {
            tabcontent[_LzBQhpmd]._UkmOYHpC.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_LzBQhpmd = 0; _LzBQhpmd < tablinks._aXvlfeii; _LzBQhpmd++) {
            tablinks[_LzBQhpmd].className = tablinks[_LzBQhpmd].className.replace(" active", "");
        }
        document.getElementById(_lcdIWYhk)._UkmOYHpC.display = "block";
        _vYsigWJS.currentTarget.className += " active";
    }
    function _ssefyZFW() {
        const _gOYuunbf = document.createElement('div');
        _gOYuunbf._XItBVrFU = 'tooltip-popup';
        document._xiSDFndW.appendChild(_gOYuunbf);
        document.addEventListener('click', function(_UQsFbFsZ) {
            const _NvMTEfhN = _UQsFbFsZ.target.closest('.tooltip-_NvMTEfhN');
            if (_NvMTEfhN) {
                const _YjWVVcUA = _NvMTEfhN.dataset.tooltip;
                _gOYuunbf.textContent = _YjWVVcUA;
                const _KjHlZgmN = _NvMTEfhN.getBoundingClientRect();
                _gOYuunbf._UkmOYHpC.display = 'block';
                let _TQhFmdgx = _KjHlZgmN.bottom + window.scrollY + 5;
                let _qpYqmuXV = _KjHlZgmN._qpYqmuXV + window.scrollX;
                _gOYuunbf._UkmOYHpC._TQhFmdgx = `${_TQhFmdgx}px`;
                _gOYuunbf._UkmOYHpC._qpYqmuXV = `${_qpYqmuXV}px`;
                const _wgdgQVxd = _gOYuunbf.getBoundingClientRect();
                if (_wgdgQVxd.right > window.innerWidth - 10) {
                    _qpYqmuXV = window.innerWidth - _wgdgQVxd._OOUiGycq - 10;
                }
                if (_wgdgQVxd.bottom > window.innerHeight - 10) {
                    _TQhFmdgx = _KjHlZgmN._TQhFmdgx + window.scrollY - _wgdgQVxd.height - 5;
                }
                _gOYuunbf._UkmOYHpC._TQhFmdgx = `${_TQhFmdgx}px`;
                _gOYuunbf._UkmOYHpC._qpYqmuXV = `${_qpYqmuXV}px`;
                _UQsFbFsZ.stopPropagation();
            } else if (_gOYuunbf._UkmOYHpC.display === 'block') {
                _gOYuunbf._UkmOYHpC.display = 'none';
            }
        });
    }
    const _UkmOYHpC = document.createElement('_UkmOYHpC');
    _UkmOYHpC.textContent = `
        .tab-button { background-_OYIlBRow: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _OYIlBRow: var(--_YjWVVcUA-light); font-size: 1em; }
        .tab-button:hover { background-_OYIlBRow: var(--border-_OYIlBRow); }
        .tab-button.active { _OYIlBRow: var(--primary-_OYIlBRow); border-bottom: 2px solid var(--primary-_OYIlBRow); }
        .tab-_jGOnnFBw { display: none; padding-_TQhFmdgx: 1rem; }
    `;
    document.head.appendChild(_UkmOYHpC);
    window.addEventListener('DOMContentLoaded', _QACQjqZR);
</script>
</_xiSDFndW></html>
`;
}