diff --git a/luci-app-ddnsto/Makefile b/luci-app-ddnsto/Makefile index c339a799d..904cf532d 100644 --- a/luci-app-ddnsto/Makefile +++ b/luci-app-ddnsto/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for ddnsto LUCI_DEPENDS:=+ddnsto +block-mount LUCI_PKGARCH:=all -PKG_VERSION:=3.2.0-r2 +PKG_VERSION:=3.2.0-r3 PKG_RELEASE:= include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-ddnsto/luasrc/controller/ddnsto.lua b/luci-app-ddnsto/luasrc/controller/ddnsto.lua index fedfb0472..a58812f8a 100644 --- a/luci-app-ddnsto/luasrc/controller/ddnsto.lua +++ b/luci-app-ddnsto/luasrc/controller/ddnsto.lua @@ -37,7 +37,8 @@ LuCI 对 POST 通常要求 token 校验。这里提供两种方式(二选一 开发/调试注意 ------------ 1) 修改 controller 后,LuCI 可能缓存索引: - - rm -f /tmp/luci-indexcache /tmp/luci-indexcache.* + - rm -f /tmp/luci-indexcache + - /etc/init.d/uhttpd restart (或重启设备) 2) 确保 /etc/config/ddnsto 存在;否则 index() 会直接 return。 3) 若想扩展更多字段(如 address),建议在 GET 返回里带出,但 POST 仅允许白名单字段写入。 @@ -273,7 +274,7 @@ function index() entry({"admin", "services", "ddnsto"}, firstchild(), _("DDNSTO 远程控制"), 60).dependent = false entry({"admin", "services", "ddnsto", "page"}, call("action_page"), _("Settings"), 10).leaf = true - -- entry({"admin", "ddnsto_dev"}, call("action_ddnsto_dev"), _("DDNSTO (Dev)"), 99).leaf = true + entry({"admin", "ddnsto_dev"}, call("action_ddnsto_dev"), _("DDNSTO (Dev)"), 99).leaf = true entry({"admin", "services", "ddnsto", "api", "config"}, call("api_config")).leaf = true entry({"admin", "services", "ddnsto", "api", "service"}, call("api_service")).leaf = true @@ -282,6 +283,7 @@ function index() entry({"admin", "services", "ddnsto", "api", "stop"}, call("api_stop")).leaf = true entry({"admin", "services", "ddnsto", "api", "onboarding", "start"}, call("api_onboarding_start")).leaf = true entry({"admin", "services", "ddnsto", "api", "onboarding", "address"}, call("api_onboarding_address")).leaf = true + entry({"admin", "services", "ddnsto", "api", "connectivity"}, call("api_connectivity")).leaf = true entry({"admin", "services", "ddnsto", "api", "status"}, call("api_status")).leaf = true entry({"admin", "services", "ddnsto", "api", "logs"}, call("api_logs")).leaf = true end @@ -581,9 +583,40 @@ function api_status() local version = get_command("/usr/sbin/ddnstod -v") - -- Check connectivity to the tunnel server via ping + local did = "" + do + local idx = index + if not (idx and tostring(idx):match("^%d+$")) then + idx = "0" + end + local cmd = string.format("/usr/sbin/ddnstod -x %s -w | awk '{print $2}'", idx) + did = get_command(cmd) + end + + write_json({ + ok = true, + data = { + enabled = enabled, + running = running, + pid = pid, + token_set = (token and #token > 0) or false, + address = address, + device_id = did, + deviceId = did, + hostname = hostname, + version = version, + } + }) +end + +-- ========== +-- API: connectivity (tunnel server reachability) +-- ========== + +function api_connectivity() + local sys = require "luci.sys" + local function resolve_host(host) - -- Prefer public DNS to avoid local resolver issues; fallback to default resolver local out = sys.exec(string.format("nslookup %s 223.5.5.5 2>/dev/null", host)) or "" if out == "" then out = sys.exec(string.format("nslookup %s 8.8.8.8 2>/dev/null", host)) or "" @@ -599,10 +632,8 @@ function api_status() local resolved_ip = resolve_host("tunnel.kooldns.cn") if resolved_ip ~= "" then table.insert(tunnel_targets, resolved_ip) end table.insert(tunnel_targets, "tunnel.kooldns.cn") - -- Fallback known IP to avoid DNS issues table.insert(tunnel_targets, "125.39.21.43") - -- Deduplicate targets do local seen = {} local uniq = {} @@ -616,7 +647,6 @@ function api_status() end local function connect_target(target) - -- BusyBox ping: -c 1 (one packet), -W 2 (2s timeout) local ret = sys.call(string.format("ping -c 1 -W 2 %s >/dev/null 2>&1", target)) if ret == 0 then return 0, nil @@ -642,30 +672,12 @@ function api_status() end end - local did = "" - do - local idx = index - if not (idx and tostring(idx):match("^%d+$")) then - idx = "0" - end - local cmd = string.format("/usr/sbin/ddnstod -x %s -w | awk '{print $2}'", idx) - did = get_command(cmd) - end - write_json({ ok = true, data = { - enabled = enabled, - running = running, - pid = pid, - token_set = (token and #token > 0) or false, - address = address, - device_id = did, - deviceId = did, - hostname = hostname, - version = version, tunnel_ok = tunnel_ok, tunnel_ret = tunnel_ok and nil or tunnel_err, + targets = tunnel_targets, } }) end diff --git a/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js b/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js index c145a7904..00f09f6af 100644 --- a/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js +++ b/luci-app-ddnsto/root/www/luci-static/ddnsto/index.js @@ -1,4 +1,4 @@ -(function(){const j=document.createElement("link").relList;if(j&&j.supports&&j.supports("modulepreload"))return;for(const R of document.querySelectorAll('link[rel="modulepreload"]'))$(R);new MutationObserver(R=>{for(const I of R)if(I.type==="childList")for(const Q of I.addedNodes)Q.tagName==="LINK"&&Q.rel==="modulepreload"&&$(Q)}).observe(document,{childList:!0,subtree:!0});function d(R){const I={};return R.integrity&&(I.integrity=R.integrity),R.referrerPolicy&&(I.referrerPolicy=R.referrerPolicy),R.crossOrigin==="use-credentials"?I.credentials="include":R.crossOrigin==="anonymous"?I.credentials="omit":I.credentials="same-origin",I}function $(R){if(R.ep)return;R.ep=!0;const I=d(R);fetch(R.href,I)}})();function Vd(S){return S&&S.__esModule&&Object.prototype.hasOwnProperty.call(S,"default")?S.default:S}var Li={exports:{}},Nr={},Ii={exports:{}},J={};/** +(function(){const E=document.createElement("link").relList;if(E&&E.supports&&E.supports("modulepreload"))return;for(const T of document.querySelectorAll('link[rel="modulepreload"]'))A(T);new MutationObserver(T=>{for(const L of T)if(L.type==="childList")for(const W of L.addedNodes)W.tagName==="LINK"&&W.rel==="modulepreload"&&A(W)}).observe(document,{childList:!0,subtree:!0});function d(T){const L={};return T.integrity&&(L.integrity=T.integrity),T.referrerPolicy&&(L.referrerPolicy=T.referrerPolicy),T.crossOrigin==="use-credentials"?L.credentials="include":T.crossOrigin==="anonymous"?L.credentials="omit":L.credentials="same-origin",L}function A(T){if(T.ep)return;T.ep=!0;const L=d(T);fetch(T.href,L)}})();function Vd(y){return y&&y.__esModule&&Object.prototype.hasOwnProperty.call(y,"default")?y.default:y}var Mi={exports:{}},Nr={},Oi={exports:{}},Z={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Ru;function Hd(){if(Ru)return J;Ru=1;var S=Symbol.for("react.element"),j=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),$=Symbol.for("react.strict_mode"),R=Symbol.for("react.profiler"),I=Symbol.for("react.provider"),Q=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),U=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),X=Symbol.for("react.lazy"),K=Symbol.iterator;function V(u){return u===null||typeof u!="object"?null:(u=K&&u[K]||u["@@iterator"],typeof u=="function"?u:null)}var ee={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},se=Object.assign,B={};function Y(u,v,M){this.props=u,this.context=v,this.refs=B,this.updater=M||ee}Y.prototype.isReactComponent={},Y.prototype.setState=function(u,v){if(typeof u!="object"&&typeof u!="function"&&u!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,u,v,"setState")},Y.prototype.forceUpdate=function(u){this.updater.enqueueForceUpdate(this,u,"forceUpdate")};function Ee(){}Ee.prototype=Y.prototype;function xe(u,v,M){this.props=u,this.context=v,this.refs=B,this.updater=M||ee}var ke=xe.prototype=new Ee;ke.constructor=xe,se(ke,Y.prototype),ke.isPureReactComponent=!0;var pe=Array.isArray,te=Object.prototype.hasOwnProperty,Ce={current:null},Re={key:!0,ref:!0,__self:!0,__source:!0};function he(u,v,M){var A,G={},O=null,le=null;if(v!=null)for(A in v.ref!==void 0&&(le=v.ref),v.key!==void 0&&(O=""+v.key),v)te.call(v,A)&&!Re.hasOwnProperty(A)&&(G[A]=v[A]);var q=arguments.length-2;if(q===1)G.children=M;else if(1>>1,v=E[u];if(0>>1;uR(G,g))OR(le,G)?(E[u]=le,E[O]=g,u=O):(E[u]=G,E[A]=g,u=A);else if(OR(le,g))E[u]=le,E[O]=g,u=O;else break e}}return x}function R(E,x){var g=E.sortIndex-x.sortIndex;return g!==0?g:E.id-x.id}if(typeof performance=="object"&&typeof performance.now=="function"){var I=performance;S.unstable_now=function(){return I.now()}}else{var Q=Date,Z=Q.now();S.unstable_now=function(){return Q.now()-Z}}var U=[],b=[],X=1,K=null,V=3,ee=!1,se=!1,B=!1,Y=typeof setTimeout=="function"?setTimeout:null,Ee=typeof clearTimeout=="function"?clearTimeout:null,xe=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function ke(E){for(var x=d(b);x!==null;){if(x.callback===null)$(b);else if(x.startTime<=E)$(b),x.sortIndex=x.expirationTime,j(U,x);else break;x=d(b)}}function pe(E){if(B=!1,ke(E),!se)if(d(U)!==null)se=!0,ze(te);else{var x=d(b);x!==null&&W(pe,x.startTime-E)}}function te(E,x){se=!1,B&&(B=!1,Ee(he),he=-1),ee=!0;var g=V;try{for(ke(x),K=d(U);K!==null&&(!(K.expirationTime>x)||E&&!Ke());){var u=K.callback;if(typeof u=="function"){K.callback=null,V=K.priorityLevel;var v=u(K.expirationTime<=x);x=S.unstable_now(),typeof v=="function"?K.callback=v:K===d(U)&&$(U),ke(x)}else $(U);K=d(U)}if(K!==null)var M=!0;else{var A=d(b);A!==null&&W(pe,A.startTime-x),M=!1}return M}finally{K=null,V=g,ee=!1}}var Ce=!1,Re=null,he=-1,Ne=5,ue=-1;function Ke(){return!(S.unstable_now()-ueE||125u?(E.sortIndex=g,j(b,E),d(U)===null&&E===d(b)&&(B?(Ee(he),he=-1):B=!0,W(pe,g-u))):(E.sortIndex=v,j(U,E),se||ee||(se=!0,ze(te))),E},S.unstable_shouldYield=Ke,S.unstable_wrapCallback=function(E){var x=V;return function(){var g=V;V=x;try{return E.apply(this,arguments)}finally{V=g}}}})(Di)),Di}var Du;function bd(){return Du||(Du=1,Oi.exports=Kd()),Oi.exports}/** + */var Fu;function Yd(){return Fu||(Fu=1,(function(y){function E(x,I){var g=x.length;x.push(I);e:for(;0>>1,v=x[u];if(0>>1;uT(X,g))OT(re,X)?(x[u]=re,x[O]=g,u=O):(x[u]=X,x[U]=g,u=U);else if(OT(re,g))x[u]=re,x[O]=g,u=O;else break e}}return I}function T(x,I){var g=x.sortIndex-I.sortIndex;return g!==0?g:x.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var L=performance;y.unstable_now=function(){return L.now()}}else{var W=Date,G=W.now();y.unstable_now=function(){return W.now()-G}}var b=[],Q=[],Y=1,B=null,$=3,q=!1,ie=!1,V=!1,K=typeof setTimeout=="function"?setTimeout:null,Ce=typeof clearTimeout=="function"?clearTimeout:null,xe=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Se(x){for(var I=d(Q);I!==null;){if(I.callback===null)A(Q);else if(I.startTime<=x)A(Q),I.sortIndex=I.expirationTime,E(b,I);else break;I=d(Q)}}function pe(x){if(V=!1,Se(x),!ie)if(d(b)!==null)ie=!0,je(ee);else{var I=d(Q);I!==null&&ae(pe,I.startTime-x)}}function ee(x,I){ie=!1,V&&(V=!1,Ce(he),he=-1),q=!0;var g=$;try{for(Se(I),B=d(b);B!==null&&(!(B.expirationTime>I)||x&&!Qe());){var u=B.callback;if(typeof u=="function"){B.callback=null,$=B.priorityLevel;var v=u(B.expirationTime<=I);I=y.unstable_now(),typeof v=="function"?B.callback=v:B===d(b)&&A(b),Se(I)}else A(b);B=d(b)}if(B!==null)var M=!0;else{var U=d(Q);U!==null&&ae(pe,U.startTime-I),M=!1}return M}finally{B=null,$=g,q=!1}}var Ne=!1,Re=null,he=-1,we=5,ue=-1;function Qe(){return!(y.unstable_now()-uex||125u?(x.sortIndex=g,E(Q,x),d(b)===null&&x===d(Q)&&(V?(Ce(he),he=-1):V=!0,ae(pe,g-u))):(x.sortIndex=v,E(b,x),ie||q||(ie=!0,je(ee))),x},y.unstable_shouldYield=Qe,y.unstable_wrapCallback=function(x){var I=$;return function(){var g=$;$=I;try{return x.apply(this,arguments)}finally{$=g}}}})(bi)),bi}var bu;function Xd(){return bu||(bu=1,Fi.exports=Yd()),Fi.exports}/** * @license React * react-dom.production.min.js * @@ -30,72 +30,73 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Fu;function Yd(){if(Fu)return Je;Fu=1;var S=Ui(),j=bd();function d(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),U=Object.prototype.hasOwnProperty,b=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,X={},K={};function V(e){return U.call(K,e)?!0:U.call(X,e)?!1:b.test(e)?K[e]=!0:(X[e]=!0,!1)}function ee(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function se(e,t,n,r){if(t===null||typeof t>"u"||ee(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function B(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var Y={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Y[e]=new B(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Y[t]=new B(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){Y[e]=new B(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Y[e]=new B(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Y[e]=new B(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){Y[e]=new B(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){Y[e]=new B(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){Y[e]=new B(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){Y[e]=new B(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ee=/[\-:]([a-z])/g;function xe(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ee,xe);Y[t]=new B(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ee,xe);Y[t]=new B(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ee,xe);Y[t]=new B(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){Y[e]=new B(e,1,!1,e.toLowerCase(),null,!1,!1)}),Y.xlinkHref=new B("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){Y[e]=new B(e,1,!1,e.toLowerCase(),null,!0,!0)});function ke(e,t,n,r){var l=Y.hasOwnProperty(t)?Y[t]:null;(l!==null?l.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),b=Object.prototype.hasOwnProperty,Q=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Y={},B={};function $(e){return b.call(B,e)?!0:b.call(Y,e)?!1:Q.test(e)?B[e]=!0:(Y[e]=!0,!1)}function q(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ie(e,t,n,r){if(t===null||typeof t>"u"||q(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function V(e,t,n,r,l,o,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var K={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){K[e]=new V(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];K[t]=new V(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){K[e]=new V(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){K[e]=new V(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){K[e]=new V(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){K[e]=new V(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){K[e]=new V(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){K[e]=new V(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){K[e]=new V(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ce=/[\-:]([a-z])/g;function xe(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ce,xe);K[t]=new V(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ce,xe);K[t]=new V(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ce,xe);K[t]=new V(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){K[e]=new V(e,1,!1,e.toLowerCase(),null,!1,!1)}),K.xlinkHref=new V("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){K[e]=new V(e,1,!1,e.toLowerCase(),null,!0,!0)});function Se(e,t,n,r){var l=K.hasOwnProperty(t)?K[t]:null;(l!==null?l.type!==0:r||!(2s||l[i]!==o[s]){var a=` -`+l[i].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=i&&0<=s);break}}}finally{M=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?v(e):""}function G(e){switch(e.tag){case 5:return v(e.type);case 16:return v("Lazy");case 13:return v("Suspense");case 19:return v("SuspenseList");case 0:case 2:case 15:return e=A(e.type,!1),e;case 11:return e=A(e.type.render,!1),e;case 1:return e=A(e.type,!0),e;default:return""}}function O(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Re:return"Fragment";case Ce:return"Portal";case Ne:return"Profiler";case he:return"StrictMode";case me:return"Suspense";case ye:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ke:return(e.displayName||"Context")+".Consumer";case ue:return(e._context.displayName||"Context")+".Provider";case Le:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ue:return t=e.displayName||null,t!==null?t:O(e.type)||"Memo";case ze:t=e._payload,e=e._init;try{return O(e(t))}catch{}}return null}function le(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return O(t);case 8:return t===he?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function q(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ie(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ae(e){var t=ie(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fn(e){e._valueTracker||(e._valueTracker=Ae(e))}function An(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ie(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Pt(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $n(e,t){var n=t.checked;return g({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Gt(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=q(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ai(e,t){t=t.checked,t!=null&&ke(e,"checked",t,!1)}function Al(e,t){Ai(e,t);var n=q(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?$l(e,t.type,n):t.hasOwnProperty("defaultValue")&&$l(e,t.type,q(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function $i(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function $l(e,t,n){(t!=="number"||Pt(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Vn=Array.isArray;function pn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Pr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Hn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Wn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Qu=["Webkit","ms","Moz","O"];Object.keys(Wn).forEach(function(e){Qu.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Wn[t]=Wn[e]})});function Ki(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Wn.hasOwnProperty(e)&&Wn[e]?(""+t).trim():t+"px"}function bi(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Ki(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Ku=g({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wl(e,t){if(t){if(Ku[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(d(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(d(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(d(61))}if(t.style!=null&&typeof t.style!="object")throw Error(d(62))}}function Bl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ql=null;function Kl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var bl=null,hn=null,mn=null;function Yi(e){if(e=dr(e)){if(typeof bl!="function")throw Error(d(280));var t=e.stateNode;t&&(t=Jr(t),bl(e.stateNode,e.type,t))}}function Xi(e){hn?mn?mn.push(e):mn=[e]:hn=e}function Gi(){if(hn){var e=hn,t=mn;if(mn=hn=null,Yi(e),t)for(e=0;e>>=0,e===0?32:31-(rc(e)/lc|0)|0}var Mr=64,Or=4194304;function bn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Dr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~l;s!==0?r=bn(s):(o&=i,o!==0&&(r=bn(o)))}else i=n&~l,i!==0?r=bn(i):o!==0&&(r=bn(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Yn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ut(t),e[t]=n}function ac(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=nr),Es=" ",Cs=!1;function Ns(e,t){switch(e){case"keyup":return Dc.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function js(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yn=!1;function Uc(e,t){switch(e){case"compositionend":return js(t);case"keypress":return t.which!==32?null:(Cs=!0,Es);case"textInput":return e=t.data,e===Es&&Cs?null:e;default:return null}}function Ac(e,t){if(yn)return e==="compositionend"||!fo&&Ns(e,t)?(e=ys(),Vr=oo=Mt=null,yn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ms(n)}}function Ds(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ds(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fs(){for(var e=window,t=Pt();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pt(e.document)}return t}function mo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Yc(e){var t=Fs(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ds(n.ownerDocument.documentElement,n)){if(r!==null&&mo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Os(n,o);var i=Os(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,wn=null,vo=null,ir=null,go=!1;function Us(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;go||wn==null||wn!==Pt(r)||(r=wn,"selectionStart"in r&&mo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ir&&or(ir,r)||(ir=r,r=Xr(vo,"onSelect"),0En||(e.current=Po[En],Po[En]=null,En--)}function ae(e,t){En++,Po[En]=e.current,e.current=t}var Ut={},$e=Ft(Ut),be=Ft(!1),qt=Ut;function Cn(e,t){var n=e.type.contextTypes;if(!n)return Ut;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ye(e){return e=e.childContextTypes,e!=null}function qr(){de(be),de($e)}function qs(e,t,n){if($e.current!==Ut)throw Error(d(168));ae($e,t),ae(be,n)}function ea(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(d(108,le(e)||"Unknown",l));return g({},n,r)}function el(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ut,qt=$e.current,ae($e,e),ae(be,be.current),!0}function ta(e,t,n){var r=e.stateNode;if(!r)throw Error(d(169));n?(e=ea(e,t,qt),r.__reactInternalMemoizedMergedChildContext=e,de(be),de($e),ae($e,e)):de(be),ae(be,n)}var St=null,tl=!1,To=!1;function na(e){St===null?St=[e]:St.push(e)}function id(e){tl=!0,na(e)}function At(){if(!To&&St!==null){To=!0;var e=0,t=oe;try{var n=St;for(oe=1;e>=i,l-=i,_t=1<<32-ut(t)+l|n<H?(Oe=F,F=null):Oe=F.sibling;var re=y(f,F,p[H],_);if(re===null){F===null&&(F=Oe);break}e&&F&&re.alternate===null&&t(f,F),c=o(re,c,H),D===null?L=re:D.sibling=re,D=re,F=Oe}if(H===p.length)return n(f,F),fe&&tn(f,H),L;if(F===null){for(;HH?(Oe=F,F=null):Oe=F.sibling;var Yt=y(f,F,re.value,_);if(Yt===null){F===null&&(F=Oe);break}e&&F&&Yt.alternate===null&&t(f,F),c=o(Yt,c,H),D===null?L=Yt:D.sibling=Yt,D=Yt,F=Oe}if(re.done)return n(f,F),fe&&tn(f,H),L;if(F===null){for(;!re.done;H++,re=p.next())re=k(f,re.value,_),re!==null&&(c=o(re,c,H),D===null?L=re:D.sibling=re,D=re);return fe&&tn(f,H),L}for(F=r(f,F);!re.done;H++,re=p.next())re=N(F,f,H,re.value,_),re!==null&&(e&&re.alternate!==null&&F.delete(re.key===null?H:re.key),c=o(re,c,H),D===null?L=re:D.sibling=re,D=re);return e&&F.forEach(function($d){return t(f,$d)}),fe&&tn(f,H),L}function _e(f,c,p,_){if(typeof p=="object"&&p!==null&&p.type===Re&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case te:e:{for(var L=p.key,D=c;D!==null;){if(D.key===L){if(L=p.type,L===Re){if(D.tag===7){n(f,D.sibling),c=l(D,p.props.children),c.return=f,f=c;break e}}else if(D.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===ze&&aa(L)===D.type){n(f,D.sibling),c=l(D,p.props),c.ref=fr(f,D,p),c.return=f,f=c;break e}n(f,D);break}else t(f,D);D=D.sibling}p.type===Re?(c=cn(p.props.children,f.mode,_,p.key),c.return=f,f=c):(_=Pl(p.type,p.key,p.props,null,f.mode,_),_.ref=fr(f,c,p),_.return=f,f=_)}return i(f);case Ce:e:{for(D=p.key;c!==null;){if(c.key===D)if(c.tag===4&&c.stateNode.containerInfo===p.containerInfo&&c.stateNode.implementation===p.implementation){n(f,c.sibling),c=l(c,p.children||[]),c.return=f,f=c;break e}else{n(f,c);break}else t(f,c);c=c.sibling}c=ji(p,f.mode,_),c.return=f,f=c}return i(f);case ze:return D=p._init,_e(f,c,D(p._payload),_)}if(Vn(p))return P(f,c,p,_);if(x(p))return T(f,c,p,_);ol(f,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,c!==null&&c.tag===6?(n(f,c.sibling),c=l(c,p),c.return=f,f=c):(n(f,c),c=Ni(p,f.mode,_),c.return=f,f=c),i(f)):n(f,c)}return _e}var Pn=ua(!0),ca=ua(!1),il=Ft(null),sl=null,Tn=null,Do=null;function Fo(){Do=Tn=sl=null}function Uo(e){var t=il.current;de(il),e._currentValue=t}function Ao(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Rn(e,t){sl=e,Do=Tn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Xe=!0),e.firstContext=null)}function ot(e){var t=e._currentValue;if(Do!==e)if(e={context:e,memoizedValue:t,next:null},Tn===null){if(sl===null)throw Error(d(308));Tn=e,sl.dependencies={lanes:0,firstContext:e}}else Tn=Tn.next=e;return t}var nn=null;function $o(e){nn===null?nn=[e]:nn.push(e)}function da(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,$o(t)):(n.next=l.next,l.next=n),t.interleaved=n,Ct(e,r)}function Ct(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var $t=!1;function Vo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Nt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(ne&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Ct(e,n)}return l=r.interleaved,l===null?(t.next=t,$o(r)):(t.next=l.next,l.next=t),r.interleaved=t,Ct(e,n)}function al(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eo(e,n)}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ul(e,t,n,r){var l=e.updateQueue;$t=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,s=l.shared.pending;if(s!==null){l.shared.pending=null;var a=s,h=a.next;a.next=null,i===null?o=h:i.next=h,i=a;var w=e.alternate;w!==null&&(w=w.updateQueue,s=w.lastBaseUpdate,s!==i&&(s===null?w.firstBaseUpdate=h:s.next=h,w.lastBaseUpdate=a))}if(o!==null){var k=l.baseState;i=0,w=h=a=null,s=o;do{var y=s.lane,N=s.eventTime;if((r&y)===y){w!==null&&(w=w.next={eventTime:N,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var P=e,T=s;switch(y=t,N=n,T.tag){case 1:if(P=T.payload,typeof P=="function"){k=P.call(N,k,y);break e}k=P;break e;case 3:P.flags=P.flags&-65537|128;case 0:if(P=T.payload,y=typeof P=="function"?P.call(N,k,y):P,y==null)break e;k=g({},k,y);break e;case 2:$t=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,y=l.effects,y===null?l.effects=[s]:y.push(s))}else N={eventTime:N,lane:y,tag:s.tag,payload:s.payload,callback:s.callback,next:null},w===null?(h=w=N,a=k):w=w.next=N,i|=y;if(s=s.next,s===null){if(s=l.shared.pending,s===null)break;y=s,s=y.next,y.next=null,l.lastBaseUpdate=y,l.shared.pending=null}}while(!0);if(w===null&&(a=k),l.baseState=a,l.firstBaseUpdate=h,l.lastBaseUpdate=w,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);on|=i,e.lanes=i,e.memoizedState=k}}function ha(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Ko.transition;Ko.transition={};try{e(!1),t()}finally{oe=n,Ko.transition=r}}function Ia(){return it().memoizedState}function cd(e,t,n){var r=Qt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ma(e))Oa(t,n);else if(n=da(e,t,n,r),n!==null){var l=Qe();mt(n,e,r,l),Da(n,t,r)}}function dd(e,t,n){var r=Qt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ma(e))Oa(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,s=o(i,n);if(l.hasEagerState=!0,l.eagerState=s,ct(s,i)){var a=t.interleaved;a===null?(l.next=l,$o(t)):(l.next=a.next,a.next=l),t.interleaved=l;return}}catch{}finally{}n=da(e,t,l,r),n!==null&&(l=Qe(),mt(n,e,r,l),Da(n,t,r))}}function Ma(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function Oa(e,t){vr=fl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Da(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eo(e,n)}}var ml={readContext:ot,useCallback:Ve,useContext:Ve,useEffect:Ve,useImperativeHandle:Ve,useInsertionEffect:Ve,useLayoutEffect:Ve,useMemo:Ve,useReducer:Ve,useRef:Ve,useState:Ve,useDebugValue:Ve,useDeferredValue:Ve,useTransition:Ve,useMutableSource:Ve,useSyncExternalStore:Ve,useId:Ve,unstable_isNewReconciler:!1},fd={readContext:ot,useCallback:function(e,t){return wt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:Ca,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,pl(4194308,4,za.bind(null,t,e),n)},useLayoutEffect:function(e,t){return pl(4194308,4,e,t)},useInsertionEffect:function(e,t){return pl(4,2,e,t)},useMemo:function(e,t){var n=wt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=wt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=cd.bind(null,ge,e),[r.memoizedState,e]},useRef:function(e){var t=wt();return e={current:e},t.memoizedState=e},useState:_a,useDebugValue:qo,useDeferredValue:function(e){return wt().memoizedState=e},useTransition:function(){var e=_a(!1),t=e[0];return e=ud.bind(null,e[1]),wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ge,l=wt();if(fe){if(n===void 0)throw Error(d(407));n=n()}else{if(n=t(),Me===null)throw Error(d(349));(ln&30)!==0||ya(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Ca(xa.bind(null,r,o,e),[e]),r.flags|=2048,wr(9,wa.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=wt(),t=Me.identifierPrefix;if(fe){var n=Et,r=_t;n=(r&~(1<<32-ut(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gr++,0a||l[i]!==o[a]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=a);break}}}finally{M=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?v(e):""}function X(e){switch(e.tag){case 5:return v(e.type);case 16:return v("Lazy");case 13:return v("Suspense");case 19:return v("SuspenseList");case 0:case 2:case 15:return e=U(e.type,!1),e;case 11:return e=U(e.type.render,!1),e;case 1:return e=U(e.type,!0),e;default:return""}}function O(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Re:return"Fragment";case Ne:return"Portal";case we:return"Profiler";case he:return"StrictMode";case me:return"Suspense";case ge:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Qe:return(e.displayName||"Context")+".Consumer";case ue:return(e._context.displayName||"Context")+".Provider";case Le:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ie:return t=e.displayName||null,t!==null?t:O(e.type)||"Memo";case je:t=e._payload,e=e._init;try{return O(e(t))}catch{}}return null}function re(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return O(t);case 8:return t===he?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function J(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function oe(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ue(e){var t=oe(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,o.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fn(e){e._valueTracker||(e._valueTracker=Ue(e))}function Un(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=oe(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Tt(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function An(e,t){var n=t.checked;return g({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Zt(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=J(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function $i(e,t){t=t.checked,t!=null&&Se(e,"checked",t,!1)}function $l(e,t){$i(e,t);var n=J(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Hl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Hl(e,t.type,J(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Hi(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Hl(e,t,n){(t!=="number"||Tt(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var $n=Array.isArray;function pn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Pr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Hn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Vn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ku=["Webkit","ms","Moz","O"];Object.keys(Vn).forEach(function(e){Ku.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Vn[t]=Vn[e]})});function Yi(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Vn.hasOwnProperty(e)&&Vn[e]?(""+t).trim():t+"px"}function Xi(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Yi(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Yu=g({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Bl(e,t){if(t){if(Yu[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(d(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(d(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(d(61))}if(t.style!=null&&typeof t.style!="object")throw Error(d(62))}}function Ql(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Kl=null;function Yl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xl=null,hn=null,mn=null;function Gi(e){if(e=dr(e)){if(typeof Xl!="function")throw Error(d(280));var t=e.stateNode;t&&(t=Jr(t),Xl(e.stateNode,e.type,t))}}function Zi(e){hn?mn?mn.push(e):mn=[e]:hn=e}function Ji(){if(hn){var e=hn,t=mn;if(mn=hn=null,Gi(e),t)for(e=0;e>>=0,e===0?32:31-(oc(e)/ic|0)|0}var Mr=64,Or=4194304;function Kn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Dr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,i=n&268435455;if(i!==0){var a=i&~l;a!==0?r=Kn(a):(o&=i,o!==0&&(r=Kn(o)))}else i=n&~l,i!==0?r=Kn(i):o!==0&&(r=Kn(o));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Yn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-ut(t),e[t]=n}function cc(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=nr),Na=" ",ja=!1;function za(e,t){switch(e){case"keyup":return bc.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Pa(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yn=!1;function Ac(e,t){switch(e){case"compositionend":return Pa(t);case"keypress":return t.which!==32?null:(ja=!0,Na);case"textInput":return e=t.data,e===Na&&ja?null:e;default:return null}}function $c(e,t){if(yn)return e==="compositionend"||!ho&&za(e,t)?(e=ka(),$r=ao=Ot=null,yn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Da(n)}}function ba(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ba(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ua(){for(var e=window,t=Tt();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Tt(e.document)}return t}function vo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Gc(e){var t=Ua(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ba(n.ownerDocument.documentElement,n)){if(r!==null&&vo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=Fa(n,o);var i=Fa(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,wn=null,yo=null,ir=null,wo=!1;function Aa(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;wo||wn==null||wn!==Tt(r)||(r=wn,"selectionStart"in r&&vo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ir&&or(ir,r)||(ir=r,r=Xr(yo,"onSelect"),0En||(e.current=Ro[En],Ro[En]=null,En--)}function se(e,t){En++,Ro[En]=e.current,e.current=t}var Ut={},Ae=bt(Ut),Ke=bt(!1),en=Ut;function Cn(e,t){var n=e.type.contextTypes;if(!n)return Ut;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Ye(e){return e=e.childContextTypes,e!=null}function qr(){de(Ke),de(Ae)}function ts(e,t,n){if(Ae.current!==Ut)throw Error(d(168));se(Ae,t),se(Ke,n)}function ns(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(d(108,re(e)||"Unknown",l));return g({},n,r)}function el(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ut,en=Ae.current,se(Ae,e),se(Ke,Ke.current),!0}function rs(e,t,n){var r=e.stateNode;if(!r)throw Error(d(169));n?(e=ns(e,t,en),r.__reactInternalMemoizedMergedChildContext=e,de(Ke),de(Ae),se(Ae,e)):de(Ke),se(Ke,n)}var _t=null,tl=!1,Lo=!1;function ls(e){_t===null?_t=[e]:_t.push(e)}function sd(e){tl=!0,ls(e)}function At(){if(!Lo&&_t!==null){Lo=!0;var e=0,t=le;try{var n=_t;for(le=1;e>=i,l-=i,Et=1<<32-ut(t)+l|n<H?(De=F,F=null):De=F.sibling;var ne=w(f,F,p[H],_);if(ne===null){F===null&&(F=De);break}e&&F&&ne.alternate===null&&t(f,F),c=o(ne,c,H),D===null?R=ne:D.sibling=ne,D=ne,F=De}if(H===p.length)return n(f,F),fe&&nn(f,H),R;if(F===null){for(;HH?(De=F,F=null):De=F.sibling;var Xt=w(f,F,ne.value,_);if(Xt===null){F===null&&(F=De);break}e&&F&&Xt.alternate===null&&t(f,F),c=o(Xt,c,H),D===null?R=Xt:D.sibling=Xt,D=Xt,F=De}if(ne.done)return n(f,F),fe&&nn(f,H),R;if(F===null){for(;!ne.done;H++,ne=p.next())ne=S(f,ne.value,_),ne!==null&&(c=o(ne,c,H),D===null?R=ne:D.sibling=ne,D=ne);return fe&&nn(f,H),R}for(F=r(f,F);!ne.done;H++,ne=p.next())ne=N(F,f,H,ne.value,_),ne!==null&&(e&&ne.alternate!==null&&F.delete(ne.key===null?H:ne.key),c=o(ne,c,H),D===null?R=ne:D.sibling=ne,D=ne);return e&&F.forEach(function(Hd){return t(f,Hd)}),fe&&nn(f,H),R}function Ee(f,c,p,_){if(typeof p=="object"&&p!==null&&p.type===Re&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case ee:e:{for(var R=p.key,D=c;D!==null;){if(D.key===R){if(R=p.type,R===Re){if(D.tag===7){n(f,D.sibling),c=l(D,p.props.children),c.return=f,f=c;break e}}else if(D.elementType===R||typeof R=="object"&&R!==null&&R.$$typeof===je&&cs(R)===D.type){n(f,D.sibling),c=l(D,p.props),c.ref=fr(f,D,p),c.return=f,f=c;break e}n(f,D);break}else t(f,D);D=D.sibling}p.type===Re?(c=dn(p.props.children,f.mode,_,p.key),c.return=f,f=c):(_=Pl(p.type,p.key,p.props,null,f.mode,_),_.ref=fr(f,c,p),_.return=f,f=_)}return i(f);case Ne:e:{for(D=p.key;c!==null;){if(c.key===D)if(c.tag===4&&c.stateNode.containerInfo===p.containerInfo&&c.stateNode.implementation===p.implementation){n(f,c.sibling),c=l(c,p.children||[]),c.return=f,f=c;break e}else{n(f,c);break}else t(f,c);c=c.sibling}c=Pi(p,f.mode,_),c.return=f,f=c}return i(f);case je:return D=p._init,Ee(f,c,D(p._payload),_)}if($n(p))return z(f,c,p,_);if(I(p))return P(f,c,p,_);ol(f,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,c!==null&&c.tag===6?(n(f,c.sibling),c=l(c,p),c.return=f,f=c):(n(f,c),c=zi(p,f.mode,_),c.return=f,f=c),i(f)):n(f,c)}return Ee}var Pn=ds(!0),fs=ds(!1),il=bt(null),al=null,Tn=null,bo=null;function Uo(){bo=Tn=al=null}function Ao(e){var t=il.current;de(il),e._currentValue=t}function $o(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Rn(e,t){al=e,bo=Tn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Xe=!0),e.firstContext=null)}function ot(e){var t=e._currentValue;if(bo!==e)if(e={context:e,memoizedValue:t,next:null},Tn===null){if(al===null)throw Error(d(308));Tn=e,al.dependencies={lanes:0,firstContext:e}}else Tn=Tn.next=e;return t}var rn=null;function Ho(e){rn===null?rn=[e]:rn.push(e)}function ps(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Ho(t)):(n.next=l.next,l.next=n),t.interleaved=n,Nt(e,r)}function Nt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var $t=!1;function Vo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function hs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function jt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ht(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(te&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Nt(e,n)}return l=r.interleaved,l===null?(t.next=t,Ho(r)):(t.next=l.next,l.next=t),r.interleaved=t,Nt(e,n)}function sl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,no(e,n)}}function ms(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=i:o=o.next=i,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ul(e,t,n,r){var l=e.updateQueue;$t=!1;var o=l.firstBaseUpdate,i=l.lastBaseUpdate,a=l.shared.pending;if(a!==null){l.shared.pending=null;var s=a,h=s.next;s.next=null,i===null?o=h:i.next=h,i=s;var k=e.alternate;k!==null&&(k=k.updateQueue,a=k.lastBaseUpdate,a!==i&&(a===null?k.firstBaseUpdate=h:a.next=h,k.lastBaseUpdate=s))}if(o!==null){var S=l.baseState;i=0,k=h=s=null,a=o;do{var w=a.lane,N=a.eventTime;if((r&w)===w){k!==null&&(k=k.next={eventTime:N,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var z=e,P=a;switch(w=t,N=n,P.tag){case 1:if(z=P.payload,typeof z=="function"){S=z.call(N,S,w);break e}S=z;break e;case 3:z.flags=z.flags&-65537|128;case 0:if(z=P.payload,w=typeof z=="function"?z.call(N,S,w):z,w==null)break e;S=g({},S,w);break e;case 2:$t=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,w=l.effects,w===null?l.effects=[a]:w.push(a))}else N={eventTime:N,lane:w,tag:a.tag,payload:a.payload,callback:a.callback,next:null},k===null?(h=k=N,s=S):k=k.next=N,i|=w;if(a=a.next,a===null){if(a=l.shared.pending,a===null)break;w=a,a=w.next,w.next=null,l.lastBaseUpdate=w,l.shared.pending=null}}while(!0);if(k===null&&(s=S),l.baseState=s,l.firstBaseUpdate=h,l.lastBaseUpdate=k,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);an|=i,e.lanes=i,e.memoizedState=S}}function gs(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Yo.transition;Yo.transition={};try{e(!1),t()}finally{le=n,Yo.transition=r}}function Os(){return it().memoizedState}function fd(e,t,n){var r=Qt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ds(e))Fs(t,n);else if(n=ps(e,t,n,r),n!==null){var l=Be();mt(n,e,r,l),bs(n,t,r)}}function pd(e,t,n){var r=Qt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ds(e))Fs(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var i=t.lastRenderedState,a=o(i,n);if(l.hasEagerState=!0,l.eagerState=a,ct(a,i)){var s=t.interleaved;s===null?(l.next=l,Ho(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ps(e,t,l,r),n!==null&&(l=Be(),mt(n,e,r,l),bs(n,t,r))}}function Ds(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function Fs(e,t){gr=fl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bs(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,no(e,n)}}var ml={readContext:ot,useCallback:$e,useContext:$e,useEffect:$e,useImperativeHandle:$e,useInsertionEffect:$e,useLayoutEffect:$e,useMemo:$e,useReducer:$e,useRef:$e,useState:$e,useDebugValue:$e,useDeferredValue:$e,useTransition:$e,useMutableSource:$e,useSyncExternalStore:$e,useId:$e,unstable_isNewReconciler:!1},hd={readContext:ot,useCallback:function(e,t){return kt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:js,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,pl(4194308,4,Ts.bind(null,t,e),n)},useLayoutEffect:function(e,t){return pl(4194308,4,e,t)},useInsertionEffect:function(e,t){return pl(4,2,e,t)},useMemo:function(e,t){var n=kt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=kt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=fd.bind(null,ye,e),[r.memoizedState,e]},useRef:function(e){var t=kt();return e={current:e},t.memoizedState=e},useState:Cs,useDebugValue:ti,useDeferredValue:function(e){return kt().memoizedState=e},useTransition:function(){var e=Cs(!1),t=e[0];return e=dd.bind(null,e[1]),kt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ye,l=kt();if(fe){if(n===void 0)throw Error(d(407));n=n()}else{if(n=t(),Oe===null)throw Error(d(349));(on&30)!==0||ks(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,js(Ss.bind(null,r,o,e),[e]),r.flags|=2048,wr(9,xs.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=kt(),t=Oe.identifierPrefix;if(fe){var n=Ct,r=Et;n=(r&~(1<<32-ut(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=vr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[gt]=t,e[cr]=r,nu(e,t,!1,!1),t.stateNode=e;e:{switch(i=Bl(n,r),n){case"dialog":ce("cancel",e),ce("close",e),l=r;break;case"iframe":case"object":case"embed":ce("load",e),l=r;break;case"video":case"audio":for(l=0;lDn&&(t.flags|=128,r=!0,xr(o,!1),t.lanes=4194304)}else{if(!r)if(e=cl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),xr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!fe)return He(t),null}else 2*Se()-o.renderingStartTime>Dn&&n!==1073741824&&(t.flags|=128,r=!0,xr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Se(),t.sibling=null,n=ve.current,ae(ve,r?n&1|2:n&1),t):(He(t),null);case 22:case 23:return _i(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(nt&1073741824)!==0&&(He(t),t.subtreeFlags&6&&(t.flags|=8192)):He(t),null;case 24:return null;case 25:return null}throw Error(d(156,t.tag))}function xd(e,t){switch(Lo(t),t.tag){case 1:return Ye(t.type)&&qr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ln(),de(be),de($e),Qo(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Wo(t),null;case 13:if(de(ve),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(d(340));zn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return de(ve),null;case 4:return Ln(),null;case 10:return Uo(t.type._context),null;case 22:case 23:return _i(),null;case 24:return null;default:return null}}var wl=!1,We=!1,kd=typeof WeakSet=="function"?WeakSet:Set,z=null;function Mn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){we(e,t,r)}else n.current=null}function di(e,t,n){try{n()}catch(r){we(e,t,r)}}var ou=!1;function Sd(e,t){if(_o=Ar,e=Fs(),mo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,s=-1,a=-1,h=0,w=0,k=e,y=null;t:for(;;){for(var N;k!==n||l!==0&&k.nodeType!==3||(s=i+l),k!==o||r!==0&&k.nodeType!==3||(a=i+r),k.nodeType===3&&(i+=k.nodeValue.length),(N=k.firstChild)!==null;)y=k,k=N;for(;;){if(k===e)break t;if(y===n&&++h===l&&(s=i),y===o&&++w===r&&(a=i),(N=k.nextSibling)!==null)break;k=y,y=k.parentNode}k=N}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(Eo={focusedElem:e,selectionRange:n},Ar=!1,z=t;z!==null;)if(t=z,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,z=e;else for(;z!==null;){t=z;try{var P=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(P!==null){var T=P.memoizedProps,_e=P.memoizedState,f=t.stateNode,c=f.getSnapshotBeforeUpdate(t.elementType===t.type?T:ft(t.type,T),_e);f.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(d(163))}}catch(_){we(t,t.return,_)}if(e=t.sibling,e!==null){e.return=t.return,z=e;break}z=t.return}return P=ou,ou=!1,P}function kr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&di(t,n,o)}l=l.next}while(l!==r)}}function xl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function fi(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function iu(e){var t=e.alternate;t!==null&&(e.alternate=null,iu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[gt],delete t[cr],delete t[zo],delete t[ld],delete t[od])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function su(e){return e.tag===5||e.tag===3||e.tag===4}function au(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||su(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function pi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zr));else if(r!==4&&(e=e.child,e!==null))for(pi(e,t,n),e=e.sibling;e!==null;)pi(e,t,n),e=e.sibling}function hi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(hi(e,t,n),e=e.sibling;e!==null;)hi(e,t,n),e=e.sibling}var De=null,pt=!1;function Ht(e,t,n){for(n=n.child;n!==null;)uu(e,t,n),n=n.sibling}function uu(e,t,n){if(vt&&typeof vt.onCommitFiberUnmount=="function")try{vt.onCommitFiberUnmount(Ir,n)}catch{}switch(n.tag){case 5:We||Mn(n,t);case 6:var r=De,l=pt;De=null,Ht(e,t,n),De=r,pt=l,De!==null&&(pt?(e=De,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):De.removeChild(n.stateNode));break;case 18:De!==null&&(pt?(e=De,n=n.stateNode,e.nodeType===8?jo(e.parentNode,n):e.nodeType===1&&jo(e,n),qn(e)):jo(De,n.stateNode));break;case 4:r=De,l=pt,De=n.stateNode.containerInfo,pt=!0,Ht(e,t,n),De=r,pt=l;break;case 0:case 11:case 14:case 15:if(!We&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&di(n,t,i),l=l.next}while(l!==r)}Ht(e,t,n);break;case 1:if(!We&&(Mn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){we(n,t,s)}Ht(e,t,n);break;case 21:Ht(e,t,n);break;case 22:n.mode&1?(We=(r=We)||n.memoizedState!==null,Ht(e,t,n),We=r):Ht(e,t,n);break;default:Ht(e,t,n)}}function cu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new kd),t.forEach(function(r){var l=Rd.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function ht(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=Se()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ed(r/1960))-r,10e?16:e,Bt===null)var r=!1;else{if(e=Bt,Bt=null,Cl=0,(ne&6)!==0)throw Error(d(331));var l=ne;for(ne|=4,z=e.current;z!==null;){var o=z,i=o.child;if((z.flags&16)!==0){var s=o.deletions;if(s!==null){for(var a=0;aSe()-gi?an(e,0):vi|=n),Ze(e,t)}function _u(e,t){t===0&&((e.mode&1)===0?t=1:(t=Or,Or<<=1,(Or&130023424)===0&&(Or=4194304)));var n=Qe();e=Ct(e,t),e!==null&&(Yn(e,t,n),Ze(e,n))}function Td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),_u(e,n)}function Rd(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(d(314))}r!==null&&r.delete(t),_u(e,n)}var Eu;Eu=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||be.current)Xe=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Xe=!1,yd(e,t,n);Xe=(e.flags&131072)!==0}else Xe=!1,fe&&(t.flags&1048576)!==0&&ra(t,rl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;yl(e,t),e=t.pendingProps;var l=Cn(t,$e.current);Rn(t,n),l=Yo(null,t,r,e,l,n);var o=Xo();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ye(r)?(o=!0,el(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Vo(t),l.updater=vl,t.stateNode=l,l._reactInternals=t,ti(t,r,e,n),t=oi(null,t,r,!0,o,n)):(t.tag=0,fe&&o&&Ro(t),Be(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(yl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Id(r),e=ft(r,e),l){case 0:t=li(null,t,r,e,n);break e;case 1:t=Ga(null,t,r,e,n);break e;case 11:t=Qa(null,t,r,e,n);break e;case 14:t=Ka(null,t,r,ft(r.type,e),n);break e}throw Error(d(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),li(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),Ga(e,t,r,l,n);case 3:e:{if(Za(t),e===null)throw Error(d(387));r=t.pendingProps,o=t.memoizedState,l=o.element,fa(e,t),ul(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=In(Error(d(423)),t),t=Ja(e,t,r,n,l);break e}else if(r!==l){l=In(Error(d(424)),t),t=Ja(e,t,r,n,l);break e}else for(tt=Dt(t.stateNode.containerInfo.firstChild),et=t,fe=!0,dt=null,n=ca(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zn(),r===l){t=jt(e,t,n);break e}Be(e,t,r,n)}t=t.child}return t;case 5:return ma(t),e===null&&Mo(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,Co(r,l)?i=null:o!==null&&Co(r,o)&&(t.flags|=32),Xa(e,t),Be(e,t,i,n),t.child;case 6:return e===null&&Mo(t),null;case 13:return qa(e,t,n);case 4:return Ho(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Pn(t,null,r,n):Be(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),Qa(e,t,r,l,n);case 7:return Be(e,t,t.pendingProps,n),t.child;case 8:return Be(e,t,t.pendingProps.children,n),t.child;case 12:return Be(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,ae(il,r._currentValue),r._currentValue=i,o!==null)if(ct(o.value,i)){if(o.children===l.children&&!be.current){t=jt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var s=o.dependencies;if(s!==null){i=o.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(o.tag===1){a=Nt(-1,n&-n),a.tag=2;var h=o.updateQueue;if(h!==null){h=h.shared;var w=h.pending;w===null?a.next=a:(a.next=w.next,w.next=a),h.pending=a}}o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Ao(o.return,n,t),s.lanes|=n;break}a=a.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(d(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Ao(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}Be(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Rn(t,n),l=ot(l),r=r(l),t.flags|=1,Be(e,t,r,n),t.child;case 14:return r=t.type,l=ft(r,t.pendingProps),l=ft(r.type,l),Ka(e,t,r,l,n);case 15:return ba(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),yl(e,t),t.tag=1,Ye(r)?(e=!0,el(t)):e=!1,Rn(t,n),Ua(t,r,l),ti(t,r,l,n),oi(null,t,r,!0,e,n);case 19:return tu(e,t,n);case 22:return Ya(e,t,n)}throw Error(d(156,t.tag))};function Cu(e,t){return ls(e,t)}function Ld(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function at(e,t,n,r){return new Ld(e,t,n,r)}function Ci(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Id(e){if(typeof e=="function")return Ci(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Le)return 11;if(e===Ue)return 14}return 2}function bt(e,t){var n=e.alternate;return n===null?(n=at(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Pl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")Ci(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Re:return cn(n.children,l,o,t);case he:i=8,l|=8;break;case Ne:return e=at(12,n,t,l|2),e.elementType=Ne,e.lanes=o,e;case me:return e=at(13,n,t,l),e.elementType=me,e.lanes=o,e;case ye:return e=at(19,n,t,l),e.elementType=ye,e.lanes=o,e;case W:return Tl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ue:i=10;break e;case Ke:i=9;break e;case Le:i=11;break e;case Ue:i=14;break e;case ze:i=16,r=null;break e}throw Error(d(130,e==null?e:typeof e,""))}return t=at(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function cn(e,t,n,r){return e=at(7,e,r,t),e.lanes=n,e}function Tl(e,t,n,r){return e=at(22,e,r,t),e.elementType=W,e.lanes=n,e.stateNode={isHidden:!1},e}function Ni(e,t,n){return e=at(6,e,null,t),e.lanes=n,e}function ji(e,t,n){return t=at(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Md(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ql(0),this.expirationTimes=ql(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ql(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function zi(e,t,n,r,l,o,i,s,a){return e=new Md(e,t,n,s,a),t===1?(t=1,o===!0&&(t|=8)):t=0,o=at(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vo(o),e}function Od(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(S)}catch(j){console.error(j)}}return S(),Mi.exports=Yd(),Mi.exports}var Au;function Gd(){if(Au)return Fl;Au=1;var S=Xd();return Fl.createRoot=S.createRoot,Fl.hydrateRoot=S.hydrateRoot,Fl}var Zd=Gd();/** +`+o.stack}return{value:e,source:t,stack:l,digest:null}}function li(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function oi(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var vd=typeof WeakMap=="function"?WeakMap:Map;function Hs(e,t,n){n=jt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){_l||(_l=!0,ki=r),oi(e,t)},n}function Vs(e,t,n){n=jt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){oi(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){oi(e,t),typeof r!="function"&&(Wt===null?Wt=new Set([this]):Wt.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function Ws(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new vd;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Rd.bind(null,e,t,n),t.then(e,e))}function Bs(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Qs(e,t,n,r,l){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=jt(-1,1),t.tag=2,Ht(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var yd=pe.ReactCurrentOwner,Xe=!1;function We(e,t,n,r){t.child=e===null?fs(t,null,n,r):Pn(t,e.child,n,r)}function Ks(e,t,n,r,l){n=n.render;var o=t.ref;return Rn(t,l),r=Go(e,t,n,r,o,l),n=Zo(),e!==null&&!Xe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,zt(e,t,l)):(fe&&n&&Io(t),t.flags|=1,We(e,t,r,l),t.child)}function Ys(e,t,n,r,l){if(e===null){var o=n.type;return typeof o=="function"&&!ji(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,Xs(e,t,o,r,l)):(e=Pl(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,(e.lanes&l)===0){var i=o.memoizedProps;if(n=n.compare,n=n!==null?n:or,n(i,r)&&e.ref===t.ref)return zt(e,t,l)}return t.flags|=1,e=Yt(o,r),e.ref=t.ref,e.return=t,t.child=e}function Xs(e,t,n,r,l){if(e!==null){var o=e.memoizedProps;if(or(o,r)&&e.ref===t.ref)if(Xe=!1,t.pendingProps=r=o,(e.lanes&l)!==0)(e.flags&131072)!==0&&(Xe=!0);else return t.lanes=e.lanes,zt(e,t,l)}return ii(e,t,n,r,l)}function Gs(e,t,n){var r=t.pendingProps,l=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},se(On,nt),nt|=n;else{if((n&1073741824)===0)return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,se(On,nt),nt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,se(On,nt),nt|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,se(On,nt),nt|=r;return We(e,t,l,n),t.child}function Zs(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ii(e,t,n,r,l){var o=Ye(n)?en:Ae.current;return o=Cn(t,o),Rn(t,l),n=Go(e,t,n,r,o,l),r=Zo(),e!==null&&!Xe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,zt(e,t,l)):(fe&&r&&Io(t),t.flags|=1,We(e,t,n,l),t.child)}function Js(e,t,n,r,l){if(Ye(n)){var o=!0;el(t)}else o=!1;if(Rn(t,l),t.stateNode===null)yl(e,t),As(t,n,r),ri(t,n,r,l),r=!0;else if(e===null){var i=t.stateNode,a=t.memoizedProps;i.props=a;var s=i.context,h=n.contextType;typeof h=="object"&&h!==null?h=ot(h):(h=Ye(n)?en:Ae.current,h=Cn(t,h));var k=n.getDerivedStateFromProps,S=typeof k=="function"||typeof i.getSnapshotBeforeUpdate=="function";S||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==r||s!==h)&&$s(t,i,r,h),$t=!1;var w=t.memoizedState;i.state=w,ul(t,r,i,l),s=t.memoizedState,a!==r||w!==s||Ke.current||$t?(typeof k=="function"&&(ni(t,n,k,r),s=t.memoizedState),(a=$t||Us(t,n,a,r,w,s,h))?(S||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=h,r=a):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,hs(e,t),a=t.memoizedProps,h=t.type===t.elementType?a:ft(t.type,a),i.props=h,S=t.pendingProps,w=i.context,s=n.contextType,typeof s=="object"&&s!==null?s=ot(s):(s=Ye(n)?en:Ae.current,s=Cn(t,s));var N=n.getDerivedStateFromProps;(k=typeof N=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(a!==S||w!==s)&&$s(t,i,r,s),$t=!1,w=t.memoizedState,i.state=w,ul(t,r,i,l);var z=t.memoizedState;a!==S||w!==z||Ke.current||$t?(typeof N=="function"&&(ni(t,n,N,r),z=t.memoizedState),(h=$t||Us(t,n,h,r,w,z,s)||!1)?(k||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,z,s),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,z,s)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&w===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&w===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=z),i.props=r,i.state=z,i.context=s,r=h):(typeof i.componentDidUpdate!="function"||a===e.memoizedProps&&w===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&w===e.memoizedState||(t.flags|=1024),r=!1)}return ai(e,t,n,r,o,l)}function ai(e,t,n,r,l,o){Zs(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return l&&rs(t,n,!1),zt(e,t,o);r=t.stateNode,yd.current=t;var a=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Pn(t,e.child,null,o),t.child=Pn(t,null,a,o)):We(e,t,a,o),t.memoizedState=r.state,l&&rs(t,n,!0),t.child}function qs(e){var t=e.stateNode;t.pendingContext?ts(e,t.pendingContext,t.pendingContext!==t.context):t.context&&ts(e,t.context,!1),Wo(e,t.containerInfo)}function eu(e,t,n,r,l){return zn(),Fo(l),t.flags|=256,We(e,t,n,r),t.child}var si={dehydrated:null,treeContext:null,retryLane:0};function ui(e){return{baseLanes:e,cachePool:null,transitions:null}}function tu(e,t,n){var r=t.pendingProps,l=ve.current,o=!1,i=(t.flags&128)!==0,a;if((a=i)||(a=e!==null&&e.memoizedState===null?!1:(l&2)!==0),a?(o=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),se(ve,l&1),e===null)return Do(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,o?(r=t.mode,o=t.child,i={mode:"hidden",children:i},(r&1)===0&&o!==null?(o.childLanes=0,o.pendingProps=i):o=Tl(i,r,0,null),e=dn(e,r,n,null),o.return=t,e.return=t,o.sibling=e,t.child=o,t.child.memoizedState=ui(n),t.memoizedState=si,e):ci(t,i));if(l=e.memoizedState,l!==null&&(a=l.dehydrated,a!==null))return wd(e,t,i,r,a,l,n);if(o){o=r.fallback,i=t.mode,l=e.child,a=l.sibling;var s={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=Yt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),a!==null?o=Yt(a,o):(o=dn(o,i,n,null),o.flags|=2),o.return=t,r.return=t,r.sibling=o,t.child=r,r=o,o=t.child,i=e.child.memoizedState,i=i===null?ui(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},o.memoizedState=i,o.childLanes=e.childLanes&~n,t.memoizedState=si,r}return o=e.child,e=o.sibling,r=Yt(o,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ci(e,t){return t=Tl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function vl(e,t,n,r){return r!==null&&Fo(r),Pn(t,e.child,null,n),e=ci(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wd(e,t,n,r,l,o,i){if(n)return t.flags&256?(t.flags&=-257,r=li(Error(d(422))),vl(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(o=r.fallback,l=t.mode,r=Tl({mode:"visible",children:r.children},l,0,null),o=dn(o,l,i,null),o.flags|=2,r.return=t,o.return=t,r.sibling=o,t.child=r,(t.mode&1)!==0&&Pn(t,e.child,null,i),t.child.memoizedState=ui(i),t.memoizedState=si,o);if((t.mode&1)===0)return vl(e,t,i,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var a=r.dgst;return r=a,o=Error(d(419)),r=li(o,r,void 0),vl(e,t,i,r)}if(a=(i&e.childLanes)!==0,Xe||a){if(r=Oe,r!==null){switch(i&-i){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=(l&(r.suspendedLanes|i))!==0?0:l,l!==0&&l!==o.retryLane&&(o.retryLane=l,Nt(e,l),mt(r,e,l,-1))}return Ni(),r=li(Error(d(421))),vl(e,t,i,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Ld.bind(null,e),l._reactRetry=t,null):(e=o.treeContext,tt=Ft(l.nextSibling),et=t,fe=!0,dt=null,e!==null&&(rt[lt++]=Et,rt[lt++]=Ct,rt[lt++]=tn,Et=e.id,Ct=e.overflow,tn=t),t=ci(t,r.children),t.flags|=4096,t)}function nu(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),$o(e.return,t,n)}function di(e,t,n,r,l){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=l)}function ru(e,t,n){var r=t.pendingProps,l=r.revealOrder,o=r.tail;if(We(e,t,r.children,n),r=ve.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&nu(e,n,t);else if(e.tag===19)nu(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(se(ve,r),(t.mode&1)===0)t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&cl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),di(t,!1,l,n,o);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&cl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}di(t,!0,n,null,o);break;case"together":di(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function yl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function zt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),an|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(d(153));if(t.child!==null){for(e=t.child,n=Yt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Yt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function kd(e,t,n){switch(t.tag){case 3:qs(t),zn();break;case 5:vs(t);break;case 1:Ye(t.type)&&el(t);break;case 4:Wo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;se(il,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(se(ve,ve.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?tu(e,t,n):(se(ve,ve.current&1),e=zt(e,t,n),e!==null?e.sibling:null);se(ve,ve.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return ru(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),se(ve,ve.current),r)break;return null;case 22:case 23:return t.lanes=0,Gs(e,t,n)}return zt(e,t,n)}var lu,fi,ou,iu;lu=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},fi=function(){},ou=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,ln(wt.current);var o=null;switch(n){case"input":l=An(e,l),r=An(e,r),o=[];break;case"select":l=g({},l,{value:void 0}),r=g({},r,{value:void 0}),o=[];break;case"textarea":l=Vl(e,l),r=Vl(e,r),o=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Zr)}Bl(n,r);var i;n=null;for(h in l)if(!r.hasOwnProperty(h)&&l.hasOwnProperty(h)&&l[h]!=null)if(h==="style"){var a=l[h];for(i in a)a.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else h!=="dangerouslySetInnerHTML"&&h!=="children"&&h!=="suppressContentEditableWarning"&&h!=="suppressHydrationWarning"&&h!=="autoFocus"&&(T.hasOwnProperty(h)?o||(o=[]):(o=o||[]).push(h,null));for(h in r){var s=r[h];if(a=l?.[h],r.hasOwnProperty(h)&&s!==a&&(s!=null||a!=null))if(h==="style")if(a){for(i in a)!a.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in s)s.hasOwnProperty(i)&&a[i]!==s[i]&&(n||(n={}),n[i]=s[i])}else n||(o||(o=[]),o.push(h,n)),n=s;else h==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,a=a?a.__html:void 0,s!=null&&a!==s&&(o=o||[]).push(h,s)):h==="children"?typeof s!="string"&&typeof s!="number"||(o=o||[]).push(h,""+s):h!=="suppressContentEditableWarning"&&h!=="suppressHydrationWarning"&&(T.hasOwnProperty(h)?(s!=null&&h==="onScroll"&&ce("scroll",e),o||a===s||(o=[])):(o=o||[]).push(h,s))}n&&(o=o||[]).push("style",n);var h=o;(t.updateQueue=h)&&(t.flags|=4)}},iu=function(e,t,n,r){n!==r&&(t.flags|=4)};function kr(e,t){if(!fe)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function He(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function xd(e,t,n){var r=t.pendingProps;switch(Mo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return He(t),null;case 1:return Ye(t.type)&&qr(),He(t),null;case 3:return r=t.stateNode,Ln(),de(Ke),de(Ae),Ko(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(ll(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,dt!==null&&(_i(dt),dt=null))),fi(e,t),He(t),null;case 5:Bo(t);var l=ln(mr.current);if(n=t.type,e!==null&&t.stateNode!=null)ou(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(d(166));return He(t),null}if(e=ln(wt.current),ll(t)){r=t.stateNode,n=t.type;var o=t.memoizedProps;switch(r[yt]=t,r[cr]=o,e=(t.mode&1)!==0,n){case"dialog":ce("cancel",r),ce("close",r);break;case"iframe":case"object":case"embed":ce("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[yt]=t,e[cr]=r,lu(e,t,!1,!1),t.stateNode=e;e:{switch(i=Ql(n,r),n){case"dialog":ce("cancel",e),ce("close",e),l=r;break;case"iframe":case"object":case"embed":ce("load",e),l=r;break;case"video":case"audio":for(l=0;lDn&&(t.flags|=128,r=!0,kr(o,!1),t.lanes=4194304)}else{if(!r)if(e=cl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),kr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!i.alternate&&!fe)return He(t),null}else 2*_e()-o.renderingStartTime>Dn&&n!==1073741824&&(t.flags|=128,r=!0,kr(o,!1),t.lanes=4194304);o.isBackwards?(i.sibling=t.child,t.child=i):(n=o.last,n!==null?n.sibling=i:t.child=i,o.last=i)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=_e(),t.sibling=null,n=ve.current,se(ve,r?n&1|2:n&1),t):(He(t),null);case 22:case 23:return Ci(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(nt&1073741824)!==0&&(He(t),t.subtreeFlags&6&&(t.flags|=8192)):He(t),null;case 24:return null;case 25:return null}throw Error(d(156,t.tag))}function Sd(e,t){switch(Mo(t),t.tag){case 1:return Ye(t.type)&&qr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ln(),de(Ke),de(Ae),Ko(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Bo(t),null;case 13:if(de(ve),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(d(340));zn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return de(ve),null;case 4:return Ln(),null;case 10:return Ao(t.type._context),null;case 22:case 23:return Ci(),null;case 24:return null;default:return null}}var wl=!1,Ve=!1,_d=typeof WeakSet=="function"?WeakSet:Set,j=null;function Mn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ke(e,t,r)}else n.current=null}function pi(e,t,n){try{n()}catch(r){ke(e,t,r)}}var au=!1;function Ed(e,t){if(Co=Ur,e=Ua(),vo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var i=0,a=-1,s=-1,h=0,k=0,S=e,w=null;t:for(;;){for(var N;S!==n||l!==0&&S.nodeType!==3||(a=i+l),S!==o||r!==0&&S.nodeType!==3||(s=i+r),S.nodeType===3&&(i+=S.nodeValue.length),(N=S.firstChild)!==null;)w=S,S=N;for(;;){if(S===e)break t;if(w===n&&++h===l&&(a=i),w===o&&++k===r&&(s=i),(N=S.nextSibling)!==null)break;S=w,w=S.parentNode}S=N}n=a===-1||s===-1?null:{start:a,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(No={focusedElem:e,selectionRange:n},Ur=!1,j=t;j!==null;)if(t=j,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,j=e;else for(;j!==null;){t=j;try{var z=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(z!==null){var P=z.memoizedProps,Ee=z.memoizedState,f=t.stateNode,c=f.getSnapshotBeforeUpdate(t.elementType===t.type?P:ft(t.type,P),Ee);f.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(d(163))}}catch(_){ke(t,t.return,_)}if(e=t.sibling,e!==null){e.return=t.return,j=e;break}j=t.return}return z=au,au=!1,z}function xr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&pi(t,n,o)}l=l.next}while(l!==r)}}function kl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function hi(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function su(e){var t=e.alternate;t!==null&&(e.alternate=null,su(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[yt],delete t[cr],delete t[To],delete t[id],delete t[ad])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function uu(e){return e.tag===5||e.tag===3||e.tag===4}function cu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||uu(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function mi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zr));else if(r!==4&&(e=e.child,e!==null))for(mi(e,t,n),e=e.sibling;e!==null;)mi(e,t,n),e=e.sibling}function gi(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(gi(e,t,n),e=e.sibling;e!==null;)gi(e,t,n),e=e.sibling}var Fe=null,pt=!1;function Vt(e,t,n){for(n=n.child;n!==null;)du(e,t,n),n=n.sibling}function du(e,t,n){if(vt&&typeof vt.onCommitFiberUnmount=="function")try{vt.onCommitFiberUnmount(Ir,n)}catch{}switch(n.tag){case 5:Ve||Mn(n,t);case 6:var r=Fe,l=pt;Fe=null,Vt(e,t,n),Fe=r,pt=l,Fe!==null&&(pt?(e=Fe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Fe.removeChild(n.stateNode));break;case 18:Fe!==null&&(pt?(e=Fe,n=n.stateNode,e.nodeType===8?Po(e.parentNode,n):e.nodeType===1&&Po(e,n),qn(e)):Po(Fe,n.stateNode));break;case 4:r=Fe,l=pt,Fe=n.stateNode.containerInfo,pt=!0,Vt(e,t,n),Fe=r,pt=l;break;case 0:case 11:case 14:case 15:if(!Ve&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,i=o.destroy;o=o.tag,i!==void 0&&((o&2)!==0||(o&4)!==0)&&pi(n,t,i),l=l.next}while(l!==r)}Vt(e,t,n);break;case 1:if(!Ve&&(Mn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){ke(n,t,a)}Vt(e,t,n);break;case 21:Vt(e,t,n);break;case 22:n.mode&1?(Ve=(r=Ve)||n.memoizedState!==null,Vt(e,t,n),Ve=r):Vt(e,t,n);break;default:Vt(e,t,n)}}function fu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new _d),t.forEach(function(r){var l=Id.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function ht(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~o}if(r=l,r=_e()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Nd(r/1960))-r,10e?16:e,Bt===null)var r=!1;else{if(e=Bt,Bt=null,Cl=0,(te&6)!==0)throw Error(d(331));var l=te;for(te|=4,j=e.current;j!==null;){var o=j,i=o.child;if((j.flags&16)!==0){var a=o.deletions;if(a!==null){for(var s=0;s_e()-wi?un(e,0):yi|=n),Ze(e,t)}function Cu(e,t){t===0&&((e.mode&1)===0?t=1:(t=Or,Or<<=1,(Or&130023424)===0&&(Or=4194304)));var n=Be();e=Nt(e,t),e!==null&&(Yn(e,t,n),Ze(e,n))}function Ld(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Cu(e,n)}function Id(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(d(314))}r!==null&&r.delete(t),Cu(e,n)}var Nu;Nu=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ke.current)Xe=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Xe=!1,kd(e,t,n);Xe=(e.flags&131072)!==0}else Xe=!1,fe&&(t.flags&1048576)!==0&&os(t,rl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;yl(e,t),e=t.pendingProps;var l=Cn(t,Ae.current);Rn(t,n),l=Go(null,t,r,e,l,n);var o=Zo();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ye(r)?(o=!0,el(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Vo(t),l.updater=gl,t.stateNode=l,l._reactInternals=t,ri(t,r,e,n),t=ai(null,t,r,!0,o,n)):(t.tag=0,fe&&o&&Io(t),We(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(yl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Od(r),e=ft(r,e),l){case 0:t=ii(null,t,r,e,n);break e;case 1:t=Js(null,t,r,e,n);break e;case 11:t=Ks(null,t,r,e,n);break e;case 14:t=Ys(null,t,r,ft(r.type,e),n);break e}throw Error(d(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),ii(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),Js(e,t,r,l,n);case 3:e:{if(qs(t),e===null)throw Error(d(387));r=t.pendingProps,o=t.memoizedState,l=o.element,hs(e,t),ul(t,r,null,n);var i=t.memoizedState;if(r=i.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=In(Error(d(423)),t),t=eu(e,t,r,n,l);break e}else if(r!==l){l=In(Error(d(424)),t),t=eu(e,t,r,n,l);break e}else for(tt=Ft(t.stateNode.containerInfo.firstChild),et=t,fe=!0,dt=null,n=fs(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(zn(),r===l){t=zt(e,t,n);break e}We(e,t,r,n)}t=t.child}return t;case 5:return vs(t),e===null&&Do(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,i=l.children,jo(r,l)?i=null:o!==null&&jo(r,o)&&(t.flags|=32),Zs(e,t),We(e,t,i,n),t.child;case 6:return e===null&&Do(t),null;case 13:return tu(e,t,n);case 4:return Wo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Pn(t,null,r,n):We(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),Ks(e,t,r,l,n);case 7:return We(e,t,t.pendingProps,n),t.child;case 8:return We(e,t,t.pendingProps.children,n),t.child;case 12:return We(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,i=l.value,se(il,r._currentValue),r._currentValue=i,o!==null)if(ct(o.value,i)){if(o.children===l.children&&!Ke.current){t=zt(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var a=o.dependencies;if(a!==null){i=o.child;for(var s=a.firstContext;s!==null;){if(s.context===r){if(o.tag===1){s=jt(-1,n&-n),s.tag=2;var h=o.updateQueue;if(h!==null){h=h.shared;var k=h.pending;k===null?s.next=s:(s.next=k.next,k.next=s),h.pending=s}}o.lanes|=n,s=o.alternate,s!==null&&(s.lanes|=n),$o(o.return,n,t),a.lanes|=n;break}s=s.next}}else if(o.tag===10)i=o.type===t.type?null:o.child;else if(o.tag===18){if(i=o.return,i===null)throw Error(d(341));i.lanes|=n,a=i.alternate,a!==null&&(a.lanes|=n),$o(i,n,t),i=o.sibling}else i=o.child;if(i!==null)i.return=o;else for(i=o;i!==null;){if(i===t){i=null;break}if(o=i.sibling,o!==null){o.return=i.return,i=o;break}i=i.return}o=i}We(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,Rn(t,n),l=ot(l),r=r(l),t.flags|=1,We(e,t,r,n),t.child;case 14:return r=t.type,l=ft(r,t.pendingProps),l=ft(r.type,l),Ys(e,t,r,l,n);case 15:return Xs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:ft(r,l),yl(e,t),t.tag=1,Ye(r)?(e=!0,el(t)):e=!1,Rn(t,n),As(t,r,l),ri(t,r,l,n),ai(null,t,r,!0,e,n);case 19:return ru(e,t,n);case 22:return Gs(e,t,n)}throw Error(d(156,t.tag))};function ju(e,t){return ia(e,t)}function Md(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function st(e,t,n,r){return new Md(e,t,n,r)}function ji(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Od(e){if(typeof e=="function")return ji(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Le)return 11;if(e===Ie)return 14}return 2}function Yt(e,t){var n=e.alternate;return n===null?(n=st(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Pl(e,t,n,r,l,o){var i=2;if(r=e,typeof e=="function")ji(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Re:return dn(n.children,l,o,t);case he:i=8,l|=8;break;case we:return e=st(12,n,t,l|2),e.elementType=we,e.lanes=o,e;case me:return e=st(13,n,t,l),e.elementType=me,e.lanes=o,e;case ge:return e=st(19,n,t,l),e.elementType=ge,e.lanes=o,e;case ae:return Tl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ue:i=10;break e;case Qe:i=9;break e;case Le:i=11;break e;case Ie:i=14;break e;case je:i=16,r=null;break e}throw Error(d(130,e==null?e:typeof e,""))}return t=st(i,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function dn(e,t,n,r){return e=st(7,e,r,t),e.lanes=n,e}function Tl(e,t,n,r){return e=st(22,e,r,t),e.elementType=ae,e.lanes=n,e.stateNode={isHidden:!1},e}function zi(e,t,n){return e=st(6,e,null,t),e.lanes=n,e}function Pi(e,t,n){return t=st(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Dd(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=to(0),this.expirationTimes=to(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=to(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ti(e,t,n,r,l,o,i,a,s){return e=new Dd(e,t,n,a,s),t===1?(t=1,o===!0&&(t|=8)):t=0,o=st(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Vo(o),e}function Fd(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(y)}catch(E){console.error(E)}}return y(),Di.exports=Gd(),Di.exports}var $u;function Jd(){if($u)return Fl;$u=1;var y=Zd();return Fl.createRoot=y.createRoot,Fl.hydrateRoot=y.hydrateRoot,Fl}var qd=Jd();/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Jd=S=>S.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),qd=S=>S.replace(/^([A-Z])|[\s-_]+(\w)/g,(j,d,$)=>$?$.toUpperCase():d.toLowerCase()),$u=S=>{const j=qd(S);return j.charAt(0).toUpperCase()+j.slice(1)},Hu=(...S)=>S.filter((j,d,$)=>!!j&&j.trim()!==""&&$.indexOf(j)===d).join(" ").trim();/** + */const ef=y=>y.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),tf=y=>y.replace(/^([A-Z])|[\s-_]+(\w)/g,(E,d,A)=>A?A.toUpperCase():d.toLowerCase()),Hu=y=>{const E=tf(y);return E.charAt(0).toUpperCase()+E.slice(1)},Wu=(...y)=>y.filter((E,d,A)=>!!E&&E.trim()!==""&&A.indexOf(E)===d).join(" ").trim();/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */var ef={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + */var nf={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const tf=C.forwardRef(({color:S="currentColor",size:j=24,strokeWidth:d=2,absoluteStrokeWidth:$,className:R="",children:I,iconNode:Q,...Z},U)=>C.createElement("svg",{ref:U,...ef,width:j,height:j,stroke:S,strokeWidth:$?Number(d)*24/Number(j):d,className:Hu("lucide",R),...Z},[...Q.map(([b,X])=>C.createElement(b,X)),...Array.isArray(I)?I:[I]]));/** + */const rf=C.forwardRef(({color:y="currentColor",size:E=24,strokeWidth:d=2,absoluteStrokeWidth:A,className:T="",children:L,iconNode:W,...G},b)=>C.createElement("svg",{ref:b,...nf,width:E,height:E,stroke:y,strokeWidth:A?Number(d)*24/Number(E):d,className:Wu("lucide",T),...G},[...W.map(([Q,Y])=>C.createElement(Q,Y)),...Array.isArray(L)?L:[L]]));/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Xt=(S,j)=>{const d=C.forwardRef(({className:$,...R},I)=>C.createElement(tf,{ref:I,iconNode:j,className:Hu(`lucide-${Jd($u(S))}`,`lucide-${S}`,$),...R}));return d.displayName=$u(S),d};/** + */const Gt=(y,E)=>{const d=C.forwardRef(({className:A,...T},L)=>C.createElement(rf,{ref:L,iconNode:E,className:Wu(`lucide-${ef(Hu(y))}`,`lucide-${y}`,A),...T}));return d.displayName=Hu(y),d};/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const nf=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],Wu=Xt("cloud",nf);/** + */const lf=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],Bu=Gt("cloud",lf);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const rf=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Ul=Xt("external-link",rf);/** + */const of=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Al=Gt("external-link",of);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const lf=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],of=Xt("eye-off",lf);/** + */const af=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],sf=Gt("eye-off",af);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const sf=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],af=Xt("eye",sf);/** + */const uf=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],cf=Gt("eye",uf);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const uf=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],cf=Xt("folder-open",uf);/** + */const df=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],ff=Gt("folder-open",df);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const df=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],ff=Xt("refresh-cw",df);/** + */const pf=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],hf=Gt("refresh-cw",pf);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const pf=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],hf=Xt("save",pf);/** + */const mf=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],gf=Gt("save",mf);/** * @license lucide-react v0.487.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const mf=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],Vu=Xt("smartphone",mf);function vf(){return m.jsx("div",{className:"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:m.jsx("div",{className:"flex items-start",children:m.jsxs("div",{className:"flex-1",children:[m.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[m.jsx("div",{className:"w-10 h-10 rounded-full bg-blue-50 flex items-center justify-center",children:m.jsx(Wu,{className:"w-6 h-6 text-blue-600"})}),m.jsx("h2",{className:"text-slate-800",children:"DDNSTO 远程访问"})]}),m.jsx("p",{className:"text-slate-600 text-sm mb-2",children:"DDNSTO 远程访问,不需要公网 IP、不需要开放端口。只需一个链接,即可从任何地方安全访问您的 NAS、路由器和桌面。"}),m.jsxs("a",{href:"https://www.ddnsto.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-sm text-blue-600 hover:underline",children:["了解更多",m.jsx(Ul,{className:"w-3 h-3"})]})]})})})}function gf({isRunning:S,isConfigured:j,hostname:d,address:$,deviceId:R,version:I,featEnabled:Q,tunnelOk:Z,onRefreshStatus:U}){const[b,X]=C.useState(!1),K={label:S?"运行中":"已停止",bgColor:S?"bg-green-100":"bg-slate-200",textColor:S?"text-green-700":"text-slate-600"},V=$&&$.trim().length>0?$:"未配置",ee=b,se=Z===!0,B=ee?"检查中...":Z===!0?"正常":Z===!1?"无法连接服务器":"未知",Y=Q==="1"||Q===!0?"已开启":"未开启",Ee=R||"-",xe=async()=>{if(U){X(!0);try{await U()}finally{X(!1)}}};return m.jsxs("div",{className:"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[m.jsx("h3",{className:"text-slate-800 mb-4",children:"运行状态"}),m.jsxs("div",{className:"flex items-center justify-between pb-6 border-b border-slate-100",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx("span",{className:`px-3 py-1 rounded-full text-sm ${K.bgColor} ${K.textColor}`,children:K.label}),j&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("span",{className:"text-sm text-slate-500",children:"远程访问域名:"}),$&&$.trim().length>0?m.jsxs("a",{href:V,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline flex items-center gap-1",children:[V,m.jsx(Ul,{className:"w-3 h-3"})]}):m.jsx("span",{className:"text-sm text-slate-500",children:V})]})]}),m.jsx("div",{className:"flex items-center gap-2",children:m.jsxs("button",{onClick:xe,className:"px-3 py-2 rounded-md text-blue-600 text-sm hover:bg-blue-50 transition-colors flex items-center gap-1",children:[m.jsx(ff,{className:"w-4 h-4"}),"刷新状态"]})})]}),m.jsx("div",{className:"mt-6",children:m.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-700",children:[m.jsx(Wu,{className:"w-4 h-4 text-slate-400"}),ee&&m.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-slate-300 border-t-blue-600 animate-spin"}),m.jsxs("h4",{className:"text-sm text-slate-700",children:["服务器连接:",se?m.jsx("span",{className:"text-green-600",children:B}):m.jsx("span",{children:B}),"| 设备 ID:",Ee," | 拓展功能:",Y,I?` | 版本:${I}`:""]})]})})]})}function Bu({checked:S,onChange:j,label:d,id:$,disabled:R,containerClassName:I,...Q}){return m.jsxs("div",{className:`ddnsto-toggle-container ${I||""}`,children:[d&&m.jsx("label",{htmlFor:$,className:"text-sm text-slate-700 mr-3 whitespace-nowrap",children:d}),m.jsxs("label",{className:"ddnsto-toggle-switch","aria-label":d||"toggle",children:[m.jsx("input",{id:$,type:"checkbox",checked:S,disabled:R,onChange:Z=>j(Z.target.checked),...Q}),m.jsx("span",{className:"ddnsto-toggle-slider","aria-hidden":!0})]})]})}function yf({onSave:S,isInTab:j,token:d,enabled:$,advancedConfig:R,onRegisterSave:I,onTokenChange:Q,onEnabledChange:Z}){const[U,b]=C.useState(d||""),[X,K]=C.useState($);C.useEffect(()=>{b(d||"")},[d]),C.useEffect(()=>{K($)},[R,$]);const V=()=>{U.trim()&&S(U,X?"1":"0",R)};return C.useEffect(()=>{I&&I(()=>V())},[I,U,X,R]),m.jsxs("div",{className:j?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!j&&m.jsxs(m.Fragment,{children:[m.jsx("h3",{className:"text-slate-800 mb-2",children:"手动配置"}),m.jsx("p",{className:"text-xs text-slate-400 mb-6",children:"如果您已经在 DDNSTO 控制台获取了令牌,可以直接在此填写并启动插件。"})]}),m.jsxs("div",{className:"space-y-5",children:[m.jsx("div",{className:"pb-4",children:m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("h4",{className:"text-sm text-slate-700",children:"启用 DDNSTO"}),m.jsx(Bu,{checked:X,onChange:ee=>{K(ee),Z?.(ee)},"aria-label":"启用 DDNSTO",containerClassName:"ml-6"})]})}),m.jsxs("div",{children:[m.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[m.jsxs("label",{className:"text-sm text-slate-700",children:["用户令牌(Token) ",m.jsx("span",{className:"text-red-500",children:"*"})]}),m.jsxs("a",{href:"https://www.ddnsto.com/docs/guide/token.html",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-1",children:["如何查看用户令牌",m.jsx(Ul,{className:"w-3 h-3"})]})]}),m.jsx("div",{className:"relative",children:m.jsx("input",{type:"text",value:U,onChange:ee=>{b(ee.target.value),Q?.(ee.target.value)},placeholder:"请输入您的 DDNSTO 令牌",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"令牌将保存在路由器本地,请勿泄露。"})]})]})]})}function wf({token:S,enabled:j,advancedConfig:d,onSave:$,isInTab:R,onRegisterSave:I}){const[Q,Z]=C.useState(d.feat_enabled==="1"),[U,b]=C.useState(d.feat_disk_path_selected||"/mnt/sda1"),[X,K]=C.useState(d.feat_port||"3033"),[V,ee]=C.useState(d.feat_username||"ddnsto"),[se,B]=C.useState(d.feat_password||""),[Y,Ee]=C.useState(!1),[xe,ke]=C.useState(d.index||"");C.useEffect(()=>{Z(d.feat_enabled==="1"),d.feat_disk_path_selected&&b(d.feat_disk_path_selected),d.feat_port&&K(d.feat_port),d.feat_username&&ee(d.feat_username),d.feat_password&&B(d.feat_password),d.index!==void 0&&ke(d.index)},[d]);const pe=()=>{$(S,j?"1":"0",{feat_enabled:Q?"1":"0",feat_port:X,feat_username:V,feat_password:se,feat_disk_path_selected:U,mounts:d.mounts,index:xe})};return C.useEffect(()=>{I&&I(()=>pe())},[I,S,j,Q,U,X,V,se,xe,d.mounts]),m.jsxs("div",{className:R?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!R&&m.jsx("h3",{className:"text-slate-800 mb-4",children:"高级功能"}),m.jsxs("div",{className:"space-y-5",children:[m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-700 mb-2",children:"设备编号(可选)"}),m.jsx("input",{type:"text",value:xe,onChange:te=>ke(te.target.value),placeholder:"",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"如有多台设备id重复,请修改此编号(0~100),正常情况不需要修改"})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("h4",{className:"text-sm text-slate-700",children:"启用拓展功能"}),m.jsx(Bu,{checked:Q,onChange:te=>Z(te),"aria-label":"启用拓展功能",containerClassName:"ml-6"})]}),m.jsxs("div",{className:"flex items-center gap-2 -mt-2",children:[m.jsx("p",{className:"text-xs text-slate-400",children:"启用后可支持控制台的「文件管理」及「远程开机」功能"}),m.jsxs("a",{href:"https://www.ddnsto.com/docs/guide/advanced.html",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-1 whitespace-nowrap",children:["查看教程",m.jsx(Ul,{className:"w-3 h-3"})]})]}),Q&&m.jsxs("div",{className:"space-y-4",children:[m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(cf,{className:"w-4 h-4 text-slate-600"}),m.jsx("h5",{className:"text-sm text-slate-700",children:"WebDAV 服务配置"})]}),m.jsxs("div",{className:"space-y-4 pl-6",children:[m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"可访问的文件目录"}),m.jsx("select",{value:U,onChange:te=>b(te.target.value),className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 bg-white",children:d.mounts&&d.mounts.length>0?d.mounts.map(te=>m.jsx("option",{value:te,children:te},te)):m.jsx("option",{value:"",disabled:!0,children:"未检测到挂载点"})}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"控制台上的文件管理将只能看到此目录及其子目录。"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"服务端口"}),m.jsx("input",{type:"text",value:X,onChange:te=>K(te.target.value),placeholder:"3033",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"授权用户名"}),m.jsx("input",{type:"text",value:V,onChange:te=>ee(te.target.value),placeholder:"ddnsto",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"授权用户密码"}),m.jsxs("div",{className:"relative",children:[m.jsx("input",{type:Y?"text":"password",value:se,onChange:te=>B(te.target.value),placeholder:"设置访问密码",className:"w-full px-3 py-2 pr-10 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}),m.jsx("button",{type:"button",onClick:()=>Ee(!Y),className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600",children:Y?m.jsx(of,{className:"w-4 h-4"}):m.jsx(af,{className:"w-4 h-4"})})]})]})]})]})]})]})}function xf({ddnstoToken:S,ddnstoEnabled:j,advancedConfig:d,onSave:$,saveBanner:R}){const[I,Q]=C.useState("basic"),Z=C.useRef(null),U=C.useRef(),b=C.useRef(),[X,K]=C.useState(S||""),[V,ee]=C.useState(j==="1");C.useEffect(()=>{K(S||"")},[S]),C.useEffect(()=>{ee(j==="1")},[j]);const se=()=>{I==="basic"?U.current?.():b.current?.()};return m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"bg-white rounded-lg border border-slate-200 mb-4",children:[m.jsx("div",{className:"border-b border-slate-200 px-6",children:m.jsx("div",{className:"flex items-center justify-between",children:m.jsxs("div",{className:"flex items-center -mb-px",children:[m.jsx("button",{onClick:()=>Q("basic"),className:`px-4 py-4 text-sm border-b-2 transition-colors ${I==="basic"?"border-blue-600 text-blue-600":"border-transparent text-slate-600 hover:text-slate-800"}`,children:"基础配置"}),m.jsx("button",{onClick:()=>Q("advanced"),className:`px-4 py-4 text-sm border-b-2 transition-colors ${I==="advanced"?"border-blue-600 text-blue-600":"border-transparent text-slate-600 hover:text-slate-800"}`,children:"高级功能"})]})})}),m.jsxs("div",{ref:Z,className:"p-6",children:[I==="basic"&&m.jsx(yf,{token:X,enabled:V,advancedConfig:d,onSave:$,isInTab:!0,onRegisterSave:B=>{U.current=B},onTokenChange:K,onEnabledChange:ee}),I==="advanced"&&m.jsx(wf,{token:X,enabled:V,advancedConfig:d,onSave:$,isInTab:!0,onRegisterSave:B=>{b.current=B}})]})]}),m.jsx("div",{className:"flex justify-end gap-3 mt-4",children:m.jsxs("button",{onClick:se,disabled:!X.trim(),className:"px-4 py-2 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 transition-colors disabled:bg-slate-300 disabled:cursor-not-allowed flex items-center gap-2",children:[m.jsx(hf,{className:"w-4 h-4"}),"保存配置并应用"]})}),R.state!=="idle"&&m.jsxs("div",{className:["mt-2 rounded-md border px-3 py-2 text-sm",R.state==="loading"?"bg-blue-50 border-blue-200 text-blue-800":"",R.state==="success"?"bg-emerald-50 border-emerald-200 text-emerald-800":"",R.state==="error"?"bg-red-50 border-red-200 text-red-800":""].join(" "),children:[m.jsx("div",{className:"font-medium",children:R.message}),R.description&&m.jsx("div",{className:"text-xs mt-1 opacity-80 break-words",children:R.description})]})]})}const Un={auth:0,starting:1,binding:2,domain:3,checking:4};function kf({apiBase:S,csrfToken:j,deviceId:d,onboardingBase:$,onComplete:R,onRefreshStatus:I,isInTab:Q}){const[Z,U]=C.useState(!1),[b,X]=C.useState($||"https://www.kooldns.cn/bind"),[K,V]=C.useState(`${$||"https://www.kooldns.cn/bind"}/#/auth?send=1&source=openwrt&callback=*`),[ee,se]=C.useState("auth"),[B,Y]=C.useState(d||""),[Ee,xe]=C.useState(""),[ke,pe]=C.useState(""),[te,Ce]=C.useState(!1),[Re,he]=C.useState(null),Ne=C.useRef("auth"),ue=j||(typeof window<"u"?window.ddnstoCsrfToken:""),Ke=C.useCallback(g=>{se(u=>Un[g]>Un[u]?g:u)},[]);C.useEffect(()=>{Ne.current=ee},[ee]),C.useEffect(()=>{console.log("Onboarding iframe url:",K)},[K]);const Le=C.useCallback(()=>{se("auth"),xe(""),pe(""),he(null),Y(d||""),V(`${b}/#/auth?send=1&source=openwrt&callback=*`)},[Ke,d,b]);C.useEffect(()=>{const g="/#/auth?send=1&source=openwrt&callback=*",u=$||"https://www.kooldns.cn/bind";X(u),V(`${u}${g}`)},[$]),C.useEffect(()=>{Y(d||"")},[d]);const me=C.useCallback(async()=>{for(let v=0;v<20;v+=1){const M=await fetch(`${S}/admin/services/ddnsto/api/status`,{credentials:"same-origin"});if(M.ok){const G=(await M.json())?.data||{},O=G.deviceId||G.device_id||"";if(O&&Y(O),G.running)return{running:!0,deviceId:O}}await new Promise(A=>setTimeout(A,2e3))}throw new Error("ddnsto not running")},[S]),ye=C.useCallback(async g=>{const u={url:g};ue&&(u.token=ue);const v=await fetch(`${S}/admin/services/ddnsto/api/onboarding/address`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",...ue?{"X-LuCI-Token":ue}:{}},body:JSON.stringify(u)});if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json();if(!M?.ok)throw new Error(M?.error||"save address failed")},[S,ue]),Ue=C.useCallback(async(g,u)=>{Ce(!0),he(null);const v=B||d||"",M=`${b}/#/bind?status=starting&token=${encodeURIComponent(g)}&sign=${encodeURIComponent(u)}${v?`&routerId=${encodeURIComponent(v)}`:""}`;V(M),Ke("starting");try{const A=await fetch(`${S}/admin/services/ddnsto/api/onboarding/start`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",...ue?{"X-LuCI-Token":ue}:{}},body:JSON.stringify({token:g})});if(!A.ok)throw new Error(`HTTP ${A.status}`);const G=await A.json();if(!G?.ok)throw new Error(G?.error||"start failed");I&&await I();const le=(await me())?.deviceId||B||d||"";if(Un[Ne.current]>=Un.domain)return;const q=`${b}/#/bind?status=starting&routerId=${encodeURIComponent(le)}&token=${encodeURIComponent(g)}&sign=${encodeURIComponent(u)}`;V(q),Ke("binding"),Y(le)}catch{he("启动失败,请稍后重试")}finally{Ce(!1)}},[Ke,S,d,ue,b,I,me,Le,B]),ze=C.useCallback(g=>{const u=g||B;if(!Ee||!ke||!u)return;const v=`${b}/#/domain?sign=${encodeURIComponent(ke)}&token=${encodeURIComponent(Ee)}&routerId=${encodeURIComponent(u)}&netaddr=127.0.0.1&source=openwrt`;V(v),se("domain")},[ke,Ee,b,B]),W=C.useCallback(async g=>{V(`${b}/#/check?url=${encodeURIComponent(g)}`),se("checking"),R();try{await ye(g),I&&await I()}catch{he("保存域名失败,请重试")}},[b,R,I,ye]),E=C.useCallback(()=>{U(!0),Le()},[Le]);C.useEffect(()=>{const g=u=>{if(!Z)return;console.log("Onboarding message:",u.data);const v=u.data;let M=v;if(typeof v=="string")try{M=JSON.parse(v)}catch{return}if(!M||typeof M!="object")return;const A=M.data,O=A&&typeof A=="object"?A:M;if((typeof O.auth=="string"?O.auth:"")!=="ddnsto")return;const q=typeof O.sign=="string"?O.sign:"",ie=typeof O.token=="string"?O.token:"",Ae=typeof O.step=="string"?O.step:"",fn=typeof O.status=="string"?O.status:"",An=typeof O.url=="string"?O.url:"",Pt=O.success,$n=typeof Pt=="number"?Pt:Number(Pt);if(q&&ie&&ee==="auth"&&!te){xe(ie),pe(q),Ue(ie,q);return}if(Ae==="bind"&&fn==="success"){const Gt=typeof O.router_uid=="string"?O.router_uid:B;Gt&&Y(Gt),ze(Gt);return}Ae==="domain"&&An&&$n===0&&Un[Ne.current]window.removeEventListener("message",g)},[ze,W,te,Ue,Z,ee]);const x=()=>m.jsx("div",{className:"flex items-center justify-between mb-6",children:m.jsx("h3",{className:"text-slate-800",children:"快速向导"})});return Z?m.jsxs("div",{className:Q?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!Q&&x(),m.jsx("div",{className:"rounded-lg border border-slate-200 overflow-hidden",children:m.jsx("iframe",{src:K,title:"快速向导",className:"w-full",style:{width:"100%",height:"70vh",maxHeight:"400px",border:0},loading:"lazy"})})]}):m.jsxs("div",{className:Q?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!Q&&x(),m.jsxs("div",{className:"text-center py-8",children:[m.jsx("div",{className:"mb-4 flex justify-center",children:m.jsx("div",{className:"w-16 h-16 rounded-full bg-blue-50 flex items-center justify-center",children:m.jsx(Vu,{className:"w-8 h-8 text-blue-600"})})}),m.jsx("h4",{className:"text-slate-800 mb-2",children:"欢迎使用 DDNSTO!"}),m.jsx("p",{className:"text-sm text-slate-600 mb-6 max-w-md mx-auto",children:"通过微信扫码登录,我们将引导您完成插件配置"}),m.jsxs("button",{onClick:E,className:"px-6 py-2.5 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 transition-colors inline-flex items-center gap-2",children:[m.jsx(Vu,{className:"w-4 h-4"}),"开始配置"]})]})]})}function Sf({config:S}){const[j,d]=C.useState(!1),[$,R]=C.useState(!1),[I,Q]=C.useState("OpenWrt"),[Z,U]=C.useState(""),[b,X]=C.useState(""),[K,V]=C.useState(""),[ee,se]=C.useState(""),[B,Y]=C.useState("1"),[Ee,xe]=C.useState({feat_enabled:"0",feat_port:"",feat_username:"",feat_password:"",feat_disk_path_selected:"",mounts:[],index:""}),[,ke]=C.useState(null),[pe,te]=C.useState(null),[Ce,Re]=C.useState({state:"idle",message:""}),he=C.useRef(),Ne=(S?.api_base||"/cgi-bin/luci").replace(/\/$/,""),ue=S?.token||"",Ke=(S?.onboarding_base||"https://www.kooldns.cn/bind").replace(/\/$/,""),Le=C.useCallback((W,E,x,g)=>{he.current&&window.clearTimeout(he.current),Re({state:W,message:E,description:x}),g&&(he.current=window.setTimeout(()=>{Re({state:"idle",message:""})},g))},[]);C.useEffect(()=>()=>{he.current&&window.clearTimeout(he.current)},[]);const me=C.useCallback(async()=>{try{const W=await fetch(`${Ne}/admin/services/ddnsto/api/config`,{credentials:"same-origin"});if(!W.ok)throw new Error(`HTTP ${W.status}`);const x=(await W.json())?.data||{};x.address&&U(x.address),x.device_id!==void 0?X(x.device_id):x.deviceId!==void 0&&X(x.deviceId),x.version!==void 0&&V(x.version),x.token&&se(x.token),x.enabled!==void 0&&Y(x.enabled),xe({feat_enabled:x.feat_enabled||"0",feat_port:x.feat_port||"",feat_username:x.feat_username||"",feat_password:x.feat_password||"",feat_disk_path_selected:x.feat_disk_path_selected||"",mounts:x.mounts||[],index:x.index||""})}catch(W){console.error("Failed to fetch ddnsto config",W)}},[Ne]),ye=C.useCallback(async()=>{try{const W=await fetch(`${Ne}/admin/services/ddnsto/api/status`,{credentials:"same-origin"});if(!W.ok)throw new Error(`HTTP ${W.status}`);const x=(await W.json())?.data||{};d(!!x.running),x.token_set&&R(!0),x.hostname&&Q(x.hostname),x.device_id!==void 0?X(x.device_id):x.deviceId!==void 0&&X(x.deviceId),x.address&&U(x.address),x.version!==void 0&&V(x.version),x.tunnel_ok!==void 0&&x.tunnel_ok!==null?te(x.tunnel_ok===!0):te(null),ke(null)}catch(W){console.error("Failed to fetch ddnsto status",W),ke("无法获取运行状态"),te(null)}},[Ne]),Ue=C.useCallback(async()=>{await me(),await ye()},[me,ye]),ze=C.useCallback(async(W,E,x)=>{Le("loading","正在保存配置...","正在将配置写入路由器,请稍候");try{const g=new URLSearchParams;ue&&g.append("token",ue),g.append("ddnsto_token",W),g.append("enabled",E),g.append("feat_enabled",x.feat_enabled),g.append("feat_port",x.feat_port),g.append("feat_username",x.feat_username),g.append("feat_password",x.feat_password),g.append("feat_disk_path_selected",x.feat_disk_path_selected),g.append("index",x.index||"");const u=await fetch(`${Ne}/admin/services/ddnsto/api/config`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded",...ue?{"X-LuCI-Token":ue}:{}},body:g});if(!u.ok)throw new Error(`HTTP ${u.status}`);const v=await u.json();if(!v?.ok)throw new Error(v?.error||"Save failed");Le("success","配置已保存并生效",void 0,3e3),R(!0),await me(),await ye()}catch(g){console.error("Failed to save config",g);const u=g instanceof Error?g.message:String(g);Le("error","保存失败,请重试",u,4e3)}},[Ne,ue,me,ye]);return C.useEffect(()=>{let W;return me(),ye(),W=window.setInterval(ye,1e3*10),()=>{W&&window.clearInterval(W)}},[me,ye]),m.jsx("div",{className:"min-h-screen bg-slate-50",children:m.jsx("main",{children:m.jsxs("div",{className:"max-w-5xl mx-auto px-6 py-8",children:[m.jsx(vf,{}),m.jsx(gf,{isRunning:j,isConfigured:$,hostname:I,address:Z,deviceId:b,version:K,featEnabled:Ee.feat_enabled,tunnelOk:pe,onRefreshStatus:Ue}),m.jsx(kf,{apiBase:Ne,csrfToken:ue,deviceId:b,onboardingBase:Ke,onRefreshStatus:Ue,onComplete:()=>R(!0)}),m.jsx(xf,{ddnstoToken:ee,ddnstoEnabled:B,advancedConfig:Ee,onSave:ze,saveBanner:Ce})]})})})}const _f='/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */*,:before,:after,::backdrop{--tw-border-style: solid}@layer properties{@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: rotateX(0);--tw-rotate-y: rotateY(0);--tw-rotate-z: rotateZ(0);--tw-skew-x: skewX(0);--tw-skew-y: skewY(0);--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500: oklch(.637 .237 25.331);--color-amber-50: oklch(.987 .022 95.277);--color-amber-200: oklch(.924 .12 95.746);--color-amber-600: oklch(.666 .179 58.318);--color-green-50: oklch(.982 .018 155.826);--color-green-100: oklch(.962 .044 156.743);--color-green-200: oklch(.925 .084 155.995);--color-green-600: oklch(.627 .194 149.214);--color-green-700: oklch(.527 .154 150.069);--color-green-800: oklch(.448 .119 151.328);--color-blue-50: oklch(.97 .014 254.604);--color-blue-200: oklch(.882 .059 254.128);--color-blue-500: oklch(.623 .214 259.815);--color-blue-600: oklch(.546 .245 262.881);--color-blue-700: oklch(.488 .243 264.376);--color-slate-50: oklch(.984 .003 247.858);--color-slate-100: oklch(.968 .007 247.896);--color-slate-200: oklch(.929 .013 255.508);--color-slate-300: oklch(.869 .022 252.894);--color-slate-400: oklch(.704 .04 256.788);--color-slate-500: oklch(.554 .046 257.417);--color-slate-600: oklch(.446 .043 257.281);--color-slate-700: oklch(.372 .044 257.287);--color-slate-800: oklch(.279 .041 260.031);--color-white: #fff;--spacing: .25rem;--container-md: 28rem;--container-5xl: 64rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-font-feature-settings: var(--font-sans--font-feature-settings);--default-font-variation-settings: var(--font-sans--font-variation-settings);--default-mono-font-family: var(--font-mono);--default-mono-font-feature-settings: var(--font-mono--font-feature-settings);--default-mono-font-variation-settings: var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:currentColor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background-color:var(--background);color:var(--foreground)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color: color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.z-10{z-index:10}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-40{height:calc(var(--spacing) * 40)}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.translate-x-1{--tw-translate-x: calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x: calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-600{border-color:var(--color-blue-600)}.border-green-200{border-color:var(--color-green-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-transparent{border-color:#0000}.bg-amber-50{background-color:var(--color-amber-50)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-blue-600{color:var(--color-blue-600)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-red-500{color:var(--color-red-500)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}@media(hover:hover){.hover\\:bg-blue-50:hover{background-color:var(--color-blue-50)}}@media(hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}}@media(hover:hover){.hover\\:bg-green-700:hover{background-color:var(--color-green-700)}}@media(hover:hover){.hover\\:bg-slate-50:hover{background-color:var(--color-slate-50)}}@media(hover:hover){.hover\\:text-slate-600:hover{color:var(--color-slate-600)}}@media(hover:hover){.hover\\:text-slate-800:hover{color:var(--color-slate-800)}}@media(hover:hover){.hover\\:underline:hover{text-decoration-line:underline}}.focus\\:ring-2:focus{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-blue-500:focus{--tw-ring-color: var(--color-blue-500)}.focus\\:outline-none:focus{--tw-outline-style: none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-slate-300:disabled{background-color:var(--color-slate-300)}}:root,:host{--font-size: 16px;--background: #fff;--foreground: oklch(.145 0 0);--card: #fff;--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: #030213;--primary-foreground: oklch(1 0 0);--secondary: oklch(.95 .0058 264.53);--secondary-foreground: #030213;--muted: #ececf0;--muted-foreground: #717182;--accent: #e9ebef;--accent-foreground: #030213;--destructive: #d4183d;--destructive-foreground: #fff;--border: #0000001a;--input: transparent;--input-background: #f3f3f5;--switch-background: #cbced4;--font-weight-medium: 500;--font-weight-normal: 400;--ring: oklch(.708 0 0);--chart-1: oklch(.646 .222 41.116);--chart-2: oklch(.6 .118 184.704);--chart-3: oklch(.398 .07 227.392);--chart-4: oklch(.828 .189 84.429);--chart-5: oklch(.769 .188 70.08);--radius: .625rem;--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: #030213;--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: oklch(.708 0 0)}.dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.145 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.145 0 0);--popover-foreground: oklch(.985 0 0);--primary: oklch(.985 0 0);--primary-foreground: oklch(.205 0 0);--secondary: oklch(.269 0 0);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: oklch(.396 .141 25.723);--destructive-foreground: oklch(.637 .237 25.331);--border: oklch(.269 0 0);--input: oklch(.269 0 0);--ring: oklch(.439 0 0);--font-weight-medium: 500;--font-weight-normal: 400;--chart-1: oklch(.488 .243 264.376);--chart-2: oklch(.696 .17 162.48);--chart-3: oklch(.769 .188 70.08);--chart-4: oklch(.627 .265 303.9);--chart-5: oklch(.645 .246 16.439);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: oklch(.488 .243 264.376);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(.269 0 0);--sidebar-ring: oklch(.439 0 0)}html{font-size:var(--font-size);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-rotate-x{syntax: "*"; inherits: false; initial-value: rotateX(0);}@property --tw-rotate-y{syntax: "*"; inherits: false; initial-value: rotateY(0);}@property --tw-rotate-z{syntax: "*"; inherits: false; initial-value: rotateZ(0);}@property --tw-skew-x{syntax: "*"; inherits: false; initial-value: skewX(0);}@property --tw-skew-y{syntax: "*"; inherits: false; initial-value: skewY(0);}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}',Ef=".ddnsto-host{padding:16px 20px;background-color:#f8fafc;border-radius:16px;overflow:hidden}.ddnsto-host #app{display:block}",Cf='.ddnsto-toggle-container{display:inline-flex;align-items:center}.ddnsto-toggle-switch{position:relative;display:inline-block;width:44px;height:22px;cursor:pointer}.ddnsto-toggle-switch input{opacity:0;width:0;height:0;position:absolute;inset:0;margin:0}.ddnsto-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#e5e7eb;transition:.2s ease;border-radius:22px;border:1px solid #cbd5e1;box-shadow:0 1px 2px #0000000a inset}.ddnsto-toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;transition:.2s ease;border-radius:50%;box-shadow:0 1px 2px #0003}.ddnsto-toggle-switch input:checked+.ddnsto-toggle-slider{background-color:#3b82f6;border-color:#3b82f6}.ddnsto-toggle-switch input:checked+.ddnsto-toggle-slider:before{transform:translate(22px)}.ddnsto-toggle-switch input:focus-visible+.ddnsto-toggle-slider{box-shadow:0 0 0 3px #3b82f640}.ddnsto-toggle-switch input:disabled+.ddnsto-toggle-slider{opacity:.6;cursor:not-allowed}',jr={token:"",prefix:"",api_base:"/cgi-bin/luci",lang:"zh-cn",onboarding_base:"https://web.ddnsto.com/openwrt-bind"},zr=typeof window<"u"&&window.ddnstoConfig||{},Nf={token:zr.token??jr.token,prefix:zr.prefix??jr.prefix,api_base:zr.api_base??jr.api_base,lang:zr.lang??jr.lang,onboarding_base:zr.onboarding_base??jr.onboarding_base},dn=document.getElementById("root")||document.getElementById("app"),jf=()=>{if(!document.head.querySelector("style[data-ddnsto-host]")){const S=document.createElement("style");S.setAttribute("data-ddnsto-host","true"),S.textContent=Ef,document.head.appendChild(S)}},zf=dn?.hasAttribute("data-ddnsto-shadow")||dn?.dataset.shadow==="true";let Fi=dn;if(dn){jf();const S=`${_f} -${Cf}`;if(zf&&dn.attachShadow){const j=dn.shadowRoot||dn.attachShadow({mode:"open"});if(!j.querySelector("style[data-ddnsto-style]")){const d=document.createElement("style");d.setAttribute("data-ddnsto-style","true"),d.textContent=S,j.appendChild(d)}Fi=j}else if(!document.head.querySelector("style[data-ddnsto-style]")){const j=document.createElement("style");j.setAttribute("data-ddnsto-style","true"),j.textContent=S,document.head.appendChild(j)}Fi&&Zd.createRoot(Fi).render(m.jsx(Qd.StrictMode,{children:m.jsx(Sf,{config:Nf})}))} + */const vf=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],Vu=Gt("smartphone",vf);function yf(){return m.jsx("div",{className:"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:m.jsx("div",{className:"flex items-start",children:m.jsxs("div",{className:"flex-1",children:[m.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[m.jsx("div",{className:"w-10 h-10 rounded-full bg-blue-50 flex items-center justify-center",children:m.jsx(Bu,{className:"w-6 h-6 text-blue-600"})}),m.jsx("h2",{className:"text-slate-800",children:"DDNSTO 远程访问"})]}),m.jsx("p",{className:"text-slate-600 text-sm mb-2",children:"DDNSTO 远程访问,不需要公网 IP、不需要开放端口。只需一个链接,即可从任何地方安全访问您的 NAS、路由器和桌面。"}),m.jsxs("a",{href:"https://www.ddnsto.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-sm text-blue-600 hover:underline",children:["了解更多",m.jsx(Al,{className:"w-3 h-3"})]})]})})})}function wf({isRunning:y,isConfigured:E,hostname:d,address:A,deviceId:T,version:L,featEnabled:W,tunnelOk:G,onRefreshStatus:b}){const[Q,Y]=C.useState(!1),B={label:y?"运行中":"已停止",bgColor:y?"bg-green-100":"bg-slate-200",textColor:y?"text-green-700":"text-slate-600"},$=A&&A.trim().length>0?A:"未配置",q=Q,ie=G===!0,V=q?"检查中...":G===!0?"正常":G===!1?"无法连接服务器":"未知",K=W==="1"||W===!0?"已开启":"未开启",Ce=T||"-",xe=async()=>{if(b){Y(!0);try{await b()}finally{Y(!1)}}};return m.jsxs("div",{className:"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[m.jsx("h3",{className:"text-slate-800 mb-4",children:"运行状态"}),m.jsxs("div",{className:"flex items-center justify-between pb-6 border-b border-slate-100",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx("span",{className:`px-3 py-1 rounded-full text-sm ${B.bgColor} ${B.textColor}`,children:B.label}),E&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("span",{className:"text-sm text-slate-500",children:"远程访问域名:"}),A&&A.trim().length>0?m.jsxs("a",{href:$,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-blue-600 hover:underline flex items-center gap-1",children:[$,m.jsx(Al,{className:"w-3 h-3"})]}):m.jsx("span",{className:"text-sm text-slate-500",children:$})]})]}),m.jsx("div",{className:"flex items-center gap-2",children:m.jsxs("button",{onClick:xe,className:"px-3 py-2 rounded-md text-blue-600 text-sm hover:bg-blue-50 transition-colors flex items-center gap-1",children:[m.jsx(hf,{className:"w-4 h-4"}),"刷新状态"]})})]}),m.jsx("div",{className:"mt-6",children:m.jsxs("div",{className:"flex items-center gap-2 text-sm text-slate-700",children:[m.jsx(Bu,{className:"w-4 h-4 text-slate-400"}),q&&m.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-slate-300 border-t-blue-600 animate-spin"}),m.jsxs("h4",{className:"text-sm text-slate-700",children:["服务器连接:",ie?m.jsx("span",{className:"text-green-600",children:V}):m.jsx("span",{children:V}),"| 设备 ID:",Ce," | 拓展功能:",K,L?` | 版本:${L}`:""]})]})})]})}function Qu({checked:y,onChange:E,label:d,id:A,disabled:T,containerClassName:L,...W}){return m.jsxs("div",{className:`ddnsto-toggle-container ${L||""}`,children:[d&&m.jsx("label",{htmlFor:A,className:"text-sm text-slate-700 mr-3 whitespace-nowrap",children:d}),m.jsxs("label",{className:"ddnsto-toggle-switch","aria-label":d||"toggle",children:[m.jsx("input",{id:A,type:"checkbox",checked:y,disabled:T,onChange:G=>E(G.target.checked),...W}),m.jsx("span",{className:"ddnsto-toggle-slider","aria-hidden":!0})]})]})}function kf({onSave:y,isInTab:E,token:d,enabled:A,advancedConfig:T,onRegisterSave:L,onTokenChange:W,onEnabledChange:G}){const[b,Q]=C.useState(d||""),[Y,B]=C.useState(A);C.useEffect(()=>{Q(d||"")},[d]),C.useEffect(()=>{B(A)},[T,A]);const $=()=>{b.trim()&&y(b,Y?"1":"0",T)};return C.useEffect(()=>{L&&L(()=>$())},[L,b,Y,T]),m.jsxs("div",{className:E?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!E&&m.jsxs(m.Fragment,{children:[m.jsx("h3",{className:"text-slate-800 mb-2",children:"手动配置"}),m.jsx("p",{className:"text-xs text-slate-400 mb-6",children:"如果您已经在 DDNSTO 控制台获取了令牌,可以直接在此填写并启动插件。"})]}),m.jsxs("div",{className:"space-y-5",children:[m.jsx("div",{className:"pb-4",children:m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("h4",{className:"text-sm text-slate-700",children:"启用 DDNSTO"}),m.jsx(Qu,{checked:Y,onChange:q=>{B(q),G?.(q)},"aria-label":"启用 DDNSTO",containerClassName:"ml-6"})]})}),m.jsxs("div",{children:[m.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[m.jsxs("label",{className:"text-sm text-slate-700",children:["用户令牌(Token) ",m.jsx("span",{className:"text-red-500",children:"*"})]}),m.jsxs("a",{href:"https://www.ddnsto.com/docs/guide/token.html",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-1",children:["如何查看用户令牌",m.jsx(Al,{className:"w-3 h-3"})]})]}),m.jsx("div",{className:"relative",children:m.jsx("input",{type:"text",value:b,onChange:q=>{Q(q.target.value),W?.(q.target.value)},placeholder:"请输入您的 DDNSTO 令牌",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"令牌将保存在路由器本地,请勿泄露。"})]})]})]})}function xf({token:y,enabled:E,advancedConfig:d,onSave:A,isInTab:T,onRegisterSave:L}){const[W,G]=C.useState(d.feat_enabled==="1"),[b,Q]=C.useState(d.feat_disk_path_selected||"/mnt/sda1"),[Y,B]=C.useState(d.feat_port||"3033"),[$,q]=C.useState(d.feat_username||"ddnsto"),[ie,V]=C.useState(d.feat_password||""),[K,Ce]=C.useState(!1),[xe,Se]=C.useState(d.index||"");C.useEffect(()=>{G(d.feat_enabled==="1"),d.feat_disk_path_selected&&Q(d.feat_disk_path_selected),d.feat_port&&B(d.feat_port),d.feat_username&&q(d.feat_username),d.feat_password&&V(d.feat_password),d.index!==void 0&&Se(d.index)},[d]);const pe=()=>{A(y,E?"1":"0",{feat_enabled:W?"1":"0",feat_port:Y,feat_username:$,feat_password:ie,feat_disk_path_selected:b,mounts:d.mounts,index:xe})};return C.useEffect(()=>{L&&L(()=>pe())},[L,y,E,W,b,Y,$,ie,xe,d.mounts]),m.jsxs("div",{className:T?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!T&&m.jsx("h3",{className:"text-slate-800 mb-4",children:"高级功能"}),m.jsxs("div",{className:"space-y-5",children:[m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-700 mb-2",children:"设备编号(可选)"}),m.jsx("input",{type:"text",value:xe,onChange:ee=>Se(ee.target.value),placeholder:"",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"如有多台设备id重复,请修改此编号(0~100),正常情况不需要修改"})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("h4",{className:"text-sm text-slate-700",children:"启用拓展功能"}),m.jsx(Qu,{checked:W,onChange:ee=>G(ee),"aria-label":"启用拓展功能",containerClassName:"ml-6"})]}),m.jsxs("div",{className:"flex items-center gap-2 -mt-2",children:[m.jsx("p",{className:"text-xs text-slate-400",children:"启用后可支持控制台的「文件管理」及「远程开机」功能"}),m.jsxs("a",{href:"https://www.ddnsto.com/docs/guide/advanced.html",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:underline flex items-center gap-1 whitespace-nowrap",children:["查看教程",m.jsx(Al,{className:"w-3 h-3"})]})]}),W&&m.jsxs("div",{className:"space-y-4",children:[m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(ff,{className:"w-4 h-4 text-slate-600"}),m.jsx("h5",{className:"text-sm text-slate-700",children:"WebDAV 服务配置"})]}),m.jsxs("div",{className:"space-y-4 pl-6",children:[m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"可访问的文件目录"}),m.jsx("select",{value:b,onChange:ee=>Q(ee.target.value),className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 bg-white",children:d.mounts&&d.mounts.length>0?d.mounts.map(ee=>m.jsx("option",{value:ee,children:ee},ee)):m.jsx("option",{value:"",disabled:!0,children:"未检测到挂载点"})}),m.jsx("p",{className:"text-xs text-slate-400 mt-1",children:"控制台上的文件管理将只能看到此目录及其子目录。"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"服务端口"}),m.jsx("input",{type:"text",value:Y,onChange:ee=>B(ee.target.value),placeholder:"3033",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"授权用户名"}),m.jsx("input",{type:"text",value:$,onChange:ee=>q(ee.target.value),placeholder:"ddnsto",className:"w-full px-3 py-2 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),m.jsxs("div",{children:[m.jsx("label",{className:"block text-sm text-slate-600 mb-2",children:"授权用户密码"}),m.jsxs("div",{className:"relative",children:[m.jsx("input",{type:K?"text":"password",value:ie,onChange:ee=>V(ee.target.value),placeholder:"设置访问密码",className:"w-full px-3 py-2 pr-10 border border-slate-300 rounded-md text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}),m.jsx("button",{type:"button",onClick:()=>Ce(!K),className:"absolute right-2 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600",children:K?m.jsx(sf,{className:"w-4 h-4"}):m.jsx(cf,{className:"w-4 h-4"})})]})]})]})]})]})]})}function Sf({ddnstoToken:y,ddnstoEnabled:E,advancedConfig:d,onSave:A,saveBanner:T}){const[L,W]=C.useState("basic"),G=C.useRef(null),b=C.useRef(),Q=C.useRef(),[Y,B]=C.useState(y||""),[$,q]=C.useState(E==="1");C.useEffect(()=>{B(y||"")},[y]),C.useEffect(()=>{q(E==="1")},[E]);const ie=()=>{L==="basic"?b.current?.():Q.current?.()};return m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:"bg-white rounded-lg border border-slate-200 mb-4",children:[m.jsx("div",{className:"border-b border-slate-200 px-6",children:m.jsx("div",{className:"flex items-center justify-between",children:m.jsxs("div",{className:"flex items-center -mb-px",children:[m.jsx("button",{onClick:()=>W("basic"),className:`px-4 py-4 text-sm border-b-2 transition-colors ${L==="basic"?"border-blue-600 text-blue-600":"border-transparent text-slate-600 hover:text-slate-800"}`,children:"基础配置"}),m.jsx("button",{onClick:()=>W("advanced"),className:`px-4 py-4 text-sm border-b-2 transition-colors ${L==="advanced"?"border-blue-600 text-blue-600":"border-transparent text-slate-600 hover:text-slate-800"}`,children:"高级功能"})]})})}),m.jsxs("div",{ref:G,className:"p-6",children:[L==="basic"&&m.jsx(kf,{token:Y,enabled:$,advancedConfig:d,onSave:A,isInTab:!0,onRegisterSave:V=>{b.current=V},onTokenChange:B,onEnabledChange:q}),L==="advanced"&&m.jsx(xf,{token:Y,enabled:$,advancedConfig:d,onSave:A,isInTab:!0,onRegisterSave:V=>{Q.current=V}})]})]}),m.jsx("div",{className:"flex justify-end gap-3 mt-4",children:m.jsxs("button",{onClick:ie,disabled:!Y.trim(),className:"ddnsto-btn ddnsto-btn-primary",children:[m.jsx(gf,{className:"ddnsto-btn-icon"}),"保存配置并应用"]})}),T.state!=="idle"&&m.jsxs("div",{className:["mt-2 rounded-md border px-3 py-2 text-sm",T.state==="loading"?"bg-blue-50 border-blue-200 text-blue-800":"",T.state==="success"?"bg-emerald-50 border-emerald-200 text-emerald-800":"",T.state==="error"?"bg-red-50 border-red-200 text-red-800":""].join(" "),children:[m.jsx("div",{className:"font-medium",children:T.message}),T.description&&m.jsx("div",{className:"text-xs mt-1 opacity-80 break-words",children:T.description})]})]})}const bn={auth:0,starting:1,binding:2,domain:3,checking:4};function _f({apiBase:y,csrfToken:E,deviceId:d,onboardingBase:A,onComplete:T,onRefreshStatus:L,isInTab:W}){const[G,b]=C.useState(!1),[Q,Y]=C.useState(A||"https://www.kooldns.cn/bind"),[B,$]=C.useState(`${A||"https://www.kooldns.cn/bind"}/#/auth?send=1&source=openwrt&callback=*`),[q,ie]=C.useState("auth"),[V,K]=C.useState(d||""),[Ce,xe]=C.useState(""),[Se,pe]=C.useState(""),[ee,Ne]=C.useState(!1),[Re,he]=C.useState(null),we=C.useRef("auth"),ue=E||(typeof window<"u"?window.ddnstoCsrfToken:""),Qe=C.useCallback(g=>{ie(u=>bn[g]>bn[u]?g:u)},[]);C.useEffect(()=>{we.current=q},[q]),C.useEffect(()=>{console.log("Onboarding iframe url:",B)},[B]);const Le=C.useCallback(()=>{ie("auth"),xe(""),pe(""),he(null),K(d||""),$(`${Q}/#/auth?send=1&source=openwrt&callback=*`)},[Qe,d,Q]);C.useEffect(()=>{const g="/#/auth?send=1&source=openwrt&callback=*",u=A||"https://www.kooldns.cn/bind";Y(u),$(`${u}${g}`)},[A]),C.useEffect(()=>{K(d||"")},[d]);const me=C.useCallback(async()=>{for(let v=0;v<20;v+=1){const M=await fetch(`${y}/admin/services/ddnsto/api/status`,{credentials:"same-origin"});if(M.ok){const X=(await M.json())?.data||{},O=X.deviceId||X.device_id||"";if(O&&K(O),X.running)return{running:!0,deviceId:O}}await new Promise(U=>setTimeout(U,2e3))}throw new Error("ddnsto not running")},[y]),ge=C.useCallback(async g=>{const u={url:g};ue&&(u.token=ue);const v=await fetch(`${y}/admin/services/ddnsto/api/onboarding/address`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",...ue?{"X-LuCI-Token":ue}:{}},body:JSON.stringify(u)});if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json();if(!M?.ok)throw new Error(M?.error||"save address failed")},[y,ue]),Ie=C.useCallback(async(g,u)=>{Ne(!0),he(null);const v=V||d||"",M=`${Q}/#/bind?status=starting&token=${encodeURIComponent(g)}&sign=${encodeURIComponent(u)}${v?`&routerId=${encodeURIComponent(v)}`:""}`;$(M),Qe("starting");try{const U=await fetch(`${y}/admin/services/ddnsto/api/onboarding/start`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",...ue?{"X-LuCI-Token":ue}:{}},body:JSON.stringify({token:g})});if(!U.ok)throw new Error(`HTTP ${U.status}`);const X=await U.json();if(!X?.ok)throw new Error(X?.error||"start failed");L&&await L();const re=(await me())?.deviceId||V||d||"";if(bn[we.current]>=bn.domain)return;const J=`${Q}/#/bind?status=starting&routerId=${encodeURIComponent(re)}&token=${encodeURIComponent(g)}&sign=${encodeURIComponent(u)}`;$(J),Qe("binding"),K(re)}catch{he("启动失败,请稍后重试")}finally{Ne(!1)}},[Qe,y,d,ue,Q,L,me,Le,V]),je=C.useCallback(g=>{const u=g||V;if(!Ce||!Se||!u)return;const v=`${Q}/#/domain?sign=${encodeURIComponent(Se)}&token=${encodeURIComponent(Ce)}&routerId=${encodeURIComponent(u)}&netaddr=127.0.0.1&source=openwrt`;$(v),ie("domain")},[Se,Ce,Q,V]),ae=C.useCallback(async g=>{$(`${Q}/#/check?url=${encodeURIComponent(g)}`),ie("checking"),T();try{await ge(g),L&&await L()}catch{he("保存域名失败,请重试")}},[Q,T,L,ge]),x=C.useCallback(()=>{b(!0),Le()},[Le]);C.useEffect(()=>{const g=u=>{if(!G)return;console.log("Onboarding message:",u.data);const v=u.data;let M=v;if(typeof v=="string")try{M=JSON.parse(v)}catch{return}if(!M||typeof M!="object")return;const U=M.data,O=U&&typeof U=="object"?U:M;if((typeof O.auth=="string"?O.auth:"")!=="ddnsto")return;const J=typeof O.sign=="string"?O.sign:"",oe=typeof O.token=="string"?O.token:"",Ue=typeof O.step=="string"?O.step:"",fn=typeof O.status=="string"?O.status:"",Un=typeof O.url=="string"?O.url:"",Tt=O.success,An=typeof Tt=="number"?Tt:Number(Tt);if(J&&oe&&q==="auth"&&!ee){xe(oe),pe(J),Ie(oe,J);return}if(Ue==="bind"&&fn==="success"){const Zt=typeof O.router_uid=="string"?O.router_uid:V;Zt&&K(Zt),je(Zt);return}Ue==="domain"&&Un&&An===0&&bn[we.current]window.removeEventListener("message",g)},[je,ae,ee,Ie,G,q]);const I=()=>m.jsx("div",{className:"flex items-center justify-between mb-6",children:m.jsx("h3",{className:"text-slate-800",children:"快速向导"})});return G?m.jsxs("div",{className:W?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!W&&I(),m.jsx("div",{className:"rounded-lg border border-slate-200 overflow-hidden",children:m.jsx("iframe",{src:B,title:"快速向导",className:"w-full",style:{width:"100%",height:"70vh",maxHeight:"400px",border:0},loading:"lazy"})})]}):m.jsxs("div",{className:W?"":"bg-white rounded-lg border border-slate-200 p-6 mb-4",children:[!W&&I(),m.jsxs("div",{className:"text-center py-8",children:[m.jsx("div",{className:"mb-4 flex justify-center",children:m.jsx("div",{className:"w-16 h-16 rounded-full bg-blue-50 flex items-center justify-center",children:m.jsx(Vu,{className:"w-8 h-8 text-blue-600"})})}),m.jsx("h4",{className:"text-slate-800 mb-2",children:"欢迎使用 DDNSTO!"}),m.jsx("p",{className:"text-sm text-slate-600 mb-6 max-w-md mx-auto",children:"通过微信扫码登录,我们将引导您完成插件配置"}),m.jsxs("button",{onClick:x,className:"ddnsto-btn ddnsto-btn-primary",children:[m.jsx(Vu,{className:"ddnsto-btn-icon"}),"开始配置"]})]})]})}function Ef({config:y}){const[E,d]=C.useState(!1),[A,T]=C.useState(!1),[L,W]=C.useState("OpenWrt"),[G,b]=C.useState(""),[Q,Y]=C.useState(""),[B,$]=C.useState(""),[q,ie]=C.useState(""),[V,K]=C.useState("1"),[Ce,xe]=C.useState({feat_enabled:"0",feat_port:"",feat_username:"",feat_password:"",feat_disk_path_selected:"",mounts:[],index:""}),[,Se]=C.useState(null),[pe,ee]=C.useState(null),[Ne,Re]=C.useState({state:"idle",message:""}),he=C.useRef(),we=(y?.api_base||"/cgi-bin/luci").replace(/\/$/,""),ue=y?.token||"",Qe=(y?.onboarding_base||"https://www.kooldns.cn/bind").replace(/\/$/,""),Le=C.useCallback((x,I,g,u)=>{he.current&&window.clearTimeout(he.current),Re({state:x,message:I,description:g}),u&&(he.current=window.setTimeout(()=>{Re({state:"idle",message:""})},u))},[]);C.useEffect(()=>()=>{he.current&&window.clearTimeout(he.current)},[]);const me=C.useCallback(async()=>{try{const x=await fetch(`${we}/admin/services/ddnsto/api/config`,{credentials:"same-origin"});if(!x.ok)throw new Error(`HTTP ${x.status}`);const g=(await x.json())?.data||{};g.address&&b(g.address),g.device_id!==void 0?Y(g.device_id):g.deviceId!==void 0&&Y(g.deviceId),g.version!==void 0&&$(g.version),g.token&&ie(g.token),g.enabled!==void 0&&K(g.enabled),xe({feat_enabled:g.feat_enabled||"0",feat_port:g.feat_port||"",feat_username:g.feat_username||"",feat_password:g.feat_password||"",feat_disk_path_selected:g.feat_disk_path_selected||"",mounts:g.mounts||[],index:g.index||""})}catch(x){console.error("Failed to fetch ddnsto config",x)}},[we]),ge=C.useCallback(async()=>{try{const x=await fetch(`${we}/admin/services/ddnsto/api/status`,{credentials:"same-origin"});if(!x.ok)throw new Error(`HTTP ${x.status}`);const g=(await x.json())?.data||{};d(!!g.running),g.token_set&&T(!0),g.hostname&&W(g.hostname),g.device_id!==void 0?Y(g.device_id):g.deviceId!==void 0&&Y(g.deviceId),g.address&&b(g.address),g.version!==void 0&&$(g.version),Se(null)}catch(x){console.error("Failed to fetch ddnsto status",x),Se("无法获取运行状态")}},[we]),Ie=C.useCallback(async()=>{try{const x=await fetch(`${we}/admin/services/ddnsto/api/connectivity`,{credentials:"same-origin"});if(!x.ok)throw new Error(`HTTP ${x.status}`);const g=(await x.json())?.data||{};g.tunnel_ok!==void 0&&g.tunnel_ok!==null?ee(g.tunnel_ok===!0):ee(null)}catch(x){console.error("Failed to fetch ddnsto connectivity",x),ee(null)}},[we]),je=C.useCallback(async()=>{await me(),await ge(),await Ie()},[me,ge,Ie]),ae=C.useCallback(async(x,I,g)=>{Le("loading","正在保存配置...","正在将配置写入路由器,请稍候");try{const u=new URLSearchParams;ue&&u.append("token",ue),u.append("ddnsto_token",x),u.append("enabled",I),u.append("feat_enabled",g.feat_enabled),u.append("feat_port",g.feat_port),u.append("feat_username",g.feat_username),u.append("feat_password",g.feat_password),u.append("feat_disk_path_selected",g.feat_disk_path_selected),u.append("index",g.index||"");const v=await fetch(`${we}/admin/services/ddnsto/api/config`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded",...ue?{"X-LuCI-Token":ue}:{}},body:u});if(!v.ok)throw new Error(`HTTP ${v.status}`);const M=await v.json();if(!M?.ok)throw new Error(M?.error||"Save failed");Le("success","配置已保存并生效",void 0,3e3),T(!0),await me(),await ge()}catch(u){console.error("Failed to save config",u);const v=u instanceof Error?u.message:String(u);Le("error","保存失败,请重试",v,4e3)}},[we,ue,me,ge]);return C.useEffect(()=>{me(),ge(),Ie()},[me,ge,Ie]),C.useEffect(()=>{const x=window.setInterval(ge,5e3);return()=>{window.clearInterval(x)}},[ge]),m.jsx("div",{className:"min-h-screen bg-slate-50",children:m.jsx("main",{children:m.jsxs("div",{className:"max-w-5xl mx-auto px-6 py-8",children:[m.jsx(yf,{}),m.jsx(wf,{isRunning:E,isConfigured:A,hostname:L,address:G,deviceId:Q,version:B,featEnabled:Ce.feat_enabled,tunnelOk:pe,onRefreshStatus:je}),m.jsx(_f,{apiBase:we,csrfToken:ue,deviceId:Q,onboardingBase:Qe,onRefreshStatus:je,onComplete:()=>T(!0)}),m.jsx(Sf,{ddnstoToken:q,ddnstoEnabled:V,advancedConfig:Ce,onSave:ae,saveBanner:Ne})]})})})}const Cf='/*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */*,:before,:after,::backdrop{--tw-border-style: solid}@layer properties{@supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: rotateX(0);--tw-rotate-y: rotateY(0);--tw-rotate-z: rotateZ(0);--tw-skew-x: skewX(0);--tw-skew-y: skewY(0);--tw-space-y-reverse: 0;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500: oklch(.637 .237 25.331);--color-amber-50: oklch(.987 .022 95.277);--color-amber-200: oklch(.924 .12 95.746);--color-amber-600: oklch(.666 .179 58.318);--color-green-50: oklch(.982 .018 155.826);--color-green-100: oklch(.962 .044 156.743);--color-green-200: oklch(.925 .084 155.995);--color-green-600: oklch(.627 .194 149.214);--color-green-700: oklch(.527 .154 150.069);--color-green-800: oklch(.448 .119 151.328);--color-blue-50: oklch(.97 .014 254.604);--color-blue-200: oklch(.882 .059 254.128);--color-blue-500: oklch(.623 .214 259.815);--color-blue-600: oklch(.546 .245 262.881);--color-blue-700: oklch(.488 .243 264.376);--color-slate-50: oklch(.984 .003 247.858);--color-slate-100: oklch(.968 .007 247.896);--color-slate-200: oklch(.929 .013 255.508);--color-slate-300: oklch(.869 .022 252.894);--color-slate-400: oklch(.704 .04 256.788);--color-slate-500: oklch(.554 .046 257.417);--color-slate-600: oklch(.446 .043 257.281);--color-slate-700: oklch(.372 .044 257.287);--color-slate-800: oklch(.279 .041 260.031);--color-white: #fff;--spacing: .25rem;--container-md: 28rem;--container-5xl: 64rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-font-feature-settings: var(--font-sans--font-feature-settings);--default-font-variation-settings: var(--font-sans--font-variation-settings);--default-mono-font-family: var(--font-mono);--default-mono-font-feature-settings: var(--font-mono--font-feature-settings);--default-mono-font-variation-settings: var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:currentColor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentColor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background-color:var(--background);color:var(--foreground)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color: color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h1{font-size:var(--text-2xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h2{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) h4,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) label,:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) button{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5}:where(:not(:has([class*=" text-"]),:not(:has([class^=text-])))) input{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing) * 2)}.z-10{z-index:10}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-40{height:calc(var(--spacing) * 40)}.min-h-screen{min-height:100vh}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-40{width:calc(var(--spacing) * 40)}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.translate-x-1{--tw-translate-x: calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x: calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-600{border-color:var(--color-blue-600)}.border-green-200{border-color:var(--color-green-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-transparent{border-color:#0000}.bg-amber-50{background-color:var(--color-amber-50)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-200{background-color:var(--color-slate-200)}.bg-slate-300{background-color:var(--color-slate-300)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-blue-600{color:var(--color-blue-600)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-red-500{color:var(--color-red-500)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}@media(hover:hover){.hover\\:bg-blue-50:hover{background-color:var(--color-blue-50)}}@media(hover:hover){.hover\\:bg-blue-700:hover{background-color:var(--color-blue-700)}}@media(hover:hover){.hover\\:bg-green-700:hover{background-color:var(--color-green-700)}}@media(hover:hover){.hover\\:bg-slate-50:hover{background-color:var(--color-slate-50)}}@media(hover:hover){.hover\\:text-slate-600:hover{color:var(--color-slate-600)}}@media(hover:hover){.hover\\:text-slate-800:hover{color:var(--color-slate-800)}}@media(hover:hover){.hover\\:underline:hover{text-decoration-line:underline}}.focus\\:ring-2:focus{--tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-blue-500:focus{--tw-ring-color: var(--color-blue-500)}.focus\\:outline-none:focus{--tw-outline-style: none;outline-style:none}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-slate-300:disabled{background-color:var(--color-slate-300)}}:root,:host{--font-size: 16px;--background: #fff;--foreground: oklch(.145 0 0);--card: #fff;--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: #030213;--primary-foreground: oklch(1 0 0);--secondary: oklch(.95 .0058 264.53);--secondary-foreground: #030213;--muted: #ececf0;--muted-foreground: #717182;--accent: #e9ebef;--accent-foreground: #030213;--destructive: #d4183d;--destructive-foreground: #fff;--border: #0000001a;--input: transparent;--input-background: #f3f3f5;--switch-background: #cbced4;--font-weight-medium: 500;--font-weight-normal: 400;--ring: oklch(.708 0 0);--chart-1: oklch(.646 .222 41.116);--chart-2: oklch(.6 .118 184.704);--chart-3: oklch(.398 .07 227.392);--chart-4: oklch(.828 .189 84.429);--chart-5: oklch(.769 .188 70.08);--radius: .625rem;--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: #030213;--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: oklch(.708 0 0)}.dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.145 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.145 0 0);--popover-foreground: oklch(.985 0 0);--primary: oklch(.985 0 0);--primary-foreground: oklch(.205 0 0);--secondary: oklch(.269 0 0);--secondary-foreground: oklch(.985 0 0);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: oklch(.396 .141 25.723);--destructive-foreground: oklch(.637 .237 25.331);--border: oklch(.269 0 0);--input: oklch(.269 0 0);--ring: oklch(.439 0 0);--font-weight-medium: 500;--font-weight-normal: 400;--chart-1: oklch(.488 .243 264.376);--chart-2: oklch(.696 .17 162.48);--chart-3: oklch(.769 .188 70.08);--chart-4: oklch(.627 .265 303.9);--chart-5: oklch(.645 .246 16.439);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: oklch(.488 .243 264.376);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(.269 0 0);--sidebar-ring: oklch(.439 0 0)}html{font-size:var(--font-size);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-rotate-x{syntax: "*"; inherits: false; initial-value: rotateX(0);}@property --tw-rotate-y{syntax: "*"; inherits: false; initial-value: rotateY(0);}@property --tw-rotate-z{syntax: "*"; inherits: false; initial-value: rotateZ(0);}@property --tw-skew-x{syntax: "*"; inherits: false; initial-value: skewX(0);}@property --tw-skew-y{syntax: "*"; inherits: false; initial-value: skewY(0);}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}:root,:host{--ddn-bg: #f8fafc;--ddn-surface: #ffffff;--ddn-surface-muted: #f1f5f9;--ddn-border: #e2e8f0;--ddn-border-strong: #cbd5e1;--ddn-text-primary: #0f172a;--ddn-text-secondary: #475569;--ddn-text-muted: #64748b;--ddn-primary: #2563eb;--ddn-primary-strong: #1d4ed8;--ddn-input-bg: #ffffff;--ddn-disabled-bg: #e2e8f0;--ddn-disabled-text: #94a3b8;--ddn-divider: #e2e8f0;--ddn-spinner: #94a3b8}[data-darkmode=true],:host([data-darkmode="true"]){--ddn-bg: #0f172a;--ddn-surface: #111827;--ddn-surface-muted: #1f2937;--ddn-border: #334155;--ddn-border-strong: #475569;--ddn-text-primary: #e5e7eb;--ddn-text-secondary: #cbd5e1;--ddn-text-muted: #94a3b8;--ddn-primary: #3b82f6;--ddn-primary-strong: #2563eb;--ddn-input-bg: #0b1220;--ddn-disabled-bg: #1f2937;--ddn-disabled-text: #64748b;--ddn-divider: #1f2937;--ddn-spinner: #cbd5e1}[data-darkmode=true],:host([data-darkmode="true"]){color:var(--ddn-text-primary)}[data-darkmode=true] .bg-slate-50,:host([data-darkmode="true"]) .bg-slate-50{background-color:var(--ddn-bg)!important}[data-darkmode=true] .bg-white,:host([data-darkmode="true"]) .bg-white{background-color:var(--ddn-surface)!important;color:var(--ddn-text-primary)}[data-darkmode=true] .border-slate-200,:host([data-darkmode="true"]) .border-slate-200,[data-darkmode=true] .border-slate-100,:host([data-darkmode="true"]) .border-slate-100{border-color:var(--ddn-border)!important}[data-darkmode=true] .border-slate-300,:host([data-darkmode="true"]) .border-slate-300{border-color:var(--ddn-border-strong)!important}[data-darkmode=true] .text-slate-800,:host([data-darkmode="true"]) .text-slate-800,[data-darkmode=true] .text-slate-700,:host([data-darkmode="true"]) .text-slate-700{color:var(--ddn-text-primary)!important}[data-darkmode=true] .text-slate-600,:host([data-darkmode="true"]) .text-slate-600,[data-darkmode=true] .text-slate-500,:host([data-darkmode="true"]) .text-slate-500{color:var(--ddn-text-secondary)!important}[data-darkmode=true] .text-slate-400,:host([data-darkmode="true"]) .text-slate-400{color:var(--ddn-text-muted)!important}[data-darkmode=true] .bg-blue-50,:host([data-darkmode="true"]) .bg-blue-50{background-color:#2563eb1f!important;color:var(--ddn-text-primary)}[data-darkmode=true] .bg-emerald-50,:host([data-darkmode="true"]) .bg-emerald-50{background-color:#10b98124!important;color:var(--ddn-text-primary)}[data-darkmode=true] .bg-red-50,:host([data-darkmode="true"]) .bg-red-50{background-color:#f871711f!important;color:var(--ddn-text-primary)}[data-darkmode=true] .border-b,:host([data-darkmode="true"]) .border-b{border-color:var(--ddn-divider)!important}[data-darkmode=true] input,:host([data-darkmode="true"]) input,[data-darkmode=true] select,:host([data-darkmode="true"]) select,[data-darkmode=true] textarea,:host([data-darkmode="true"]) textarea{background-color:var(--ddn-input-bg);color:var(--ddn-text-primary)}[data-darkmode=true] .animate-spin,:host([data-darkmode="true"]) .animate-spin{border-color:var(--ddn-spinner)!important}',Nf=".ddnsto-host{padding:16px 20px;background-color:#f8fafc;border-radius:16px;overflow:hidden}.ddnsto-host[data-darkmode=true]{background-color:#0b1220}.ddnsto-host #app{display:block}",jf='.ddnsto-toggle-container{display:inline-flex;align-items:center}.ddnsto-toggle-switch{position:relative;display:inline-block;width:44px;height:22px;cursor:pointer}.ddnsto-toggle-switch input{opacity:0;width:0;height:0;position:absolute;inset:0;margin:0}.ddnsto-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#e5e7eb;transition:.2s ease;border-radius:22px;border:1px solid #cbd5e1;box-shadow:0 1px 2px #0000000a inset}.ddnsto-toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;transition:.2s ease;border-radius:50%;box-shadow:0 1px 2px #0003}.ddnsto-toggle-switch input:checked+.ddnsto-toggle-slider{background-color:#3b82f6;border-color:#3b82f6}.ddnsto-toggle-switch input:checked+.ddnsto-toggle-slider:before{transform:translate(22px)}.ddnsto-toggle-switch input:focus-visible+.ddnsto-toggle-slider{box-shadow:0 0 0 3px #3b82f640}.ddnsto-toggle-switch input:disabled+.ddnsto-toggle-slider{opacity:.6;cursor:not-allowed}',zf=".ddnsto-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:.5rem;border:1px solid transparent;font-size:.875rem;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease,border-color .15s ease;user-select:none}.ddnsto-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ddnsto-btn-primary{background-color:var(--ddn-primary);color:#fff;border-color:var(--ddn-primary-strong);box-shadow:0 1px 2px #00000014}.ddnsto-btn-primary:hover:not(:disabled){background-color:var(--ddn-primary-strong)}.ddnsto-btn-primary:active:not(:disabled){background-color:#1e3a8a}.ddnsto-btn:disabled,.ddnsto-btn[aria-disabled=true]{background-color:var(--ddn-disabled-bg);border-color:var(--ddn-border);color:var(--ddn-disabled-text);cursor:not-allowed;box-shadow:none}.ddnsto-btn-icon{width:1rem;height:1rem}",Pf="ddnsto-theme",Tf=y=>{const E=y.match(/\d+/g);if(E&&E.length>=3)return{r:parseInt(E[0],10),g:parseInt(E[1],10),b:parseInt(E[2],10)};if(y.startsWith("#")){const d=y.replace("#","");if(d.length===3)return{r:parseInt(d[0]+d[0],16),g:parseInt(d[1]+d[1],16),b:parseInt(d[2]+d[2],16)};if(d.length===6)return{r:parseInt(d.slice(0,2),16),g:parseInt(d.slice(2,4),16),b:parseInt(d.slice(4,6),16)}}return null},Rf=()=>{try{const y=localStorage.getItem(Pf);if(y==="dark"||y==="light")return y}catch{}if(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches)return"dark";try{const y=getComputedStyle(document.body).backgroundColor,E=Tf(y);if(E)return .2126*E.r+.7152*E.g+.0722*E.b<128?"dark":"light"}catch{}return"light"},bl=(y,E)=>{y&&(E==="dark"?y.setAttribute("data-darkmode","true"):y.removeAttribute("data-darkmode"))},jr={token:"",prefix:"",api_base:"/cgi-bin/luci",lang:"zh-cn",onboarding_base:"https://web.ddnsto.com/openwrt-bind"},zr=typeof window<"u"&&window.ddnstoConfig||{},Lf={token:zr.token??jr.token,prefix:zr.prefix??jr.prefix,api_base:zr.api_base??jr.api_base,lang:zr.lang??jr.lang,onboarding_base:zr.onboarding_base??jr.onboarding_base},gt=document.getElementById("root")||document.getElementById("app"),If=()=>{if(!document.head.querySelector("style[data-ddnsto-host]")){const y=document.createElement("style");y.setAttribute("data-ddnsto-host","true"),y.textContent=Nf,document.head.appendChild(y)}},Mf=gt?.hasAttribute("data-ddnsto-shadow")||gt?.dataset.shadow==="true";let Ui=gt;const Ul=typeof window<"u"?Rf():"light";if(gt){If();const y=`${Cf} +${jf} +${zf}`;if(Mf&>.attachShadow){const E=gt.shadowRoot||gt.attachShadow({mode:"open"});if(!E.querySelector("style[data-ddnsto-style]")){const d=document.createElement("style");d.setAttribute("data-ddnsto-style","true"),d.textContent=y,E.appendChild(d)}Ui=E,bl(gt,Ul),bl(gt.parentElement,Ul)}else{if(!document.head.querySelector("style[data-ddnsto-style]")){const E=document.createElement("style");E.setAttribute("data-ddnsto-style","true"),E.textContent=y,document.head.appendChild(E)}bl(gt,Ul),bl(gt.parentElement,Ul)}Ui&&qd.createRoot(Ui).render(m.jsx(Kd.StrictMode,{children:m.jsx(Ef,{config:Lf})}))} diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 55ae19c90..4b522cece 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.41.0 +PKG_VERSION:=5.43.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=75d83f24e60fb7e71e7774732f6ebcfbc00a1b3ae27f4702f75afb14055ce606 +PKG_HASH:=74144d915931af4daae42cc12aa37222abb824aa8b1e34f7dce8c97c7c1c6368 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE