function qd(v){return v&&v.__esModule&&Object.prototype.hasOwnProperty.call(v,"default")?v.default:v}var cc={exports:{}},Ti={};/**
 * @license React
 * react-jsx-runtime.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var hd;function pm(){if(hd)return Ti;hd=1;var v=Symbol.for("react.transitional.element"),w=Symbol.for("react.fragment");function H(f,Y,_){var ye=null;if(_!==void 0&&(ye=""+_),Y.key!==void 0&&(ye=""+Y.key),"key"in Y){_={};for(var Ee in Y)Ee!=="key"&&(_[Ee]=Y[Ee])}else _=Y;return Y=_.ref,{$$typeof:v,type:f,key:ye,ref:Y!==void 0?Y:null,props:_}}return Ti.Fragment=w,Ti.jsx=H,Ti.jsxs=H,Ti}var yd;function dm(){return yd||(yd=1,cc.exports=pm()),cc.exports}var Hm=dm(),uc={exports:{}},k={};/**
 * @license React
 * react.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var bd;function gm(){if(bd)return k;bd=1;var v=Symbol.for("react.transitional.element"),w=Symbol.for("react.portal"),H=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),Y=Symbol.for("react.profiler"),_=Symbol.for("react.consumer"),ye=Symbol.for("react.context"),Ee=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),J=Symbol.for("react.lazy"),U=Symbol.for("react.activity"),re=Symbol.iterator;function je(r){return r===null||typeof r!="object"?null:(r=re&&r[re]||r["@@iterator"],typeof r=="function"?r:null)}var ke={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ue=Object.assign,Mt={};function We(r,T,E){this.props=r,this.context=T,this.refs=Mt,this.updater=E||ke}We.prototype.isReactComponent={},We.prototype.setState=function(r,T){if(typeof r!="object"&&typeof r!="function"&&r!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,r,T,"setState")},We.prototype.forceUpdate=function(r){this.updater.enqueueForceUpdate(this,r,"forceUpdate")};function Zt(){}Zt.prototype=We.prototype;function Re(r,T,E){this.props=r,this.context=T,this.refs=Mt,this.updater=E||ke}var lt=Re.prototype=new Zt;lt.constructor=Re,Ue(lt,We.prototype),lt.isPureReactComponent=!0;var At=Array.isArray;function Be(){}var j={H:null,A:null,T:null,S:null},Ne=Object.prototype.hasOwnProperty;function Tt(r,T,E){var M=E.ref;return{$$typeof:v,type:r,key:T,ref:M!==void 0?M:null,props:E}}function Qo(r,T){return Tt(r.type,T,r.props)}function zt(r){return typeof r=="object"&&r!==null&&r.$$typeof===v}function Ie(r){var T={"=":"=0",":":"=2"};return"$"+r.replace(/[=:]/g,function(E){return T[E]})}var To=/\/+/g;function Ct(r,T){return typeof r=="object"&&r!==null&&r.key!=null?Ie(""+r.key):T.toString(36)}function yt(r){switch(r.status){case"fulfilled":return r.value;case"rejected":throw r.reason;default:switch(typeof r.status=="string"?r.then(Be,Be):(r.status="pending",r.then(function(T){r.status==="pending"&&(r.status="fulfilled",r.value=T)},function(T){r.status==="pending"&&(r.status="rejected",r.reason=T)})),r.status){case"fulfilled":return r.value;case"rejected":throw r.reason}}throw r}function b(r,T,E,M,B){var Q=typeof r;(Q==="undefined"||Q==="boolean")&&(r=null);var $=!1;if(r===null)$=!0;else switch(Q){case"bigint":case"string":case"number":$=!0;break;case"object":switch(r.$$typeof){case v:case w:$=!0;break;case J:return $=r._init,b($(r._payload),T,E,M,B)}}if($)return B=B(r),$=M===""?"."+Ct(r,0):M,At(B)?(E="",$!=null&&(E=$.replace(To,"$&/")+"/"),b(B,T,E,"",function(Ca){return Ca})):B!=null&&(zt(B)&&(B=Qo(B,E+(B.key==null||r&&r.key===B.key?"":(""+B.key).replace(To,"$&/")+"/")+$)),T.push(B)),1;$=0;var Oe=M===""?".":M+":";if(At(r))for(var fe=0;fe<r.length;fe++)M=r[fe],Q=Oe+Ct(M,fe),$+=b(M,T,E,Q,B);else if(fe=je(r),typeof fe=="function")for(r=fe.call(r),fe=0;!(M=r.next()).done;)M=M.value,Q=Oe+Ct(M,fe++),$+=b(M,T,E,Q,B);else if(Q==="object"){if(typeof r.then=="function")return b(yt(r),T,E,M,B);throw T=String(r),Error("Objects are not valid as a React child (found: "+(T==="[object Object]"?"object with keys {"+Object.keys(r).join(", ")+"}":T)+"). If you meant to render a collection of children, use an array instead.")}return $}function D(r,T,E){if(r==null)return r;var M=[],B=0;return b(r,M,"","",function(Q){return T.call(E,Q,B++)}),M}function O(r){if(r._status===-1){var T=r._result;T=T(),T.then(function(E){(r._status===0||r._status===-1)&&(r._status=1,r._result=E)},function(E){(r._status===0||r._status===-1)&&(r._status=2,r._result=E)}),r._status===-1&&(r._status=0,r._result=T)}if(r._status===1)return r._result.default;throw r._result}var oe=typeof reportError=="function"?reportError:function(r){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var T=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof r=="object"&&r!==null&&typeof r.message=="string"?String(r.message):String(r),error:r});if(!window.dispatchEvent(T))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",r);return}console.error(r)},le={map:D,forEach:function(r,T,E){D(r,function(){T.apply(this,arguments)},E)},count:function(r){var T=0;return D(r,function(){T++}),T},toArray:function(r){return D(r,function(T){return T})||[]},only:function(r){if(!zt(r))throw Error("React.Children.only expected to receive a single React element child.");return r}};return k.Activity=U,k.Children=le,k.Component=We,k.Fragment=H,k.Profiler=Y,k.PureComponent=Re,k.StrictMode=f,k.Suspense=R,k.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,k.__COMPILER_RUNTIME={__proto__:null,c:function(r){return j.H.useMemoCache(r)}},k.cache=function(r){return function(){return r.apply(null,arguments)}},k.cacheSignal=function(){return null},k.cloneElement=function(r,T,E){if(r==null)throw Error("The argument must be a React element, but you passed "+r+".");var M=Ue({},r.props),B=r.key;if(T!=null)for(Q in T.key!==void 0&&(B=""+T.key),T)!Ne.call(T,Q)||Q==="key"||Q==="__self"||Q==="__source"||Q==="ref"&&T.ref===void 0||(M[Q]=T[Q]);var Q=arguments.length-2;if(Q===1)M.children=E;else if(1<Q){for(var $=Array(Q),Oe=0;Oe<Q;Oe++)$[Oe]=arguments[Oe+2];M.children=$}return Tt(r.type,B,M)},k.createContext=function(r){return r={$$typeof:ye,_currentValue:r,_currentValue2:r,_threadCount:0,Provider:null,Consumer:null},r.Provider=r,r.Consumer={$$typeof:_,_context:r},r},k.createElement=function(r,T,E){var M,B={},Q=null;if(T!=null)for(M in T.key!==void 0&&(Q=""+T.key),T)Ne.call(T,M)&&M!=="key"&&M!=="__self"&&M!=="__source"&&(B[M]=T[M]);var $=arguments.length-2;if($===1)B.children=E;else if(1<$){for(var Oe=Array($),fe=0;fe<$;fe++)Oe[fe]=arguments[fe+2];B.children=Oe}if(r&&r.defaultProps)for(M in $=r.defaultProps,$)B[M]===void 0&&(B[M]=$[M]);return Tt(r,Q,B)},k.createRef=function(){return{current:null}},k.forwardRef=function(r){return{$$typeof:Ee,render:r}},k.isValidElement=zt,k.lazy=function(r){return{$$typeof:J,_payload:{_status:-1,_result:r},_init:O}},k.memo=function(r,T){return{$$typeof:z,type:r,compare:T===void 0?null:T}},k.startTransition=function(r){var T=j.T,E={};j.T=E;try{var M=r(),B=j.S;B!==null&&B(E,M),typeof M=="object"&&M!==null&&typeof M.then=="function"&&M.then(Be,oe)}catch(Q){oe(Q)}finally{T!==null&&E.types!==null&&(T.types=E.types),j.T=T}},k.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},k.use=function(r){return j.H.use(r)},k.useActionState=function(r,T,E){return j.H.useActionState(r,T,E)},k.useCallback=function(r,T){return j.H.useCallback(r,T)},k.useContext=function(r){return j.H.useContext(r)},k.useDebugValue=function(){},k.useDeferredValue=function(r,T){return j.H.useDeferredValue(r,T)},k.useEffect=function(r,T){return j.H.useEffect(r,T)},k.useEffectEvent=function(r){return j.H.useEffectEvent(r)},k.useId=function(){return j.H.useId()},k.useImperativeHandle=function(r,T,E){return j.H.useImperativeHandle(r,T,E)},k.useInsertionEffect=function(r,T){return j.H.useInsertionEffect(r,T)},k.useLayoutEffect=function(r,T){return j.H.useLayoutEffect(r,T)},k.useMemo=function(r,T){return j.H.useMemo(r,T)},k.useOptimistic=function(r,T){return j.H.useOptimistic(r,T)},k.useReducer=function(r,T,E){return j.H.useReducer(r,T,E)},k.useRef=function(r){return j.H.useRef(r)},k.useState=function(r){return j.H.useState(r)},k.useSyncExternalStore=function(r,T,E){return j.H.useSyncExternalStore(r,T,E)},k.useTransition=function(){return j.H.useTransition()},k.version="19.2.3",k}var vd;function fc(){return vd||(vd=1,uc.exports=gm()),uc.exports}var fm=fc();const km=qd(fm);var rc={exports:{}},zi={},pc={exports:{}},dc={};/**
 * @license React
 * scheduler.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var Sd;function mm(){return Sd||(Sd=1,function(v){function w(b,D){var O=b.length;b.push(D);e:for(;0<O;){var oe=O-1>>>1,le=b[oe];if(0<Y(le,D))b[oe]=D,b[O]=le,O=oe;else break e}}function H(b){return b.length===0?null:b[0]}function f(b){if(b.length===0)return null;var D=b[0],O=b.pop();if(O!==D){b[0]=O;e:for(var oe=0,le=b.length,r=le>>>1;oe<r;){var T=2*(oe+1)-1,E=b[T],M=T+1,B=b[M];if(0>Y(E,O))M<le&&0>Y(B,E)?(b[oe]=B,b[M]=O,oe=M):(b[oe]=E,b[T]=O,oe=T);else if(M<le&&0>Y(B,O))b[oe]=B,b[M]=O,oe=M;else break e}}return D}function Y(b,D){var O=b.sortIndex-D.sortIndex;return O!==0?O:b.id-D.id}if(v.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var _=performance;v.unstable_now=function(){return _.now()}}else{var ye=Date,Ee=ye.now();v.unstable_now=function(){return ye.now()-Ee}}var R=[],z=[],J=1,U=null,re=3,je=!1,ke=!1,Ue=!1,Mt=!1,We=typeof setTimeout=="function"?setTimeout:null,Zt=typeof clearTimeout=="function"?clearTimeout:null,Re=typeof setImmediate<"u"?setImmediate:null;function lt(b){for(var D=H(z);D!==null;){if(D.callback===null)f(z);else if(D.startTime<=b)f(z),D.sortIndex=D.expirationTime,w(R,D);else break;D=H(z)}}function At(b){if(Ue=!1,lt(b),!ke)if(H(R)!==null)ke=!0,Be||(Be=!0,Ie());else{var D=H(z);D!==null&&yt(At,D.startTime-b)}}var Be=!1,j=-1,Ne=5,Tt=-1;function Qo(){return Mt?!0:!(v.unstable_now()-Tt<Ne)}function zt(){if(Mt=!1,Be){var b=v.unstable_now();Tt=b;var D=!0;try{e:{ke=!1,Ue&&(Ue=!1,Zt(j),j=-1),je=!0;var O=re;try{t:{for(lt(b),U=H(R);U!==null&&!(U.expirationTime>b&&Qo());){var oe=U.callback;if(typeof oe=="function"){U.callback=null,re=U.priorityLevel;var le=oe(U.expirationTime<=b);if(b=v.unstable_now(),typeof le=="function"){U.callback=le,lt(b),D=!0;break t}U===H(R)&&f(R),lt(b)}else f(R);U=H(R)}if(U!==null)D=!0;else{var r=H(z);r!==null&&yt(At,r.startTime-b),D=!1}}break e}finally{U=null,re=O,je=!1}D=void 0}}finally{D?Ie():Be=!1}}}var Ie;if(typeof Re=="function")Ie=function(){Re(zt)};else if(typeof MessageChannel<"u"){var To=new MessageChannel,Ct=To.port2;To.port1.onmessage=zt,Ie=function(){Ct.postMessage(null)}}else Ie=function(){We(zt,0)};function yt(b,D){j=We(function(){b(v.unstable_now())},D)}v.unstable_IdlePriority=5,v.unstable_ImmediatePriority=1,v.unstable_LowPriority=4,v.unstable_NormalPriority=3,v.unstable_Profiling=null,v.unstable_UserBlockingPriority=2,v.unstable_cancelCallback=function(b){b.callback=null},v.unstable_forceFrameRate=function(b){0>b||125<b?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Ne=0<b?Math.floor(1e3/b):5},v.unstable_getCurrentPriorityLevel=function(){return re},v.unstable_next=function(b){switch(re){case 1:case 2:case 3:var D=3;break;default:D=re}var O=re;re=D;try{return b()}finally{re=O}},v.unstable_requestPaint=function(){Mt=!0},v.unstable_runWithPriority=function(b,D){switch(b){case 1:case 2:case 3:case 4:case 5:break;default:b=3}var O=re;re=b;try{return D()}finally{re=O}},v.unstable_scheduleCallback=function(b,D,O){var oe=v.unstable_now();switch(typeof O=="object"&&O!==null?(O=O.delay,O=typeof O=="number"&&0<O?oe+O:oe):O=oe,b){case 1:var le=-1;break;case 2:le=250;break;case 5:le=1073741823;break;case 4:le=1e4;break;default:le=5e3}return le=O+le,b={id:J++,callback:D,priorityLevel:b,startTime:O,expirationTime:le,sortIndex:-1},O>oe?(b.sortIndex=O,w(z,b),H(R)===null&&b===H(z)&&(Ue?(Zt(j),j=-1):Ue=!0,yt(At,O-oe))):(b.sortIndex=le,w(R,b),ke||je||(ke=!0,Be||(Be=!0,Ie()))),b},v.unstable_shouldYield=Qo,v.unstable_wrapCallback=function(b){var D=re;return function(){var O=re;re=D;try{return b.apply(this,arguments)}finally{re=O}}}}(dc)),dc}var Ad;function hm(){return Ad||(Ad=1,pc.exports=mm()),pc.exports}var gc={exports:{}},Le={};/**
 * @license React
 * react-dom.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var Td;function ym(){if(Td)return Le;Td=1;var v=fc();function w(R){var z="https://react.dev/errors/"+R;if(1<arguments.length){z+="?args[]="+encodeURIComponent(arguments[1]);for(var J=2;J<arguments.length;J++)z+="&args[]="+encodeURIComponent(arguments[J])}return"Minified React error #"+R+"; visit "+z+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function H(){}var f={d:{f:H,r:function(){throw Error(w(522))},D:H,C:H,L:H,m:H,X:H,S:H,M:H},p:0,findDOMNode:null},Y=Symbol.for("react.portal");function _(R,z,J){var U=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Y,key:U==null?null:""+U,children:R,containerInfo:z,implementation:J}}var ye=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function Ee(R,z){if(R==="font")return"";if(typeof z=="string")return z==="use-credentials"?z:""}return Le.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=f,Le.createPortal=function(R,z){var J=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!z||z.nodeType!==1&&z.nodeType!==9&&z.nodeType!==11)throw Error(w(299));return _(R,z,null,J)},Le.flushSync=function(R){var z=ye.T,J=f.p;try{if(ye.T=null,f.p=2,R)return R()}finally{ye.T=z,f.p=J,f.d.f()}},Le.preconnect=function(R,z){typeof R=="string"&&(z?(z=z.crossOrigin,z=typeof z=="string"?z==="use-credentials"?z:"":void 0):z=null,f.d.C(R,z))},Le.prefetchDNS=function(R){typeof R=="string"&&f.d.D(R)},Le.preinit=function(R,z){if(typeof R=="string"&&z&&typeof z.as=="string"){var J=z.as,U=Ee(J,z.crossOrigin),re=typeof z.integrity=="string"?z.integrity:void 0,je=typeof z.fetchPriority=="string"?z.fetchPriority:void 0;J==="style"?f.d.S(R,typeof z.precedence=="string"?z.precedence:void 0,{crossOrigin:U,integrity:re,fetchPriority:je}):J==="script"&&f.d.X(R,{crossOrigin:U,integrity:re,fetchPriority:je,nonce:typeof z.nonce=="string"?z.nonce:void 0})}},Le.preinitModule=function(R,z){if(typeof R=="string")if(typeof z=="object"&&z!==null){if(z.as==null||z.as==="script"){var J=Ee(z.as,z.crossOrigin);f.d.M(R,{crossOrigin:J,integrity:typeof z.integrity=="string"?z.integrity:void 0,nonce:typeof z.nonce=="string"?z.nonce:void 0})}}else z==null&&f.d.M(R)},Le.preload=function(R,z){if(typeof R=="string"&&typeof z=="object"&&z!==null&&typeof z.as=="string"){var J=z.as,U=Ee(J,z.crossOrigin);f.d.L(R,J,{crossOrigin:U,integrity:typeof z.integrity=="string"?z.integrity:void 0,nonce:typeof z.nonce=="string"?z.nonce:void 0,type:typeof z.type=="string"?z.type:void 0,fetchPriority:typeof z.fetchPriority=="string"?z.fetchPriority:void 0,referrerPolicy:typeof z.referrerPolicy=="string"?z.referrerPolicy:void 0,imageSrcSet:typeof z.imageSrcSet=="string"?z.imageSrcSet:void 0,imageSizes:typeof z.imageSizes=="string"?z.imageSizes:void 0,media:typeof z.media=="string"?z.media:void 0})}},Le.preloadModule=function(R,z){if(typeof R=="string")if(z){var J=Ee(z.as,z.crossOrigin);f.d.m(R,{as:typeof z.as=="string"&&z.as!=="script"?z.as:void 0,crossOrigin:J,integrity:typeof z.integrity=="string"?z.integrity:void 0})}else f.d.m(R)},Le.requestFormReset=function(R){f.d.r(R)},Le.unstable_batchedUpdates=function(R,z){return R(z)},Le.useFormState=function(R,z,J){return ye.H.useFormState(R,z,J)},Le.useFormStatus=function(){return ye.H.useHostTransitionStatus()},Le.version="19.2.3",Le}var zd;function bm(){if(zd)return gc.exports;zd=1;function v(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(v)}catch(w){console.error(w)}}return v(),gc.exports=ym(),gc.exports}/**
 * @license React
 * react-dom-client.production.js
 *
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */var Dd;function vm(){if(Dd)return zi;Dd=1;var v=hm(),w=fc(),H=bm();function f(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var o=2;o<arguments.length;o++)t+="&args[]="+encodeURIComponent(arguments[o])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Y(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function _(e){var t=e,o=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(o=t.return),e=t.return;while(e)}return t.tag===3?o:null}function ye(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Ee(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function R(e){if(_(e)!==e)throw Error(f(188))}function z(e){var t=e.alternate;if(!t){if(t=_(e),t===null)throw Error(f(188));return t!==e?null:e}for(var o=e,a=t;;){var i=o.return;if(i===null)break;var n=i.alternate;if(n===null){if(a=i.return,a!==null){o=a;continue}break}if(i.child===n.child){for(n=i.child;n;){if(n===o)return R(i),e;if(n===a)return R(i),t;n=n.sibling}throw Error(f(188))}if(o.return!==a.return)o=i,a=n;else{for(var l=!1,s=i.child;s;){if(s===o){l=!0,o=i,a=n;break}if(s===a){l=!0,a=i,o=n;break}s=s.sibling}if(!l){for(s=n.child;s;){if(s===o){l=!0,o=n,a=i;break}if(s===a){l=!0,a=n,o=i;break}s=s.sibling}if(!l)throw Error(f(189))}}if(o.alternate!==a)throw Error(f(190))}if(o.tag!==3)throw Error(f(188));return o.stateNode.current===o?e:t}function J(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=J(e),t!==null)return t;e=e.sibling}return null}var U=Object.assign,re=Symbol.for("react.element"),je=Symbol.for("react.transitional.element"),ke=Symbol.for("react.portal"),Ue=Symbol.for("react.fragment"),Mt=Symbol.for("react.strict_mode"),We=Symbol.for("react.profiler"),Zt=Symbol.for("react.consumer"),Re=Symbol.for("react.context"),lt=Symbol.for("react.forward_ref"),At=Symbol.for("react.suspense"),Be=Symbol.for("react.suspense_list"),j=Symbol.for("react.memo"),Ne=Symbol.for("react.lazy"),Tt=Symbol.for("react.activity"),Qo=Symbol.for("react.memo_cache_sentinel"),zt=Symbol.iterator;function Ie(e){return e===null||typeof e!="object"?null:(e=zt&&e[zt]||e["@@iterator"],typeof e=="function"?e:null)}var To=Symbol.for("react.client.reference");function Ct(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===To?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ue:return"Fragment";case We:return"Profiler";case Mt:return"StrictMode";case At:return"Suspense";case Be:return"SuspenseList";case Tt:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case ke:return"Portal";case Re:return e.displayName||"Context";case Zt:return(e._context.displayName||"Context")+".Consumer";case lt:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case j:return t=e.displayName||null,t!==null?t:Ct(e.type)||"Memo";case Ne:t=e._payload,e=e._init;try{return Ct(e(t))}catch{}}return null}var yt=Array.isArray,b=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=H.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O={pending:!1,data:null,method:null,action:null},oe=[],le=-1;function r(e){return{current:e}}function T(e){0>le||(e.current=oe[le],oe[le]=null,le--)}function E(e,t){le++,oe[le]=e.current,e.current=t}var M=r(null),B=r(null),Q=r(null),$=r(null);function Oe(e,t){switch(E(Q,t),E(B,e),E(M,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Ip(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Ip(t),e=_p(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}T(M),E(M,e)}function fe(){T(M),T(B),T(Q)}function Ca(e){e.memoizedState!==null&&E($,e);var t=M.current,o=_p(t,e.type);t!==o&&(E(B,e),E(M,o))}function Di(e){B.current===e&&(T(M),T(B)),$.current===e&&(T($),bi._currentValue=O)}var Vn,mc;function zo(e){if(Vn===void 0)try{throw Error()}catch(o){var t=o.stack.trim().match(/\n( *(at )?)/);Vn=t&&t[1]||"",mc=-1<o.stack.indexOf(`
    at`)?" (<anonymous>)":-1<o.stack.indexOf("@")?"@unknown:0:0":""}return`
`+Vn+e+mc}var Pn=!1;function Kn(e,t){if(!e||Pn)return"";Pn=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var A=function(){throw Error()};if(Object.defineProperty(A.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(A,[])}catch(h){var m=h}Reflect.construct(e,[],A)}else{try{A.call()}catch(h){m=h}e.call(A.prototype)}}else{try{throw Error()}catch(h){m=h}(A=e())&&typeof A.catch=="function"&&A.catch(function(){})}}catch(h){if(h&&m&&typeof h.stack=="string")return[h.stack,m.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var i=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");i&&i.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var n=a.DetermineComponentFrameRoot(),l=n[0],s=n[1];if(l&&s){var c=l.split(`
`),g=s.split(`
`);for(i=a=0;a<c.length&&!c[a].includes("DetermineComponentFrameRoot");)a++;for(;i<g.length&&!g[i].includes("DetermineComponentFrameRoot");)i++;if(a===c.length||i===g.length)for(a=c.length-1,i=g.length-1;1<=a&&0<=i&&c[a]!==g[i];)i--;for(;1<=a&&0<=i;a--,i--)if(c[a]!==g[i]){if(a!==1||i!==1)do if(a--,i--,0>i||c[a]!==g[i]){var y=`
`+c[a].replace(" at new "," at ");return e.displayName&&y.includes("<anonymous>")&&(y=y.replace("<anonymous>",e.displayName)),y}while(1<=a&&0<=i);break}}}finally{Pn=!1,Error.prepareStackTrace=o}return(o=e?e.displayName||e.name:"")?zo(o):""}function Yd(e,t){switch(e.tag){case 26:case 27:case 5:return zo(e.type);case 16:return zo("Lazy");case 13:return e.child!==t&&t!==null?zo("Suspense Fallback"):zo("Suspense");case 19:return zo("SuspenseList");case 0:case 15:return Kn(e.type,!1);case 11:return Kn(e.type.render,!1);case 1:return Kn(e.type,!0);case 31:return zo("Activity");default:return""}}function hc(e){try{var t="",o=null;do t+=Yd(e,o),o=e,e=e.return;while(e);return t}catch(a){return`
Error generating stack: `+a.message+`
`+a.stack}}var jn=Object.prototype.hasOwnProperty,Wn=v.unstable_scheduleCallback,Zn=v.unstable_cancelCallback,Qd=v.unstable_shouldYield,Gd=v.unstable_requestPaint,Ze=v.unstable_now,Vd=v.unstable_getCurrentPriorityLevel,yc=v.unstable_ImmediatePriority,bc=v.unstable_UserBlockingPriority,Ei=v.unstable_NormalPriority,Pd=v.unstable_LowPriority,vc=v.unstable_IdlePriority,Kd=v.log,jd=v.unstable_setDisableYieldValue,qa=null,Xe=null;function Xt(e){if(typeof Kd=="function"&&jd(e),Xe&&typeof Xe.setStrictMode=="function")try{Xe.setStrictMode(qa,e)}catch{}}var Fe=Math.clz32?Math.clz32:Xd,Wd=Math.log,Zd=Math.LN2;function Xd(e){return e>>>=0,e===0?32:31-(Wd(e)/Zd|0)|0}var wi=256,xi=262144,Mi=4194304;function Do(e){var t=e&42;if(t!==0)return t;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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ci(e,t,o){var a=e.pendingLanes;if(a===0)return 0;var i=0,n=e.suspendedLanes,l=e.pingedLanes;e=e.warmLanes;var s=a&134217727;return s!==0?(a=s&~n,a!==0?i=Do(a):(l&=s,l!==0?i=Do(l):o||(o=s&~e,o!==0&&(i=Do(o))))):(s=a&~n,s!==0?i=Do(s):l!==0?i=Do(l):o||(o=a&~e,o!==0&&(i=Do(o)))),i===0?0:t!==0&&t!==i&&(t&n)===0&&(n=i&-i,o=t&-t,n>=o||n===32&&(o&4194048)!==0)?t:i}function Ra(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Fd(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32: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 t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sc(){var e=Mi;return Mi<<=1,(Mi&62914560)===0&&(Mi=4194304),e}function Xn(e){for(var t=[],o=0;31>o;o++)t.push(e);return t}function La(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Jd(e,t,o,a,i,n){var l=e.pendingLanes;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=o,e.entangledLanes&=o,e.errorRecoveryDisabledLanes&=o,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,g=e.hiddenUpdates;for(o=l&~o;0<o;){var y=31-Fe(o),A=1<<y;s[y]=0,c[y]=-1;var m=g[y];if(m!==null)for(g[y]=null,y=0;y<m.length;y++){var h=m[y];h!==null&&(h.lane&=-536870913)}o&=~A}a!==0&&Ac(e,a,0),n!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=n&~(l&~t))}function Ac(e,t,o){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-Fe(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|o&261930}function Tc(e,t){var o=e.entangledLanes|=t;for(e=e.entanglements;o;){var a=31-Fe(o),i=1<<a;i&t|e[a]&t&&(e[a]|=t),o&=~i}}function zc(e,t){var o=t&-t;return o=(o&42)!==0?1:Fn(o),(o&(e.suspendedLanes|t))!==0?0:o}function Fn(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;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:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Jn(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Dc(){var e=D.p;return e!==0?e:(e=window.event,e===void 0?32:ud(e.type))}function Ec(e,t){var o=D.p;try{return D.p=e,t()}finally{D.p=o}}var Ft=Math.random().toString(36).slice(2),we="__reactFiber$"+Ft,_e="__reactProps$"+Ft,Go="__reactContainer$"+Ft,$n="__reactEvents$"+Ft,$d="__reactListeners$"+Ft,eg="__reactHandles$"+Ft,wc="__reactResources$"+Ft,Ua="__reactMarker$"+Ft;function el(e){delete e[we],delete e[_e],delete e[$n],delete e[$d],delete e[eg]}function Vo(e){var t=e[we];if(t)return t;for(var o=e.parentNode;o;){if(t=o[Go]||o[we]){if(o=t.alternate,t.child!==null||o!==null&&o.child!==null)for(e=jp(e);e!==null;){if(o=e[we])return o;e=jp(e)}return t}e=o,o=e.parentNode}return null}function Po(e){if(e=e[we]||e[Go]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Oa(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(f(33))}function Ko(e){var t=e[wc];return t||(t=e[wc]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ze(e){e[Ua]=!0}var xc=new Set,Mc={};function Eo(e,t){jo(e,t),jo(e+"Capture",t)}function jo(e,t){for(Mc[e]=t,e=0;e<t.length;e++)xc.add(t[e])}var tg=RegExp("^[: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]*$"),Cc={},qc={};function og(e){return jn.call(qc,e)?!0:jn.call(Cc,e)?!1:tg.test(e)?qc[e]=!0:(Cc[e]=!0,!1)}function qi(e,t,o){if(og(t))if(o===null)e.removeAttribute(t);else{switch(typeof o){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+o)}}function Ri(e,t,o){if(o===null)e.removeAttribute(t);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+o)}}function qt(e,t,o,a){if(a===null)e.removeAttribute(o);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(o);return}e.setAttributeNS(t,o,""+a)}}function st(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Rc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ag(e,t,o){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var i=a.get,n=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(l){o=""+l,n.call(this,l)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return o},setValue:function(l){o=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function tl(e){if(!e._valueTracker){var t=Rc(e)?"checked":"value";e._valueTracker=ag(e,t,""+e[t])}}function Lc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var o=t.getValue(),a="";return e&&(a=Rc(e)?e.checked?"true":"false":e.value),e=a,e!==o?(t.setValue(e),!0):!1}function Li(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}}var ig=/[\n"\\]/g;function ct(e){return e.replace(ig,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ol(e,t,o,a,i,n,l,s){e.name="",l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"?e.type=l:e.removeAttribute("type"),t!=null?l==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+st(t)):e.value!==""+st(t)&&(e.value=""+st(t)):l!=="submit"&&l!=="reset"||e.removeAttribute("value"),t!=null?al(e,l,st(t)):o!=null?al(e,l,st(o)):a!=null&&e.removeAttribute("value"),i==null&&n!=null&&(e.defaultChecked=!!n),i!=null&&(e.checked=i&&typeof i!="function"&&typeof i!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+st(s):e.removeAttribute("name")}function Uc(e,t,o,a,i,n,l,s){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(e.type=n),t!=null||o!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){tl(e);return}o=o!=null?""+st(o):"",t=t!=null?""+st(t):o,s||t===e.value||(e.value=t),e.defaultValue=t}a=a??i,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=s?e.checked:!!a,e.defaultChecked=!!a,l!=null&&typeof l!="function"&&typeof l!="symbol"&&typeof l!="boolean"&&(e.name=l),tl(e)}function al(e,t,o){t==="number"&&Li(e.ownerDocument)===e||e.defaultValue===""+o||(e.defaultValue=""+o)}function Wo(e,t,o,a){if(e=e.options,t){t={};for(var i=0;i<o.length;i++)t["$"+o[i]]=!0;for(o=0;o<e.length;o++)i=t.hasOwnProperty("$"+e[o].value),e[o].selected!==i&&(e[o].selected=i),i&&a&&(e[o].defaultSelected=!0)}else{for(o=""+st(o),t=null,i=0;i<e.length;i++){if(e[i].value===o){e[i].selected=!0,a&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Oc(e,t,o){if(t!=null&&(t=""+st(t),t!==e.value&&(e.value=t),o==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=o!=null?""+st(o):""}function Hc(e,t,o,a){if(t==null){if(a!=null){if(o!=null)throw Error(f(92));if(yt(a)){if(1<a.length)throw Error(f(93));a=a[0]}o=a}o==null&&(o=""),t=o}o=st(t),e.defaultValue=o,a=e.textContent,a===o&&a!==""&&a!==null&&(e.value=a),tl(e)}function Zo(e,t){if(t){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=t;return}}e.textContent=t}var ng=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function kc(e,t,o){var a=t.indexOf("--")===0;o==null||typeof o=="boolean"||o===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,o):typeof o!="number"||o===0||ng.has(t)?t==="float"?e.cssFloat=o:e[t]=(""+o).trim():e[t]=o+"px"}function Bc(e,t,o){if(t!=null&&typeof t!="object")throw Error(f(62));if(e=e.style,o!=null){for(var a in o)!o.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var i in t)a=t[i],t.hasOwnProperty(i)&&o[i]!==a&&kc(e,i,a)}else for(var n in t)t.hasOwnProperty(n)&&kc(e,n,t[n])}function il(e){if(e.indexOf("-")===-1)return!1;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 lg=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),sg=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Ui(e){return sg.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Rt(){}var nl=null;function ll(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xo=null,Fo=null;function Nc(e){var t=Po(e);if(t&&(e=t.stateNode)){var o=e[_e]||null;e:switch(e=t.stateNode,t.type){case"input":if(ol(e,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name),t=o.name,o.type==="radio"&&t!=null){for(o=e;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll('input[name="'+ct(""+t)+'"][type="radio"]'),t=0;t<o.length;t++){var a=o[t];if(a!==e&&a.form===e.form){var i=a[_e]||null;if(!i)throw Error(f(90));ol(a,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<o.length;t++)a=o[t],a.form===e.form&&Lc(a)}break e;case"textarea":Oc(e,o.value,o.defaultValue);break e;case"select":t=o.value,t!=null&&Wo(e,!!o.multiple,t,!1)}}}var sl=!1;function Ic(e,t,o){if(sl)return e(t,o);sl=!0;try{var a=e(t);return a}finally{if(sl=!1,(Xo!==null||Fo!==null)&&(An(),Xo&&(t=Xo,e=Fo,Fo=Xo=null,Nc(t),e)))for(t=0;t<e.length;t++)Nc(e[t])}}function Ha(e,t){var o=e.stateNode;if(o===null)return null;var a=o[_e]||null;if(a===null)return null;o=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(o&&typeof o!="function")throw Error(f(231,t,typeof o));return o}var Lt=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),cl=!1;if(Lt)try{var ka={};Object.defineProperty(ka,"passive",{get:function(){cl=!0}}),window.addEventListener("test",ka,ka),window.removeEventListener("test",ka,ka)}catch{cl=!1}var Jt=null,ul=null,Oi=null;function _c(){if(Oi)return Oi;var e,t=ul,o=t.length,a,i="value"in Jt?Jt.value:Jt.textContent,n=i.length;for(e=0;e<o&&t[e]===i[e];e++);var l=o-e;for(a=1;a<=l&&t[o-a]===i[n-a];a++);return Oi=i.slice(e,1<a?1-a:void 0)}function Hi(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function ki(){return!0}function Yc(){return!1}function Ye(e){function t(o,a,i,n,l){this._reactName=o,this._targetInst=i,this.type=a,this.nativeEvent=n,this.target=l,this.currentTarget=null;for(var s in e)e.hasOwnProperty(s)&&(o=e[s],this[s]=o?o(n):n[s]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?ki:Yc,this.isPropagationStopped=Yc,this}return U(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=ki)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=ki)},persist:function(){},isPersistent:ki}),t}var wo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Bi=Ye(wo),Ba=U({},wo,{view:0,detail:0}),cg=Ye(Ba),rl,pl,Na,Ni=U({},Ba,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:gl,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Na&&(Na&&e.type==="mousemove"?(rl=e.screenX-Na.screenX,pl=e.screenY-Na.screenY):pl=rl=0,Na=e),rl)},movementY:function(e){return"movementY"in e?e.movementY:pl}}),Qc=Ye(Ni),ug=U({},Ni,{dataTransfer:0}),rg=Ye(ug),pg=U({},Ba,{relatedTarget:0}),dl=Ye(pg),dg=U({},wo,{animationName:0,elapsedTime:0,pseudoElement:0}),gg=Ye(dg),fg=U({},wo,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),mg=Ye(fg),hg=U({},wo,{data:0}),Gc=Ye(hg),yg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},bg={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},vg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=vg[e])?!!t[e]:!1}function gl(){return Sg}var Ag=U({},Ba,{key:function(e){if(e.key){var t=yg[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Hi(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?bg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:gl,charCode:function(e){return e.type==="keypress"?Hi(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Hi(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Tg=Ye(Ag),zg=U({},Ni,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Vc=Ye(zg),Dg=U({},Ba,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:gl}),Eg=Ye(Dg),wg=U({},wo,{propertyName:0,elapsedTime:0,pseudoElement:0}),xg=Ye(wg),Mg=U({},Ni,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Cg=Ye(Mg),qg=U({},wo,{newState:0,oldState:0}),Rg=Ye(qg),Lg=[9,13,27,32],fl=Lt&&"CompositionEvent"in window,Ia=null;Lt&&"documentMode"in document&&(Ia=document.documentMode);var Ug=Lt&&"TextEvent"in window&&!Ia,Pc=Lt&&(!fl||Ia&&8<Ia&&11>=Ia),Kc=" ",jc=!1;function Wc(e,t){switch(e){case"keyup":return Lg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Zc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Jo=!1;function Og(e,t){switch(e){case"compositionend":return Zc(t);case"keypress":return t.which!==32?null:(jc=!0,Kc);case"textInput":return e=t.data,e===Kc&&jc?null:e;default:return null}}function Hg(e,t){if(Jo)return e==="compositionend"||!fl&&Wc(e,t)?(e=_c(),Oi=ul=Jt=null,Jo=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Pc&&t.locale!=="ko"?null:t.data;default:return null}}var kg={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Xc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!kg[e.type]:t==="textarea"}function Fc(e,t,o,a){Xo?Fo?Fo.push(a):Fo=[a]:Xo=a,t=Mn(t,"onChange"),0<t.length&&(o=new Bi("onChange","change",null,o,a),e.push({event:o,listeners:t}))}var _a=null,Ya=null;function Bg(e){Up(e,0)}function Ii(e){var t=Oa(e);if(Lc(t))return e}function Jc(e,t){if(e==="change")return t}var $c=!1;if(Lt){var ml;if(Lt){var hl="oninput"in document;if(!hl){var eu=document.createElement("div");eu.setAttribute("oninput","return;"),hl=typeof eu.oninput=="function"}ml=hl}else ml=!1;$c=ml&&(!document.documentMode||9<document.documentMode)}function tu(){_a&&(_a.detachEvent("onpropertychange",ou),Ya=_a=null)}function ou(e){if(e.propertyName==="value"&&Ii(Ya)){var t=[];Fc(t,Ya,e,ll(e)),Ic(Bg,t)}}function Ng(e,t,o){e==="focusin"?(tu(),_a=t,Ya=o,_a.attachEvent("onpropertychange",ou)):e==="focusout"&&tu()}function Ig(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ii(Ya)}function _g(e,t){if(e==="click")return Ii(t)}function Yg(e,t){if(e==="input"||e==="change")return Ii(t)}function Qg(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Je=typeof Object.is=="function"?Object.is:Qg;function Qa(e,t){if(Je(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return!1;for(a=0;a<o.length;a++){var i=o[a];if(!jn.call(t,i)||!Je(e[i],t[i]))return!1}return!0}function au(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function iu(e,t){var o=au(e);e=0;for(var a;o;){if(o.nodeType===3){if(a=e+o.textContent.length,e<=t&&a>=t)return{node:o,offset:t-e};e=a}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=au(o)}}function nu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?nu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function lu(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Li(e.document);t instanceof e.HTMLIFrameElement;){try{var o=typeof t.contentWindow.location.href=="string"}catch{o=!1}if(o)e=t.contentWindow;else break;t=Li(e.document)}return t}function yl(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")}var Gg=Lt&&"documentMode"in document&&11>=document.documentMode,$o=null,bl=null,Ga=null,vl=!1;function su(e,t,o){var a=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;vl||$o==null||$o!==Li(a)||(a=$o,"selectionStart"in a&&yl(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ga&&Qa(Ga,a)||(Ga=a,a=Mn(bl,"onSelect"),0<a.length&&(t=new Bi("onSelect","select",null,t,o),e.push({event:t,listeners:a}),t.target=$o)))}function xo(e,t){var o={};return o[e.toLowerCase()]=t.toLowerCase(),o["Webkit"+e]="webkit"+t,o["Moz"+e]="moz"+t,o}var ea={animationend:xo("Animation","AnimationEnd"),animationiteration:xo("Animation","AnimationIteration"),animationstart:xo("Animation","AnimationStart"),transitionrun:xo("Transition","TransitionRun"),transitionstart:xo("Transition","TransitionStart"),transitioncancel:xo("Transition","TransitionCancel"),transitionend:xo("Transition","TransitionEnd")},Sl={},cu={};Lt&&(cu=document.createElement("div").style,"AnimationEvent"in window||(delete ea.animationend.animation,delete ea.animationiteration.animation,delete ea.animationstart.animation),"TransitionEvent"in window||delete ea.transitionend.transition);function Mo(e){if(Sl[e])return Sl[e];if(!ea[e])return e;var t=ea[e],o;for(o in t)if(t.hasOwnProperty(o)&&o in cu)return Sl[e]=t[o];return e}var uu=Mo("animationend"),ru=Mo("animationiteration"),pu=Mo("animationstart"),Vg=Mo("transitionrun"),Pg=Mo("transitionstart"),Kg=Mo("transitioncancel"),du=Mo("transitionend"),gu=new Map,Al="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Al.push("scrollEnd");function bt(e,t){gu.set(e,t),Eo(t,[e])}var _i=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},ut=[],ta=0,Tl=0;function Yi(){for(var e=ta,t=Tl=ta=0;t<e;){var o=ut[t];ut[t++]=null;var a=ut[t];ut[t++]=null;var i=ut[t];ut[t++]=null;var n=ut[t];if(ut[t++]=null,a!==null&&i!==null){var l=a.pending;l===null?i.next=i:(i.next=l.next,l.next=i),a.pending=i}n!==0&&fu(o,i,n)}}function Qi(e,t,o,a){ut[ta++]=e,ut[ta++]=t,ut[ta++]=o,ut[ta++]=a,Tl|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function zl(e,t,o,a){return Qi(e,t,o,a),Gi(e)}function Co(e,t){return Qi(e,null,null,t),Gi(e)}function fu(e,t,o){e.lanes|=o;var a=e.alternate;a!==null&&(a.lanes|=o);for(var i=!1,n=e.return;n!==null;)n.childLanes|=o,a=n.alternate,a!==null&&(a.childLanes|=o),n.tag===22&&(e=n.stateNode,e===null||e._visibility&1||(i=!0)),e=n,n=n.return;return e.tag===3?(n=e.stateNode,i&&t!==null&&(i=31-Fe(o),e=n.hiddenUpdates,a=e[i],a===null?e[i]=[t]:a.push(t),t.lane=o|536870912),n):null}function Gi(e){if(50<pi)throw pi=0,Ls=null,Error(f(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var oa={};function jg(e,t,o,a){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $e(e,t,o,a){return new jg(e,t,o,a)}function Dl(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Ut(e,t){var o=e.alternate;return o===null?(o=$e(e.tag,t,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=t,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&65011712,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,t=e.dependencies,o.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o.refCleanup=e.refCleanup,o}function mu(e,t){e.flags&=65011714;var o=e.alternate;return o===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=o.childLanes,e.lanes=o.lanes,e.child=o.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=o.memoizedProps,e.memoizedState=o.memoizedState,e.updateQueue=o.updateQueue,e.type=o.type,t=o.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Vi(e,t,o,a,i,n){var l=0;if(a=e,typeof e=="function")Dl(e)&&(l=1);else if(typeof e=="string")l=$f(e,o,M.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case Tt:return e=$e(31,o,t,i),e.elementType=Tt,e.lanes=n,e;case Ue:return qo(o.children,i,n,t);case Mt:l=8,i|=24;break;case We:return e=$e(12,o,t,i|2),e.elementType=We,e.lanes=n,e;case At:return e=$e(13,o,t,i),e.elementType=At,e.lanes=n,e;case Be:return e=$e(19,o,t,i),e.elementType=Be,e.lanes=n,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Re:l=10;break e;case Zt:l=9;break e;case lt:l=11;break e;case j:l=14;break e;case Ne:l=16,a=null;break e}l=29,o=Error(f(130,e===null?"null":typeof e,"")),a=null}return t=$e(l,o,t,i),t.elementType=e,t.type=a,t.lanes=n,t}function qo(e,t,o,a){return e=$e(7,e,a,t),e.lanes=o,e}function El(e,t,o){return e=$e(6,e,null,t),e.lanes=o,e}function hu(e){var t=$e(18,null,null,0);return t.stateNode=e,t}function wl(e,t,o){return t=$e(4,e.children!==null?e.children:[],e.key,t),t.lanes=o,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var yu=new WeakMap;function rt(e,t){if(typeof e=="object"&&e!==null){var o=yu.get(e);return o!==void 0?o:(t={value:e,source:t,stack:hc(t)},yu.set(e,t),t)}return{value:e,source:t,stack:hc(t)}}var aa=[],ia=0,Pi=null,Va=0,pt=[],dt=0,$t=null,Dt=1,Et="";function Ot(e,t){aa[ia++]=Va,aa[ia++]=Pi,Pi=e,Va=t}function bu(e,t,o){pt[dt++]=Dt,pt[dt++]=Et,pt[dt++]=$t,$t=e;var a=Dt;e=Et;var i=32-Fe(a)-1;a&=~(1<<i),o+=1;var n=32-Fe(t)+i;if(30<n){var l=i-i%5;n=(a&(1<<l)-1).toString(32),a>>=l,i-=l,Dt=1<<32-Fe(t)+i|o<<i|a,Et=n+e}else Dt=1<<n|o<<i|a,Et=e}function xl(e){e.return!==null&&(Ot(e,1),bu(e,1,0))}function Ml(e){for(;e===Pi;)Pi=aa[--ia],aa[ia]=null,Va=aa[--ia],aa[ia]=null;for(;e===$t;)$t=pt[--dt],pt[dt]=null,Et=pt[--dt],pt[dt]=null,Dt=pt[--dt],pt[dt]=null}function vu(e,t){pt[dt++]=Dt,pt[dt++]=Et,pt[dt++]=$t,Dt=t.id,Et=t.overflow,$t=e}var xe=null,ce=null,W=!1,eo=null,gt=!1,Cl=Error(f(519));function to(e){var t=Error(f(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Pa(rt(t,e)),Cl}function Su(e){var t=e.stateNode,o=e.type,a=e.memoizedProps;switch(t[we]=e,t[_e]=a,o){case"dialog":V("cancel",t),V("close",t);break;case"iframe":case"object":case"embed":V("load",t);break;case"video":case"audio":for(o=0;o<gi.length;o++)V(gi[o],t);break;case"source":V("error",t);break;case"img":case"image":case"link":V("error",t),V("load",t);break;case"details":V("toggle",t);break;case"input":V("invalid",t),Uc(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":V("invalid",t);break;case"textarea":V("invalid",t),Hc(t,a.value,a.defaultValue,a.children)}o=a.children,typeof o!="string"&&typeof o!="number"&&typeof o!="bigint"||t.textContent===""+o||a.suppressHydrationWarning===!0||Bp(t.textContent,o)?(a.popover!=null&&(V("beforetoggle",t),V("toggle",t)),a.onScroll!=null&&V("scroll",t),a.onScrollEnd!=null&&V("scrollend",t),a.onClick!=null&&(t.onclick=Rt),t=!0):t=!1,t||to(e,!0)}function Au(e){for(xe=e.return;xe;)switch(xe.tag){case 5:case 31:case 13:gt=!1;return;case 27:case 3:gt=!0;return;default:xe=xe.return}}function na(e){if(e!==xe)return!1;if(!W)return Au(e),W=!0,!1;var t=e.tag,o;if((o=t!==3&&t!==27)&&((o=t===5)&&(o=e.type,o=!(o!=="form"&&o!=="button")||js(e.type,e.memoizedProps)),o=!o),o&&ce&&to(e),Au(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(f(317));ce=Kp(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(f(317));ce=Kp(e)}else t===27?(t=ce,ho(e.type)?(e=Js,Js=null,ce=e):ce=t):ce=xe?mt(e.stateNode.nextSibling):null;return!0}function Ro(){ce=xe=null,W=!1}function ql(){var e=eo;return e!==null&&(Pe===null?Pe=e:Pe.push.apply(Pe,e),eo=null),e}function Pa(e){eo===null?eo=[e]:eo.push(e)}var Rl=r(null),Lo=null,Ht=null;function oo(e,t,o){E(Rl,t._currentValue),t._currentValue=o}function kt(e){e._currentValue=Rl.current,T(Rl)}function Ll(e,t,o){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===o)break;e=e.return}}function Ul(e,t,o,a){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var n=i.dependencies;if(n!==null){var l=i.child;n=n.firstContext;e:for(;n!==null;){var s=n;n=i;for(var c=0;c<t.length;c++)if(s.context===t[c]){n.lanes|=o,s=n.alternate,s!==null&&(s.lanes|=o),Ll(n.return,o,e),a||(l=null);break e}n=s.next}}else if(i.tag===18){if(l=i.return,l===null)throw Error(f(341));l.lanes|=o,n=l.alternate,n!==null&&(n.lanes|=o),Ll(l,o,e),l=null}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===e){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}}function la(e,t,o,a){e=null;for(var i=t,n=!1;i!==null;){if(!n){if((i.flags&524288)!==0)n=!0;else if((i.flags&262144)!==0)break}if(i.tag===10){var l=i.alternate;if(l===null)throw Error(f(387));if(l=l.memoizedProps,l!==null){var s=i.type;Je(i.pendingProps.value,l.value)||(e!==null?e.push(s):e=[s])}}else if(i===$.current){if(l=i.alternate,l===null)throw Error(f(387));l.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e!==null?e.push(bi):e=[bi])}i=i.return}e!==null&&Ul(t,e,o,a),t.flags|=262144}function Ki(e){for(e=e.firstContext;e!==null;){if(!Je(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Uo(e){Lo=e,Ht=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Me(e){return Tu(Lo,e)}function ji(e,t){return Lo===null&&Uo(e),Tu(e,t)}function Tu(e,t){var o=t._currentValue;if(t={context:t,memoizedValue:o,next:null},Ht===null){if(e===null)throw Error(f(308));Ht=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Ht=Ht.next=t;return o}var Wg=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(o,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(o){return o()})}},Zg=v.unstable_scheduleCallback,Xg=v.unstable_NormalPriority,be={$$typeof:Re,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ol(){return{controller:new Wg,data:new Map,refCount:0}}function Ka(e){e.refCount--,e.refCount===0&&Zg(Xg,function(){e.controller.abort()})}var ja=null,Hl=0,sa=0,ca=null;function Fg(e,t){if(ja===null){var o=ja=[];Hl=0,sa=Ns(),ca={status:"pending",value:void 0,then:function(a){o.push(a)}}}return Hl++,t.then(zu,zu),t}function zu(){if(--Hl===0&&ja!==null){ca!==null&&(ca.status="fulfilled");var e=ja;ja=null,sa=0,ca=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Jg(e,t){var o=[],a={status:"pending",value:null,reason:null,then:function(i){o.push(i)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var i=0;i<o.length;i++)(0,o[i])(t)},function(i){for(a.status="rejected",a.reason=i,i=0;i<o.length;i++)(0,o[i])(void 0)}),a}var Du=b.S;b.S=function(e,t){sp=Ze(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Fg(e,t),Du!==null&&Du(e,t)};var Oo=r(null);function kl(){var e=Oo.current;return e!==null?e:se.pooledCache}function Wi(e,t){t===null?E(Oo,Oo.current):E(Oo,t.pool)}function Eu(){var e=kl();return e===null?null:{parent:be._currentValue,pool:e}}var ua=Error(f(460)),Bl=Error(f(474)),Zi=Error(f(542)),Xi={then:function(){}};function wu(e){return e=e.status,e==="fulfilled"||e==="rejected"}function xu(e,t,o){switch(o=e[o],o===void 0?e.push(t):o!==t&&(t.then(Rt,Rt),t=o),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Cu(e),e;default:if(typeof t.status=="string")t.then(Rt,Rt);else{if(e=se,e!==null&&100<e.shellSuspendCounter)throw Error(f(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var i=t;i.status="fulfilled",i.value=a}},function(a){if(t.status==="pending"){var i=t;i.status="rejected",i.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Cu(e),e}throw ko=t,ua}}function Ho(e){try{var t=e._init;return t(e._payload)}catch(o){throw o!==null&&typeof o=="object"&&typeof o.then=="function"?(ko=o,ua):o}}var ko=null;function Mu(){if(ko===null)throw Error(f(459));var e=ko;return ko=null,e}function Cu(e){if(e===ua||e===Zi)throw Error(f(483))}var ra=null,Wa=0;function Fi(e){var t=Wa;return Wa+=1,ra===null&&(ra=[]),xu(ra,e,t)}function Za(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Ji(e,t){throw t.$$typeof===re?Error(f(525)):(e=Object.prototype.toString.call(t),Error(f(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function qu(e){function t(p,u){if(e){var d=p.deletions;d===null?(p.deletions=[u],p.flags|=16):d.push(u)}}function o(p,u){if(!e)return null;for(;u!==null;)t(p,u),u=u.sibling;return null}function a(p){for(var u=new Map;p!==null;)p.key!==null?u.set(p.key,p):u.set(p.index,p),p=p.sibling;return u}function i(p,u){return p=Ut(p,u),p.index=0,p.sibling=null,p}function n(p,u,d){return p.index=d,e?(d=p.alternate,d!==null?(d=d.index,d<u?(p.flags|=67108866,u):d):(p.flags|=67108866,u)):(p.flags|=1048576,u)}function l(p){return e&&p.alternate===null&&(p.flags|=67108866),p}function s(p,u,d,S){return u===null||u.tag!==6?(u=El(d,p.mode,S),u.return=p,u):(u=i(u,d),u.return=p,u)}function c(p,u,d,S){var q=d.type;return q===Ue?y(p,u,d.props.children,S,d.key):u!==null&&(u.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===Ne&&Ho(q)===u.type)?(u=i(u,d.props),Za(u,d),u.return=p,u):(u=Vi(d.type,d.key,d.props,null,p.mode,S),Za(u,d),u.return=p,u)}function g(p,u,d,S){return u===null||u.tag!==4||u.stateNode.containerInfo!==d.containerInfo||u.stateNode.implementation!==d.implementation?(u=wl(d,p.mode,S),u.return=p,u):(u=i(u,d.children||[]),u.return=p,u)}function y(p,u,d,S,q){return u===null||u.tag!==7?(u=qo(d,p.mode,S,q),u.return=p,u):(u=i(u,d),u.return=p,u)}function A(p,u,d){if(typeof u=="string"&&u!==""||typeof u=="number"||typeof u=="bigint")return u=El(""+u,p.mode,d),u.return=p,u;if(typeof u=="object"&&u!==null){switch(u.$$typeof){case je:return d=Vi(u.type,u.key,u.props,null,p.mode,d),Za(d,u),d.return=p,d;case ke:return u=wl(u,p.mode,d),u.return=p,u;case Ne:return u=Ho(u),A(p,u,d)}if(yt(u)||Ie(u))return u=qo(u,p.mode,d,null),u.return=p,u;if(typeof u.then=="function")return A(p,Fi(u),d);if(u.$$typeof===Re)return A(p,ji(p,u),d);Ji(p,u)}return null}function m(p,u,d,S){var q=u!==null?u.key:null;if(typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint")return q!==null?null:s(p,u,""+d,S);if(typeof d=="object"&&d!==null){switch(d.$$typeof){case je:return d.key===q?c(p,u,d,S):null;case ke:return d.key===q?g(p,u,d,S):null;case Ne:return d=Ho(d),m(p,u,d,S)}if(yt(d)||Ie(d))return q!==null?null:y(p,u,d,S,null);if(typeof d.then=="function")return m(p,u,Fi(d),S);if(d.$$typeof===Re)return m(p,u,ji(p,d),S);Ji(p,d)}return null}function h(p,u,d,S,q){if(typeof S=="string"&&S!==""||typeof S=="number"||typeof S=="bigint")return p=p.get(d)||null,s(u,p,""+S,q);if(typeof S=="object"&&S!==null){switch(S.$$typeof){case je:return p=p.get(S.key===null?d:S.key)||null,c(u,p,S,q);case ke:return p=p.get(S.key===null?d:S.key)||null,g(u,p,S,q);case Ne:return S=Ho(S),h(p,u,d,S,q)}if(yt(S)||Ie(S))return p=p.get(d)||null,y(u,p,S,q,null);if(typeof S.then=="function")return h(p,u,d,Fi(S),q);if(S.$$typeof===Re)return h(p,u,d,ji(u,S),q);Ji(u,S)}return null}function x(p,u,d,S){for(var q=null,Z=null,C=u,I=u=0,K=null;C!==null&&I<d.length;I++){C.index>I?(K=C,C=null):K=C.sibling;var X=m(p,C,d[I],S);if(X===null){C===null&&(C=K);break}e&&C&&X.alternate===null&&t(p,C),u=n(X,u,I),Z===null?q=X:Z.sibling=X,Z=X,C=K}if(I===d.length)return o(p,C),W&&Ot(p,I),q;if(C===null){for(;I<d.length;I++)C=A(p,d[I],S),C!==null&&(u=n(C,u,I),Z===null?q=C:Z.sibling=C,Z=C);return W&&Ot(p,I),q}for(C=a(C);I<d.length;I++)K=h(C,p,I,d[I],S),K!==null&&(e&&K.alternate!==null&&C.delete(K.key===null?I:K.key),u=n(K,u,I),Z===null?q=K:Z.sibling=K,Z=K);return e&&C.forEach(function(Ao){return t(p,Ao)}),W&&Ot(p,I),q}function L(p,u,d,S){if(d==null)throw Error(f(151));for(var q=null,Z=null,C=u,I=u=0,K=null,X=d.next();C!==null&&!X.done;I++,X=d.next()){C.index>I?(K=C,C=null):K=C.sibling;var Ao=m(p,C,X.value,S);if(Ao===null){C===null&&(C=K);break}e&&C&&Ao.alternate===null&&t(p,C),u=n(Ao,u,I),Z===null?q=Ao:Z.sibling=Ao,Z=Ao,C=K}if(X.done)return o(p,C),W&&Ot(p,I),q;if(C===null){for(;!X.done;I++,X=d.next())X=A(p,X.value,S),X!==null&&(u=n(X,u,I),Z===null?q=X:Z.sibling=X,Z=X);return W&&Ot(p,I),q}for(C=a(C);!X.done;I++,X=d.next())X=h(C,p,I,X.value,S),X!==null&&(e&&X.alternate!==null&&C.delete(X.key===null?I:X.key),u=n(X,u,I),Z===null?q=X:Z.sibling=X,Z=X);return e&&C.forEach(function(rm){return t(p,rm)}),W&&Ot(p,I),q}function ne(p,u,d,S){if(typeof d=="object"&&d!==null&&d.type===Ue&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case je:e:{for(var q=d.key;u!==null;){if(u.key===q){if(q=d.type,q===Ue){if(u.tag===7){o(p,u.sibling),S=i(u,d.props.children),S.return=p,p=S;break e}}else if(u.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===Ne&&Ho(q)===u.type){o(p,u.sibling),S=i(u,d.props),Za(S,d),S.return=p,p=S;break e}o(p,u);break}else t(p,u);u=u.sibling}d.type===Ue?(S=qo(d.props.children,p.mode,S,d.key),S.return=p,p=S):(S=Vi(d.type,d.key,d.props,null,p.mode,S),Za(S,d),S.return=p,p=S)}return l(p);case ke:e:{for(q=d.key;u!==null;){if(u.key===q)if(u.tag===4&&u.stateNode.containerInfo===d.containerInfo&&u.stateNode.implementation===d.implementation){o(p,u.sibling),S=i(u,d.children||[]),S.return=p,p=S;break e}else{o(p,u);break}else t(p,u);u=u.sibling}S=wl(d,p.mode,S),S.return=p,p=S}return l(p);case Ne:return d=Ho(d),ne(p,u,d,S)}if(yt(d))return x(p,u,d,S);if(Ie(d)){if(q=Ie(d),typeof q!="function")throw Error(f(150));return d=q.call(d),L(p,u,d,S)}if(typeof d.then=="function")return ne(p,u,Fi(d),S);if(d.$$typeof===Re)return ne(p,u,ji(p,d),S);Ji(p,d)}return typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint"?(d=""+d,u!==null&&u.tag===6?(o(p,u.sibling),S=i(u,d),S.return=p,p=S):(o(p,u),S=El(d,p.mode,S),S.return=p,p=S),l(p)):o(p,u)}return function(p,u,d,S){try{Wa=0;var q=ne(p,u,d,S);return ra=null,q}catch(C){if(C===ua||C===Zi)throw C;var Z=$e(29,C,null,p.mode);return Z.lanes=S,Z.return=p,Z}finally{}}}var Bo=qu(!0),Ru=qu(!1),ao=!1;function Nl(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Il(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function io(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function no(e,t,o){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(F&2)!==0){var i=a.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),a.pending=t,t=Gi(e),fu(e,null,o),t}return Qi(e,a,t,o),Gi(e)}function Xa(e,t,o){if(t=t.updateQueue,t!==null&&(t=t.shared,(o&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,o|=a,t.lanes=o,Tc(e,o)}}function _l(e,t){var o=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,o===a)){var i=null,n=null;if(o=o.firstBaseUpdate,o!==null){do{var l={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};n===null?i=n=l:n=n.next=l,o=o.next}while(o!==null);n===null?i=n=t:n=n.next=t}else i=n=t;o={baseState:a.baseState,firstBaseUpdate:i,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=t:e.next=t,o.lastBaseUpdate=t}var Yl=!1;function Fa(){if(Yl){var e=ca;if(e!==null)throw e}}function Ja(e,t,o,a){Yl=!1;var i=e.updateQueue;ao=!1;var n=i.firstBaseUpdate,l=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,g=c.next;c.next=null,l===null?n=g:l.next=g,l=c;var y=e.alternate;y!==null&&(y=y.updateQueue,s=y.lastBaseUpdate,s!==l&&(s===null?y.firstBaseUpdate=g:s.next=g,y.lastBaseUpdate=c))}if(n!==null){var A=i.baseState;l=0,y=g=c=null,s=n;do{var m=s.lane&-536870913,h=m!==s.lane;if(h?(P&m)===m:(a&m)===m){m!==0&&m===sa&&(Yl=!0),y!==null&&(y=y.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var x=e,L=s;m=t;var ne=o;switch(L.tag){case 1:if(x=L.payload,typeof x=="function"){A=x.call(ne,A,m);break e}A=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=L.payload,m=typeof x=="function"?x.call(ne,A,m):x,m==null)break e;A=U({},A,m);break e;case 2:ao=!0}}m=s.callback,m!==null&&(e.flags|=64,h&&(e.flags|=8192),h=i.callbacks,h===null?i.callbacks=[m]:h.push(m))}else h={lane:m,tag:s.tag,payload:s.payload,callback:s.callback,next:null},y===null?(g=y=h,c=A):y=y.next=h,l|=m;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;h=s,s=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);y===null&&(c=A),i.baseState=c,i.firstBaseUpdate=g,i.lastBaseUpdate=y,n===null&&(i.shared.lanes=0),ro|=l,e.lanes=l,e.memoizedState=A}}function Lu(e,t){if(typeof e!="function")throw Error(f(191,e));e.call(t)}function Uu(e,t){var o=e.callbacks;if(o!==null)for(e.callbacks=null,e=0;e<o.length;e++)Lu(o[e],t)}var pa=r(null),$i=r(0);function Ou(e,t){e=Pt,E($i,e),E(pa,t),Pt=e|t.baseLanes}function Ql(){E($i,Pt),E(pa,pa.current)}function Gl(){Pt=$i.current,T(pa),T($i)}var et=r(null),ft=null;function lo(e){var t=e.alternate;E(me,me.current&1),E(et,e),ft===null&&(t===null||pa.current!==null||t.memoizedState!==null)&&(ft=e)}function Vl(e){E(me,me.current),E(et,e),ft===null&&(ft=e)}function Hu(e){e.tag===22?(E(me,me.current),E(et,e),ft===null&&(ft=e)):so()}function so(){E(me,me.current),E(et,et.current)}function tt(e){T(et),ft===e&&(ft=null),T(me)}var me=r(0);function en(e){for(var t=e;t!==null;){if(t.tag===13){var o=t.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||Xs(o)||Fs(o)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Bt=0,N=null,ae=null,ve=null,tn=!1,da=!1,No=!1,on=0,$a=0,ga=null,$g=0;function de(){throw Error(f(321))}function Pl(e,t){if(t===null)return!1;for(var o=0;o<t.length&&o<e.length;o++)if(!Je(e[o],t[o]))return!1;return!0}function Kl(e,t,o,a,i,n){return Bt=n,N=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,b.H=e===null||e.memoizedState===null?br:ss,No=!1,n=o(a,i),No=!1,da&&(n=Bu(t,o,a,i)),ku(e),n}function ku(e){b.H=oi;var t=ae!==null&&ae.next!==null;if(Bt=0,ve=ae=N=null,tn=!1,$a=0,ga=null,t)throw Error(f(300));e===null||Se||(e=e.dependencies,e!==null&&Ki(e)&&(Se=!0))}function Bu(e,t,o,a){N=e;var i=0;do{if(da&&(ga=null),$a=0,da=!1,25<=i)throw Error(f(301));if(i+=1,ve=ae=null,e.updateQueue!=null){var n=e.updateQueue;n.lastEffect=null,n.events=null,n.stores=null,n.memoCache!=null&&(n.memoCache.index=0)}b.H=vr,n=t(o,a)}while(da);return n}function ef(){var e=b.H,t=e.useState()[0];return t=typeof t.then=="function"?ei(t):t,e=e.useState()[0],(ae!==null?ae.memoizedState:null)!==e&&(N.flags|=1024),t}function jl(){var e=on!==0;return on=0,e}function Wl(e,t,o){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o}function Zl(e){if(tn){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}tn=!1}Bt=0,ve=ae=N=null,da=!1,$a=on=0,ga=null}function He(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ve===null?N.memoizedState=ve=e:ve=ve.next=e,ve}function he(){if(ae===null){var e=N.alternate;e=e!==null?e.memoizedState:null}else e=ae.next;var t=ve===null?N.memoizedState:ve.next;if(t!==null)ve=t,ae=e;else{if(e===null)throw N.alternate===null?Error(f(467)):Error(f(310));ae=e,e={memoizedState:ae.memoizedState,baseState:ae.baseState,baseQueue:ae.baseQueue,queue:ae.queue,next:null},ve===null?N.memoizedState=ve=e:ve=ve.next=e}return ve}function an(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ei(e){var t=$a;return $a+=1,ga===null&&(ga=[]),e=xu(ga,e,t),t=N,(ve===null?t.memoizedState:ve.next)===null&&(t=t.alternate,b.H=t===null||t.memoizedState===null?br:ss),e}function nn(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return ei(e);if(e.$$typeof===Re)return Me(e)}throw Error(f(438,String(e)))}function Xl(e){var t=null,o=N.updateQueue;if(o!==null&&(t=o.memoCache),t==null){var a=N.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(i){return i.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),o===null&&(o=an(),N.updateQueue=o),o.memoCache=t,o=t.data[t.index],o===void 0)for(o=t.data[t.index]=Array(e),a=0;a<e;a++)o[a]=Qo;return t.index++,o}function Nt(e,t){return typeof t=="function"?t(e):t}function ln(e){var t=he();return Fl(t,ae,e)}function Fl(e,t,o){var a=e.queue;if(a===null)throw Error(f(311));a.lastRenderedReducer=o;var i=e.baseQueue,n=a.pending;if(n!==null){if(i!==null){var l=i.next;i.next=n.next,n.next=l}t.baseQueue=i=n,a.pending=null}if(n=e.baseState,i===null)e.memoizedState=n;else{t=i.next;var s=l=null,c=null,g=t,y=!1;do{var A=g.lane&-536870913;if(A!==g.lane?(P&A)===A:(Bt&A)===A){var m=g.revertLane;if(m===0)c!==null&&(c=c.next={lane:0,revertLane:0,gesture:null,action:g.action,hasEagerState:g.hasEagerState,eagerState:g.eagerState,next:null}),A===sa&&(y=!0);else if((Bt&m)===m){g=g.next,m===sa&&(y=!0);continue}else A={lane:0,revertLane:g.revertLane,gesture:null,action:g.action,hasEagerState:g.hasEagerState,eagerState:g.eagerState,next:null},c===null?(s=c=A,l=n):c=c.next=A,N.lanes|=m,ro|=m;A=g.action,No&&o(n,A),n=g.hasEagerState?g.eagerState:o(n,A)}else m={lane:A,revertLane:g.revertLane,gesture:g.gesture,action:g.action,hasEagerState:g.hasEagerState,eagerState:g.eagerState,next:null},c===null?(s=c=m,l=n):c=c.next=m,N.lanes|=A,ro|=A;g=g.next}while(g!==null&&g!==t);if(c===null?l=n:c.next=s,!Je(n,e.memoizedState)&&(Se=!0,y&&(o=ca,o!==null)))throw o;e.memoizedState=n,e.baseState=l,e.baseQueue=c,a.lastRenderedState=n}return i===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Jl(e){var t=he(),o=t.queue;if(o===null)throw Error(f(311));o.lastRenderedReducer=e;var a=o.dispatch,i=o.pending,n=t.memoizedState;if(i!==null){o.pending=null;var l=i=i.next;do n=e(n,l.action),l=l.next;while(l!==i);Je(n,t.memoizedState)||(Se=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),o.lastRenderedState=n}return[n,a]}function Nu(e,t,o){var a=N,i=he(),n=W;if(n){if(o===void 0)throw Error(f(407));o=o()}else o=t();var l=!Je((ae||i).memoizedState,o);if(l&&(i.memoizedState=o,Se=!0),i=i.queue,ts(Yu.bind(null,a,i,e),[e]),i.getSnapshot!==t||l||ve!==null&&ve.memoizedState.tag&1){if(a.flags|=2048,fa(9,{destroy:void 0},_u.bind(null,a,i,o,t),null),se===null)throw Error(f(349));n||(Bt&127)!==0||Iu(a,t,o)}return o}function Iu(e,t,o){e.flags|=16384,e={getSnapshot:t,value:o},t=N.updateQueue,t===null?(t=an(),N.updateQueue=t,t.stores=[e]):(o=t.stores,o===null?t.stores=[e]:o.push(e))}function _u(e,t,o,a){t.value=o,t.getSnapshot=a,Qu(t)&&Gu(e)}function Yu(e,t,o){return o(function(){Qu(t)&&Gu(e)})}function Qu(e){var t=e.getSnapshot;e=e.value;try{var o=t();return!Je(e,o)}catch{return!0}}function Gu(e){var t=Co(e,2);t!==null&&Ke(t,e,2)}function $l(e){var t=He();if(typeof e=="function"){var o=e;if(e=o(),No){Xt(!0);try{o()}finally{Xt(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nt,lastRenderedState:e},t}function Vu(e,t,o,a){return e.baseState=o,Fl(e,ae,typeof a=="function"?a:Nt)}function tf(e,t,o,a,i){if(un(e))throw Error(f(485));if(e=t.action,e!==null){var n={payload:i,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(l){n.listeners.push(l)}};b.T!==null?o(!0):n.isTransition=!1,a(n),o=t.pending,o===null?(n.next=t.pending=n,Pu(t,n)):(n.next=o.next,t.pending=o.next=n)}}function Pu(e,t){var o=t.action,a=t.payload,i=e.state;if(t.isTransition){var n=b.T,l={};b.T=l;try{var s=o(i,a),c=b.S;c!==null&&c(l,s),Ku(e,t,s)}catch(g){es(e,t,g)}finally{n!==null&&l.types!==null&&(n.types=l.types),b.T=n}}else try{n=o(i,a),Ku(e,t,n)}catch(g){es(e,t,g)}}function Ku(e,t,o){o!==null&&typeof o=="object"&&typeof o.then=="function"?o.then(function(a){ju(e,t,a)},function(a){return es(e,t,a)}):ju(e,t,o)}function ju(e,t,o){t.status="fulfilled",t.value=o,Wu(t),e.state=o,t=e.pending,t!==null&&(o=t.next,o===t?e.pending=null:(o=o.next,t.next=o,Pu(e,o)))}function es(e,t,o){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=o,Wu(t),t=t.next;while(t!==a)}e.action=null}function Wu(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Zu(e,t){return t}function Xu(e,t){if(W){var o=se.formState;if(o!==null){e:{var a=N;if(W){if(ce){t:{for(var i=ce,n=gt;i.nodeType!==8;){if(!n){i=null;break t}if(i=mt(i.nextSibling),i===null){i=null;break t}}n=i.data,i=n==="F!"||n==="F"?i:null}if(i){ce=mt(i.nextSibling),a=i.data==="F!";break e}}to(a)}a=!1}a&&(t=o[0])}}return o=He(),o.memoizedState=o.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zu,lastRenderedState:t},o.queue=a,o=mr.bind(null,N,a),a.dispatch=o,a=$l(!1),n=ls.bind(null,N,!1,a.queue),a=He(),i={state:t,dispatch:null,action:e,pending:null},a.queue=i,o=tf.bind(null,N,i,n,o),i.dispatch=o,a.memoizedState=e,[t,o,!1]}function Fu(e){var t=he();return Ju(t,ae,e)}function Ju(e,t,o){if(t=Fl(e,t,Zu)[0],e=ln(Nt)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=ei(t)}catch(l){throw l===ua?Zi:l}else a=t;t=he();var i=t.queue,n=i.dispatch;return o!==t.memoizedState&&(N.flags|=2048,fa(9,{destroy:void 0},of.bind(null,i,o),null)),[a,n,e]}function of(e,t){e.action=t}function $u(e){var t=he(),o=ae;if(o!==null)return Ju(t,o,e);he(),t=t.memoizedState,o=he();var a=o.queue.dispatch;return o.memoizedState=e,[t,a,!1]}function fa(e,t,o,a){return e={tag:e,create:o,deps:a,inst:t,next:null},t=N.updateQueue,t===null&&(t=an(),N.updateQueue=t),o=t.lastEffect,o===null?t.lastEffect=e.next=e:(a=o.next,o.next=e,e.next=a,t.lastEffect=e),e}function er(){return he().memoizedState}function sn(e,t,o,a){var i=He();N.flags|=e,i.memoizedState=fa(1|t,{destroy:void 0},o,a===void 0?null:a)}function cn(e,t,o,a){var i=he();a=a===void 0?null:a;var n=i.memoizedState.inst;ae!==null&&a!==null&&Pl(a,ae.memoizedState.deps)?i.memoizedState=fa(t,n,o,a):(N.flags|=e,i.memoizedState=fa(1|t,n,o,a))}function tr(e,t){sn(8390656,8,e,t)}function ts(e,t){cn(2048,8,e,t)}function af(e){N.flags|=4;var t=N.updateQueue;if(t===null)t=an(),N.updateQueue=t,t.events=[e];else{var o=t.events;o===null?t.events=[e]:o.push(e)}}function or(e){var t=he().memoizedState;return af({ref:t,nextImpl:e}),function(){if((F&2)!==0)throw Error(f(440));return t.impl.apply(void 0,arguments)}}function ar(e,t){return cn(4,2,e,t)}function ir(e,t){return cn(4,4,e,t)}function nr(e,t){if(typeof t=="function"){e=e();var o=t(e);return function(){typeof o=="function"?o():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function lr(e,t,o){o=o!=null?o.concat([e]):null,cn(4,4,nr.bind(null,t,e),o)}function os(){}function sr(e,t){var o=he();t=t===void 0?null:t;var a=o.memoizedState;return t!==null&&Pl(t,a[1])?a[0]:(o.memoizedState=[e,t],e)}function cr(e,t){var o=he();t=t===void 0?null:t;var a=o.memoizedState;if(t!==null&&Pl(t,a[1]))return a[0];if(a=e(),No){Xt(!0);try{e()}finally{Xt(!1)}}return o.memoizedState=[a,t],a}function as(e,t,o){return o===void 0||(Bt&1073741824)!==0&&(P&261930)===0?e.memoizedState=t:(e.memoizedState=o,e=up(),N.lanes|=e,ro|=e,o)}function ur(e,t,o,a){return Je(o,t)?o:pa.current!==null?(e=as(e,o,a),Je(e,t)||(Se=!0),e):(Bt&42)===0||(Bt&1073741824)!==0&&(P&261930)===0?(Se=!0,e.memoizedState=o):(e=up(),N.lanes|=e,ro|=e,t)}function rr(e,t,o,a,i){var n=D.p;D.p=n!==0&&8>n?n:8;var l=b.T,s={};b.T=s,ls(e,!1,t,o);try{var c=i(),g=b.S;if(g!==null&&g(s,c),c!==null&&typeof c=="object"&&typeof c.then=="function"){var y=Jg(c,a);ti(e,t,y,it(e))}else ti(e,t,a,it(e))}catch(A){ti(e,t,{then:function(){},status:"rejected",reason:A},it())}finally{D.p=n,l!==null&&s.types!==null&&(l.types=s.types),b.T=l}}function nf(){}function is(e,t,o,a){if(e.tag!==5)throw Error(f(476));var i=pr(e).queue;rr(e,i,t,O,o===null?nf:function(){return dr(e),o(a)})}function pr(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:O,baseState:O,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nt,lastRenderedState:O},next:null};var o={};return t.next={memoizedState:o,baseState:o,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nt,lastRenderedState:o},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function dr(e){var t=pr(e);t.next===null&&(t=e.alternate.memoizedState),ti(e,t.next.queue,{},it())}function ns(){return Me(bi)}function gr(){return he().memoizedState}function fr(){return he().memoizedState}function lf(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var o=it();e=io(o);var a=no(t,e,o);a!==null&&(Ke(a,t,o),Xa(a,t,o)),t={cache:Ol()},e.payload=t;return}t=t.return}}function sf(e,t,o){var a=it();o={lane:a,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},un(e)?hr(t,o):(o=zl(e,t,o,a),o!==null&&(Ke(o,e,a),yr(o,t,a)))}function mr(e,t,o){var a=it();ti(e,t,o,a)}function ti(e,t,o,a){var i={lane:a,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null};if(un(e))hr(t,i);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var l=t.lastRenderedState,s=n(l,o);if(i.hasEagerState=!0,i.eagerState=s,Je(s,l))return Qi(e,t,i,0),se===null&&Yi(),!1}catch{}finally{}if(o=zl(e,t,i,a),o!==null)return Ke(o,e,a),yr(o,t,a),!0}return!1}function ls(e,t,o,a){if(a={lane:2,revertLane:Ns(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},un(e)){if(t)throw Error(f(479))}else t=zl(e,o,a,2),t!==null&&Ke(t,e,2)}function un(e){var t=e.alternate;return e===N||t!==null&&t===N}function hr(e,t){da=tn=!0;var o=e.pending;o===null?t.next=t:(t.next=o.next,o.next=t),e.pending=t}function yr(e,t,o){if((o&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,o|=a,t.lanes=o,Tc(e,o)}}var oi={readContext:Me,use:nn,useCallback:de,useContext:de,useEffect:de,useImperativeHandle:de,useLayoutEffect:de,useInsertionEffect:de,useMemo:de,useReducer:de,useRef:de,useState:de,useDebugValue:de,useDeferredValue:de,useTransition:de,useSyncExternalStore:de,useId:de,useHostTransitionStatus:de,useFormState:de,useActionState:de,useOptimistic:de,useMemoCache:de,useCacheRefresh:de};oi.useEffectEvent=de;var br={readContext:Me,use:nn,useCallback:function(e,t){return He().memoizedState=[e,t===void 0?null:t],e},useContext:Me,useEffect:tr,useImperativeHandle:function(e,t,o){o=o!=null?o.concat([e]):null,sn(4194308,4,nr.bind(null,t,e),o)},useLayoutEffect:function(e,t){return sn(4194308,4,e,t)},useInsertionEffect:function(e,t){sn(4,2,e,t)},useMemo:function(e,t){var o=He();t=t===void 0?null:t;var a=e();if(No){Xt(!0);try{e()}finally{Xt(!1)}}return o.memoizedState=[a,t],a},useReducer:function(e,t,o){var a=He();if(o!==void 0){var i=o(t);if(No){Xt(!0);try{o(t)}finally{Xt(!1)}}}else i=t;return a.memoizedState=a.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},a.queue=e,e=e.dispatch=sf.bind(null,N,e),[a.memoizedState,e]},useRef:function(e){var t=He();return e={current:e},t.memoizedState=e},useState:function(e){e=$l(e);var t=e.queue,o=mr.bind(null,N,t);return t.dispatch=o,[e.memoizedState,o]},useDebugValue:os,useDeferredValue:function(e,t){var o=He();return as(o,e,t)},useTransition:function(){var e=$l(!1);return e=rr.bind(null,N,e.queue,!0,!1),He().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,o){var a=N,i=He();if(W){if(o===void 0)throw Error(f(407));o=o()}else{if(o=t(),se===null)throw Error(f(349));(P&127)!==0||Iu(a,t,o)}i.memoizedState=o;var n={value:o,getSnapshot:t};return i.queue=n,tr(Yu.bind(null,a,n,e),[e]),a.flags|=2048,fa(9,{destroy:void 0},_u.bind(null,a,n,o,t),null),o},useId:function(){var e=He(),t=se.identifierPrefix;if(W){var o=Et,a=Dt;o=(a&~(1<<32-Fe(a)-1)).toString(32)+o,t="_"+t+"R_"+o,o=on++,0<o&&(t+="H"+o.toString(32)),t+="_"}else o=$g++,t="_"+t+"r_"+o.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:ns,useFormState:Xu,useActionState:Xu,useOptimistic:function(e){var t=He();t.memoizedState=t.baseState=e;var o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=o,t=ls.bind(null,N,!0,o),o.dispatch=t,[e,t]},useMemoCache:Xl,useCacheRefresh:function(){return He().memoizedState=lf.bind(null,N)},useEffectEvent:function(e){var t=He(),o={impl:e};return t.memoizedState=o,function(){if((F&2)!==0)throw Error(f(440));return o.impl.apply(void 0,arguments)}}},ss={readContext:Me,use:nn,useCallback:sr,useContext:Me,useEffect:ts,useImperativeHandle:lr,useInsertionEffect:ar,useLayoutEffect:ir,useMemo:cr,useReducer:ln,useRef:er,useState:function(){return ln(Nt)},useDebugValue:os,useDeferredValue:function(e,t){var o=he();return ur(o,ae.memoizedState,e,t)},useTransition:function(){var e=ln(Nt)[0],t=he().memoizedState;return[typeof e=="boolean"?e:ei(e),t]},useSyncExternalStore:Nu,useId:gr,useHostTransitionStatus:ns,useFormState:Fu,useActionState:Fu,useOptimistic:function(e,t){var o=he();return Vu(o,ae,e,t)},useMemoCache:Xl,useCacheRefresh:fr};ss.useEffectEvent=or;var vr={readContext:Me,use:nn,useCallback:sr,useContext:Me,useEffect:ts,useImperativeHandle:lr,useInsertionEffect:ar,useLayoutEffect:ir,useMemo:cr,useReducer:Jl,useRef:er,useState:function(){return Jl(Nt)},useDebugValue:os,useDeferredValue:function(e,t){var o=he();return ae===null?as(o,e,t):ur(o,ae.memoizedState,e,t)},useTransition:function(){var e=Jl(Nt)[0],t=he().memoizedState;return[typeof e=="boolean"?e:ei(e),t]},useSyncExternalStore:Nu,useId:gr,useHostTransitionStatus:ns,useFormState:$u,useActionState:$u,useOptimistic:function(e,t){var o=he();return ae!==null?Vu(o,ae,e,t):(o.baseState=e,[e,o.queue.dispatch])},useMemoCache:Xl,useCacheRefresh:fr};vr.useEffectEvent=or;function cs(e,t,o,a){t=e.memoizedState,o=o(a,t),o=o==null?t:U({},t,o),e.memoizedState=o,e.lanes===0&&(e.updateQueue.baseState=o)}var us={enqueueSetState:function(e,t,o){e=e._reactInternals;var a=it(),i=io(a);i.payload=t,o!=null&&(i.callback=o),t=no(e,i,a),t!==null&&(Ke(t,e,a),Xa(t,e,a))},enqueueReplaceState:function(e,t,o){e=e._reactInternals;var a=it(),i=io(a);i.tag=1,i.payload=t,o!=null&&(i.callback=o),t=no(e,i,a),t!==null&&(Ke(t,e,a),Xa(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var o=it(),a=io(o);a.tag=2,t!=null&&(a.callback=t),t=no(e,a,o),t!==null&&(Ke(t,e,o),Xa(t,e,o))}};function Sr(e,t,o,a,i,n,l){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,n,l):t.prototype&&t.prototype.isPureReactComponent?!Qa(o,a)||!Qa(i,n):!0}function Ar(e,t,o,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(o,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(o,a),t.state!==e&&us.enqueueReplaceState(t,t.state,null)}function Io(e,t){var o=t;if("ref"in t){o={};for(var a in t)a!=="ref"&&(o[a]=t[a])}if(e=e.defaultProps){o===t&&(o=U({},o));for(var i in e)o[i]===void 0&&(o[i]=e[i])}return o}function Tr(e){_i(e)}function zr(e){console.error(e)}function Dr(e){_i(e)}function rn(e,t){try{var o=e.onUncaughtError;o(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Er(e,t,o){try{var a=e.onCaughtError;a(o.value,{componentStack:o.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(i){setTimeout(function(){throw i})}}function rs(e,t,o){return o=io(o),o.tag=3,o.payload={element:null},o.callback=function(){rn(e,t)},o}function wr(e){return e=io(e),e.tag=3,e}function xr(e,t,o,a){var i=o.type.getDerivedStateFromError;if(typeof i=="function"){var n=a.value;e.payload=function(){return i(n)},e.callback=function(){Er(t,o,a)}}var l=o.stateNode;l!==null&&typeof l.componentDidCatch=="function"&&(e.callback=function(){Er(t,o,a),typeof i!="function"&&(po===null?po=new Set([this]):po.add(this));var s=a.stack;this.componentDidCatch(a.value,{componentStack:s!==null?s:""})})}function cf(e,t,o,a,i){if(o.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=o.alternate,t!==null&&la(t,o,i,!0),o=et.current,o!==null){switch(o.tag){case 31:case 13:return ft===null?Tn():o.alternate===null&&ge===0&&(ge=3),o.flags&=-257,o.flags|=65536,o.lanes=i,a===Xi?o.flags|=16384:(t=o.updateQueue,t===null?o.updateQueue=new Set([a]):t.add(a),Hs(e,a,i)),!1;case 22:return o.flags|=65536,a===Xi?o.flags|=16384:(t=o.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},o.updateQueue=t):(o=t.retryQueue,o===null?t.retryQueue=new Set([a]):o.add(a)),Hs(e,a,i)),!1}throw Error(f(435,o.tag))}return Hs(e,a,i),Tn(),!1}if(W)return t=et.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=i,a!==Cl&&(e=Error(f(422),{cause:a}),Pa(rt(e,o)))):(a!==Cl&&(t=Error(f(423),{cause:a}),Pa(rt(t,o))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,a=rt(a,o),i=rs(e.stateNode,a,i),_l(e,i),ge!==4&&(ge=2)),!1;var n=Error(f(520),{cause:a});if(n=rt(n,o),ri===null?ri=[n]:ri.push(n),ge!==4&&(ge=2),t===null)return!0;a=rt(a,o),o=t;do{switch(o.tag){case 3:return o.flags|=65536,e=i&-i,o.lanes|=e,e=rs(o.stateNode,a,e),_l(o,e),!1;case 1:if(t=o.type,n=o.stateNode,(o.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||n!==null&&typeof n.componentDidCatch=="function"&&(po===null||!po.has(n))))return o.flags|=65536,i&=-i,o.lanes|=i,i=wr(i),xr(i,e,o,a),_l(o,i),!1}o=o.return}while(o!==null);return!1}var ps=Error(f(461)),Se=!1;function Ce(e,t,o,a){t.child=e===null?Ru(t,null,o,a):Bo(t,e.child,o,a)}function Mr(e,t,o,a,i){o=o.render;var n=t.ref;if("ref"in a){var l={};for(var s in a)s!=="ref"&&(l[s]=a[s])}else l=a;return Uo(t),a=Kl(e,t,o,l,n,i),s=jl(),e!==null&&!Se?(Wl(e,t,i),It(e,t,i)):(W&&s&&xl(t),t.flags|=1,Ce(e,t,a,i),t.child)}function Cr(e,t,o,a,i){if(e===null){var n=o.type;return typeof n=="function"&&!Dl(n)&&n.defaultProps===void 0&&o.compare===null?(t.tag=15,t.type=n,qr(e,t,n,a,i)):(e=Vi(o.type,null,a,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(n=e.child,!vs(e,i)){var l=n.memoizedProps;if(o=o.compare,o=o!==null?o:Qa,o(l,a)&&e.ref===t.ref)return It(e,t,i)}return t.flags|=1,e=Ut(n,a),e.ref=t.ref,e.return=t,t.child=e}function qr(e,t,o,a,i){if(e!==null){var n=e.memoizedProps;if(Qa(n,a)&&e.ref===t.ref)if(Se=!1,t.pendingProps=a=n,vs(e,i))(e.flags&131072)!==0&&(Se=!0);else return t.lanes=e.lanes,It(e,t,i)}return ds(e,t,o,a,i)}function Rr(e,t,o,a){var i=a.children,n=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(n=n!==null?n.baseLanes|o:o,e!==null){for(a=t.child=e.child,i=0;a!==null;)i=i|a.lanes|a.childLanes,a=a.sibling;a=i&~n}else a=0,t.child=null;return Lr(e,t,n,o,a)}if((o&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Wi(t,n!==null?n.cachePool:null),n!==null?Ou(t,n):Ql(),Hu(t);else return a=t.lanes=536870912,Lr(e,t,n!==null?n.baseLanes|o:o,o,a)}else n!==null?(Wi(t,n.cachePool),Ou(t,n),so(),t.memoizedState=null):(e!==null&&Wi(t,null),Ql(),so());return Ce(e,t,i,o),t.child}function ai(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Lr(e,t,o,a,i){var n=kl();return n=n===null?null:{parent:be._currentValue,pool:n},t.memoizedState={baseLanes:o,cachePool:n},e!==null&&Wi(t,null),Ql(),Hu(t),e!==null&&la(e,t,a,!0),t.childLanes=i,null}function pn(e,t){return t=gn({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Ur(e,t,o){return Bo(t,e.child,null,o),e=pn(t,t.pendingProps),e.flags|=2,tt(t),t.memoizedState=null,e}function uf(e,t,o){var a=t.pendingProps,i=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(W){if(a.mode==="hidden")return e=pn(t,a),t.lanes=536870912,ai(null,e);if(Vl(t),(e=ce)?(e=Pp(e,gt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:$t!==null?{id:Dt,overflow:Et}:null,retryLane:536870912,hydrationErrors:null},o=hu(e),o.return=t,t.child=o,xe=t,ce=null)):e=null,e===null)throw to(t);return t.lanes=536870912,null}return pn(t,a)}var n=e.memoizedState;if(n!==null){var l=n.dehydrated;if(Vl(t),i)if(t.flags&256)t.flags&=-257,t=Ur(e,t,o);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(f(558));else if(Se||la(e,t,o,!1),i=(o&e.childLanes)!==0,Se||i){if(a=se,a!==null&&(l=zc(a,o),l!==0&&l!==n.retryLane))throw n.retryLane=l,Co(e,l),Ke(a,e,l),ps;Tn(),t=Ur(e,t,o)}else e=n.treeContext,ce=mt(l.nextSibling),xe=t,W=!0,eo=null,gt=!1,e!==null&&vu(t,e),t=pn(t,a),t.flags|=4096;return t}return e=Ut(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function dn(e,t){var o=t.ref;if(o===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof o!="function"&&typeof o!="object")throw Error(f(284));(e===null||e.ref!==o)&&(t.flags|=4194816)}}function ds(e,t,o,a,i){return Uo(t),o=Kl(e,t,o,a,void 0,i),a=jl(),e!==null&&!Se?(Wl(e,t,i),It(e,t,i)):(W&&a&&xl(t),t.flags|=1,Ce(e,t,o,i),t.child)}function Or(e,t,o,a,i,n){return Uo(t),t.updateQueue=null,o=Bu(t,a,o,i),ku(e),a=jl(),e!==null&&!Se?(Wl(e,t,n),It(e,t,n)):(W&&a&&xl(t),t.flags|=1,Ce(e,t,o,n),t.child)}function Hr(e,t,o,a,i){if(Uo(t),t.stateNode===null){var n=oa,l=o.contextType;typeof l=="object"&&l!==null&&(n=Me(l)),n=new o(a,n),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=us,t.stateNode=n,n._reactInternals=t,n=t.stateNode,n.props=a,n.state=t.memoizedState,n.refs={},Nl(t),l=o.contextType,n.context=typeof l=="object"&&l!==null?Me(l):oa,n.state=t.memoizedState,l=o.getDerivedStateFromProps,typeof l=="function"&&(cs(t,o,l,a),n.state=t.memoizedState),typeof o.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(l=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),l!==n.state&&us.enqueueReplaceState(n,n.state,null),Ja(t,a,n,i),Fa(),n.state=t.memoizedState),typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){n=t.stateNode;var s=t.memoizedProps,c=Io(o,s);n.props=c;var g=n.context,y=o.contextType;l=oa,typeof y=="object"&&y!==null&&(l=Me(y));var A=o.getDerivedStateFromProps;y=typeof A=="function"||typeof n.getSnapshotBeforeUpdate=="function",s=t.pendingProps!==s,y||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(s||g!==l)&&Ar(t,n,a,l),ao=!1;var m=t.memoizedState;n.state=m,Ja(t,a,n,i),Fa(),g=t.memoizedState,s||m!==g||ao?(typeof A=="function"&&(cs(t,o,A,a),g=t.memoizedState),(c=ao||Sr(t,o,c,a,m,g,l))?(y||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount=="function"&&(t.flags|=4194308)):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=g),n.props=a,n.state=g,n.context=l,a=c):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{n=t.stateNode,Il(e,t),l=t.memoizedProps,y=Io(o,l),n.props=y,A=t.pendingProps,m=n.context,g=o.contextType,c=oa,typeof g=="object"&&g!==null&&(c=Me(g)),s=o.getDerivedStateFromProps,(g=typeof s=="function"||typeof n.getSnapshotBeforeUpdate=="function")||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(l!==A||m!==c)&&Ar(t,n,a,c),ao=!1,m=t.memoizedState,n.state=m,Ja(t,a,n,i),Fa();var h=t.memoizedState;l!==A||m!==h||ao||e!==null&&e.dependencies!==null&&Ki(e.dependencies)?(typeof s=="function"&&(cs(t,o,s,a),h=t.memoizedState),(y=ao||Sr(t,o,y,a,m,h,c)||e!==null&&e.dependencies!==null&&Ki(e.dependencies))?(g||typeof n.UNSAFE_componentWillUpdate!="function"&&typeof n.componentWillUpdate!="function"||(typeof n.componentWillUpdate=="function"&&n.componentWillUpdate(a,h,c),typeof n.UNSAFE_componentWillUpdate=="function"&&n.UNSAFE_componentWillUpdate(a,h,c)),typeof n.componentDidUpdate=="function"&&(t.flags|=4),typeof n.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof n.componentDidUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=h),n.props=a,n.state=h,n.context=c,a=y):(typeof n.componentDidUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(t.flags|=1024),a=!1)}return n=a,dn(e,t),a=(t.flags&128)!==0,n||a?(n=t.stateNode,o=a&&typeof o.getDerivedStateFromError!="function"?null:n.render(),t.flags|=1,e!==null&&a?(t.child=Bo(t,e.child,null,i),t.child=Bo(t,null,o,i)):Ce(e,t,o,i),t.memoizedState=n.state,e=t.child):e=It(e,t,i),e}function kr(e,t,o,a){return Ro(),t.flags|=256,Ce(e,t,o,a),t.child}var gs={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function fs(e){return{baseLanes:e,cachePool:Eu()}}function ms(e,t,o){return e=e!==null?e.childLanes&~o:0,t&&(e|=at),e}function Br(e,t,o){var a=t.pendingProps,i=!1,n=(t.flags&128)!==0,l;if((l=n)||(l=e!==null&&e.memoizedState===null?!1:(me.current&2)!==0),l&&(i=!0,t.flags&=-129),l=(t.flags&32)!==0,t.flags&=-33,e===null){if(W){if(i?lo(t):so(),(e=ce)?(e=Pp(e,gt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:$t!==null?{id:Dt,overflow:Et}:null,retryLane:536870912,hydrationErrors:null},o=hu(e),o.return=t,t.child=o,xe=t,ce=null)):e=null,e===null)throw to(t);return Fs(e)?t.lanes=32:t.lanes=536870912,null}var s=a.children;return a=a.fallback,i?(so(),i=t.mode,s=gn({mode:"hidden",children:s},i),a=qo(a,i,o,null),s.return=t,a.return=t,s.sibling=a,t.child=s,a=t.child,a.memoizedState=fs(o),a.childLanes=ms(e,l,o),t.memoizedState=gs,ai(null,a)):(lo(t),hs(t,s))}var c=e.memoizedState;if(c!==null&&(s=c.dehydrated,s!==null)){if(n)t.flags&256?(lo(t),t.flags&=-257,t=ys(e,t,o)):t.memoizedState!==null?(so(),t.child=e.child,t.flags|=128,t=null):(so(),s=a.fallback,i=t.mode,a=gn({mode:"visible",children:a.children},i),s=qo(s,i,o,null),s.flags|=2,a.return=t,s.return=t,a.sibling=s,t.child=a,Bo(t,e.child,null,o),a=t.child,a.memoizedState=fs(o),a.childLanes=ms(e,l,o),t.memoizedState=gs,t=ai(null,a));else if(lo(t),Fs(s)){if(l=s.nextSibling&&s.nextSibling.dataset,l)var g=l.dgst;l=g,a=Error(f(419)),a.stack="",a.digest=l,Pa({value:a,source:null,stack:null}),t=ys(e,t,o)}else if(Se||la(e,t,o,!1),l=(o&e.childLanes)!==0,Se||l){if(l=se,l!==null&&(a=zc(l,o),a!==0&&a!==c.retryLane))throw c.retryLane=a,Co(e,a),Ke(l,e,a),ps;Xs(s)||Tn(),t=ys(e,t,o)}else Xs(s)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,ce=mt(s.nextSibling),xe=t,W=!0,eo=null,gt=!1,e!==null&&vu(t,e),t=hs(t,a.children),t.flags|=4096);return t}return i?(so(),s=a.fallback,i=t.mode,c=e.child,g=c.sibling,a=Ut(c,{mode:"hidden",children:a.children}),a.subtreeFlags=c.subtreeFlags&65011712,g!==null?s=Ut(g,s):(s=qo(s,i,o,null),s.flags|=2),s.return=t,a.return=t,a.sibling=s,t.child=a,ai(null,a),a=t.child,s=e.child.memoizedState,s===null?s=fs(o):(i=s.cachePool,i!==null?(c=be._currentValue,i=i.parent!==c?{parent:c,pool:c}:i):i=Eu(),s={baseLanes:s.baseLanes|o,cachePool:i}),a.memoizedState=s,a.childLanes=ms(e,l,o),t.memoizedState=gs,ai(e.child,a)):(lo(t),o=e.child,e=o.sibling,o=Ut(o,{mode:"visible",children:a.children}),o.return=t,o.sibling=null,e!==null&&(l=t.deletions,l===null?(t.deletions=[e],t.flags|=16):l.push(e)),t.child=o,t.memoizedState=null,o)}function hs(e,t){return t=gn({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function gn(e,t){return e=$e(22,e,null,t),e.lanes=0,e}function ys(e,t,o){return Bo(t,e.child,null,o),e=hs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nr(e,t,o){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Ll(e.return,t,o)}function bs(e,t,o,a,i,n){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:o,tailMode:i,treeForkCount:n}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=a,l.tail=o,l.tailMode=i,l.treeForkCount=n)}function Ir(e,t,o){var a=t.pendingProps,i=a.revealOrder,n=a.tail;a=a.children;var l=me.current,s=(l&2)!==0;if(s?(l=l&1|2,t.flags|=128):l&=1,E(me,l),Ce(e,t,a,o),a=W?Va:0,!s&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nr(e,o,t);else if(e.tag===19)Nr(e,o,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}switch(i){case"forwards":for(o=t.child,i=null;o!==null;)e=o.alternate,e!==null&&en(e)===null&&(i=o),o=o.sibling;o=i,o===null?(i=t.child,t.child=null):(i=o.sibling,o.sibling=null),bs(t,!1,i,o,n,a);break;case"backwards":case"unstable_legacy-backwards":for(o=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&en(e)===null){t.child=i;break}e=i.sibling,i.sibling=o,o=i,i=e}bs(t,!0,o,null,n,a);break;case"together":bs(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function It(e,t,o){if(e!==null&&(t.dependencies=e.dependencies),ro|=t.lanes,(o&t.childLanes)===0)if(e!==null){if(la(e,t,o,!1),(o&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(f(153));if(t.child!==null){for(e=t.child,o=Ut(e,e.pendingProps),t.child=o,o.return=t;e.sibling!==null;)e=e.sibling,o=o.sibling=Ut(e,e.pendingProps),o.return=t;o.sibling=null}return t.child}function vs(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Ki(e)))}function rf(e,t,o){switch(t.tag){case 3:Oe(t,t.stateNode.containerInfo),oo(t,be,e.memoizedState.cache),Ro();break;case 27:case 5:Ca(t);break;case 4:Oe(t,t.stateNode.containerInfo);break;case 10:oo(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Vl(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(lo(t),t.flags|=128,null):(o&t.child.childLanes)!==0?Br(e,t,o):(lo(t),e=It(e,t,o),e!==null?e.sibling:null);lo(t);break;case 19:var i=(e.flags&128)!==0;if(a=(o&t.childLanes)!==0,a||(la(e,t,o,!1),a=(o&t.childLanes)!==0),i){if(a)return Ir(e,t,o);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),E(me,me.current),a)break;return null;case 22:return t.lanes=0,Rr(e,t,o,t.pendingProps);case 24:oo(t,be,e.memoizedState.cache)}return It(e,t,o)}function _r(e,t,o){if(e!==null)if(e.memoizedProps!==t.pendingProps)Se=!0;else{if(!vs(e,o)&&(t.flags&128)===0)return Se=!1,rf(e,t,o);Se=(e.flags&131072)!==0}else Se=!1,W&&(t.flags&1048576)!==0&&bu(t,Va,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=Ho(t.elementType),t.type=e,typeof e=="function")Dl(e)?(a=Io(e,a),t.tag=1,t=Hr(null,t,e,a,o)):(t.tag=0,t=ds(null,t,e,a,o));else{if(e!=null){var i=e.$$typeof;if(i===lt){t.tag=11,t=Mr(null,t,e,a,o);break e}else if(i===j){t.tag=14,t=Cr(null,t,e,a,o);break e}}throw t=Ct(e)||e,Error(f(306,t,""))}}return t;case 0:return ds(e,t,t.type,t.pendingProps,o);case 1:return a=t.type,i=Io(a,t.pendingProps),Hr(e,t,a,i,o);case 3:e:{if(Oe(t,t.stateNode.containerInfo),e===null)throw Error(f(387));a=t.pendingProps;var n=t.memoizedState;i=n.element,Il(e,t),Ja(t,a,null,o);var l=t.memoizedState;if(a=l.cache,oo(t,be,a),a!==n.cache&&Ul(t,[be],o,!0),Fa(),a=l.element,n.isDehydrated)if(n={element:a,isDehydrated:!1,cache:l.cache},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){t=kr(e,t,a,o);break e}else if(a!==i){i=rt(Error(f(424)),t),Pa(i),t=kr(e,t,a,o);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(ce=mt(e.firstChild),xe=t,W=!0,eo=null,gt=!0,o=Ru(t,null,a,o),t.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling}else{if(Ro(),a===i){t=It(e,t,o);break e}Ce(e,t,a,o)}t=t.child}return t;case 26:return dn(e,t),e===null?(o=Fp(t.type,null,t.pendingProps,null))?t.memoizedState=o:W||(o=t.type,e=t.pendingProps,a=Cn(Q.current).createElement(o),a[we]=t,a[_e]=e,qe(a,o,e),ze(a),t.stateNode=a):t.memoizedState=Fp(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ca(t),e===null&&W&&(a=t.stateNode=Wp(t.type,t.pendingProps,Q.current),xe=t,gt=!0,i=ce,ho(t.type)?(Js=i,ce=mt(a.firstChild)):ce=i),Ce(e,t,t.pendingProps.children,o),dn(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&W&&((i=a=ce)&&(a=_f(a,t.type,t.pendingProps,gt),a!==null?(t.stateNode=a,xe=t,ce=mt(a.firstChild),gt=!1,i=!0):i=!1),i||to(t)),Ca(t),i=t.type,n=t.pendingProps,l=e!==null?e.memoizedProps:null,a=n.children,js(i,n)?a=null:l!==null&&js(i,l)&&(t.flags|=32),t.memoizedState!==null&&(i=Kl(e,t,ef,null,null,o),bi._currentValue=i),dn(e,t),Ce(e,t,a,o),t.child;case 6:return e===null&&W&&((e=o=ce)&&(o=Yf(o,t.pendingProps,gt),o!==null?(t.stateNode=o,xe=t,ce=null,e=!0):e=!1),e||to(t)),null;case 13:return Br(e,t,o);case 4:return Oe(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Bo(t,null,a,o):Ce(e,t,a,o),t.child;case 11:return Mr(e,t,t.type,t.pendingProps,o);case 7:return Ce(e,t,t.pendingProps,o),t.child;case 8:return Ce(e,t,t.pendingProps.children,o),t.child;case 12:return Ce(e,t,t.pendingProps.children,o),t.child;case 10:return a=t.pendingProps,oo(t,t.type,a.value),Ce(e,t,a.children,o),t.child;case 9:return i=t.type._context,a=t.pendingProps.children,Uo(t),i=Me(i),a=a(i),t.flags|=1,Ce(e,t,a,o),t.child;case 14:return Cr(e,t,t.type,t.pendingProps,o);case 15:return qr(e,t,t.type,t.pendingProps,o);case 19:return Ir(e,t,o);case 31:return uf(e,t,o);case 22:return Rr(e,t,o,t.pendingProps);case 24:return Uo(t),a=Me(be),e===null?(i=kl(),i===null&&(i=se,n=Ol(),i.pooledCache=n,n.refCount++,n!==null&&(i.pooledCacheLanes|=o),i=n),t.memoizedState={parent:a,cache:i},Nl(t),oo(t,be,i)):((e.lanes&o)!==0&&(Il(e,t),Ja(t,null,null,o),Fa()),i=e.memoizedState,n=t.memoizedState,i.parent!==a?(i={parent:a,cache:a},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),oo(t,be,a)):(a=n.cache,oo(t,be,a),a!==i.cache&&Ul(t,[be],o,!0))),Ce(e,t,t.pendingProps.children,o),t.child;case 29:throw t.pendingProps}throw Error(f(156,t.tag))}function _t(e){e.flags|=4}function Ss(e,t,o,a,i){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(gp())e.flags|=8192;else throw ko=Xi,Bl}else e.flags&=-16777217}function Yr(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!od(t))if(gp())e.flags|=8192;else throw ko=Xi,Bl}function fn(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Sc():536870912,e.lanes|=t,ba|=t)}function ii(e,t){if(!W)switch(e.tailMode){case"hidden":t=e.tail;for(var o=null;t!==null;)t.alternate!==null&&(o=t),t=t.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var a=null;o!==null;)o.alternate!==null&&(a=o),o=o.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function ue(e){var t=e.alternate!==null&&e.alternate.child===e.child,o=0,a=0;if(t)for(var i=e.child;i!==null;)o|=i.lanes|i.childLanes,a|=i.subtreeFlags&65011712,a|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)o|=i.lanes|i.childLanes,a|=i.subtreeFlags,a|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=a,e.childLanes=o,t}function pf(e,t,o){var a=t.pendingProps;switch(Ml(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ue(t),null;case 1:return ue(t),null;case 3:return o=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),kt(be),fe(),o.pendingContext&&(o.context=o.pendingContext,o.pendingContext=null),(e===null||e.child===null)&&(na(t)?_t(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,ql())),ue(t),null;case 26:var i=t.type,n=t.memoizedState;return e===null?(_t(t),n!==null?(ue(t),Yr(t,n)):(ue(t),Ss(t,i,null,a,o))):n?n!==e.memoizedState?(_t(t),ue(t),Yr(t,n)):(ue(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&_t(t),ue(t),Ss(t,i,e,a,o)),null;case 27:if(Di(t),o=Q.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&_t(t);else{if(!a){if(t.stateNode===null)throw Error(f(166));return ue(t),null}e=M.current,na(t)?Su(t):(e=Wp(i,a,o),t.stateNode=e,_t(t))}return ue(t),null;case 5:if(Di(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&_t(t);else{if(!a){if(t.stateNode===null)throw Error(f(166));return ue(t),null}if(n=M.current,na(t))Su(t);else{var l=Cn(Q.current);switch(n){case 1:n=l.createElementNS("http://www.w3.org/2000/svg",i);break;case 2:n=l.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;default:switch(i){case"svg":n=l.createElementNS("http://www.w3.org/2000/svg",i);break;case"math":n=l.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;case"script":n=l.createElement("div"),n.innerHTML="<script><\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof a.is=="string"?l.createElement("select",{is:a.is}):l.createElement("select"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is=="string"?l.createElement(i,{is:a.is}):l.createElement(i)}}n[we]=t,n[_e]=a;e:for(l=t.child;l!==null;){if(l.tag===5||l.tag===6)n.appendChild(l.stateNode);else if(l.tag!==4&&l.tag!==27&&l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break e;for(;l.sibling===null;){if(l.return===null||l.return===t)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}t.stateNode=n;e:switch(qe(n,i,a),i){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&_t(t)}}return ue(t),Ss(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,o),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&_t(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(f(166));if(e=Q.current,na(t)){if(e=t.stateNode,o=t.memoizedProps,a=null,i=xe,i!==null)switch(i.tag){case 27:case 5:a=i.memoizedProps}e[we]=t,e=!!(e.nodeValue===o||a!==null&&a.suppressHydrationWarning===!0||Bp(e.nodeValue,o)),e||to(t,!0)}else e=Cn(e).createTextNode(a),e[we]=t,t.stateNode=e}return ue(t),null;case 31:if(o=t.memoizedState,e===null||e.memoizedState!==null){if(a=na(t),o!==null){if(e===null){if(!a)throw Error(f(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(f(557));e[we]=t}else Ro(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ue(t),e=!1}else o=ql(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),e=!0;if(!e)return t.flags&256?(tt(t),t):(tt(t),null);if((t.flags&128)!==0)throw Error(f(558))}return ue(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=na(t),a!==null&&a.dehydrated!==null){if(e===null){if(!i)throw Error(f(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(f(317));i[we]=t}else Ro(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ue(t),i=!1}else i=ql(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(tt(t),t):(tt(t),null)}return tt(t),(t.flags&128)!==0?(t.lanes=o,t):(o=a!==null,e=e!==null&&e.memoizedState!==null,o&&(a=t.child,i=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(i=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==i&&(a.flags|=2048)),o!==e&&o&&(t.child.flags|=8192),fn(t,t.updateQueue),ue(t),null);case 4:return fe(),e===null&&Qs(t.stateNode.containerInfo),ue(t),null;case 10:return kt(t.type),ue(t),null;case 19:if(T(me),a=t.memoizedState,a===null)return ue(t),null;if(i=(t.flags&128)!==0,n=a.rendering,n===null)if(i)ii(a,!1);else{if(ge!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(n=en(e),n!==null){for(t.flags|=128,ii(a,!1),e=n.updateQueue,t.updateQueue=e,fn(t,e),t.subtreeFlags=0,e=o,o=t.child;o!==null;)mu(o,e),o=o.sibling;return E(me,me.current&1|2),W&&Ot(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&Ze()>vn&&(t.flags|=128,i=!0,ii(a,!1),t.lanes=4194304)}else{if(!i)if(e=en(n),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,fn(t,e),ii(a,!0),a.tail===null&&a.tailMode==="hidden"&&!n.alternate&&!W)return ue(t),null}else 2*Ze()-a.renderingStartTime>vn&&o!==536870912&&(t.flags|=128,i=!0,ii(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(e=a.last,e!==null?e.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Ze(),e.sibling=null,o=me.current,E(me,i?o&1|2:o&1),W&&Ot(t,a.treeForkCount),e):(ue(t),null);case 22:case 23:return tt(t),Gl(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(o&536870912)!==0&&(t.flags&128)===0&&(ue(t),t.subtreeFlags&6&&(t.flags|=8192)):ue(t),o=t.updateQueue,o!==null&&fn(t,o.retryQueue),o=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(o=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==o&&(t.flags|=2048),e!==null&&T(Oo),null;case 24:return o=null,e!==null&&(o=e.memoizedState.cache),t.memoizedState.cache!==o&&(t.flags|=2048),kt(be),ue(t),null;case 25:return null;case 30:return null}throw Error(f(156,t.tag))}function df(e,t){switch(Ml(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return kt(be),fe(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Di(t),null;case 31:if(t.memoizedState!==null){if(tt(t),t.alternate===null)throw Error(f(340));Ro()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(tt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(f(340));Ro()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return T(me),null;case 4:return fe(),null;case 10:return kt(t.type),null;case 22:case 23:return tt(t),Gl(),e!==null&&T(Oo),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return kt(be),null;case 25:return null;default:return null}}function Qr(e,t){switch(Ml(t),t.tag){case 3:kt(be),fe();break;case 26:case 27:case 5:Di(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&tt(t);break;case 13:tt(t);break;case 19:T(me);break;case 10:kt(t.type);break;case 22:case 23:tt(t),Gl(),e!==null&&T(Oo);break;case 24:kt(be)}}function ni(e,t){try{var o=t.updateQueue,a=o!==null?o.lastEffect:null;if(a!==null){var i=a.next;o=i;do{if((o.tag&e)===e){a=void 0;var n=o.create,l=o.inst;a=n(),l.destroy=a}o=o.next}while(o!==i)}}catch(s){te(t,t.return,s)}}function co(e,t,o){try{var a=t.updateQueue,i=a!==null?a.lastEffect:null;if(i!==null){var n=i.next;a=n;do{if((a.tag&e)===e){var l=a.inst,s=l.destroy;if(s!==void 0){l.destroy=void 0,i=t;var c=o,g=s;try{g()}catch(y){te(i,c,y)}}}a=a.next}while(a!==n)}}catch(y){te(t,t.return,y)}}function Gr(e){var t=e.updateQueue;if(t!==null){var o=e.stateNode;try{Uu(t,o)}catch(a){te(e,e.return,a)}}}function Vr(e,t,o){o.props=Io(e.type,e.memoizedProps),o.state=e.memoizedState;try{o.componentWillUnmount()}catch(a){te(e,t,a)}}function li(e,t){try{var o=e.ref;if(o!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof o=="function"?e.refCleanup=o(a):o.current=a}}catch(i){te(e,t,i)}}function wt(e,t){var o=e.ref,a=e.refCleanup;if(o!==null)if(typeof a=="function")try{a()}catch(i){te(e,t,i)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof o=="function")try{o(null)}catch(i){te(e,t,i)}else o.current=null}function Pr(e){var t=e.type,o=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":o.autoFocus&&a.focus();break e;case"img":o.src?a.src=o.src:o.srcSet&&(a.srcset=o.srcSet)}}catch(i){te(e,e.return,i)}}function As(e,t,o){try{var a=e.stateNode;Of(a,e.type,o,t),a[_e]=t}catch(i){te(e,e.return,i)}}function Kr(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ho(e.type)||e.tag===4}function Ts(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Kr(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.tag===27&&ho(e.type)||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 zs(e,t,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o).insertBefore(e,t):(t=o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o,t.appendChild(e),o=o._reactRootContainer,o!=null||t.onclick!==null||(t.onclick=Rt));else if(a!==4&&(a===27&&ho(e.type)&&(o=e.stateNode,t=null),e=e.child,e!==null))for(zs(e,t,o),e=e.sibling;e!==null;)zs(e,t,o),e=e.sibling}function mn(e,t,o){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?o.insertBefore(e,t):o.appendChild(e);else if(a!==4&&(a===27&&ho(e.type)&&(o=e.stateNode),e=e.child,e!==null))for(mn(e,t,o),e=e.sibling;e!==null;)mn(e,t,o),e=e.sibling}function jr(e){var t=e.stateNode,o=e.memoizedProps;try{for(var a=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);qe(t,a,o),t[we]=e,t[_e]=o}catch(n){te(e,e.return,n)}}var Yt=!1,Ae=!1,Ds=!1,Wr=typeof WeakSet=="function"?WeakSet:Set,De=null;function gf(e,t){if(e=e.containerInfo,Ps=kn,e=lu(e),yl(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var a=o.getSelection&&o.getSelection();if(a&&a.rangeCount!==0){o=a.anchorNode;var i=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{o.nodeType,n.nodeType}catch{o=null;break e}var l=0,s=-1,c=-1,g=0,y=0,A=e,m=null;t:for(;;){for(var h;A!==o||i!==0&&A.nodeType!==3||(s=l+i),A!==n||a!==0&&A.nodeType!==3||(c=l+a),A.nodeType===3&&(l+=A.nodeValue.length),(h=A.firstChild)!==null;)m=A,A=h;for(;;){if(A===e)break t;if(m===o&&++g===i&&(s=l),m===n&&++y===a&&(c=l),(h=A.nextSibling)!==null)break;A=m,m=A.parentNode}A=h}o=s===-1||c===-1?null:{start:s,end:c}}else o=null}o=o||{start:0,end:0}}else o=null;for(Ks={focusedElem:e,selectionRange:o},kn=!1,De=t;De!==null;)if(t=De,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,De=e;else for(;De!==null;){switch(t=De,n=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(o=0;o<e.length;o++)i=e[o],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&n!==null){e=void 0,o=t,i=n.memoizedProps,n=n.memoizedState,a=o.stateNode;try{var x=Io(o.type,i);e=a.getSnapshotBeforeUpdate(x,n),a.__reactInternalSnapshotBeforeUpdate=e}catch(L){te(o,o.return,L)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,o=e.nodeType,o===9)Zs(e);else if(o===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Zs(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(f(163))}if(e=t.sibling,e!==null){e.return=t.return,De=e;break}De=t.return}}function Zr(e,t,o){var a=o.flags;switch(o.tag){case 0:case 11:case 15:Gt(e,o),a&4&&ni(5,o);break;case 1:if(Gt(e,o),a&4)if(e=o.stateNode,t===null)try{e.componentDidMount()}catch(l){te(o,o.return,l)}else{var i=Io(o.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(l){te(o,o.return,l)}}a&64&&Gr(o),a&512&&li(o,o.return);break;case 3:if(Gt(e,o),a&64&&(e=o.updateQueue,e!==null)){if(t=null,o.child!==null)switch(o.child.tag){case 27:case 5:t=o.child.stateNode;break;case 1:t=o.child.stateNode}try{Uu(e,t)}catch(l){te(o,o.return,l)}}break;case 27:t===null&&a&4&&jr(o);case 26:case 5:Gt(e,o),t===null&&a&4&&Pr(o),a&512&&li(o,o.return);break;case 12:Gt(e,o);break;case 31:Gt(e,o),a&4&&Jr(e,o);break;case 13:Gt(e,o),a&4&&$r(e,o),a&64&&(e=o.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(o=Tf.bind(null,o),Qf(e,o))));break;case 22:if(a=o.memoizedState!==null||Yt,!a){t=t!==null&&t.memoizedState!==null||Ae,i=Yt;var n=Ae;Yt=a,(Ae=t)&&!n?Vt(e,o,(o.subtreeFlags&8772)!==0):Gt(e,o),Yt=i,Ae=n}break;case 30:break;default:Gt(e,o)}}function Xr(e){var t=e.alternate;t!==null&&(e.alternate=null,Xr(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&el(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var pe=null,Qe=!1;function Qt(e,t,o){for(o=o.child;o!==null;)Fr(e,t,o),o=o.sibling}function Fr(e,t,o){if(Xe&&typeof Xe.onCommitFiberUnmount=="function")try{Xe.onCommitFiberUnmount(qa,o)}catch{}switch(o.tag){case 26:Ae||wt(o,t),Qt(e,t,o),o.memoizedState?o.memoizedState.count--:o.stateNode&&(o=o.stateNode,o.parentNode.removeChild(o));break;case 27:Ae||wt(o,t);var a=pe,i=Qe;ho(o.type)&&(pe=o.stateNode,Qe=!1),Qt(e,t,o),mi(o.stateNode),pe=a,Qe=i;break;case 5:Ae||wt(o,t);case 6:if(a=pe,i=Qe,pe=null,Qt(e,t,o),pe=a,Qe=i,pe!==null)if(Qe)try{(pe.nodeType===9?pe.body:pe.nodeName==="HTML"?pe.ownerDocument.body:pe).removeChild(o.stateNode)}catch(n){te(o,t,n)}else try{pe.removeChild(o.stateNode)}catch(n){te(o,t,n)}break;case 18:pe!==null&&(Qe?(e=pe,Gp(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,o.stateNode),wa(e)):Gp(pe,o.stateNode));break;case 4:a=pe,i=Qe,pe=o.stateNode.containerInfo,Qe=!0,Qt(e,t,o),pe=a,Qe=i;break;case 0:case 11:case 14:case 15:co(2,o,t),Ae||co(4,o,t),Qt(e,t,o);break;case 1:Ae||(wt(o,t),a=o.stateNode,typeof a.componentWillUnmount=="function"&&Vr(o,t,a)),Qt(e,t,o);break;case 21:Qt(e,t,o);break;case 22:Ae=(a=Ae)||o.memoizedState!==null,Qt(e,t,o),Ae=a;break;default:Qt(e,t,o)}}function Jr(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{wa(e)}catch(o){te(t,t.return,o)}}}function $r(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{wa(e)}catch(o){te(t,t.return,o)}}function ff(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Wr),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Wr),t;default:throw Error(f(435,e.tag))}}function hn(e,t){var o=ff(e);t.forEach(function(a){if(!o.has(a)){o.add(a);var i=zf.bind(null,e,a);a.then(i,i)}})}function Ge(e,t){var o=t.deletions;if(o!==null)for(var a=0;a<o.length;a++){var i=o[a],n=e,l=t,s=l;e:for(;s!==null;){switch(s.tag){case 27:if(ho(s.type)){pe=s.stateNode,Qe=!1;break e}break;case 5:pe=s.stateNode,Qe=!1;break e;case 3:case 4:pe=s.stateNode.containerInfo,Qe=!0;break e}s=s.return}if(pe===null)throw Error(f(160));Fr(n,l,i),pe=null,Qe=!1,n=i.alternate,n!==null&&(n.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)ep(t,e),t=t.sibling}var vt=null;function ep(e,t){var o=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Ge(t,e),Ve(e),a&4&&(co(3,e,e.return),ni(3,e),co(5,e,e.return));break;case 1:Ge(t,e),Ve(e),a&512&&(Ae||o===null||wt(o,o.return)),a&64&&Yt&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(o=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=o===null?a:o.concat(a))));break;case 26:var i=vt;if(Ge(t,e),Ve(e),a&512&&(Ae||o===null||wt(o,o.return)),a&4){var n=o!==null?o.memoizedState:null;if(a=e.memoizedState,o===null)if(a===null)if(e.stateNode===null){e:{a=e.type,o=e.memoizedProps,i=i.ownerDocument||i;t:switch(a){case"title":n=i.getElementsByTagName("title")[0],(!n||n[Ua]||n[we]||n.namespaceURI==="http://www.w3.org/2000/svg"||n.hasAttribute("itemprop"))&&(n=i.createElement(a),i.head.insertBefore(n,i.querySelector("head > title"))),qe(n,a,o),n[we]=e,ze(n),a=n;break e;case"link":var l=ed("link","href",i).get(a+(o.href||""));if(l){for(var s=0;s<l.length;s++)if(n=l[s],n.getAttribute("href")===(o.href==null||o.href===""?null:o.href)&&n.getAttribute("rel")===(o.rel==null?null:o.rel)&&n.getAttribute("title")===(o.title==null?null:o.title)&&n.getAttribute("crossorigin")===(o.crossOrigin==null?null:o.crossOrigin)){l.splice(s,1);break t}}n=i.createElement(a),qe(n,a,o),i.head.appendChild(n);break;case"meta":if(l=ed("meta","content",i).get(a+(o.content||""))){for(s=0;s<l.length;s++)if(n=l[s],n.getAttribute("content")===(o.content==null?null:""+o.content)&&n.getAttribute("name")===(o.name==null?null:o.name)&&n.getAttribute("property")===(o.property==null?null:o.property)&&n.getAttribute("http-equiv")===(o.httpEquiv==null?null:o.httpEquiv)&&n.getAttribute("charset")===(o.charSet==null?null:o.charSet)){l.splice(s,1);break t}}n=i.createElement(a),qe(n,a,o),i.head.appendChild(n);break;default:throw Error(f(468,a))}n[we]=e,ze(n),a=n}e.stateNode=a}else td(i,e.type,e.stateNode);else e.stateNode=$p(i,a,e.memoizedProps);else n!==a?(n===null?o.stateNode!==null&&(o=o.stateNode,o.parentNode.removeChild(o)):n.count--,a===null?td(i,e.type,e.stateNode):$p(i,a,e.memoizedProps)):a===null&&e.stateNode!==null&&As(e,e.memoizedProps,o.memoizedProps)}break;case 27:Ge(t,e),Ve(e),a&512&&(Ae||o===null||wt(o,o.return)),o!==null&&a&4&&As(e,e.memoizedProps,o.memoizedProps);break;case 5:if(Ge(t,e),Ve(e),a&512&&(Ae||o===null||wt(o,o.return)),e.flags&32){i=e.stateNode;try{Zo(i,"")}catch(x){te(e,e.return,x)}}a&4&&e.stateNode!=null&&(i=e.memoizedProps,As(e,i,o!==null?o.memoizedProps:i)),a&1024&&(Ds=!0);break;case 6:if(Ge(t,e),Ve(e),a&4){if(e.stateNode===null)throw Error(f(162));a=e.memoizedProps,o=e.stateNode;try{o.nodeValue=a}catch(x){te(e,e.return,x)}}break;case 3:if(Ln=null,i=vt,vt=qn(t.containerInfo),Ge(t,e),vt=i,Ve(e),a&4&&o!==null&&o.memoizedState.isDehydrated)try{wa(t.containerInfo)}catch(x){te(e,e.return,x)}Ds&&(Ds=!1,tp(e));break;case 4:a=vt,vt=qn(e.stateNode.containerInfo),Ge(t,e),Ve(e),vt=a;break;case 12:Ge(t,e),Ve(e);break;case 31:Ge(t,e),Ve(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,hn(e,a)));break;case 13:Ge(t,e),Ve(e),e.child.flags&8192&&e.memoizedState!==null!=(o!==null&&o.memoizedState!==null)&&(bn=Ze()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,hn(e,a)));break;case 22:i=e.memoizedState!==null;var c=o!==null&&o.memoizedState!==null,g=Yt,y=Ae;if(Yt=g||i,Ae=y||c,Ge(t,e),Ae=y,Yt=g,Ve(e),a&8192)e:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(o===null||c||Yt||Ae||_o(e)),o=null,t=e;;){if(t.tag===5||t.tag===26){if(o===null){c=o=t;try{if(n=c.stateNode,i)l=n.style,typeof l.setProperty=="function"?l.setProperty("display","none","important"):l.display="none";else{s=c.stateNode;var A=c.memoizedProps.style,m=A!=null&&A.hasOwnProperty("display")?A.display:null;s.style.display=m==null||typeof m=="boolean"?"":(""+m).trim()}}catch(x){te(c,c.return,x)}}}else if(t.tag===6){if(o===null){c=t;try{c.stateNode.nodeValue=i?"":c.memoizedProps}catch(x){te(c,c.return,x)}}}else if(t.tag===18){if(o===null){c=t;try{var h=c.stateNode;i?Vp(h,!0):Vp(c.stateNode,!1)}catch(x){te(c,c.return,x)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;o===t&&(o=null),t=t.return}o===t&&(o=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(o=a.retryQueue,o!==null&&(a.retryQueue=null,hn(e,o))));break;case 19:Ge(t,e),Ve(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,hn(e,a)));break;case 30:break;case 21:break;default:Ge(t,e),Ve(e)}}function Ve(e){var t=e.flags;if(t&2){try{for(var o,a=e.return;a!==null;){if(Kr(a)){o=a;break}a=a.return}if(o==null)throw Error(f(160));switch(o.tag){case 27:var i=o.stateNode,n=Ts(e);mn(e,n,i);break;case 5:var l=o.stateNode;o.flags&32&&(Zo(l,""),o.flags&=-33);var s=Ts(e);mn(e,s,l);break;case 3:case 4:var c=o.stateNode.containerInfo,g=Ts(e);zs(e,g,c);break;default:throw Error(f(161))}}catch(y){te(e,e.return,y)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function tp(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;tp(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Gt(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Zr(e,t.alternate,t),t=t.sibling}function _o(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:co(4,t,t.return),_o(t);break;case 1:wt(t,t.return);var o=t.stateNode;typeof o.componentWillUnmount=="function"&&Vr(t,t.return,o),_o(t);break;case 27:mi(t.stateNode);case 26:case 5:wt(t,t.return),_o(t);break;case 22:t.memoizedState===null&&_o(t);break;case 30:_o(t);break;default:_o(t)}e=e.sibling}}function Vt(e,t,o){for(o=o&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,i=e,n=t,l=n.flags;switch(n.tag){case 0:case 11:case 15:Vt(i,n,o),ni(4,n);break;case 1:if(Vt(i,n,o),a=n,i=a.stateNode,typeof i.componentDidMount=="function")try{i.componentDidMount()}catch(g){te(a,a.return,g)}if(a=n,i=a.updateQueue,i!==null){var s=a.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Lu(c[i],s)}catch(g){te(a,a.return,g)}}o&&l&64&&Gr(n),li(n,n.return);break;case 27:jr(n);case 26:case 5:Vt(i,n,o),o&&a===null&&l&4&&Pr(n),li(n,n.return);break;case 12:Vt(i,n,o);break;case 31:Vt(i,n,o),o&&l&4&&Jr(i,n);break;case 13:Vt(i,n,o),o&&l&4&&$r(i,n);break;case 22:n.memoizedState===null&&Vt(i,n,o),li(n,n.return);break;case 30:break;default:Vt(i,n,o)}t=t.sibling}}function Es(e,t){var o=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(o=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==o&&(e!=null&&e.refCount++,o!=null&&Ka(o))}function ws(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ka(e))}function St(e,t,o,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)op(e,t,o,a),t=t.sibling}function op(e,t,o,a){var i=t.flags;switch(t.tag){case 0:case 11:case 15:St(e,t,o,a),i&2048&&ni(9,t);break;case 1:St(e,t,o,a);break;case 3:St(e,t,o,a),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ka(e)));break;case 12:if(i&2048){St(e,t,o,a),e=t.stateNode;try{var n=t.memoizedProps,l=n.id,s=n.onPostCommit;typeof s=="function"&&s(l,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(c){te(t,t.return,c)}}else St(e,t,o,a);break;case 31:St(e,t,o,a);break;case 13:St(e,t,o,a);break;case 23:break;case 22:n=t.stateNode,l=t.alternate,t.memoizedState!==null?n._visibility&2?St(e,t,o,a):si(e,t):n._visibility&2?St(e,t,o,a):(n._visibility|=2,ma(e,t,o,a,(t.subtreeFlags&10256)!==0||!1)),i&2048&&Es(l,t);break;case 24:St(e,t,o,a),i&2048&&ws(t.alternate,t);break;default:St(e,t,o,a)}}function ma(e,t,o,a,i){for(i=i&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var n=e,l=t,s=o,c=a,g=l.flags;switch(l.tag){case 0:case 11:case 15:ma(n,l,s,c,i),ni(8,l);break;case 23:break;case 22:var y=l.stateNode;l.memoizedState!==null?y._visibility&2?ma(n,l,s,c,i):si(n,l):(y._visibility|=2,ma(n,l,s,c,i)),i&&g&2048&&Es(l.alternate,l);break;case 24:ma(n,l,s,c,i),i&&g&2048&&ws(l.alternate,l);break;default:ma(n,l,s,c,i)}t=t.sibling}}function si(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var o=e,a=t,i=a.flags;switch(a.tag){case 22:si(o,a),i&2048&&Es(a.alternate,a);break;case 24:si(o,a),i&2048&&ws(a.alternate,a);break;default:si(o,a)}t=t.sibling}}var ci=8192;function ha(e,t,o){if(e.subtreeFlags&ci)for(e=e.child;e!==null;)ap(e,t,o),e=e.sibling}function ap(e,t,o){switch(e.tag){case 26:ha(e,t,o),e.flags&ci&&e.memoizedState!==null&&em(o,vt,e.memoizedState,e.memoizedProps);break;case 5:ha(e,t,o);break;case 3:case 4:var a=vt;vt=qn(e.stateNode.containerInfo),ha(e,t,o),vt=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=ci,ci=16777216,ha(e,t,o),ci=a):ha(e,t,o));break;default:ha(e,t,o)}}function ip(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function ui(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var o=0;o<t.length;o++){var a=t[o];De=a,lp(a,e)}ip(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)np(e),e=e.sibling}function np(e){switch(e.tag){case 0:case 11:case 15:ui(e),e.flags&2048&&co(9,e,e.return);break;case 3:ui(e);break;case 12:ui(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,yn(e)):ui(e);break;default:ui(e)}}function yn(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var o=0;o<t.length;o++){var a=t[o];De=a,lp(a,e)}ip(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:co(8,t,t.return),yn(t);break;case 22:o=t.stateNode,o._visibility&2&&(o._visibility&=-3,yn(t));break;default:yn(t)}e=e.sibling}}function lp(e,t){for(;De!==null;){var o=De;switch(o.tag){case 0:case 11:case 15:co(8,o,t);break;case 23:case 22:if(o.memoizedState!==null&&o.memoizedState.cachePool!==null){var a=o.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Ka(o.memoizedState.cache)}if(a=o.child,a!==null)a.return=o,De=a;else e:for(o=e;De!==null;){a=De;var i=a.sibling,n=a.return;if(Xr(a),a===o){De=null;break e}if(i!==null){i.return=n,De=i;break e}De=n}}}var mf={getCacheForType:function(e){var t=Me(be),o=t.data.get(e);return o===void 0&&(o=e(),t.data.set(e,o)),o},cacheSignal:function(){return Me(be).controller.signal}},hf=typeof WeakMap=="function"?WeakMap:Map,F=0,se=null,G=null,P=0,ee=0,ot=null,uo=!1,ya=!1,xs=!1,Pt=0,ge=0,ro=0,Yo=0,Ms=0,at=0,ba=0,ri=null,Pe=null,Cs=!1,bn=0,sp=0,vn=1/0,Sn=null,po=null,Te=0,go=null,va=null,Kt=0,qs=0,Rs=null,cp=null,pi=0,Ls=null;function it(){return(F&2)!==0&&P!==0?P&-P:b.T!==null?Ns():Dc()}function up(){if(at===0)if((P&536870912)===0||W){var e=xi;xi<<=1,(xi&3932160)===0&&(xi=262144),at=e}else at=536870912;return e=et.current,e!==null&&(e.flags|=32),at}function Ke(e,t,o){(e===se&&(ee===2||ee===9)||e.cancelPendingCommit!==null)&&(Sa(e,0),fo(e,P,at,!1)),La(e,o),((F&2)===0||e!==se)&&(e===se&&((F&2)===0&&(Yo|=o),ge===4&&fo(e,P,at,!1)),xt(e))}function rp(e,t,o){if((F&6)!==0)throw Error(f(327));var a=!o&&(t&127)===0&&(t&e.expiredLanes)===0||Ra(e,t),i=a?vf(e,t):Os(e,t,!0),n=a;do{if(i===0){ya&&!a&&fo(e,t,0,!1);break}else{if(o=e.current.alternate,n&&!yf(o)){i=Os(e,t,!1),n=!1;continue}if(i===2){if(n=t,e.errorRecoveryDisabledLanes&n)var l=0;else l=e.pendingLanes&-536870913,l=l!==0?l:l&536870912?536870912:0;if(l!==0){t=l;e:{var s=e;i=ri;var c=s.current.memoizedState.isDehydrated;if(c&&(Sa(s,l).flags|=256),l=Os(s,l,!1),l!==2){if(xs&&!c){s.errorRecoveryDisabledLanes|=n,Yo|=n,i=4;break e}n=Pe,Pe=i,n!==null&&(Pe===null?Pe=n:Pe.push.apply(Pe,n))}i=l}if(n=!1,i!==2)continue}}if(i===1){Sa(e,0),fo(e,t,0,!0);break}e:{switch(a=e,n=i,n){case 0:case 1:throw Error(f(345));case 4:if((t&4194048)!==t)break;case 6:fo(a,t,at,!uo);break e;case 2:Pe=null;break;case 3:case 5:break;default:throw Error(f(329))}if((t&62914560)===t&&(i=bn+300-Ze(),10<i)){if(fo(a,t,at,!uo),Ci(a,0,!0)!==0)break e;Kt=t,a.timeoutHandle=Yp(pp.bind(null,a,o,Pe,Sn,Cs,t,at,Yo,ba,uo,n,"Throttled",-0,0),i);break e}pp(a,o,Pe,Sn,Cs,t,at,Yo,ba,uo,n,null,-0,0)}}break}while(!0);xt(e)}function pp(e,t,o,a,i,n,l,s,c,g,y,A,m,h){if(e.timeoutHandle=-1,A=t.subtreeFlags,A&8192||(A&16785408)===16785408){A={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Rt},ap(t,n,A);var x=(n&62914560)===n?bn-Ze():(n&4194048)===n?sp-Ze():0;if(x=tm(A,x),x!==null){Kt=n,e.cancelPendingCommit=x(vp.bind(null,e,t,n,o,a,i,l,s,c,y,A,null,m,h)),fo(e,n,l,!g);return}}vp(e,t,n,o,a,i,l,s,c)}function yf(e){for(var t=e;;){var o=t.tag;if((o===0||o===11||o===15)&&t.flags&16384&&(o=t.updateQueue,o!==null&&(o=o.stores,o!==null)))for(var a=0;a<o.length;a++){var i=o[a],n=i.getSnapshot;i=i.value;try{if(!Je(n(),i))return!1}catch{return!1}}if(o=t.child,t.subtreeFlags&16384&&o!==null)o.return=t,t=o;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function fo(e,t,o,a){t&=~Ms,t&=~Yo,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var i=t;0<i;){var n=31-Fe(i),l=1<<n;a[n]=-1,i&=~l}o!==0&&Ac(e,o,t)}function An(){return(F&6)===0?(di(0),!1):!0}function Us(){if(G!==null){if(ee===0)var e=G.return;else e=G,Ht=Lo=null,Zl(e),ra=null,Wa=0,e=G;for(;e!==null;)Qr(e.alternate,e),e=e.return;G=null}}function Sa(e,t){var o=e.timeoutHandle;o!==-1&&(e.timeoutHandle=-1,Bf(o)),o=e.cancelPendingCommit,o!==null&&(e.cancelPendingCommit=null,o()),Kt=0,Us(),se=e,G=o=Ut(e.current,null),P=t,ee=0,ot=null,uo=!1,ya=Ra(e,t),xs=!1,ba=at=Ms=Yo=ro=ge=0,Pe=ri=null,Cs=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var i=31-Fe(a),n=1<<i;t|=e[i],a&=~n}return Pt=t,Yi(),o}function dp(e,t){N=null,b.H=oi,t===ua||t===Zi?(t=Mu(),ee=3):t===Bl?(t=Mu(),ee=4):ee=t===ps?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,ot=t,G===null&&(ge=1,rn(e,rt(t,e.current)))}function gp(){var e=et.current;return e===null?!0:(P&4194048)===P?ft===null:(P&62914560)===P||(P&536870912)!==0?e===ft:!1}function fp(){var e=b.H;return b.H=oi,e===null?oi:e}function mp(){var e=b.A;return b.A=mf,e}function Tn(){ge=4,uo||(P&4194048)!==P&&et.current!==null||(ya=!0),(ro&134217727)===0&&(Yo&134217727)===0||se===null||fo(se,P,at,!1)}function Os(e,t,o){var a=F;F|=2;var i=fp(),n=mp();(se!==e||P!==t)&&(Sn=null,Sa(e,t)),t=!1;var l=ge;e:do try{if(ee!==0&&G!==null){var s=G,c=ot;switch(ee){case 8:Us(),l=6;break e;case 3:case 2:case 9:case 6:et.current===null&&(t=!0);var g=ee;if(ee=0,ot=null,Aa(e,s,c,g),o&&ya){l=0;break e}break;default:g=ee,ee=0,ot=null,Aa(e,s,c,g)}}bf(),l=ge;break}catch(y){dp(e,y)}while(!0);return t&&e.shellSuspendCounter++,Ht=Lo=null,F=a,b.H=i,b.A=n,G===null&&(se=null,P=0,Yi()),l}function bf(){for(;G!==null;)hp(G)}function vf(e,t){var o=F;F|=2;var a=fp(),i=mp();se!==e||P!==t?(Sn=null,vn=Ze()+500,Sa(e,t)):ya=Ra(e,t);e:do try{if(ee!==0&&G!==null){t=G;var n=ot;t:switch(ee){case 1:ee=0,ot=null,Aa(e,t,n,1);break;case 2:case 9:if(wu(n)){ee=0,ot=null,yp(t);break}t=function(){ee!==2&&ee!==9||se!==e||(ee=7),xt(e)},n.then(t,t);break e;case 3:ee=7;break e;case 4:ee=5;break e;case 7:wu(n)?(ee=0,ot=null,yp(t)):(ee=0,ot=null,Aa(e,t,n,7));break;case 5:var l=null;switch(G.tag){case 26:l=G.memoizedState;case 5:case 27:var s=G;if(l?od(l):s.stateNode.complete){ee=0,ot=null;var c=s.sibling;if(c!==null)G=c;else{var g=s.return;g!==null?(G=g,zn(g)):G=null}break t}}ee=0,ot=null,Aa(e,t,n,5);break;case 6:ee=0,ot=null,Aa(e,t,n,6);break;case 8:Us(),ge=6;break e;default:throw Error(f(462))}}Sf();break}catch(y){dp(e,y)}while(!0);return Ht=Lo=null,b.H=a,b.A=i,F=o,G!==null?0:(se=null,P=0,Yi(),ge)}function Sf(){for(;G!==null&&!Qd();)hp(G)}function hp(e){var t=_r(e.alternate,e,Pt);e.memoizedProps=e.pendingProps,t===null?zn(e):G=t}function yp(e){var t=e,o=t.alternate;switch(t.tag){case 15:case 0:t=Or(o,t,t.pendingProps,t.type,void 0,P);break;case 11:t=Or(o,t,t.pendingProps,t.type.render,t.ref,P);break;case 5:Zl(t);default:Qr(o,t),t=G=mu(t,Pt),t=_r(o,t,Pt)}e.memoizedProps=e.pendingProps,t===null?zn(e):G=t}function Aa(e,t,o,a){Ht=Lo=null,Zl(t),ra=null,Wa=0;var i=t.return;try{if(cf(e,i,t,o,P)){ge=1,rn(e,rt(o,e.current)),G=null;return}}catch(n){if(i!==null)throw G=i,n;ge=1,rn(e,rt(o,e.current)),G=null;return}t.flags&32768?(W||a===1?e=!0:ya||(P&536870912)!==0?e=!1:(uo=e=!0,(a===2||a===9||a===3||a===6)&&(a=et.current,a!==null&&a.tag===13&&(a.flags|=16384))),bp(t,e)):zn(t)}function zn(e){var t=e;do{if((t.flags&32768)!==0){bp(t,uo);return}e=t.return;var o=pf(t.alternate,t,Pt);if(o!==null){G=o;return}if(t=t.sibling,t!==null){G=t;return}G=t=e}while(t!==null);ge===0&&(ge=5)}function bp(e,t){do{var o=df(e.alternate,e);if(o!==null){o.flags&=32767,G=o;return}if(o=e.return,o!==null&&(o.flags|=32768,o.subtreeFlags=0,o.deletions=null),!t&&(e=e.sibling,e!==null)){G=e;return}G=e=o}while(e!==null);ge=6,G=null}function vp(e,t,o,a,i,n,l,s,c){e.cancelPendingCommit=null;do Dn();while(Te!==0);if((F&6)!==0)throw Error(f(327));if(t!==null){if(t===e.current)throw Error(f(177));if(n=t.lanes|t.childLanes,n|=Tl,Jd(e,o,n,l,s,c),e===se&&(G=se=null,P=0),va=t,go=e,Kt=o,qs=n,Rs=i,cp=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Df(Ei,function(){return Dp(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=b.T,b.T=null,i=D.p,D.p=2,l=F,F|=4;try{gf(e,t,o)}finally{F=l,D.p=i,b.T=a}}Te=1,Sp(),Ap(),Tp()}}function Sp(){if(Te===1){Te=0;var e=go,t=va,o=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||o){o=b.T,b.T=null;var a=D.p;D.p=2;var i=F;F|=4;try{ep(t,e);var n=Ks,l=lu(e.containerInfo),s=n.focusedElem,c=n.selectionRange;if(l!==s&&s&&s.ownerDocument&&nu(s.ownerDocument.documentElement,s)){if(c!==null&&yl(s)){var g=c.start,y=c.end;if(y===void 0&&(y=g),"selectionStart"in s)s.selectionStart=g,s.selectionEnd=Math.min(y,s.value.length);else{var A=s.ownerDocument||document,m=A&&A.defaultView||window;if(m.getSelection){var h=m.getSelection(),x=s.textContent.length,L=Math.min(c.start,x),ne=c.end===void 0?L:Math.min(c.end,x);!h.extend&&L>ne&&(l=ne,ne=L,L=l);var p=iu(s,L),u=iu(s,ne);if(p&&u&&(h.rangeCount!==1||h.anchorNode!==p.node||h.anchorOffset!==p.offset||h.focusNode!==u.node||h.focusOffset!==u.offset)){var d=A.createRange();d.setStart(p.node,p.offset),h.removeAllRanges(),L>ne?(h.addRange(d),h.extend(u.node,u.offset)):(d.setEnd(u.node,u.offset),h.addRange(d))}}}}for(A=[],h=s;h=h.parentNode;)h.nodeType===1&&A.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;s<A.length;s++){var S=A[s];S.element.scrollLeft=S.left,S.element.scrollTop=S.top}}kn=!!Ps,Ks=Ps=null}finally{F=i,D.p=a,b.T=o}}e.current=t,Te=2}}function Ap(){if(Te===2){Te=0;var e=go,t=va,o=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||o){o=b.T,b.T=null;var a=D.p;D.p=2;var i=F;F|=4;try{Zr(e,t.alternate,t)}finally{F=i,D.p=a,b.T=o}}Te=3}}function Tp(){if(Te===4||Te===3){Te=0,Gd();var e=go,t=va,o=Kt,a=cp;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Te=5:(Te=0,va=go=null,zp(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(po=null),Jn(o),t=t.stateNode,Xe&&typeof Xe.onCommitFiberRoot=="function")try{Xe.onCommitFiberRoot(qa,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=b.T,i=D.p,D.p=2,b.T=null;try{for(var n=e.onRecoverableError,l=0;l<a.length;l++){var s=a[l];n(s.value,{componentStack:s.stack})}}finally{b.T=t,D.p=i}}(Kt&3)!==0&&Dn(),xt(e),i=e.pendingLanes,(o&261930)!==0&&(i&42)!==0?e===Ls?pi++:(pi=0,Ls=e):pi=0,di(0)}}function zp(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Ka(t)))}function Dn(){return Sp(),Ap(),Tp(),Dp()}function Dp(){if(Te!==5)return!1;var e=go,t=qs;qs=0;var o=Jn(Kt),a=b.T,i=D.p;try{D.p=32>o?32:o,b.T=null,o=Rs,Rs=null;var n=go,l=Kt;if(Te=0,va=go=null,Kt=0,(F&6)!==0)throw Error(f(331));var s=F;if(F|=4,np(n.current),op(n,n.current,l,o),F=s,di(0,!1),Xe&&typeof Xe.onPostCommitFiberRoot=="function")try{Xe.onPostCommitFiberRoot(qa,n)}catch{}return!0}finally{D.p=i,b.T=a,zp(e,t)}}function Ep(e,t,o){t=rt(o,t),t=rs(e.stateNode,t,2),e=no(e,t,2),e!==null&&(La(e,2),xt(e))}function te(e,t,o){if(e.tag===3)Ep(e,e,o);else for(;t!==null;){if(t.tag===3){Ep(t,e,o);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(po===null||!po.has(a))){e=rt(o,e),o=wr(2),a=no(t,o,2),a!==null&&(xr(o,a,t,e),La(a,2),xt(a));break}}t=t.return}}function Hs(e,t,o){var a=e.pingCache;if(a===null){a=e.pingCache=new hf;var i=new Set;a.set(t,i)}else i=a.get(t),i===void 0&&(i=new Set,a.set(t,i));i.has(o)||(xs=!0,i.add(o),e=Af.bind(null,e,t,o),t.then(e,e))}function Af(e,t,o){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&o,e.warmLanes&=~o,se===e&&(P&o)===o&&(ge===4||ge===3&&(P&62914560)===P&&300>Ze()-bn?(F&2)===0&&Sa(e,0):Ms|=o,ba===P&&(ba=0)),xt(e)}function wp(e,t){t===0&&(t=Sc()),e=Co(e,t),e!==null&&(La(e,t),xt(e))}function Tf(e){var t=e.memoizedState,o=0;t!==null&&(o=t.retryLane),wp(e,o)}function zf(e,t){var o=0;switch(e.tag){case 31:case 13:var a=e.stateNode,i=e.memoizedState;i!==null&&(o=i.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(f(314))}a!==null&&a.delete(t),wp(e,o)}function Df(e,t){return Wn(e,t)}var En=null,Ta=null,ks=!1,wn=!1,Bs=!1,mo=0;function xt(e){e!==Ta&&e.next===null&&(Ta===null?En=Ta=e:Ta=Ta.next=e),wn=!0,ks||(ks=!0,wf())}function di(e,t){if(!Bs&&wn){Bs=!0;do for(var o=!1,a=En;a!==null;){if(e!==0){var i=a.pendingLanes;if(i===0)var n=0;else{var l=a.suspendedLanes,s=a.pingedLanes;n=(1<<31-Fe(42|e)+1)-1,n&=i&~(l&~s),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(o=!0,qp(a,n))}else n=P,n=Ci(a,a===se?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Ra(a,n)||(o=!0,qp(a,n));a=a.next}while(o);Bs=!1}}function Ef(){xp()}function xp(){wn=ks=!1;var e=0;mo!==0&&kf()&&(e=mo);for(var t=Ze(),o=null,a=En;a!==null;){var i=a.next,n=Mp(a,t);n===0?(a.next=null,o===null?En=i:o.next=i,i===null&&(Ta=o)):(o=a,(e!==0||(n&3)!==0)&&(wn=!0)),a=i}Te!==0&&Te!==5||di(e),mo!==0&&(mo=0)}function Mp(e,t){for(var o=e.suspendedLanes,a=e.pingedLanes,i=e.expirationTimes,n=e.pendingLanes&-62914561;0<n;){var l=31-Fe(n),s=1<<l,c=i[l];c===-1?((s&o)===0||(s&a)!==0)&&(i[l]=Fd(s,t)):c<=t&&(e.expiredLanes|=s),n&=~s}if(t=se,o=P,o=Ci(e,e===t?o:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,o===0||e===t&&(ee===2||ee===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&Zn(a),e.callbackNode=null,e.callbackPriority=0;if((o&3)===0||Ra(e,o)){if(t=o&-o,t===e.callbackPriority)return t;switch(a!==null&&Zn(a),Jn(o)){case 2:case 8:o=bc;break;case 32:o=Ei;break;case 268435456:o=vc;break;default:o=Ei}return a=Cp.bind(null,e),o=Wn(o,a),e.callbackPriority=t,e.callbackNode=o,t}return a!==null&&a!==null&&Zn(a),e.callbackPriority=2,e.callbackNode=null,2}function Cp(e,t){if(Te!==0&&Te!==5)return e.callbackNode=null,e.callbackPriority=0,null;var o=e.callbackNode;if(Dn()&&e.callbackNode!==o)return null;var a=P;return a=Ci(e,e===se?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(rp(e,a,t),Mp(e,Ze()),e.callbackNode!=null&&e.callbackNode===o?Cp.bind(null,e):null)}function qp(e,t){if(Dn())return null;rp(e,t,!0)}function wf(){Nf(function(){(F&6)!==0?Wn(yc,Ef):xp()})}function Ns(){if(mo===0){var e=sa;e===0&&(e=wi,wi<<=1,(wi&261888)===0&&(wi=256)),mo=e}return mo}function Rp(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Ui(""+e)}function Lp(e,t){var o=t.ownerDocument.createElement("input");return o.name=t.name,o.value=t.value,e.id&&o.setAttribute("form",e.id),t.parentNode.insertBefore(o,t),e=new FormData(e),o.parentNode.removeChild(o),e}function xf(e,t,o,a,i){if(t==="submit"&&o&&o.stateNode===i){var n=Rp((i[_e]||null).action),l=a.submitter;l&&(t=(t=l[_e]||null)?Rp(t.formAction):l.getAttribute("formAction"),t!==null&&(n=t,l=null));var s=new Bi("action","action",null,a,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(mo!==0){var c=l?Lp(i,l):new FormData(i);is(o,{pending:!0,data:c,method:i.method,action:n},null,c)}}else typeof n=="function"&&(s.preventDefault(),c=l?Lp(i,l):new FormData(i),is(o,{pending:!0,data:c,method:i.method,action:n},n,c))},currentTarget:i}]})}}for(var Is=0;Is<Al.length;Is++){var _s=Al[Is],Mf=_s.toLowerCase(),Cf=_s[0].toUpperCase()+_s.slice(1);bt(Mf,"on"+Cf)}bt(uu,"onAnimationEnd"),bt(ru,"onAnimationIteration"),bt(pu,"onAnimationStart"),bt("dblclick","onDoubleClick"),bt("focusin","onFocus"),bt("focusout","onBlur"),bt(Vg,"onTransitionRun"),bt(Pg,"onTransitionStart"),bt(Kg,"onTransitionCancel"),bt(du,"onTransitionEnd"),jo("onMouseEnter",["mouseout","mouseover"]),jo("onMouseLeave",["mouseout","mouseover"]),jo("onPointerEnter",["pointerout","pointerover"]),jo("onPointerLeave",["pointerout","pointerover"]),Eo("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Eo("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Eo("onBeforeInput",["compositionend","keypress","textInput","paste"]),Eo("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Eo("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Eo("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gi="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),qf=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gi));function Up(e,t){t=(t&4)!==0;for(var o=0;o<e.length;o++){var a=e[o],i=a.event;a=a.listeners;e:{var n=void 0;if(t)for(var l=a.length-1;0<=l;l--){var s=a[l],c=s.instance,g=s.currentTarget;if(s=s.listener,c!==n&&i.isPropagationStopped())break e;n=s,i.currentTarget=g;try{n(i)}catch(y){_i(y)}i.currentTarget=null,n=c}else for(l=0;l<a.length;l++){if(s=a[l],c=s.instance,g=s.currentTarget,s=s.listener,c!==n&&i.isPropagationStopped())break e;n=s,i.currentTarget=g;try{n(i)}catch(y){_i(y)}i.currentTarget=null,n=c}}}}function V(e,t){var o=t[$n];o===void 0&&(o=t[$n]=new Set);var a=e+"__bubble";o.has(a)||(Op(t,e,2,!1),o.add(a))}function Ys(e,t,o){var a=0;t&&(a|=4),Op(o,e,a,t)}var xn="_reactListening"+Math.random().toString(36).slice(2);function Qs(e){if(!e[xn]){e[xn]=!0,xc.forEach(function(o){o!=="selectionchange"&&(qf.has(o)||Ys(o,!1,e),Ys(o,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[xn]||(t[xn]=!0,Ys("selectionchange",!1,t))}}function Op(e,t,o,a){switch(ud(t)){case 2:var i=im;break;case 8:i=nm;break;default:i=ac}o=i.bind(null,t,o,e),i=void 0,!cl||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(i=!0),a?i!==void 0?e.addEventListener(t,o,{capture:!0,passive:i}):e.addEventListener(t,o,!0):i!==void 0?e.addEventListener(t,o,{passive:i}):e.addEventListener(t,o,!1)}function Gs(e,t,o,a,i){var n=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var l=a.tag;if(l===3||l===4){var s=a.stateNode.containerInfo;if(s===i)break;if(l===4)for(l=a.return;l!==null;){var c=l.tag;if((c===3||c===4)&&l.stateNode.containerInfo===i)return;l=l.return}for(;s!==null;){if(l=Vo(s),l===null)return;if(c=l.tag,c===5||c===6||c===26||c===27){a=n=l;continue e}s=s.parentNode}}a=a.return}Ic(function(){var g=n,y=ll(o),A=[];e:{var m=gu.get(e);if(m!==void 0){var h=Bi,x=e;switch(e){case"keypress":if(Hi(o)===0)break e;case"keydown":case"keyup":h=Tg;break;case"focusin":x="focus",h=dl;break;case"focusout":x="blur",h=dl;break;case"beforeblur":case"afterblur":h=dl;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=Qc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=rg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=Eg;break;case uu:case ru:case pu:h=gg;break;case du:h=xg;break;case"scroll":case"scrollend":h=cg;break;case"wheel":h=Cg;break;case"copy":case"cut":case"paste":h=mg;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=Vc;break;case"toggle":case"beforetoggle":h=Rg}var L=(t&4)!==0,ne=!L&&(e==="scroll"||e==="scrollend"),p=L?m!==null?m+"Capture":null:m;L=[];for(var u=g,d;u!==null;){var S=u;if(d=S.stateNode,S=S.tag,S!==5&&S!==26&&S!==27||d===null||p===null||(S=Ha(u,p),S!=null&&L.push(fi(u,S,d))),ne)break;u=u.return}0<L.length&&(m=new h(m,x,null,o,y),A.push({event:m,listeners:L}))}}if((t&7)===0){e:{if(m=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",m&&o!==nl&&(x=o.relatedTarget||o.fromElement)&&(Vo(x)||x[Go]))break e;if((h||m)&&(m=y.window===y?y:(m=y.ownerDocument)?m.defaultView||m.parentWindow:window,h?(x=o.relatedTarget||o.toElement,h=g,x=x?Vo(x):null,x!==null&&(ne=_(x),L=x.tag,x!==ne||L!==5&&L!==27&&L!==6)&&(x=null)):(h=null,x=g),h!==x)){if(L=Qc,S="onMouseLeave",p="onMouseEnter",u="mouse",(e==="pointerout"||e==="pointerover")&&(L=Vc,S="onPointerLeave",p="onPointerEnter",u="pointer"),ne=h==null?m:Oa(h),d=x==null?m:Oa(x),m=new L(S,u+"leave",h,o,y),m.target=ne,m.relatedTarget=d,S=null,Vo(y)===g&&(L=new L(p,u+"enter",x,o,y),L.target=d,L.relatedTarget=ne,S=L),ne=S,h&&x)t:{for(L=Rf,p=h,u=x,d=0,S=p;S;S=L(S))d++;S=0;for(var q=u;q;q=L(q))S++;for(;0<d-S;)p=L(p),d--;for(;0<S-d;)u=L(u),S--;for(;d--;){if(p===u||u!==null&&p===u.alternate){L=p;break t}p=L(p),u=L(u)}L=null}else L=null;h!==null&&Hp(A,m,h,L,!1),x!==null&&ne!==null&&Hp(A,ne,x,L,!0)}}e:{if(m=g?Oa(g):window,h=m.nodeName&&m.nodeName.toLowerCase(),h==="select"||h==="input"&&m.type==="file")var Z=Jc;else if(Xc(m))if($c)Z=Yg;else{Z=Ig;var C=Ng}else h=m.nodeName,!h||h.toLowerCase()!=="input"||m.type!=="checkbox"&&m.type!=="radio"?g&&il(g.elementType)&&(Z=Jc):Z=_g;if(Z&&(Z=Z(e,g))){Fc(A,Z,o,y);break e}C&&C(e,m,g),e==="focusout"&&g&&m.type==="number"&&g.memoizedProps.value!=null&&al(m,"number",m.value)}switch(C=g?Oa(g):window,e){case"focusin":(Xc(C)||C.contentEditable==="true")&&($o=C,bl=g,Ga=null);break;case"focusout":Ga=bl=$o=null;break;case"mousedown":vl=!0;break;case"contextmenu":case"mouseup":case"dragend":vl=!1,su(A,o,y);break;case"selectionchange":if(Gg)break;case"keydown":case"keyup":su(A,o,y)}var I;if(fl)e:{switch(e){case"compositionstart":var K="onCompositionStart";break e;case"compositionend":K="onCompositionEnd";break e;case"compositionupdate":K="onCompositionUpdate";break e}K=void 0}else Jo?Wc(e,o)&&(K="onCompositionEnd"):e==="keydown"&&o.keyCode===229&&(K="onCompositionStart");K&&(Pc&&o.locale!=="ko"&&(Jo||K!=="onCompositionStart"?K==="onCompositionEnd"&&Jo&&(I=_c()):(Jt=y,ul="value"in Jt?Jt.value:Jt.textContent,Jo=!0)),C=Mn(g,K),0<C.length&&(K=new Gc(K,e,null,o,y),A.push({event:K,listeners:C}),I?K.data=I:(I=Zc(o),I!==null&&(K.data=I)))),(I=Ug?Og(e,o):Hg(e,o))&&(K=Mn(g,"onBeforeInput"),0<K.length&&(C=new Gc("onBeforeInput","beforeinput",null,o,y),A.push({event:C,listeners:K}),C.data=I)),xf(A,e,g,o,y)}Up(A,t)})}function fi(e,t,o){return{instance:e,listener:t,currentTarget:o}}function Mn(e,t){for(var o=t+"Capture",a=[];e!==null;){var i=e,n=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||n===null||(i=Ha(e,o),i!=null&&a.unshift(fi(e,i,n)),i=Ha(e,t),i!=null&&a.push(fi(e,i,n))),e.tag===3)return a;e=e.return}return[]}function Rf(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Hp(e,t,o,a,i){for(var n=t._reactName,l=[];o!==null&&o!==a;){var s=o,c=s.alternate,g=s.stateNode;if(s=s.tag,c!==null&&c===a)break;s!==5&&s!==26&&s!==27||g===null||(c=g,i?(g=Ha(o,n),g!=null&&l.unshift(fi(o,g,c))):i||(g=Ha(o,n),g!=null&&l.push(fi(o,g,c)))),o=o.return}l.length!==0&&e.push({event:t,listeners:l})}var Lf=/\r\n?/g,Uf=/\u0000|\uFFFD/g;function kp(e){return(typeof e=="string"?e:""+e).replace(Lf,`
`).replace(Uf,"")}function Bp(e,t){return t=kp(t),kp(e)===t}function ie(e,t,o,a,i,n){switch(o){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||Zo(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&Zo(e,""+a);break;case"className":Ri(e,"class",a);break;case"tabIndex":Ri(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Ri(e,o,a);break;case"style":Bc(e,a,n);break;case"data":if(t!=="object"){Ri(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||o!=="href")){e.removeAttribute(o);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(o);break}a=Ui(""+a),e.setAttribute(o,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof n=="function"&&(o==="formAction"?(t!=="input"&&ie(e,t,"name",i.name,i,null),ie(e,t,"formEncType",i.formEncType,i,null),ie(e,t,"formMethod",i.formMethod,i,null),ie(e,t,"formTarget",i.formTarget,i,null)):(ie(e,t,"encType",i.encType,i,null),ie(e,t,"method",i.method,i,null),ie(e,t,"target",i.target,i,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(o);break}a=Ui(""+a),e.setAttribute(o,a);break;case"onClick":a!=null&&(e.onclick=Rt);break;case"onScroll":a!=null&&V("scroll",e);break;case"onScrollEnd":a!=null&&V("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(o=a.__html,o!=null){if(i.children!=null)throw Error(f(60));e.innerHTML=o}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}o=Ui(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(o,""+a):e.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(o,""):e.removeAttribute(o);break;case"capture":case"download":a===!0?e.setAttribute(o,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(o,a):e.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(o,a):e.removeAttribute(o);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(o):e.setAttribute(o,a);break;case"popover":V("beforetoggle",e),V("toggle",e),qi(e,"popover",a);break;case"xlinkActuate":qt(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":qt(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":qt(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":qt(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":qt(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":qt(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":qt(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":qt(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":qt(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":qi(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")&&(o=lg.get(o)||o,qi(e,o,a))}}function Vs(e,t,o,a,i,n){switch(o){case"style":Bc(e,a,n);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(o=a.__html,o!=null){if(i.children!=null)throw Error(f(60));e.innerHTML=o}}break;case"children":typeof a=="string"?Zo(e,a):(typeof a=="number"||typeof a=="bigint")&&Zo(e,""+a);break;case"onScroll":a!=null&&V("scroll",e);break;case"onScrollEnd":a!=null&&V("scrollend",e);break;case"onClick":a!=null&&(e.onclick=Rt);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Mc.hasOwnProperty(o))e:{if(o[0]==="o"&&o[1]==="n"&&(i=o.endsWith("Capture"),t=o.slice(2,i?o.length-7:void 0),n=e[_e]||null,n=n!=null?n[o]:null,typeof n=="function"&&e.removeEventListener(t,n,i),typeof a=="function")){typeof n!="function"&&n!==null&&(o in e?e[o]=null:e.hasAttribute(o)&&e.removeAttribute(o)),e.addEventListener(t,a,i);break e}o in e?e[o]=a:a===!0?e.setAttribute(o,""):qi(e,o,a)}}}function qe(e,t,o){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":V("error",e),V("load",e);var a=!1,i=!1,n;for(n in o)if(o.hasOwnProperty(n)){var l=o[n];if(l!=null)switch(n){case"src":a=!0;break;case"srcSet":i=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(f(137,t));default:ie(e,t,n,l,o,null)}}i&&ie(e,t,"srcSet",o.srcSet,o,null),a&&ie(e,t,"src",o.src,o,null);return;case"input":V("invalid",e);var s=n=l=i=null,c=null,g=null;for(a in o)if(o.hasOwnProperty(a)){var y=o[a];if(y!=null)switch(a){case"name":i=y;break;case"type":l=y;break;case"checked":c=y;break;case"defaultChecked":g=y;break;case"value":n=y;break;case"defaultValue":s=y;break;case"children":case"dangerouslySetInnerHTML":if(y!=null)throw Error(f(137,t));break;default:ie(e,t,a,y,o,null)}}Uc(e,n,s,c,g,l,i,!1);return;case"select":V("invalid",e),a=l=n=null;for(i in o)if(o.hasOwnProperty(i)&&(s=o[i],s!=null))switch(i){case"value":n=s;break;case"defaultValue":l=s;break;case"multiple":a=s;default:ie(e,t,i,s,o,null)}t=n,o=l,e.multiple=!!a,t!=null?Wo(e,!!a,t,!1):o!=null&&Wo(e,!!a,o,!0);return;case"textarea":V("invalid",e),n=i=a=null;for(l in o)if(o.hasOwnProperty(l)&&(s=o[l],s!=null))switch(l){case"value":a=s;break;case"defaultValue":i=s;break;case"children":n=s;break;case"dangerouslySetInnerHTML":if(s!=null)throw Error(f(91));break;default:ie(e,t,l,s,o,null)}Hc(e,a,i,n);return;case"option":for(c in o)if(o.hasOwnProperty(c)&&(a=o[c],a!=null))switch(c){case"selected":e.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:ie(e,t,c,a,o,null)}return;case"dialog":V("beforetoggle",e),V("toggle",e),V("cancel",e),V("close",e);break;case"iframe":case"object":V("load",e);break;case"video":case"audio":for(a=0;a<gi.length;a++)V(gi[a],e);break;case"image":V("error",e),V("load",e);break;case"details":V("toggle",e);break;case"embed":case"source":case"link":V("error",e),V("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(g in o)if(o.hasOwnProperty(g)&&(a=o[g],a!=null))switch(g){case"children":case"dangerouslySetInnerHTML":throw Error(f(137,t));default:ie(e,t,g,a,o,null)}return;default:if(il(t)){for(y in o)o.hasOwnProperty(y)&&(a=o[y],a!==void 0&&Vs(e,t,y,a,o,void 0));return}}for(s in o)o.hasOwnProperty(s)&&(a=o[s],a!=null&&ie(e,t,s,a,o,null))}function Of(e,t,o,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var i=null,n=null,l=null,s=null,c=null,g=null,y=null;for(h in o){var A=o[h];if(o.hasOwnProperty(h)&&A!=null)switch(h){case"checked":break;case"value":break;case"defaultValue":c=A;default:a.hasOwnProperty(h)||ie(e,t,h,null,a,A)}}for(var m in a){var h=a[m];if(A=o[m],a.hasOwnProperty(m)&&(h!=null||A!=null))switch(m){case"type":n=h;break;case"name":i=h;break;case"checked":g=h;break;case"defaultChecked":y=h;break;case"value":l=h;break;case"defaultValue":s=h;break;case"children":case"dangerouslySetInnerHTML":if(h!=null)throw Error(f(137,t));break;default:h!==A&&ie(e,t,m,h,a,A)}}ol(e,l,s,c,g,y,n,i);return;case"select":h=l=s=m=null;for(n in o)if(c=o[n],o.hasOwnProperty(n)&&c!=null)switch(n){case"value":break;case"multiple":h=c;default:a.hasOwnProperty(n)||ie(e,t,n,null,a,c)}for(i in a)if(n=a[i],c=o[i],a.hasOwnProperty(i)&&(n!=null||c!=null))switch(i){case"value":m=n;break;case"defaultValue":s=n;break;case"multiple":l=n;default:n!==c&&ie(e,t,i,n,a,c)}t=s,o=l,a=h,m!=null?Wo(e,!!o,m,!1):!!a!=!!o&&(t!=null?Wo(e,!!o,t,!0):Wo(e,!!o,o?[]:"",!1));return;case"textarea":h=m=null;for(s in o)if(i=o[s],o.hasOwnProperty(s)&&i!=null&&!a.hasOwnProperty(s))switch(s){case"value":break;case"children":break;default:ie(e,t,s,null,a,i)}for(l in a)if(i=a[l],n=o[l],a.hasOwnProperty(l)&&(i!=null||n!=null))switch(l){case"value":m=i;break;case"defaultValue":h=i;break;case"children":break;case"dangerouslySetInnerHTML":if(i!=null)throw Error(f(91));break;default:i!==n&&ie(e,t,l,i,a,n)}Oc(e,m,h);return;case"option":for(var x in o)if(m=o[x],o.hasOwnProperty(x)&&m!=null&&!a.hasOwnProperty(x))switch(x){case"selected":e.selected=!1;break;default:ie(e,t,x,null,a,m)}for(c in a)if(m=a[c],h=o[c],a.hasOwnProperty(c)&&m!==h&&(m!=null||h!=null))switch(c){case"selected":e.selected=m&&typeof m!="function"&&typeof m!="symbol";break;default:ie(e,t,c,m,a,h)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var L in o)m=o[L],o.hasOwnProperty(L)&&m!=null&&!a.hasOwnProperty(L)&&ie(e,t,L,null,a,m);for(g in a)if(m=a[g],h=o[g],a.hasOwnProperty(g)&&m!==h&&(m!=null||h!=null))switch(g){case"children":case"dangerouslySetInnerHTML":if(m!=null)throw Error(f(137,t));break;default:ie(e,t,g,m,a,h)}return;default:if(il(t)){for(var ne in o)m=o[ne],o.hasOwnProperty(ne)&&m!==void 0&&!a.hasOwnProperty(ne)&&Vs(e,t,ne,void 0,a,m);for(y in a)m=a[y],h=o[y],!a.hasOwnProperty(y)||m===h||m===void 0&&h===void 0||Vs(e,t,y,m,a,h);return}}for(var p in o)m=o[p],o.hasOwnProperty(p)&&m!=null&&!a.hasOwnProperty(p)&&ie(e,t,p,null,a,m);for(A in a)m=a[A],h=o[A],!a.hasOwnProperty(A)||m===h||m==null&&h==null||ie(e,t,A,m,a,h)}function Np(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Hf(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,o=performance.getEntriesByType("resource"),a=0;a<o.length;a++){var i=o[a],n=i.transferSize,l=i.initiatorType,s=i.duration;if(n&&s&&Np(l)){for(l=0,s=i.responseEnd,a+=1;a<o.length;a++){var c=o[a],g=c.startTime;if(g>s)break;var y=c.transferSize,A=c.initiatorType;y&&Np(A)&&(c=c.responseEnd,l+=y*(c<s?1:(s-g)/(c-g)))}if(--a,t+=8*(n+l)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Ps=null,Ks=null;function Cn(e){return e.nodeType===9?e:e.ownerDocument}function Ip(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function _p(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function js(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Ws=null;function kf(){var e=window.event;return e&&e.type==="popstate"?e===Ws?!1:(Ws=e,!0):(Ws=null,!1)}var Yp=typeof setTimeout=="function"?setTimeout:void 0,Bf=typeof clearTimeout=="function"?clearTimeout:void 0,Qp=typeof Promise=="function"?Promise:void 0,Nf=typeof queueMicrotask=="function"?queueMicrotask:typeof Qp<"u"?function(e){return Qp.resolve(null).then(e).catch(If)}:Yp;function If(e){setTimeout(function(){throw e})}function ho(e){return e==="head"}function Gp(e,t){var o=t,a=0;do{var i=o.nextSibling;if(e.removeChild(o),i&&i.nodeType===8)if(o=i.data,o==="/$"||o==="/&"){if(a===0){e.removeChild(i),wa(t);return}a--}else if(o==="$"||o==="$?"||o==="$~"||o==="$!"||o==="&")a++;else if(o==="html")mi(e.ownerDocument.documentElement);else if(o==="head"){o=e.ownerDocument.head,mi(o);for(var n=o.firstChild;n;){var l=n.nextSibling,s=n.nodeName;n[Ua]||s==="SCRIPT"||s==="STYLE"||s==="LINK"&&n.rel.toLowerCase()==="stylesheet"||o.removeChild(n),n=l}}else o==="body"&&mi(e.ownerDocument.body);o=i}while(o);wa(t)}function Vp(e,t){var o=e;e=0;do{var a=o.nextSibling;if(o.nodeType===1?t?(o._stashedDisplay=o.style.display,o.style.display="none"):(o.style.display=o._stashedDisplay||"",o.getAttribute("style")===""&&o.removeAttribute("style")):o.nodeType===3&&(t?(o._stashedText=o.nodeValue,o.nodeValue=""):o.nodeValue=o._stashedText||""),a&&a.nodeType===8)if(o=a.data,o==="/$"){if(e===0)break;e--}else o!=="$"&&o!=="$?"&&o!=="$~"&&o!=="$!"||e++;o=a}while(o)}function Zs(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var o=t;switch(t=t.nextSibling,o.nodeName){case"HTML":case"HEAD":case"BODY":Zs(o),el(o);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(o.rel.toLowerCase()==="stylesheet")continue}e.removeChild(o)}}function _f(e,t,o,a){for(;e.nodeType===1;){var i=o;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Ua])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(n=e.getAttribute("rel"),n==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(n!==i.rel||e.getAttribute("href")!==(i.href==null||i.href===""?null:i.href)||e.getAttribute("crossorigin")!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute("title")!==(i.title==null?null:i.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(n=e.getAttribute("src"),(n!==(i.src==null?null:i.src)||e.getAttribute("type")!==(i.type==null?null:i.type)||e.getAttribute("crossorigin")!==(i.crossOrigin==null?null:i.crossOrigin))&&n&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var n=i.name==null?null:""+i.name;if(i.type==="hidden"&&e.getAttribute("name")===n)return e}else return e;if(e=mt(e.nextSibling),e===null)break}return null}function Yf(e,t,o){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!o||(e=mt(e.nextSibling),e===null))return null;return e}function Pp(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=mt(e.nextSibling),e===null))return null;return e}function Xs(e){return e.data==="$?"||e.data==="$~"}function Fs(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Qf(e,t){var o=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||o.readyState!=="loading")t();else{var a=function(){t(),o.removeEventListener("DOMContentLoaded",a)};o.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function mt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Js=null;function Kp(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var o=e.data;if(o==="/$"||o==="/&"){if(t===0)return mt(e.nextSibling);t--}else o!=="$"&&o!=="$!"&&o!=="$?"&&o!=="$~"&&o!=="&"||t++}e=e.nextSibling}return null}function jp(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var o=e.data;if(o==="$"||o==="$!"||o==="$?"||o==="$~"||o==="&"){if(t===0)return e;t--}else o!=="/$"&&o!=="/&"||t++}e=e.previousSibling}return null}function Wp(e,t,o){switch(t=Cn(o),e){case"html":if(e=t.documentElement,!e)throw Error(f(452));return e;case"head":if(e=t.head,!e)throw Error(f(453));return e;case"body":if(e=t.body,!e)throw Error(f(454));return e;default:throw Error(f(451))}}function mi(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);el(e)}var ht=new Map,Zp=new Set;function qn(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var jt=D.d;D.d={f:Gf,r:Vf,D:Pf,C:Kf,L:jf,m:Wf,X:Xf,S:Zf,M:Ff};function Gf(){var e=jt.f(),t=An();return e||t}function Vf(e){var t=Po(e);t!==null&&t.tag===5&&t.type==="form"?dr(t):jt.r(e)}var za=typeof document>"u"?null:document;function Xp(e,t,o){var a=za;if(a&&typeof t=="string"&&t){var i=ct(t);i='link[rel="'+e+'"][href="'+i+'"]',typeof o=="string"&&(i+='[crossorigin="'+o+'"]'),Zp.has(i)||(Zp.add(i),e={rel:e,crossOrigin:o,href:t},a.querySelector(i)===null&&(t=a.createElement("link"),qe(t,"link",e),ze(t),a.head.appendChild(t)))}}function Pf(e){jt.D(e),Xp("dns-prefetch",e,null)}function Kf(e,t){jt.C(e,t),Xp("preconnect",e,t)}function jf(e,t,o){jt.L(e,t,o);var a=za;if(a&&e&&t){var i='link[rel="preload"][as="'+ct(t)+'"]';t==="image"&&o&&o.imageSrcSet?(i+='[imagesrcset="'+ct(o.imageSrcSet)+'"]',typeof o.imageSizes=="string"&&(i+='[imagesizes="'+ct(o.imageSizes)+'"]')):i+='[href="'+ct(e)+'"]';var n=i;switch(t){case"style":n=Da(e);break;case"script":n=Ea(e)}ht.has(n)||(e=U({rel:"preload",href:t==="image"&&o&&o.imageSrcSet?void 0:e,as:t},o),ht.set(n,e),a.querySelector(i)!==null||t==="style"&&a.querySelector(hi(n))||t==="script"&&a.querySelector(yi(n))||(t=a.createElement("link"),qe(t,"link",e),ze(t),a.head.appendChild(t)))}}function Wf(e,t){jt.m(e,t);var o=za;if(o&&e){var a=t&&typeof t.as=="string"?t.as:"script",i='link[rel="modulepreload"][as="'+ct(a)+'"][href="'+ct(e)+'"]',n=i;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ea(e)}if(!ht.has(n)&&(e=U({rel:"modulepreload",href:e},t),ht.set(n,e),o.querySelector(i)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(o.querySelector(yi(n)))return}a=o.createElement("link"),qe(a,"link",e),ze(a),o.head.appendChild(a)}}}function Zf(e,t,o){jt.S(e,t,o);var a=za;if(a&&e){var i=Ko(a).hoistableStyles,n=Da(e);t=t||"default";var l=i.get(n);if(!l){var s={loading:0,preload:null};if(l=a.querySelector(hi(n)))s.loading=5;else{e=U({rel:"stylesheet",href:e,"data-precedence":t},o),(o=ht.get(n))&&$s(e,o);var c=l=a.createElement("link");ze(c),qe(c,"link",e),c._p=new Promise(function(g,y){c.onload=g,c.onerror=y}),c.addEventListener("load",function(){s.loading|=1}),c.addEventListener("error",function(){s.loading|=2}),s.loading|=4,Rn(l,t,a)}l={type:"stylesheet",instance:l,count:1,state:s},i.set(n,l)}}}function Xf(e,t){jt.X(e,t);var o=za;if(o&&e){var a=Ko(o).hoistableScripts,i=Ea(e),n=a.get(i);n||(n=o.querySelector(yi(i)),n||(e=U({src:e,async:!0},t),(t=ht.get(i))&&ec(e,t),n=o.createElement("script"),ze(n),qe(n,"link",e),o.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(i,n))}}function Ff(e,t){jt.M(e,t);var o=za;if(o&&e){var a=Ko(o).hoistableScripts,i=Ea(e),n=a.get(i);n||(n=o.querySelector(yi(i)),n||(e=U({src:e,async:!0,type:"module"},t),(t=ht.get(i))&&ec(e,t),n=o.createElement("script"),ze(n),qe(n,"link",e),o.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},a.set(i,n))}}function Fp(e,t,o,a){var i=(i=Q.current)?qn(i):null;if(!i)throw Error(f(446));switch(e){case"meta":case"title":return null;case"style":return typeof o.precedence=="string"&&typeof o.href=="string"?(t=Da(o.href),o=Ko(i).hoistableStyles,a=o.get(t),a||(a={type:"style",instance:null,count:0,state:null},o.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(o.rel==="stylesheet"&&typeof o.href=="string"&&typeof o.precedence=="string"){e=Da(o.href);var n=Ko(i).hoistableStyles,l=n.get(e);if(l||(i=i.ownerDocument||i,l={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(e,l),(n=i.querySelector(hi(e)))&&!n._p&&(l.instance=n,l.state.loading=5),ht.has(e)||(o={rel:"preload",as:"style",href:o.href,crossOrigin:o.crossOrigin,integrity:o.integrity,media:o.media,hrefLang:o.hrefLang,referrerPolicy:o.referrerPolicy},ht.set(e,o),n||Jf(i,e,o,l.state))),t&&a===null)throw Error(f(528,""));return l}if(t&&a!==null)throw Error(f(529,""));return null;case"script":return t=o.async,o=o.src,typeof o=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(o),o=Ko(i).hoistableScripts,a=o.get(t),a||(a={type:"script",instance:null,count:0,state:null},o.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(f(444,e))}}function Da(e){return'href="'+ct(e)+'"'}function hi(e){return'link[rel="stylesheet"]['+e+"]"}function Jp(e){return U({},e,{"data-precedence":e.precedence,precedence:null})}function Jf(e,t,o,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),qe(t,"link",o),ze(t),e.head.appendChild(t))}function Ea(e){return'[src="'+ct(e)+'"]'}function yi(e){return"script[async]"+e}function $p(e,t,o){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+ct(o.href)+'"]');if(a)return t.instance=a,ze(a),a;var i=U({},o,{"data-href":o.href,"data-precedence":o.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),ze(a),qe(a,"style",i),Rn(a,o.precedence,e),t.instance=a;case"stylesheet":i=Da(o.href);var n=e.querySelector(hi(i));if(n)return t.state.loading|=4,t.instance=n,ze(n),n;a=Jp(o),(i=ht.get(i))&&$s(a,i),n=(e.ownerDocument||e).createElement("link"),ze(n);var l=n;return l._p=new Promise(function(s,c){l.onload=s,l.onerror=c}),qe(n,"link",a),t.state.loading|=4,Rn(n,o.precedence,e),t.instance=n;case"script":return n=Ea(o.src),(i=e.querySelector(yi(n)))?(t.instance=i,ze(i),i):(a=o,(i=ht.get(n))&&(a=U({},o),ec(a,i)),e=e.ownerDocument||e,i=e.createElement("script"),ze(i),qe(i,"link",a),e.head.appendChild(i),t.instance=i);case"void":return null;default:throw Error(f(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Rn(a,o.precedence,e));return t.instance}function Rn(e,t,o){for(var a=o.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=a.length?a[a.length-1]:null,n=i,l=0;l<a.length;l++){var s=a[l];if(s.dataset.precedence===t)n=s;else if(n!==i)break}n?n.parentNode.insertBefore(e,n.nextSibling):(t=o.nodeType===9?o.head:o,t.insertBefore(e,t.firstChild))}function $s(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function ec(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Ln=null;function ed(e,t,o){if(Ln===null){var a=new Map,i=Ln=new Map;i.set(o,a)}else i=Ln,a=i.get(o),a||(a=new Map,i.set(o,a));if(a.has(e))return a;for(a.set(e,null),o=o.getElementsByTagName(e),i=0;i<o.length;i++){var n=o[i];if(!(n[Ua]||n[we]||e==="link"&&n.getAttribute("rel")==="stylesheet")&&n.namespaceURI!=="http://www.w3.org/2000/svg"){var l=n.getAttribute(t)||"";l=e+l;var s=a.get(l);s?s.push(n):a.set(l,[n])}}return a}function td(e,t,o){e=e.ownerDocument||e,e.head.insertBefore(o,t==="title"?e.querySelector("head > title"):null)}function $f(e,t,o){if(o===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function od(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function em(e,t,o,a){if(o.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(o.state.loading&4)===0){if(o.instance===null){var i=Da(a.href),n=t.querySelector(hi(i));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Un.bind(e),t.then(e,e)),o.state.loading|=4,o.instance=n,ze(n);return}n=t.ownerDocument||t,a=Jp(a),(i=ht.get(i))&&$s(a,i),n=n.createElement("link"),ze(n);var l=n;l._p=new Promise(function(s,c){l.onload=s,l.onerror=c}),qe(n,"link",a),o.instance=n}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(o,t),(t=o.state.preload)&&(o.state.loading&3)===0&&(e.count++,o=Un.bind(e),t.addEventListener("load",o),t.addEventListener("error",o))}}var tc=0;function tm(e,t){return e.stylesheets&&e.count===0&&Hn(e,e.stylesheets),0<e.count||0<e.imgCount?function(o){var a=setTimeout(function(){if(e.stylesheets&&Hn(e,e.stylesheets),e.unsuspend){var n=e.unsuspend;e.unsuspend=null,n()}},6e4+t);0<e.imgBytes&&tc===0&&(tc=62500*Hf());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Hn(e,e.stylesheets),e.unsuspend)){var n=e.unsuspend;e.unsuspend=null,n()}},(e.imgBytes>tc?50:800)+t);return e.unsuspend=o,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(i)}}:null}function Un(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Hn(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var On=null;function Hn(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,On=new Map,t.forEach(om,e),On=null,Un.call(e))}function om(e,t){if(!(t.state.loading&4)){var o=On.get(e);if(o)var a=o.get(null);else{o=new Map,On.set(e,o);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n<i.length;n++){var l=i[n];(l.nodeName==="LINK"||l.getAttribute("media")!=="not all")&&(o.set(l.dataset.precedence,l),a=l)}a&&o.set(null,a)}i=t.instance,l=i.getAttribute("data-precedence"),n=o.get(l)||a,n===a&&o.set(null,i),o.set(l,i),this.count++,a=Un.bind(this),i.addEventListener("load",a),i.addEventListener("error",a),n?n.parentNode.insertBefore(i,n.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var bi={$$typeof:Re,Provider:null,Consumer:null,_currentValue:O,_currentValue2:O,_threadCount:0};function am(e,t,o,a,i,n,l,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Xn(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xn(0),this.hiddenUpdates=Xn(null),this.identifierPrefix=a,this.onUncaughtError=i,this.onCaughtError=n,this.onRecoverableError=l,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ad(e,t,o,a,i,n,l,s,c,g,y,A){return e=new am(e,t,o,l,c,g,y,A,s),t=1,n===!0&&(t|=24),n=$e(3,null,null,t),e.current=n,n.stateNode=e,t=Ol(),t.refCount++,e.pooledCache=t,t.refCount++,n.memoizedState={element:a,isDehydrated:o,cache:t},Nl(n),e}function id(e){return e?(e=oa,e):oa}function nd(e,t,o,a,i,n){i=id(i),a.context===null?a.context=i:a.pendingContext=i,a=io(t),a.payload={element:o},n=n===void 0?null:n,n!==null&&(a.callback=n),o=no(e,a,t),o!==null&&(Ke(o,e,t),Xa(o,e,t))}function ld(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var o=e.retryLane;e.retryLane=o!==0&&o<t?o:t}}function oc(e,t){ld(e,t),(e=e.alternate)&&ld(e,t)}function sd(e){if(e.tag===13||e.tag===31){var t=Co(e,67108864);t!==null&&Ke(t,e,67108864),oc(e,67108864)}}function cd(e){if(e.tag===13||e.tag===31){var t=it();t=Fn(t);var o=Co(e,t);o!==null&&Ke(o,e,t),oc(e,t)}}var kn=!0;function im(e,t,o,a){var i=b.T;b.T=null;var n=D.p;try{D.p=2,ac(e,t,o,a)}finally{D.p=n,b.T=i}}function nm(e,t,o,a){var i=b.T;b.T=null;var n=D.p;try{D.p=8,ac(e,t,o,a)}finally{D.p=n,b.T=i}}function ac(e,t,o,a){if(kn){var i=ic(a);if(i===null)Gs(e,t,a,Bn,o),rd(e,a);else if(sm(i,e,t,o,a))a.stopPropagation();else if(rd(e,a),t&4&&-1<lm.indexOf(e)){for(;i!==null;){var n=Po(i);if(n!==null)switch(n.tag){case 3:if(n=n.stateNode,n.current.memoizedState.isDehydrated){var l=Do(n.pendingLanes);if(l!==0){var s=n;for(s.pendingLanes|=2,s.entangledLanes|=2;l;){var c=1<<31-Fe(l);s.entanglements[1]|=c,l&=~c}xt(n),(F&6)===0&&(vn=Ze()+500,di(0))}}break;case 31:case 13:s=Co(n,2),s!==null&&Ke(s,n,2),An(),oc(n,2)}if(n=ic(a),n===null&&Gs(e,t,a,Bn,o),n===i)break;i=n}i!==null&&a.stopPropagation()}else Gs(e,t,a,null,o)}}function ic(e){return e=ll(e),nc(e)}var Bn=null;function nc(e){if(Bn=null,e=Vo(e),e!==null){var t=_(e);if(t===null)e=null;else{var o=t.tag;if(o===13){if(e=ye(t),e!==null)return e;e=null}else if(o===31){if(e=Ee(t),e!==null)return e;e=null}else if(o===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Bn=e,null}function ud(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Vd()){case yc:return 2;case bc:return 8;case Ei:case Pd:return 32;case vc:return 268435456;default:return 32}default:return 32}}var lc=!1,yo=null,bo=null,vo=null,vi=new Map,Si=new Map,So=[],lm="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rd(e,t){switch(e){case"focusin":case"focusout":yo=null;break;case"dragenter":case"dragleave":bo=null;break;case"mouseover":case"mouseout":vo=null;break;case"pointerover":case"pointerout":vi.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Si.delete(t.pointerId)}}function Ai(e,t,o,a,i,n){return e===null||e.nativeEvent!==n?(e={blockedOn:t,domEventName:o,eventSystemFlags:a,nativeEvent:n,targetContainers:[i]},t!==null&&(t=Po(t),t!==null&&sd(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function sm(e,t,o,a,i){switch(t){case"focusin":return yo=Ai(yo,e,t,o,a,i),!0;case"dragenter":return bo=Ai(bo,e,t,o,a,i),!0;case"mouseover":return vo=Ai(vo,e,t,o,a,i),!0;case"pointerover":var n=i.pointerId;return vi.set(n,Ai(vi.get(n)||null,e,t,o,a,i)),!0;case"gotpointercapture":return n=i.pointerId,Si.set(n,Ai(Si.get(n)||null,e,t,o,a,i)),!0}return!1}function pd(e){var t=Vo(e.target);if(t!==null){var o=_(t);if(o!==null){if(t=o.tag,t===13){if(t=ye(o),t!==null){e.blockedOn=t,Ec(e.priority,function(){cd(o)});return}}else if(t===31){if(t=Ee(o),t!==null){e.blockedOn=t,Ec(e.priority,function(){cd(o)});return}}else if(t===3&&o.stateNode.current.memoizedState.isDehydrated){e.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Nn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var o=ic(e.nativeEvent);if(o===null){o=e.nativeEvent;var a=new o.constructor(o.type,o);nl=a,o.target.dispatchEvent(a),nl=null}else return t=Po(o),t!==null&&sd(t),e.blockedOn=o,!1;t.shift()}return!0}function dd(e,t,o){Nn(e)&&o.delete(t)}function cm(){lc=!1,yo!==null&&Nn(yo)&&(yo=null),bo!==null&&Nn(bo)&&(bo=null),vo!==null&&Nn(vo)&&(vo=null),vi.forEach(dd),Si.forEach(dd)}function In(e,t){e.blockedOn===t&&(e.blockedOn=null,lc||(lc=!0,v.unstable_scheduleCallback(v.unstable_NormalPriority,cm)))}var _n=null;function gd(e){_n!==e&&(_n=e,v.unstable_scheduleCallback(v.unstable_NormalPriority,function(){_n===e&&(_n=null);for(var t=0;t<e.length;t+=3){var o=e[t],a=e[t+1],i=e[t+2];if(typeof a!="function"){if(nc(a||o)===null)continue;break}var n=Po(o);n!==null&&(e.splice(t,3),t-=3,is(n,{pending:!0,data:i,method:o.method,action:a},a,i))}}))}function wa(e){function t(c){return In(c,e)}yo!==null&&In(yo,e),bo!==null&&In(bo,e),vo!==null&&In(vo,e),vi.forEach(t),Si.forEach(t);for(var o=0;o<So.length;o++){var a=So[o];a.blockedOn===e&&(a.blockedOn=null)}for(;0<So.length&&(o=So[0],o.blockedOn===null);)pd(o),o.blockedOn===null&&So.shift();if(o=(e.ownerDocument||e).$$reactFormReplay,o!=null)for(a=0;a<o.length;a+=3){var i=o[a],n=o[a+1],l=i[_e]||null;if(typeof n=="function")l||gd(o);else if(l){var s=null;if(n&&n.hasAttribute("formAction")){if(i=n,l=n[_e]||null)s=l.formAction;else if(nc(i)!==null)continue}else s=l.action;typeof s=="function"?o[a+1]=s:(o.splice(a,3),a-=3),gd(o)}}}function fd(){function e(n){n.canIntercept&&n.info==="react-transition"&&n.intercept({handler:function(){return new Promise(function(l){return i=l})},focusReset:"manual",scroll:"manual"})}function t(){i!==null&&(i(),i=null),a||setTimeout(o,20)}function o(){if(!a&&!navigation.transition){var n=navigation.currentEntry;n&&n.url!=null&&navigation.navigate(n.url,{state:n.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,i=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(o,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),i!==null&&(i(),i=null)}}}function sc(e){this._internalRoot=e}Yn.prototype.render=sc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(f(409));var o=t.current,a=it();nd(o,a,e,t,null,null)},Yn.prototype.unmount=sc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;nd(e.current,2,null,e,null,null),An(),t[Go]=null}};function Yn(e){this._internalRoot=e}Yn.prototype.unstable_scheduleHydration=function(e){if(e){var t=Dc();e={blockedOn:null,target:e,priority:t};for(var o=0;o<So.length&&t!==0&&t<So[o].priority;o++);So.splice(o,0,e),o===0&&pd(e)}};var md=w.version;if(md!=="19.2.3")throw Error(f(527,md,"19.2.3"));D.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(f(188)):(e=Object.keys(e).join(","),Error(f(268,e)));return e=z(t),e=e!==null?J(e):null,e=e===null?null:e.stateNode,e};var um={bundleType:0,version:"19.2.3",rendererPackageName:"react-dom",currentDispatcherRef:b,reconcilerVersion:"19.2.3"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Qn=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Qn.isDisabled&&Qn.supportsFiber)try{qa=Qn.inject(um),Xe=Qn}catch{}}return zi.createRoot=function(e,t){if(!Y(e))throw Error(f(299));var o=!1,a="",i=Tr,n=zr,l=Dr;return t!=null&&(t.unstable_strictMode===!0&&(o=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(i=t.onUncaughtError),t.onCaughtError!==void 0&&(n=t.onCaughtError),t.onRecoverableError!==void 0&&(l=t.onRecoverableError)),t=ad(e,1,!1,null,null,o,a,null,i,n,l,fd),e[Go]=t.current,Qs(e),new sc(t)},zi.hydrateRoot=function(e,t,o){if(!Y(e))throw Error(f(299));var a=!1,i="",n=Tr,l=zr,s=Dr,c=null;return o!=null&&(o.unstable_strictMode===!0&&(a=!0),o.identifierPrefix!==void 0&&(i=o.identifierPrefix),o.onUncaughtError!==void 0&&(n=o.onUncaughtError),o.onCaughtError!==void 0&&(l=o.onCaughtError),o.onRecoverableError!==void 0&&(s=o.onRecoverableError),o.formState!==void 0&&(c=o.formState)),t=ad(e,1,!0,t,o??null,a,i,c,n,l,s,fd),t.context=id(null),o=t.current,a=it(),a=Fn(a),i=io(a),i.callback=null,no(o,i,a),o=a,t.current.lanes=o,La(t,o),xt(t),e[Go]=t.current,Qs(e),new Yn(t)},zi.version="19.2.3",zi}var Ed;function Sm(){if(Ed)return rc.exports;Ed=1;function v(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(v)}catch(w){console.error(w)}}return v(),rc.exports=vm(),rc.exports}var Am=Sm();const Bm=qd(Am);var Md,Cd;const Tm=(Cd=(Md=globalThis.browser)==null?void 0:Md.runtime)!=null&&Cd.id?globalThis.browser:globalThis.chrome,nt=Tm,Nm="https://starrylingo.com",zm=[{name:"简体中文",code:"zh"},{name:"繁體中文",code:"zh-TW"},{name:"English",code:"en"},{name:"日本語",code:"ja"},{name:"한국어",code:"ko"},{name:"Français",code:"fr"},{name:"Deutsch",code:"de"},{name:"Español",code:"es"},{name:"Português",code:"pt"},{name:"Italiano",code:"it"},{name:"Русский",code:"ru"}],Im=zm,_m={paywall:2147483647},Rd=["x.com","reddit.com","youtube.com"],Ld=v=>{const w=v.trim();if(!w)return null;const H=w.replace(/^\*\./,"").replace(/:\/\/\*\./,"://"),f=/^[a-z][a-z\d+.-]*:\/\//i.test(H)?H:`https://${H.replace(/^\/\//,"")}`;try{const Y=new URL(f);if(Y.protocol!=="http:"&&Y.protocol!=="https:")return null;const _=Y.hostname.toLowerCase().replace(/\.$/,"");return!_||_.length>253?null:_.split(".").every(Ee=>/^[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?$/i.test(Ee))?_:null}catch{return null}},Ud=v=>Array.isArray(v)?Array.from(new Set(v.filter(w=>typeof w=="string").map(Ld).filter(w=>!!w))):[...Rd],Ym=(v,w)=>{const H=v.toLowerCase().replace(/\.$/,"");return w.some(f=>{const Y=Ld(f);return!!(Y&&(H===Y||H.endsWith(`.${Y}`)))})},Qm=["none","background","text","underline","double-underline","wavy","dotted","dashed"],Od=["none","hover","click"],Dm=["icon","dot"],Gm=["warm","fresh","classic"],Wt={nativeLanguage:"zh",learningLanguage:"en",shoutcut:"",quickSearchShortcut:"ctrl+shift+f",paragraphTranslateShortcut:"ctrl+shift+t",enableHighlight:!0,highlightStyle:"underline",highlightColor:"#fbbf24",highlightOpacity:.5,highlightTrigger:"click",disabledHighlightWebsites:[],cardTheme:"warm",showExamples:!0,enableFloatingButton:!0,floatingButtonTrigger:"click",floatingButtonSize:"medium",floatingButtonColor:"#3b82f6",floatingButtonStyle:"dot",floatingButtonOpacity:1,enableAutoPageTranslate:!0,autoTranslateDomains:[...Rd],subtitleSecondaryMode:"normal",subtitleAutoPause:!1,enableSpeech:!0,speechProvider:"edge",speechRate:1,speechPitch:1,speechVoices:{},speechEdgeVoices:{},useCustomAI:!1,aiProvider:"openai",openaiApiKey:"",openaiModel:"gpt-4o-mini",openrouterApiKey:"",openrouterModel:"openai/gpt-4o-mini",deepseekApiKey:"",deepseekModel:"deepseek-chat",customBaseUrl:"",customApiKey:"",customModel:"",customTranslatePrompt:"",enableTagHighlight:!1,tagHighlightRules:[],enableInlineAnnotation:!1,dictionaryTabs:[{id:"ai",enabled:!0},{id:"dictionary",enabled:!0}]},xa="userSettings",Hd=v=>{const w=typeof v=="number"?v:Number(v);return Number.isFinite(w)?Math.min(1,Math.max(.2,w)):Wt.floatingButtonOpacity},kd=v=>{const w=typeof v=="number"?v:Number(v);return Number.isFinite(w)?Math.min(1,Math.max(.1,w)):Wt.highlightOpacity},Vm=async()=>{try{const v=await nt.storage.local.get(xa);if(v[xa]){const w={...Wt,...v[xa]};return Dm.includes(w.floatingButtonStyle)||(w.floatingButtonStyle=Wt.floatingButtonStyle),Od.includes(w.highlightTrigger)||(w.highlightTrigger=Wt.highlightTrigger),w.highlightOpacity=kd(w.highlightOpacity),w.floatingButtonOpacity=Hd(w.floatingButtonOpacity),w.autoTranslateDomains=Ud(w.autoTranslateDomains),w}return Wt}catch(v){return console.error("加载用户设置失败:",v),Wt}},Pm=async v=>{try{return await nt.storage.local.set({[xa]:v}),!0}catch(w){return console.error("保存用户设置失败:",w),!1}},Km=v=>{var w;typeof nt<"u"&&((w=nt.storage)!=null&&w.onChanged)&&nt.storage.onChanged.addListener((H,f)=>{if(f==="local"&&H[xa]){const Y=H[xa].newValue;if(Y){const _={...Wt,...Y};Od.includes(_.highlightTrigger)||(_.highlightTrigger=Wt.highlightTrigger),_.highlightOpacity=kd(_.highlightOpacity),_.floatingButtonOpacity=Hd(_.floatingButtonOpacity),_.autoTranslateDomains=Ud(_.autoTranslateDomains),v(_)}}})},Bd={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"一站式管理翻译体验、词典展示与自定义 AI。视觉、交互与性能偏好都在这里完成编排。","options.language.title":"语言设置","options.language.description":"配置你的母语和正在学习的目标语言。","options.language.native":"母语","options.language.nativeDesc":"界面语言将根据此设置自动切换。","options.language.learning":"学习目标语言","options.language.learningDesc":"你正在学习的语言，用于翻译和词典功能。","options.account.title":"账户与连接","options.account.description":"管理登录状态与扩展连接行为。","options.account.label":"账户","options.account.loading":"正在读取登录状态","options.account.loggedIn":"已登录：","options.account.notLoggedIn":"尚未登录，可前往授权页面完成登录","options.account.logout":"退出登录","options.account.login":"去登录","options.account.loggedOut":"已退出登录","options.account.profile":"个人资料","options.account.avatar":"头像","options.account.name":"昵称","options.account.namePlaceholder":"输入昵称","options.account.save":"保存","options.account.saving":"保存中...","options.account.profileUpdated":"个人资料已更新","options.account.profileUpdateFailed":"更新失败，请重试","options.account.editProfile":"编辑资料","options.account.cancel":"取消","options.usage.title":"用量","options.usage.description":"AI Token 使用情况","options.usage.monthly":"当前周期限额","options.usage.used":"已使用","options.usage.limit":"上限","options.usage.resetAt":"重置时间","options.usage.tokens":"tokens","options.usage.loadFailed":"用量加载失败","options.usage.loginRequired":"登录后查看用量","options.usage.upgradeToPro":"升级到 Pro","options.usage.upgradeToMax":"升级到 Max","options.usage.dailyBreakdown":"每日明细","options.usage.dailyTitle":"当前周期每日用量","options.usage.dailySubtitle":"柱高反映当日相对消耗 · 悬停可查看占周期总额的百分比","options.usage.monthTotal":"周期累计","options.usage.dailyEmpty":"无法加载明细数据","options.usage.dailyNote":"备注：tokens 仅代表本系统中的消耗单位，不等同于具体某个模型的 token 计数。","options.usage.dailyLoadFailed":"加载明细失败","paywall.title":"升级到 SentenWord Pro","paywall.subtitle":"获得稳定的月度 AI 额度，畅享流畅翻译与高级功能","paywall.max.title":"升级到 SentenWord Max","paywall.max.subtitle":"为高频翻译、AI 字幕与深度解释准备的更大月度额度","paywall.oneTimeNotice":"一次性购买 1 个月，到期不自动续费","paywall.feature.quota":"每月 30 万 AI Token","paywall.feature.maxQuota":"AI Token 额度：每月 30 万 → 200 万","paywall.feature.subtitles":"YouTube AI 双语字幕","paywall.feature.priority":"优先访问与专属客户支持","paywall.plan.monthly":"1 个月","paywall.plan.quarterly":"按季度","paywall.plan.halfYear":"半年","paywall.plan.yearly":"按年","paywall.priceSuffix.month":"/月","paywall.price.loading":"正在读取价格…","paywall.priceTotal":"总价 {{total}}","paywall.savings":"省 {{percent}}%","paywall.recommended":"最划算","paywall.continueButton":"继续结算","paywall.continueLoading":"正在跳转...","paywall.close":"关闭","paywall.error.loginRequired":"需要先登录才能升级。","paywall.error.goLogin":"去登录","paywall.error.network":"创建支付会话失败，请稍后重试","paywall.error.priceUnavailable":"价格加载失败，请重试","paywall.confirm.title":"等待支付完成","paywall.confirm.message":"已在新标签页打开支付页面。请在 Stripe 完成支付后回到此处点击下方按钮。","paywall.confirm.completed":"我已完成支付","paywall.confirm.cancel":"取消","paywall.confirm.checking":"正在确认…","paywall.confirm.retry":"再试一次","paywall.confirm.notYet":"暂未检测到 Pro 状态。如果你刚完成支付，请稍候片刻后再试。","paywall.confirm.notYetMax":"暂未检测到 Max 权益。如果你刚完成支付，请稍候片刻后再试。","options.highlight.title":"外观","options.highlight.description":"管理高亮样式与颜色设置。","options.highlight.panelTitle":"高亮","options.highlight.panelDescription":"单词收藏在网页中的呈现方式与色彩系统。","options.card.themeTitle":"卡片主题","options.card.themeDescription":"切换词典卡片的视觉风格。","options.card.theme.warm":"暖光","options.card.theme.classic":"经典","options.card.theme.fresh":"清新","options.highlight.enable":"启用高亮","options.highlight.enableDesc":"关闭后网页中的已收藏单词将不再高亮。","options.highlight.inlineAnnotation":"显示行内释义","options.highlight.inlineAnnotationDesc":"在高亮词旁边显示词性和释义，例如 Reload(v.重新加载)。","options.highlight.trigger":"解释面板触发","options.highlight.triggerDesc":"设置高亮词是否通过点击、悬停或不触发解释面板。","options.highlight.trigger.none":"无动作","options.highlight.styleSelect":"样式选择","options.highlight.colorSelect":"颜色选择","options.highlight.opacity":"高亮透明度","options.highlight.opacityDesc":"调整高亮颜色在网页中的透明程度。","options.highlight.style.none":"无","options.highlight.style.background":"背景色","options.highlight.style.text":"文字颜色","options.highlight.style.underline":"下划线","options.highlight.style.doubleUnderline":"双下划线","options.highlight.style.wavy":"波浪线","options.highlight.style.dotted":"点线","options.highlight.style.dashed":"虚线","options.tagHighlight.panelTitle":"词汇标签高亮","options.tagHighlight.panelDescription":"根据词典标签和词频范围高亮网页中的单词。","options.tagHighlight.enable":"启用标签高亮","options.tagHighlight.enableDesc":"根据配置的规则，自动高亮匹配的单词。","options.tagHighlight.addRule":"添加规则","options.tagHighlight.tag":"词典标签","options.tagHighlight.frqRange":"词频范围","options.tagHighlight.frqMin":"最小","options.tagHighlight.frqMax":"最大","options.tagHighlight.noRules":"暂无规则，点击上方按钮添加。","options.tagHighlight.deleteRule":"删除","options.tagHighlight.style":"样式","options.tagHighlight.color":"颜色","options.tagHighlight.enabled":"启用","options.translation.title":"翻译设置","options.translation.description":"管理页面双语翻译与划词翻译入口。","options.autoTranslate.title":"网页自动翻译","options.autoTranslate.description":"进入已配置的网站时，自动开启页面双语翻译。","options.autoTranslate.enable":"启用自动翻译","options.autoTranslate.enableDesc":"仅在下方域名匹配时自动启动；已打开的页面需刷新后生效。","options.autoTranslate.domains":"网站域名","options.autoTranslate.domainsDesc":"主域名会同时匹配子域名，例如 reddit.com 会匹配 www.reddit.com。","options.autoTranslate.placeholder":"输入域名或网址，例如 medium.com","options.autoTranslate.add":"添加","options.autoTranslate.remove":"移除","options.autoTranslate.invalidDomain":"请输入有效域名或 HTTP(S) 网址。","options.autoTranslate.duplicateDomain":"该域名已经在列表中。","options.autoTranslate.empty":"暂无域名，自动翻译不会在任何网站启动。","options.dictionary.title":"词典内容","options.dictionary.description":"控制单词卡片展示的解释层级与示例内容。","options.dictionary.showExamples":"显示例句","options.dictionary.showExamplesDesc":"在释义中展示句子例子。","options.dictionary.tabs.title":"查词设置","options.dictionary.tabs.description":"配置词典卡片中各查词方式的显示顺序与启用状态。仅在母语为中文、学习语言为英文时生效。","options.dictionary.tabs.ai":"AI 查词","options.dictionary.tabs.simple":"简易词典","options.dictionary.tabs.dictionary":"专业词典","options.dictionary.tabs.moveUp":"上移","options.dictionary.tabs.moveDown":"下移","options.floating.title":"划词翻译","options.floating.description":"定义浮动按钮的出现方式、尺寸、颜色、透明度与样式。","options.floating.enable":"启用浮动按钮","options.floating.enableDesc":"选中文本后显示翻译入口。","options.floating.trigger":"触发方式","options.floating.triggerDesc":"点击或悬停触发翻译。","options.floating.trigger.click":"点击","options.floating.trigger.hover":"悬停","options.floating.size":"按钮大小","options.floating.sizeDesc":"按你的视觉偏好调整尺寸。","options.floating.size.xsmall":"极小","options.floating.size.small":"小","options.floating.size.medium":"中","options.floating.size.large":"大","options.floating.style":"按钮样式","options.floating.styleDesc":"图标、圆点或文字。","options.floating.style.icon":"图标","options.floating.style.dot":"圆点","options.floating.color":"按钮颜色","options.floating.colorDesc":"可选预设或自定义色值。","options.floating.opacity":"按钮透明度","options.floating.opacityDesc":"调整浮动按钮在页面上的透明程度。","options.hotkeys.title":"快捷键","options.hotkeys.description":"按键支持失焦或回车自动保存。","options.companion.title":"iOS 应用","options.companion.description":"把你的收藏装进口袋——随时翻阅，随时复习。","options.companion.platform":"for iPhone · iPad","options.companion.pitch":"你可以在这个 App 里面查看你收藏的词句。","options.companion.feat1":"随时翻阅你保存的词与句","options.companion.feat2":"用间隔重复巩固记忆","options.companion.feat3":"更多精选词书，跟着系统学下去","options.companion.cta":"在 App Store 下载","options.favorites.title":"查看收藏词","options.companion.syncTitle":"跨设备数据同步","options.companion.syncDesc":"在网页和 iOS 应用中使用同一 Apple 账户登录，即可同步收藏数据。","options.contact.title":"官网与联系","options.contact.description":"访问 SentenWord 官网，或通过电子邮件和微信与我联系。","options.contact.website":"官方网站","options.contact.websiteDesc":"查看产品介绍、账户与最新动态。","options.contact.email":"电子邮件","options.contact.emailDesc":"功能建议、问题反馈与合作交流。","options.contact.signoff":"你的每一条反馈，都会让 SentenWord 再好用一点。","options.contact.wechat":"微信联系","options.contact.wechatDesc":"使用微信扫描二维码，添加我为好友。","options.speech.title":"语音朗读","options.speech.description":"配置朗读原文和译文时使用的语音。","options.speech.enable":"启用朗读","options.speech.enableDesc":"在翻译卡片上显示朗读按钮。","options.speech.rate":"语速","options.speech.rateDesc":"0.5× 到 2.0×，默认 1.0×。","options.speech.pitch":"音调","options.speech.pitchDesc":"0.5 到 1.5，默认 1.0。","options.speech.voices":"语音选择","options.speech.provider":"朗读引擎","options.speech.providerDesc":"Edge 使用微软神经网络语音（联网，音质更好）；系统使用浏览器自带语音（离线）。","options.speech.providerEdge":"Edge (高质量)","options.speech.providerWeb":"系统","options.speech.edgeVoicesDesc":"从微软神经网络语音中选择。失败时会自动回退到系统语音。","options.speech.voicesDesc":"为每种语言选择偏好语音，云端语音（☁）音质通常更好。","options.speech.auto":"自动（最佳）","options.speech.autoWithName":"自动 — {{name}}","options.speech.test":"试听","options.speech.noVoices":"当前浏览器未检测到语音，请检查系统语音设置。","options.hotkeys.quickSearch":"快速搜索","options.hotkeys.quickSearchDesc":"打开快速搜索弹窗。","options.hotkeys.paragraph":"段落翻译","options.hotkeys.paragraphDesc":"翻译鼠标悬停段落。","options.ai.title":"AI 翻译","options.ai.description":"选择 AI 翻译服务来源，可使用内置服务或配置自己的 API Key。","options.ai.usingCustom":"自定义 API","options.ai.usingBackend":"内置 AI","options.ai.providerLabel":"Provider: {{provider}}","options.ai.enable":"AI 服务","options.ai.enableDesc":"打开后使用你配置的 provider 与模型。","options.ai.enableDescBackend":"使用 SentenWord 提供的内置 AI 翻译服务。","options.ai.enableDescCustom":"使用自己的 API Key 与模型，Key 仅保存在本地。","options.ai.provider":"Provider","options.ai.providerDesc":"选择具体的服务商。","options.ai.configWarningTitle":"AI 配置不完整","options.ai.missingKeyWarning":"还没有填写 {{provider}} 的 API Key，AI 翻译、划词释义和字幕翻译都会失败。","options.ai.incompleteCustomWarning":"自定义 API 还缺少：{{fields}}。补全后才能使用 AI 功能。","options.ai.fieldBaseUrl":"接口地址","options.ai.fieldApiKey":"API Key","options.ai.fieldModel":"模型名称","options.ai.freeProviderNote":"免费公共接口，无需 API Key。单词解释等 AI 能力将回落到内置后端。","options.ai.kind":"服务类型","options.ai.kindDesc":"AI 模型可提供单词释义、语法分析；免费翻译无需 API Key，但只翻译整句，释义类功能会回落到内置服务。","options.ai.kindModel":"AI 模型","options.ai.kindPlain":"免费翻译","options.engine.title":"当前翻译引擎","options.engine.description":"同一份设置在不同功能上的结果并不相同，这里是各功能实际调用的服务。","options.engine.page":"页面翻译","options.engine.selection":"划词翻译","options.engine.subtitle":"YouTube 字幕","options.engine.backend":"内置服务","options.engine.fallbackPlain":"{{provider}} 无法生成词典释义，此功能回落到内置服务。","options.engine.fallbackUnconfigured":"API Key 未配置，此功能回落到内置服务。","options.engine.unconfigured":"API Key 未配置，此功能会失败。","options.engine.goToAi":"前往 AI 设置","options.subtitle.title":"YouTube 字幕","options.subtitle.description":"双语字幕的显示方式与播放行为。","options.subtitle.secondaryMode":"副字幕显示","options.subtitle.secondaryModeDesc":"控制译文字幕的显示方式，模糊后可点击查看，适合先自测理解。","options.subtitle.modeNormal":"正常","options.subtitle.modeBlur":"模糊","options.subtitle.modeHide":"隐藏","options.subtitle.autoPause":"字幕自动暂停","options.subtitle.autoPauseDesc":"每句字幕结束时自动暂停视频，方便跟读。","options.ai.apiKey":"API Key","options.ai.apiKeyDesc":"输入后失焦自动保存。","options.ai.model":"Model","options.ai.openaiModelDesc":"默认模型为 gpt-4o-mini。","options.ai.openrouterModelDesc":"示例：openai/gpt-4o-mini。","options.ai.deepseekModelDesc":"默认模型为 deepseek-chat。","options.ai.customBaseUrl":"API Base URL","options.ai.customBaseUrlDesc":"OpenAI 兼容 API 地址，如通义千问、智谱、Moonshot 等。","options.ai.customModelDesc":"模型名称，如 qwen-turbo、glm-4 等。","options.ai.translatePrompt":"翻译提示词","options.ai.translatePromptDesc":"自定义翻译时发送给 AI 的提示词，AI 会自动判断是单词还是段落。","options.ai.promptReset":"恢复默认","options.ai.promptVariablesHint":"可用模板变量：{{text}}、{{context}}、{{targetLanguage}}、{{#context}}...{{/context}}","options.metrics.highlight":"当前高亮","options.metrics.customAI":"自定义 AI","options.metrics.enabled":"已启用","options.metrics.disabled":"关闭","options.metrics.account":"账户状态","options.metrics.loading":"读取中","options.metrics.loggedIn":"已登录","options.metrics.notLoggedIn":"未登录","options.metrics.syncHint":"登录后可同步云端功能","options.metrics.syncingHint":"同步账户信息中","common.saving":"保存中","common.saveFailed":"保存失败，请重试","common.loading":"加载设置中...","common.definitionGenerating":"定义正在生成，请稍后再试。","common.unknownError":"未知错误","common.pageTranslateLoginRequired":"请先登录以使用页面翻译功能","common.trialQuotaExceededLogin":"试用次数已用完，请登录后继续使用","common.translationQuotaExceededUpgrade":"翻译额度已用完，请升级会员或稍后再试","common.rateLimitNotLoggedIn":"请求过于频繁，请登录以获取更多翻译额度","common.freeQuotaExceeded":"已达到本月使用上限，{{resetTime}}后重置。升级 Pro 可获得更充裕的额度","common.proQuotaExceeded":"已达到本月使用上限，{{resetTime}}后重置","common.quotaExceeded.title":"本月额度已用完","common.quotaExceeded.reset":"{{resetTime}} 后重置","common.toast.loginRequiredTitle":"需要登录","common.toast.quotaInsufficientTitle":"额度不足","common.toast.translationErrorTitle":"翻译出错","common.toast.loginAction":"去登录","common.toast.laterAction":"稍后","common.toast.upgradeAction":"升级会员","common.toast.closeAction":"关闭","common.toast.aiConfigTitle":"AI 配置不完整","common.toast.openSettingsAction":"去设置","common.aiConfigNotEnabled":"请先在设置中启用并配置自定义 AI。","common.aiConfigMissingKey":"你启用了自定义 AI（{{provider}}），但还没有填写 API Key。请在设置中填写，或切换回内置 AI 服务。","common.aiConfigIncompleteCustom":"自定义 API 配置不完整。请在设置中补全接口地址、API Key 和模型名称。","common.aiConfigUnsupportedProvider":"{{provider}} 只支持普通翻译。要使用 AI 功能，请在设置中选择一个大模型服务商。","common.sessionExpiredTitle":"登录已过期","common.sessionExpiredDesc":"请重新登录以继续使用完整功能","common.sessionReloginAction":"重新登录","common.preview":"示例","common.unexpectedError":"发生了意外错误","footer.copyright":"SentenWord","color.amber":"琥珀","color.green":"绿色","color.blue":"蓝色","color.indigo":"靛蓝","color.coral":"珊瑚","color.orange":"橙色","color.cyan":"青色","color.brown":"棕色","color.red":"红色","color.gold":"金色","color.magenta":"品红","color.darkGray":"深灰","color.custom":"自定义","color.customHighlight":"自定义高亮色","color.customButton":"自定义按钮色","welcome.subtitle":"欢迎使用 SentenWord，让我们先完成一些基本设置","welcome.nativeLanguage":"你的母语","welcome.nativeLanguageDesc":"界面语言将根据此设置自动切换。","welcome.learningLanguage":"你想学习的语言","welcome.learningLanguageDesc":"选择你正在学习的目标语言。","welcome.getStarted":"开始使用","welcome.account":"账号","welcome.accountDesc":"登录后可同步收藏词汇和学习进度。","welcome.login":"登录 / 注册","welcome.maybeLater":"以后再说","welcome.loggedInAs":"已登录","welcome.next":"下一步","welcome.back":"返回","popup.title":"SentenWord","popup.settings":"设置","popup.quickSearch":"快速搜索","popup.stopTranslate":"停止翻译","popup.translatePage":"翻译页面","popup.translationEnabled":"翻译已启用","popup.visitWebsite":"访问官网","popup.wordBook":"单词本","popup.login":"登录","popup.loginDesc":"登录以同步数据","popup.screenshot":"截图识别","screenshot.hint":"拖动以选择要识别的区域 · 按 Esc 取消","screenshot.processing":"识别中…","screenshot.empty":"未识别到文字","screenshot.failed":"识别失败","screenshot.loginRequired":"请先登录后再使用截图识别","screenshot.quotaExceeded":"本月额度已用完，明天再试或升级套餐","screenshot.translation":"翻译","screenshot.close":"关闭","screenshot.copy":"复制","screenshot.copied":"已复制","card.title":"SentenWord","card.wordBook":"单词本","card.tabSimpleDictionary":"简易词典","card.tabDictionary":"详解词典","card.tabAI":"AI 解释","card.detailedExplanation":"详细解释","card.detailedExplanationLoading":"正在生成详细解释...","card.detailedExplanationRetry":"重试","card.originalText":"原文","card.translationText":"翻译","card.closeDetailedExplanation":"关闭详细解释","card.closeCard":"关闭卡片","card.settings":"设置","collection.title":"收藏","collection.closeModal":"关闭收藏窗口","collection.folder":"收藏夹","collection.loading":"正在加载...","collection.defaultFolder":"默认收藏夹","collection.loadingHint":"加载中…","collection.word":"单词 *","collection.wordPlaceholder":"请输入单词","collection.partOfSpeech":"词性","collection.partOfSpeechPlaceholder":"词性","collection.phonetic":"音标","collection.phoneticPlaceholder":"如 /mɪˈlɛniə/","collection.meaning":"单词解释","collection.meaningPlaceholder":"单词解释","collection.context":"上下文内容 *","collection.contextPlaceholder":"请输入完整例句","collection.contextTranslation":"上下文翻译","collection.contextTranslationPlaceholder":"请输入上下文的翻译","collection.examples":"额外例句","collection.examplesHint":"（可不填，每行一个）","collection.examplesPlaceholder":"输入额外例句，每行一个","collection.saving":"保存中...","collection.save":"保存","collection.saveSuccess":"收藏成功","collection.saveToFolder":"收藏到","collection.saveSuccessTo":"已收藏到「{{name}}」","collection.moveFailed":"移动词书失败","collection.saveFailed":"收藏失败","collection.notLoggedIn":"用户未登录，无法收藏","collection.notLoggedInLoad":"用户未登录，无法加载收藏夹","collection.loadFailed":"加载收藏夹失败","collection.wordRequired":"请填写单词/短语","collection.contextTooLong":"上下文内容不能超过{{max}}个字符","youtube.machineTranslate":"机器翻译","youtube.aiTranslate":"AI 翻译","youtube.subtitlePanel":"字幕面板","youtube.closePanel":"关闭字幕面板","youtube.panelAriaLabel":"字幕面板标签","youtube.tabSubtitles":"字幕","youtube.tabSettings":"设置","youtube.downloadSrt":"下载双语 SRT","youtube.noSubtitles":"暂无字幕","youtube.showBilingualSubtitle":"显示双语字幕","youtube.showBilingualSubtitleDesc":"控制视频画面上的双语字幕覆盖层","youtube.enableSubtitleList":"启用字幕列表","youtube.enableSubtitleListDesc":"关闭后将收起当前字幕列表面板","youtube.autoScroll":"自动滚动","youtube.autoScrollDesc":"播放时自动定位到当前句子","youtube.noDownloadableSubtitle":"暂无可下载字幕","youtube.loadSecondaryFirst":"请先加载副字幕后再下载双语 SRT","youtube.exportEmpty":"字幕导出失败：内容为空","youtube.downloadStarted":"双语 SRT 下载已开始","youtube.downloadFailed":"双语 SRT 下载失败","youtube.subtitleTranslateFallbackFailed":"字幕翻译失败，请稍后重试","youtube.primaryLoadFailed":"主字幕加载失败","youtube.machineTranslateUnavailable":"机器翻译不可用，已切换到 AI 翻译","youtube.machineTranslateFailed":"机器翻译获取失败，已切换到 AI 翻译","youtube.secondaryLoadFailed":"副字幕加载失败","youtube.aiTranslateEnabled":"已启用 AI 字幕翻译","youtube.fetchingMachineTranslate":"正在获取机器翻译字幕...","youtube.subtitleContentEmpty":"当前选中的字幕内容为空或暂时不可用","youtube.noAvailableSubtitles":"该视频没有可用字幕","youtube.trackLoadFailed":"字幕轨道加载失败","youtube.btnSubtitleOn":"SentenWord 双语字幕 (开)","youtube.btnSubtitleOff":"SentenWord 双语字幕 (关)","youtube.btnPanelOn":"SentenWord 字幕面板 (开)","youtube.btnPanelOff":"SentenWord 字幕面板 (关)","youtube.btnSettings":"SentenWord 字幕设置","youtube.menuBilingualSubtitle":"双语字幕","youtube.menuSidebar":"字幕侧边栏","youtube.menuSettings":"设置","contextMenu.smartTranslate":"SentenWord","contextMenu.translatePage":"SentenWord | 翻译全文","contextMenu.restoreOriginal":"SentenWord | 恢复原文","quickSearch.title":"Quick Search","quickSearch.dictionary":"词典","quickSearch.ai":"AI","quickSearch.dictPlaceholder":"输入单词查询...","quickSearch.aiPlaceholder":"输入单词或句子，AI 为你解释...","quickSearch.submit":"查询","quickSearch.hint":"Ctrl+Shift+F 唤起 · Enter 查询 · Tab 切换模式 · Escape 关闭","subtitle.loading":"字幕加载中...","subtitle.ready":"字幕已就绪，等待语音开始","subtitle.notDetected":"暂未检测到可显示字幕，请继续播放或切换视频重试","floating.translate":"翻译","word.viewInDict":"在 {{name}} 中查看","word.unfavorite":"取消收藏","speech.playOriginal":"朗读原文","speech.playTranslation":"朗读译文","word.favorite":"收藏单词","ai.favoritePhrase":"收藏短语","ai.collapse":"收起","ai.viewAll":"查看全部 ({{count}})","ai.noResult":"暂无翻译结果","ai.loading":"加载中...","common.expand":"查看全部","common.collapseText":"收起","common.translating":"翻译中...","options.changelog.title":"更新日志","update.action":"有新版本可用"},Em={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"一站式管理翻譯體驗、詞典展示與自訂 AI。視覺、互動與效能偏好都在這裡完成編排。","options.language.title":"語言設定","options.language.description":"配置你的母語和正在學習的目標語言。","options.language.native":"母語","options.language.nativeDesc":"介面語言將根據此設定自動切換。","options.language.learning":"學習目標語言","options.language.learningDesc":"你正在學習的語言，用於翻譯和詞典功能。","options.account.title":"帳戶與連線","options.account.description":"管理登入狀態與擴充功能連線行為。","options.account.label":"帳戶","options.account.loading":"正在讀取登入狀態","options.account.loggedIn":"已登入：","options.account.notLoggedIn":"尚未登入，可前往授權頁面完成登入","options.account.logout":"登出","options.account.login":"去登入","options.account.loggedOut":"已登出","options.account.profile":"個人資料","options.account.avatar":"頭像","options.account.name":"暱稱","options.account.namePlaceholder":"輸入暱稱","options.account.save":"儲存","options.account.saving":"儲存中...","options.account.profileUpdated":"個人資料已更新","options.account.profileUpdateFailed":"更新失敗，請重試","options.account.editProfile":"編輯資料","options.account.cancel":"取消","options.usage.title":"用量","options.usage.description":"AI Token 使用情況","options.usage.monthly":"當前週期限額","options.usage.used":"已使用","options.usage.limit":"上限","options.usage.resetAt":"重置時間","options.usage.tokens":"tokens","options.usage.loadFailed":"用量載入失敗","options.usage.loginRequired":"登入後查看用量","options.usage.upgradeToPro":"升級到 Pro","options.usage.upgradeToMax":"升級到 Max","options.usage.dailyBreakdown":"每日明細","options.usage.dailyTitle":"當前週期每日用量","options.usage.dailySubtitle":"柱高反映當日相對消耗 · 懸停可查看佔週期總額的百分比","options.usage.monthTotal":"週期累計","options.usage.dailyEmpty":"無法載入明細資料","options.usage.dailyNote":"備註：tokens 僅代表本系統中的消耗單位，不等同於具體某個模型的 token 計數。","options.usage.dailyLoadFailed":"載入明細失敗","paywall.title":"升級到 SentenWord Pro","paywall.subtitle":"獲得穩定的每月 AI 額度，暢享流暢翻譯與進階功能","paywall.max.title":"升級到 SentenWord Max","paywall.max.subtitle":"為高頻翻譯、AI 字幕與深度解釋準備的更大每月額度","paywall.oneTimeNotice":"一次性購買 1 個月，到期不會自動續費","paywall.feature.quota":"每月 30 萬 AI Token","paywall.feature.maxQuota":"AI Token 額度：每月 30 萬 → 200 萬","paywall.feature.subtitles":"YouTube AI 雙語字幕","paywall.feature.priority":"優先存取與專屬客戶支援","paywall.plan.monthly":"1 個月","paywall.plan.quarterly":"季方案","paywall.plan.halfYear":"半年方案","paywall.plan.yearly":"年方案","paywall.priceSuffix.month":"/月","paywall.price.loading":"正在讀取價格…","paywall.priceTotal":"總價 {{total}}","paywall.savings":"省 {{percent}}%","paywall.recommended":"最划算","paywall.continueButton":"繼續結算","paywall.continueLoading":"正在跳轉...","paywall.close":"關閉","paywall.error.loginRequired":"需要先登入才能升級。","paywall.error.goLogin":"去登入","paywall.error.network":"建立付款工作階段失敗，請稍後重試","paywall.error.priceUnavailable":"價格載入失敗，請重試","paywall.confirm.title":"等待付款完成","paywall.confirm.message":"已在新分頁開啟付款頁面。請在 Stripe 完成付款後回到此處點擊下方按鈕。","paywall.confirm.completed":"我已完成付款","paywall.confirm.cancel":"取消","paywall.confirm.checking":"正在確認…","paywall.confirm.retry":"再試一次","paywall.confirm.notYet":"尚未偵測到 Pro 狀態。如果您剛完成付款，請稍候片刻後再試。","paywall.confirm.notYetMax":"尚未偵測到 Max 權益。如果您剛完成付款，請稍候片刻後再試。","options.highlight.title":"外觀","options.highlight.description":"管理醒目標示樣式與顏色設定。","options.highlight.panelTitle":"醒目標示樣式","options.highlight.panelDescription":"單字收藏在網頁中的呈現方式與色彩系統。","options.card.themeTitle":"卡片主題","options.card.themeDescription":"切換詞典卡片的視覺風格。","options.card.theme.warm":"暖光","options.card.theme.classic":"經典","options.card.theme.fresh":"清新","options.highlight.enable":"啟用醒目標示","options.highlight.enableDesc":"關閉後網頁中的已收藏單字將不再醒目標示。","options.highlight.inlineAnnotation":"顯示行內釋義","options.highlight.inlineAnnotationDesc":"在醒目標示詞旁邊顯示詞性和釋義，例如 Reload(v.重新載入)。","options.highlight.trigger":"解釋面板觸發","options.highlight.triggerDesc":"設定醒目標示詞是否透過點擊、懸停或不觸發解釋面板。","options.highlight.trigger.none":"無動作","options.highlight.styleSelect":"樣式選擇","options.highlight.colorSelect":"顏色選擇","options.highlight.opacity":"醒目標示透明度","options.highlight.opacityDesc":"調整醒目標示顏色在網頁中的透明程度。","options.highlight.style.none":"無","options.highlight.style.background":"背景色","options.highlight.style.text":"文字顏色","options.highlight.style.underline":"底線","options.highlight.style.doubleUnderline":"雙底線","options.highlight.style.wavy":"波浪線","options.highlight.style.dotted":"點線","options.highlight.style.dashed":"虛線","options.tagHighlight.panelTitle":"詞彙標籤醒目標示","options.tagHighlight.panelDescription":"根據詞典標籤和詞頻範圍醒目標示網頁中的單字。","options.tagHighlight.enable":"啟用標籤醒目標示","options.tagHighlight.enableDesc":"根據配置的規則，自動醒目標示匹配的單字。","options.tagHighlight.addRule":"新增規則","options.tagHighlight.tag":"詞典標籤","options.tagHighlight.frqRange":"詞頻範圍","options.tagHighlight.frqMin":"最小","options.tagHighlight.frqMax":"最大","options.tagHighlight.noRules":"暫無規則，點擊上方按鈕新增。","options.tagHighlight.deleteRule":"刪除","options.tagHighlight.style":"樣式","options.tagHighlight.color":"顏色","options.tagHighlight.enabled":"啟用","options.translation.title":"翻譯設定","options.translation.description":"管理頁面雙語翻譯與劃詞翻譯入口。","options.autoTranslate.title":"網頁自動翻譯","options.autoTranslate.description":"進入已設定的網站時，自動開啟頁面雙語翻譯。","options.autoTranslate.enable":"啟用自動翻譯","options.autoTranslate.enableDesc":"僅在下方網域相符時自動啟動；已開啟的頁面需重新整理後生效。","options.autoTranslate.domains":"網站網域","options.autoTranslate.domainsDesc":"主網域會同時比對子網域，例如 reddit.com 會比對 www.reddit.com。","options.autoTranslate.placeholder":"輸入網域或網址，例如 medium.com","options.autoTranslate.add":"新增","options.autoTranslate.remove":"移除","options.autoTranslate.invalidDomain":"請輸入有效的網域或 HTTP(S) 網址。","options.autoTranslate.duplicateDomain":"此網域已在清單中。","options.autoTranslate.empty":"尚無網域，自動翻譯不會在任何網站啟動。","options.dictionary.title":"詞典內容","options.dictionary.description":"控制單字卡片展示的解釋層級與範例內容。","options.dictionary.showExamples":"顯示例句","options.dictionary.showExamplesDesc":"在釋義中展示句子範例。","options.dictionary.tabs.title":"查詞設定","options.dictionary.tabs.description":"配置詞典卡片中各查詞方式的顯示順序與啟用狀態。僅在母語為中文、學習語言為英文時生效。","options.dictionary.tabs.ai":"AI 查詞","options.dictionary.tabs.simple":"簡易詞典","options.dictionary.tabs.dictionary":"專業詞典","options.dictionary.tabs.moveUp":"上移","options.dictionary.tabs.moveDown":"下移","options.floating.title":"劃詞翻譯","options.floating.description":"定義浮動按鈕的出現方式、尺寸、顏色、透明度與樣式。","options.floating.enable":"啟用浮動按鈕","options.floating.enableDesc":"選取文字後顯示翻譯入口。","options.floating.trigger":"觸發方式","options.floating.triggerDesc":"點擊或懸停觸發翻譯。","options.floating.trigger.click":"點擊","options.floating.trigger.hover":"懸停","options.floating.size":"按鈕大小","options.floating.sizeDesc":"按你的視覺偏好調整尺寸。","options.floating.size.xsmall":"極小","options.floating.size.small":"小","options.floating.size.medium":"中","options.floating.size.large":"大","options.floating.style":"按鈕樣式","options.floating.styleDesc":"圖示、圓點或文字。","options.floating.style.icon":"圖示","options.floating.style.dot":"圓點","options.floating.color":"按鈕顏色","options.floating.colorDesc":"可選預設或自訂色值。","options.floating.opacity":"按鈕透明度","options.floating.opacityDesc":"調整浮動按鈕在頁面上的透明程度。","options.hotkeys.title":"快捷鍵","options.hotkeys.description":"按鍵支援失焦或回車自動儲存。","options.companion.title":"iOS 應用","options.companion.description":"把你的收藏裝進口袋——隨時翻閱，隨時複習。","options.companion.platform":"for iPhone · iPad","options.companion.pitch":"你可以在這個 App 裡查看你收藏的詞句。","options.companion.feat1":"隨時翻閱你保存的詞與句","options.companion.feat2":"用間隔重複鞏固記憶","options.companion.feat3":"更多精選詞書，跟著系統學下去","options.companion.cta":"在 App Store 下載","options.favorites.title":"查看收藏詞","options.companion.syncTitle":"跨裝置資料同步","options.companion.syncDesc":"在網頁與 iOS 應用中使用同一 Apple 帳戶登入，即可同步收藏資料。","options.contact.title":"官網與聯絡","options.contact.description":"前往 SentenWord 官網，或透過電子郵件與微信和我聯絡。","options.contact.website":"官方網站","options.contact.websiteDesc":"查看產品介紹、帳戶與最新動態。","options.contact.email":"電子郵件","options.contact.emailDesc":"功能建議、問題回報與合作交流。","options.contact.signoff":"你的每一則回饋，都會讓 SentenWord 再好用一點。","options.contact.wechat":"微信聯絡","options.contact.wechatDesc":"使用微信掃描二維碼，加我為好友。","options.speech.title":"語音朗讀","options.speech.description":"設定朗讀原文與譯文所使用的語音。","options.speech.enable":"啟用朗讀","options.speech.enableDesc":"在翻譯卡片上顯示朗讀按鈕。","options.speech.rate":"語速","options.speech.rateDesc":"0.5× 到 2.0×，預設 1.0×。","options.speech.pitch":"音調","options.speech.pitchDesc":"0.5 到 1.5，預設 1.0。","options.speech.voices":"語音選擇","options.speech.provider":"朗讀引擎","options.speech.providerDesc":"Edge 使用微軟神經網路語音（聯網，音質更好）；系統使用瀏覽器內建語音（離線）。","options.speech.providerEdge":"Edge (高品質)","options.speech.providerWeb":"系統","options.speech.edgeVoicesDesc":"從微軟神經網路語音中選擇。失敗時會自動回退到系統語音。","options.speech.voicesDesc":"為每種語言選擇偏好語音，雲端語音（☁）音質通常更佳。","options.speech.auto":"自動（最佳）","options.speech.autoWithName":"自動 — {{name}}","options.speech.test":"試聽","options.speech.noVoices":"目前瀏覽器未偵測到語音，請檢查系統語音設定。","options.hotkeys.quickSearch":"快速搜尋","options.hotkeys.quickSearchDesc":"開啟快速搜尋彈窗。","options.hotkeys.paragraph":"段落翻譯","options.hotkeys.paragraphDesc":"翻譯滑鼠懸停段落。","options.ai.title":"AI 翻譯","options.ai.description":"選擇 AI 翻譯服務來源，可使用內建服務或配置自己的 API Key。","options.ai.usingCustom":"自訂 API","options.ai.usingBackend":"內建 AI","options.ai.providerLabel":"Provider: {{provider}}","options.ai.enable":"AI 服務","options.ai.enableDesc":"開啟後使用你配置的 provider 與模型。","options.ai.enableDescBackend":"使用 SentenWord 提供的內建 AI 翻譯服務。","options.ai.enableDescCustom":"使用自己的 API Key 與模型，Key 僅儲存在本地。","options.ai.provider":"Provider","options.ai.providerDesc":"選擇具體的服務商。","options.ai.configWarningTitle":"AI 設定不完整","options.ai.missingKeyWarning":"還沒有填寫 {{provider}} 的 API Key，AI 翻譯、劃詞釋義與字幕翻譯都會失敗。","options.ai.incompleteCustomWarning":"自訂 API 還缺少：{{fields}}。補齊後才能使用 AI 功能。","options.ai.fieldBaseUrl":"介面網址","options.ai.fieldApiKey":"API Key","options.ai.fieldModel":"模型名稱","options.ai.freeProviderNote":"免費公共介面，無需 API Key。單詞解釋等 AI 能力會自動回落到內建後端。","options.ai.kind":"服務類型","options.ai.kindDesc":"AI 模型可提供單字釋義、文法分析；免費翻譯無需 API Key，但只翻譯整句，釋義類功能會回落到內建服務。","options.ai.kindModel":"AI 模型","options.ai.kindPlain":"免費翻譯","options.engine.title":"目前的翻譯引擎","options.engine.description":"同一份設定在不同功能上的結果並不相同，這裡是各功能實際呼叫的服務。","options.engine.page":"頁面翻譯","options.engine.selection":"劃詞翻譯","options.engine.subtitle":"YouTube 字幕","options.engine.backend":"內建服務","options.engine.fallbackPlain":"{{provider}} 無法產生字典釋義，此功能回落到內建服務。","options.engine.fallbackUnconfigured":"API Key 未設定，此功能回落到內建服務。","options.engine.unconfigured":"API Key 未設定，此功能將會失敗。","options.engine.goToAi":"前往 AI 設定","options.subtitle.title":"YouTube 字幕","options.subtitle.description":"雙語字幕的顯示方式與播放行為。","options.subtitle.secondaryMode":"副字幕顯示","options.subtitle.secondaryModeDesc":"控制譯文字幕的顯示方式，模糊後可點擊查看，適合先自我測驗。","options.subtitle.modeNormal":"正常","options.subtitle.modeBlur":"模糊","options.subtitle.modeHide":"隱藏","options.subtitle.autoPause":"字幕自動暫停","options.subtitle.autoPauseDesc":"每句字幕結束時自動暫停影片，方便跟讀。","options.ai.apiKey":"API Key","options.ai.apiKeyDesc":"輸入後失焦自動儲存。","options.ai.model":"Model","options.ai.openaiModelDesc":"預設模型為 gpt-4o-mini。","options.ai.openrouterModelDesc":"範例：openai/gpt-4o-mini。","options.ai.deepseekModelDesc":"預設模型為 deepseek-chat。","options.ai.customBaseUrl":"API Base URL","options.ai.customBaseUrlDesc":"OpenAI 相容 API 位址，如通義千問、智譜、Moonshot 等。","options.ai.customModelDesc":"模型名稱，如 qwen-turbo、glm-4 等。","options.ai.translatePrompt":"翻譯提示詞","options.ai.translatePromptDesc":"自訂翻譯時傳送給 AI 的提示詞，AI 會自動判斷是單詞還是段落。","options.ai.promptReset":"恢復預設","options.ai.promptVariablesHint":"可用模板變數：{{text}}、{{context}}、{{targetLanguage}}、{{#context}}...{{/context}}","options.metrics.highlight":"目前醒目標示","options.metrics.customAI":"自訂 AI","options.metrics.enabled":"已啟用","options.metrics.disabled":"關閉","options.metrics.account":"帳戶狀態","options.metrics.loading":"讀取中","options.metrics.loggedIn":"已登入","options.metrics.notLoggedIn":"未登入","options.metrics.syncHint":"登入後可同步雲端功能","options.metrics.syncingHint":"同步帳戶資訊中","common.saving":"儲存中","common.saveFailed":"儲存失敗，請重試","common.loading":"載入設定中...","common.definitionGenerating":"定義正在產生，請稍後再試。","common.unknownError":"未知錯誤","common.pageTranslateLoginRequired":"請先登入以使用頁面翻譯功能","common.trialQuotaExceededLogin":"試用次數已用完，請登入後繼續使用","common.translationQuotaExceededUpgrade":"翻譯額度已用完，請升級會員或稍後再試","common.rateLimitNotLoggedIn":"請求過於頻繁，請登入以獲取更多翻譯額度","common.freeQuotaExceeded":"已達到本月使用上限，{{resetTime}}後重置。升級 Pro 可獲得更充裕的額度","common.proQuotaExceeded":"已達到本月使用上限，{{resetTime}}後重置","common.quotaExceeded.title":"本月額度已用完","common.quotaExceeded.reset":"{{resetTime}} 後重置","common.toast.loginRequiredTitle":"需要登入","common.toast.quotaInsufficientTitle":"額度不足","common.toast.translationErrorTitle":"翻譯出錯","common.toast.loginAction":"去登入","common.toast.laterAction":"稍後","common.toast.upgradeAction":"升級會員","common.toast.closeAction":"關閉","common.toast.aiConfigTitle":"AI 設定不完整","common.toast.openSettingsAction":"去設定","common.aiConfigNotEnabled":"請先在設定中啟用並設定自訂 AI。","common.aiConfigMissingKey":"你啟用了自訂 AI（{{provider}}），但還沒有填寫 API Key。請在設定中填寫，或切換回內建 AI 服務。","common.aiConfigIncompleteCustom":"自訂 API 設定不完整。請在設定中補齊介面網址、API Key 與模型名稱。","common.aiConfigUnsupportedProvider":"{{provider}} 只支援一般翻譯。要使用 AI 功能，請在設定中選擇一個大型語言模型服務商。","common.sessionExpiredTitle":"登入已過期","common.sessionExpiredDesc":"請重新登入以繼續使用完整功能","common.sessionReloginAction":"重新登入","common.preview":"範例","common.unexpectedError":"發生了意外錯誤","footer.copyright":"SentenWord | 智慧翻譯","color.amber":"琥珀","color.green":"綠色","color.blue":"藍色","color.indigo":"靛藍","color.coral":"珊瑚","color.orange":"橙色","color.cyan":"青色","color.brown":"棕色","color.red":"紅色","color.gold":"金色","color.magenta":"品紅","color.darkGray":"深灰","color.custom":"自訂","color.customHighlight":"自訂醒目標示色","color.customButton":"自訂按鈕色","welcome.subtitle":"歡迎使用 SentenWord，讓我們先完成一些基本設定","welcome.nativeLanguage":"你的母語","welcome.nativeLanguageDesc":"介面語言將根據此設定自動切換。","welcome.learningLanguage":"你想學習的語言","welcome.learningLanguageDesc":"選擇你正在學習的目標語言。","welcome.getStarted":"開始使用","welcome.account":"帳號","welcome.accountDesc":"登入後可同步收藏詞彙和學習進度。","welcome.login":"登入 / 註冊","welcome.maybeLater":"以後再說","welcome.loggedInAs":"已登入","welcome.next":"下一步","welcome.back":"返回","popup.title":"SentenWord | 智慧翻譯","popup.settings":"設定","popup.quickSearch":"快速搜尋","popup.stopTranslate":"停止翻譯","popup.translatePage":"翻譯頁面","popup.translationEnabled":"翻譯已啟用","popup.visitWebsite":"造訪官網","popup.wordBook":"單字本","popup.login":"登入","popup.loginDesc":"登入以同步資料","popup.screenshot":"截圖識別","screenshot.hint":"拖曳以選擇要識別的區域 · 按 Esc 取消","screenshot.processing":"識別中…","screenshot.empty":"未識別到文字","screenshot.failed":"識別失敗","screenshot.loginRequired":"請先登入後再使用截圖識別","screenshot.quotaExceeded":"本月額度已用完，明天再試或升級方案","screenshot.translation":"翻譯","screenshot.close":"關閉","screenshot.copy":"複製","screenshot.copied":"已複製","card.title":"SentenWord | 智慧翻譯","card.wordBook":"單字本","card.tabSimpleDictionary":"簡易詞典","card.tabDictionary":"詞典","card.tabAI":"AI 解釋","card.detailedExplanation":"詳細解釋","card.detailedExplanationLoading":"正在生成詳細解釋...","card.detailedExplanationRetry":"重試","card.originalText":"原文","card.translationText":"譯文","card.closeDetailedExplanation":"關閉詳細解釋","card.closeCard":"關閉卡片","card.settings":"設定","collection.title":"收藏","collection.closeModal":"關閉收藏視窗","collection.folder":"收藏夾","collection.loading":"正在載入...","collection.defaultFolder":"預設收藏夾","collection.loadingHint":"載入中…","collection.word":"單字 *","collection.wordPlaceholder":"請輸入單字","collection.partOfSpeech":"詞性","collection.partOfSpeechPlaceholder":"詞性","collection.phonetic":"音標","collection.phoneticPlaceholder":"如 /mɪˈlɛniə/","collection.meaning":"單字解釋","collection.meaningPlaceholder":"單字解釋","collection.context":"上下文內容 *","collection.contextPlaceholder":"請輸入完整例句","collection.contextTranslation":"上下文翻譯","collection.contextTranslationPlaceholder":"請輸入上下文的翻譯","collection.examples":"額外例句","collection.examplesHint":"（可不填，每行一個）","collection.examplesPlaceholder":"輸入額外例句，每行一個","collection.saving":"儲存中...","collection.save":"儲存","collection.saveSuccess":"收藏成功","collection.saveToFolder":"收藏到","collection.saveSuccessTo":"已收藏到「{{name}}」","collection.moveFailed":"移動詞書失敗","collection.saveFailed":"收藏失敗","collection.notLoggedIn":"使用者未登入，無法收藏","collection.notLoggedInLoad":"使用者未登入，無法載入收藏夾","collection.loadFailed":"載入收藏夾失敗","collection.wordRequired":"請填寫單字/短語","collection.contextTooLong":"上下文內容不能超過{{max}}個字元","youtube.machineTranslate":"機器翻譯","youtube.aiTranslate":"AI 翻譯","youtube.subtitlePanel":"字幕面板","youtube.closePanel":"關閉字幕面板","youtube.panelAriaLabel":"字幕面板標籤","youtube.tabSubtitles":"字幕","youtube.tabSettings":"設定","youtube.downloadSrt":"下載雙語 SRT","youtube.noSubtitles":"暫無字幕","youtube.showBilingualSubtitle":"顯示雙語字幕","youtube.showBilingualSubtitleDesc":"控制影片畫面上的雙語字幕覆蓋層","youtube.enableSubtitleList":"啟用字幕列表","youtube.enableSubtitleListDesc":"關閉後將收起目前字幕列表面板","youtube.autoScroll":"自動捲動","youtube.autoScrollDesc":"播放時自動定位到目前句子","youtube.noDownloadableSubtitle":"暫無可下載字幕","youtube.loadSecondaryFirst":"請先載入副字幕後再下載雙語 SRT","youtube.exportEmpty":"字幕匯出失敗：內容為空","youtube.downloadStarted":"雙語 SRT 下載已開始","youtube.downloadFailed":"雙語 SRT 下載失敗","youtube.subtitleTranslateFallbackFailed":"字幕翻譯失敗，請稍後重試","youtube.primaryLoadFailed":"主字幕載入失敗","youtube.machineTranslateUnavailable":"機器翻譯不可用，已切換到 AI 翻譯","youtube.machineTranslateFailed":"機器翻譯取得失敗，已切換到 AI 翻譯","youtube.secondaryLoadFailed":"副字幕載入失敗","youtube.aiTranslateEnabled":"已啟用 AI 字幕翻譯","youtube.fetchingMachineTranslate":"正在取得機器翻譯字幕...","youtube.subtitleContentEmpty":"目前選中的字幕內容為空或暫時不可用","youtube.noAvailableSubtitles":"該影片沒有可用字幕","youtube.trackLoadFailed":"字幕軌道載入失敗","youtube.btnSubtitleOn":"SentenWord 雙語字幕 (開)","youtube.btnSubtitleOff":"SentenWord 雙語字幕 (關)","youtube.btnPanelOn":"SentenWord 字幕面板 (開)","youtube.btnPanelOff":"SentenWord 字幕面板 (關)","youtube.btnSettings":"SentenWord 字幕設定","youtube.menuBilingualSubtitle":"雙語字幕","youtube.menuSidebar":"字幕側邊欄","youtube.menuSettings":"設定","contextMenu.smartTranslate":"SentenWord | 智慧翻譯","contextMenu.translatePage":"SentenWord | 翻譯全文","contextMenu.restoreOriginal":"SentenWord | 恢復原文","quickSearch.title":"Quick Search","quickSearch.dictionary":"詞典","quickSearch.ai":"AI","quickSearch.dictPlaceholder":"輸入單字查詢...","quickSearch.aiPlaceholder":"輸入單字或句子，AI 為你解釋...","quickSearch.submit":"查詢","quickSearch.hint":"Ctrl+Shift+F 喚起 · Enter 查詢 · Tab 切換模式 · Escape 關閉","subtitle.loading":"字幕載入中...","subtitle.ready":"字幕已就緒，等待語音開始","subtitle.notDetected":"暫未偵測到可顯示字幕，請繼續播放或切換影片重試","floating.translate":"翻譯","word.viewInDict":"在 {{name}} 中檢視","word.unfavorite":"取消收藏","speech.playOriginal":"朗讀原文","speech.playTranslation":"朗讀譯文","word.favorite":"收藏單字","ai.favoritePhrase":"收藏短語","ai.collapse":"收起","ai.viewAll":"檢視全部 ({{count}})","ai.noResult":"暫無翻譯結果","ai.loading":"載入中...","common.expand":"檢視全部","common.collapseText":"收起","common.translating":"翻譯中...","options.changelog.title":"更新日誌","update.action":"有新版本可用"},wm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Manage your translation experience, dictionary display, and custom AI settings. Configure visual, interaction, and performance preferences here.","options.language.title":"Language Settings","options.language.description":"Configure your native language and the target language you're learning.","options.language.native":"Native Language","options.language.nativeDesc":"The interface language will automatically switch based on this setting.","options.language.learning":"Learning Target Language","options.language.learningDesc":"The language you're learning, used for translation and dictionary features.","options.account.title":"Account & Connection","options.account.description":"Manage login status and extension connection behavior.","options.account.label":"Account","options.account.loading":"Loading login status","options.account.loggedIn":"Logged in: ","options.account.notLoggedIn":"Not logged in. Go to authorization page to log in.","options.account.logout":"Log Out","options.account.login":"Log In","options.account.loggedOut":"Logged out","options.account.profile":"Profile","options.account.avatar":"Avatar","options.account.name":"Display Name","options.account.namePlaceholder":"Enter display name","options.account.save":"Save","options.account.saving":"Saving...","options.account.profileUpdated":"Profile updated","options.account.profileUpdateFailed":"Update failed, please try again","options.account.editProfile":"Edit Profile","options.account.cancel":"Cancel","options.usage.title":"Usage","options.usage.description":"AI Token usage","options.usage.monthly":"Current period quota","options.usage.used":"Used","options.usage.limit":"Limit","options.usage.resetAt":"Resets at","options.usage.tokens":"tokens","options.usage.loadFailed":"Failed to load usage","options.usage.loginRequired":"Log in to view usage","options.usage.upgradeToPro":"Upgrade to Pro","options.usage.upgradeToMax":"Upgrade to Max","options.usage.dailyBreakdown":"Daily breakdown","options.usage.dailyTitle":"Daily usage this period","options.usage.dailySubtitle":"Bar height shows relative daily consumption · Hover to see share of period total","options.usage.monthTotal":"Period total","options.usage.dailyEmpty":"Unable to load breakdown data","options.usage.dailyNote":"Note: tokens here represent this system's consumption units, not a specific model's token count.","options.usage.dailyLoadFailed":"Failed to load breakdown","paywall.title":"Upgrade to SentenWord Pro","paywall.subtitle":"Get a dependable monthly AI quota plus seamless translation features.","paywall.max.title":"Upgrade to SentenWord Max","paywall.max.subtitle":"A larger monthly quota for frequent translation, AI subtitles, and deep explanations.","paywall.oneTimeNotice":"One-time purchase for 1 month. No automatic renewal.","paywall.feature.quota":"300,000 AI tokens per month","paywall.feature.maxQuota":"AI token quota: 300,000 → 2,000,000 per month","paywall.feature.subtitles":"YouTube AI bilingual subtitles","paywall.feature.priority":"Priority access and dedicated support","paywall.plan.monthly":"1 month","paywall.plan.quarterly":"Quarterly","paywall.plan.halfYear":"6 Months","paywall.plan.yearly":"Yearly","paywall.priceSuffix.month":"/mo","paywall.price.loading":"Loading price…","paywall.priceTotal":"{{total}} total","paywall.savings":"Save {{percent}}%","paywall.recommended":"Best value","paywall.continueButton":"Continue to checkout","paywall.continueLoading":"Redirecting...","paywall.close":"Close","paywall.error.loginRequired":"You need to log in before upgrading.","paywall.error.goLogin":"Log in","paywall.error.network":"Failed to create checkout session. Please try again.","paywall.error.priceUnavailable":"Price unavailable. Please try again.","paywall.confirm.title":"Waiting for payment","paywall.confirm.message":"Checkout opened in a new tab. Complete the payment in Stripe, then return here and click below.","paywall.confirm.completed":"I've completed payment","paywall.confirm.cancel":"Cancel","paywall.confirm.checking":"Verifying…","paywall.confirm.retry":"Try again","paywall.confirm.notYet":"Pro status not detected yet. If you just completed payment, please wait a moment and try again.","paywall.confirm.notYetMax":"Max access not detected yet. If you just completed payment, please wait a moment and try again.","options.highlight.title":"Appearance","options.highlight.description":"Manage highlight styles and color settings.","options.highlight.panelTitle":"Highlight Style","options.highlight.panelDescription":"How saved words appear on web pages and the color system.","options.card.themeTitle":"Card Theme","options.card.themeDescription":"Switch the visual style of the dictionary card.","options.card.theme.warm":"Warm","options.card.theme.classic":"Classic","options.card.theme.fresh":"Fresh","options.highlight.enable":"Enable Highlight","options.highlight.enableDesc":"When disabled, saved words will no longer be highlighted on web pages.","options.highlight.inlineAnnotation":"Show Inline Definitions","options.highlight.inlineAnnotationDesc":"Display part of speech and definition next to highlighted words, e.g. Reload(v.reload).","options.highlight.trigger":"Definition Panel Trigger","options.highlight.triggerDesc":"Choose whether highlighted words open the definition panel on click, hover, or not at all.","options.highlight.trigger.none":"No Action","options.highlight.styleSelect":"Style Selection","options.highlight.colorSelect":"Color Selection","options.highlight.opacity":"Highlight Opacity","options.highlight.opacityDesc":"Adjust how transparent the highlight color appears on pages.","options.highlight.style.none":"None","options.highlight.style.background":"Background","options.highlight.style.text":"Text Color","options.highlight.style.underline":"Underline","options.highlight.style.doubleUnderline":"Double Underline","options.highlight.style.wavy":"Wavy","options.highlight.style.dotted":"Dotted","options.highlight.style.dashed":"Dashed","options.tagHighlight.panelTitle":"Vocabulary Tag Highlight","options.tagHighlight.panelDescription":"Highlight words on web pages based on dictionary tags and frequency ranges.","options.tagHighlight.enable":"Enable Tag Highlight","options.tagHighlight.enableDesc":"Automatically highlight words matching the configured rules.","options.tagHighlight.addRule":"Add Rule","options.tagHighlight.tag":"Dictionary Tag","options.tagHighlight.frqRange":"Frequency Range","options.tagHighlight.frqMin":"Min","options.tagHighlight.frqMax":"Max","options.tagHighlight.noRules":"No rules yet. Click the button above to add one.","options.tagHighlight.deleteRule":"Delete","options.tagHighlight.style":"Style","options.tagHighlight.color":"Color","options.tagHighlight.enabled":"Enabled","options.translation.title":"Translation","options.translation.description":"Manage bilingual page translation and selection translation.","options.autoTranslate.title":"Automatic Page Translation","options.autoTranslate.description":"Start bilingual page translation automatically on configured websites.","options.autoTranslate.enable":"Enable Automatic Translation","options.autoTranslate.enableDesc":"Starts only when a domain below matches; refresh pages that are already open.","options.autoTranslate.domains":"Website Domains","options.autoTranslate.domainsDesc":"A base domain also matches its subdomains; reddit.com matches www.reddit.com.","options.autoTranslate.placeholder":"Enter a domain or URL, e.g. medium.com","options.autoTranslate.add":"Add","options.autoTranslate.remove":"Remove","options.autoTranslate.invalidDomain":"Enter a valid domain or HTTP(S) URL.","options.autoTranslate.duplicateDomain":"That domain is already in the list.","options.autoTranslate.empty":"No domains yet. Automatic translation will not start on any website.","options.dictionary.title":"Dictionary Content","options.dictionary.description":"Control the definition levels and example content displayed on word cards.","options.dictionary.showExamples":"Show Examples","options.dictionary.showExamplesDesc":"Display sentence examples in definitions.","options.dictionary.tabs.title":"Dictionary Lookup Settings","options.dictionary.tabs.description":"Configure the display order and enabled state of dictionary lookup tabs. Only effective when native language is Chinese and learning language is English.","options.dictionary.tabs.ai":"AI Lookup","options.dictionary.tabs.simple":"Quick Dictionary","options.dictionary.tabs.dictionary":"Professional Dictionary","options.dictionary.tabs.moveUp":"Move Up","options.dictionary.tabs.moveDown":"Move Down","options.floating.title":"Selection Translation","options.floating.description":"Define the floating button's appearance, size, color, opacity, and style.","options.floating.enable":"Enable Floating Button","options.floating.enableDesc":"Show translation entry after selecting text.","options.floating.trigger":"Trigger Mode","options.floating.triggerDesc":"Click or hover to trigger translation.","options.floating.trigger.click":"Click","options.floating.trigger.hover":"Hover","options.floating.size":"Button Size","options.floating.sizeDesc":"Adjust size according to your visual preference.","options.floating.size.xsmall":"XS","options.floating.size.small":"S","options.floating.size.medium":"M","options.floating.size.large":"L","options.floating.style":"Button Style","options.floating.styleDesc":"Icon, dot, or text.","options.floating.style.icon":"Icon","options.floating.style.dot":"Dot","options.floating.color":"Button Color","options.floating.colorDesc":"Choose preset or custom color.","options.floating.opacity":"Button Opacity","options.floating.opacityDesc":"Adjust how transparent the floating button appears on pages.","options.hotkeys.title":"Hotkeys","options.hotkeys.description":"Keys are auto-saved on blur or Enter.","options.companion.title":"iOS App","options.companion.description":"Carry your collection in your pocket — review your saved words and sentences anywhere.","options.companion.platform":"for iPhone · iPad","options.companion.pitch":"Open every word and sentence you've saved, right from your iPhone.","options.companion.feat1":"Revisit your saved words and sentences any time","options.companion.feat2":"Strengthen memory with spaced review","options.companion.feat3":"Explore curated wordbooks built for systematic study","options.companion.cta":"Get it on the App Store","options.favorites.title":"View saved words","options.companion.syncTitle":"Sync across devices","options.companion.syncDesc":"Sign in on the web and iOS app with the same Apple Account to sync your saved data.","options.contact.title":"Website & Contact","options.contact.description":"Visit the SentenWord website or get in touch by email and WeChat.","options.contact.website":"Official website","options.contact.websiteDesc":"Explore the product, your account, and the latest updates.","options.contact.email":"Email","options.contact.emailDesc":"For feature ideas, issue reports, and collaborations.","options.contact.signoff":"Every note helps make SentenWord a little better.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Scan the QR code in WeChat to add me as a contact.","options.speech.title":"Text-to-Speech","options.speech.description":"Configure the voice used for reading original and translated text.","options.speech.enable":"Enable speech","options.speech.enableDesc":"Show speaker buttons on the translation card.","options.speech.rate":"Rate","options.speech.rateDesc":"0.5× to 2.0×, default 1.0×.","options.speech.pitch":"Pitch","options.speech.pitchDesc":"0.5 to 1.5, default 1.0.","options.speech.voices":"Voices","options.speech.provider":"Engine","options.speech.providerDesc":"Edge uses Microsoft Neural voices (online, higher quality). System uses built-in browser voices (offline).","options.speech.providerEdge":"Edge (high quality)","options.speech.providerWeb":"System","options.speech.edgeVoicesDesc":"Pick a Microsoft Neural voice. Falls back to system voice on failure.","options.speech.voicesDesc":"Pick a preferred voice per language. Cloud voices (☁) usually sound better.","options.speech.auto":"Auto (best)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Test","options.speech.noVoices":"No speech voices detected in this browser. Check your system voice settings.","options.hotkeys.quickSearch":"Quick Search","options.hotkeys.quickSearchDesc":"Open quick search popup.","options.hotkeys.paragraph":"Paragraph Translation","options.hotkeys.paragraphDesc":"Translate paragraph under cursor.","options.ai.title":"AI Translation","options.ai.description":"Choose your AI translation service: use the built-in service or configure your own API Key.","options.ai.usingCustom":"Custom API","options.ai.usingBackend":"Built-in AI","options.ai.providerLabel":"Provider: {{provider}}","options.ai.enable":"AI Service","options.ai.enableDesc":"When enabled, use your configured provider and model.","options.ai.enableDescBackend":"Use the built-in AI translation service provided by SentenWord.","options.ai.enableDescCustom":"Use your own API Key and model. Keys are stored locally only.","options.ai.provider":"Provider","options.ai.providerDesc":"Choose a specific provider.","options.ai.configWarningTitle":"AI not configured","options.ai.missingKeyWarning":"No {{provider}} API key yet — AI translation, word lookup, and subtitle translation will fail.","options.ai.incompleteCustomWarning":"Your custom API is still missing: {{fields}}. AI features stay unavailable until it is complete.","options.ai.fieldBaseUrl":"base URL","options.ai.fieldApiKey":"API key","options.ai.fieldModel":"model name","options.ai.freeProviderNote":"Free public endpoint — no API key required. Word explanations fall back to the built-in backend.","options.ai.kind":"Service type","options.ai.kindDesc":"AI models provide word definitions and grammar analysis. Free translation needs no API key but only translates whole sentences — definition features fall back to the built-in service.","options.ai.kindModel":"AI model","options.ai.kindPlain":"Free translation","options.engine.title":"Current translation engines","options.engine.description":"The same setting behaves differently per feature. These are the services each feature actually calls.","options.engine.page":"Page translation","options.engine.selection":"Selection translation","options.engine.subtitle":"YouTube subtitles","options.engine.backend":"Built-in service","options.engine.fallbackPlain":"{{provider}} cannot produce dictionary definitions, so this feature falls back to the built-in service.","options.engine.fallbackUnconfigured":"No API key configured, so this feature falls back to the built-in service.","options.engine.unconfigured":"No API key configured — this feature will fail.","options.engine.goToAi":"Go to AI settings","options.subtitle.title":"YouTube subtitles","options.subtitle.description":"How bilingual subtitles are shown and how playback behaves.","options.subtitle.secondaryMode":"Secondary subtitle","options.subtitle.secondaryModeDesc":"Controls how the translated line is shown. Blur it to test yourself first, then click to reveal.","options.subtitle.modeNormal":"Normal","options.subtitle.modeBlur":"Blur","options.subtitle.modeHide":"Hide","options.subtitle.autoPause":"Auto-pause on subtitle","options.subtitle.autoPauseDesc":"Pause the video at the end of each subtitle line, for shadowing.","options.ai.apiKey":"API Key","options.ai.apiKeyDesc":"Auto-saved on blur.","options.ai.model":"Model","options.ai.openaiModelDesc":"Default model is gpt-4o-mini.","options.ai.openrouterModelDesc":"Example: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Default model is deepseek-chat.","options.ai.customBaseUrl":"API Base URL","options.ai.customBaseUrlDesc":"OpenAI-compatible API URL, such as Qwen, Zhipu, Moonshot, etc.","options.ai.customModelDesc":"Model name, such as qwen-turbo, glm-4, etc.","options.ai.translatePrompt":"Translation Prompt","options.ai.translatePromptDesc":"Custom prompt sent to AI for translation. The AI will automatically determine whether the input is a word or a passage.","options.ai.promptReset":"Reset to default","options.ai.promptVariablesHint":"Available variables: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Current Highlight","options.metrics.customAI":"Custom AI","options.metrics.enabled":"Enabled","options.metrics.disabled":"Disabled","options.metrics.account":"Account Status","options.metrics.loading":"Loading","options.metrics.loggedIn":"Logged In","options.metrics.notLoggedIn":"Not Logged In","options.metrics.syncHint":"Log in to sync cloud features","options.metrics.syncingHint":"Syncing account info","common.saving":"Saving","common.saveFailed":"Save failed, please retry","common.loading":"Loading settings...","common.definitionGenerating":"Definition is being generated, please try again shortly.","common.unknownError":"Unknown error","common.pageTranslateLoginRequired":"Please log in to use page translation.","common.trialQuotaExceededLogin":"Free trial uses are exhausted. Please log in to continue.","common.translationQuotaExceededUpgrade":"Translation quota is exhausted. Please upgrade or try again later.","common.rateLimitNotLoggedIn":"Too many requests. Please log in for more translation quota.","common.freeQuotaExceeded":"Monthly usage limit reached, resets on {{resetTime}}. Upgrade to Pro for higher limits.","common.proQuotaExceeded":"Monthly usage limit reached, resets on {{resetTime}}.","common.quotaExceeded.title":"Monthly quota used up","common.quotaExceeded.reset":"Resets on {{resetTime}}","common.toast.loginRequiredTitle":"Login Required","common.toast.quotaInsufficientTitle":"Quota Exceeded","common.toast.translationErrorTitle":"Translation Error","common.toast.loginAction":"Log In","common.toast.laterAction":"Later","common.toast.upgradeAction":"Upgrade Plan","common.toast.closeAction":"Close","common.toast.aiConfigTitle":"AI Not Configured","common.toast.openSettingsAction":"Open Settings","common.aiConfigNotEnabled":"Enable and configure custom AI in settings first.","common.aiConfigMissingKey":"Custom AI ({{provider}}) is enabled, but no API key is set. Add your key in settings, or switch back to the built-in AI service.","common.aiConfigIncompleteCustom":"Your custom API is incomplete. Fill in the base URL, API key, and model name in settings.","common.aiConfigUnsupportedProvider":"{{provider}} only supports plain translation. Pick an LLM provider in settings to use AI features.","common.sessionExpiredTitle":"Session Expired","common.sessionExpiredDesc":"Please log in again to continue using all features.","common.sessionReloginAction":"Log In Again","common.preview":"Preview","common.unexpectedError":"An unexpected error occurred","footer.copyright":"SentenWord | Smart Translation","color.amber":"Amber","color.green":"Green","color.blue":"Blue","color.indigo":"Indigo","color.coral":"Coral","color.orange":"Orange","color.cyan":"Cyan","color.brown":"Brown","color.red":"Red","color.gold":"Gold","color.magenta":"Magenta","color.darkGray":"Dark Gray","color.custom":"Custom","color.customHighlight":"Custom highlight color","color.customButton":"Custom button color","welcome.subtitle":"Welcome to SentenWord, let's get some basics set up","welcome.nativeLanguage":"Your Native Language","welcome.nativeLanguageDesc":"The interface language will automatically switch based on this setting.","welcome.learningLanguage":"Language You Want to Learn","welcome.learningLanguageDesc":"Select the target language you're learning.","welcome.getStarted":"Get Started","welcome.account":"Account","welcome.accountDesc":"Sign in to sync your vocabulary and learning progress.","welcome.login":"Login / Register","welcome.maybeLater":"Maybe Later","welcome.loggedInAs":"Logged in","welcome.next":"Next","welcome.back":"Back","popup.title":"SentenWord | Smart Translation","popup.settings":"Settings","popup.quickSearch":"Quick Search","popup.stopTranslate":"Stop Translation","popup.translatePage":"Translate Page","popup.translationEnabled":"Translation enabled","popup.visitWebsite":"Visit Website","popup.wordBook":"Word Book","popup.login":"Login","popup.loginDesc":"Login to sync your data","popup.screenshot":"Screenshot OCR","screenshot.hint":"Drag to select an area · Esc to cancel","screenshot.processing":"Recognizing…","screenshot.empty":"No text detected","screenshot.failed":"Recognition failed","screenshot.loginRequired":"Please log in to use Screenshot OCR","screenshot.quotaExceeded":"Monthly quota reached. Try again later or upgrade your plan.","screenshot.translation":"Translation","screenshot.close":"Close","screenshot.copy":"Copy","screenshot.copied":"Copied","card.title":"SentenWord | Smart Translation","card.wordBook":"Word Book","card.tabSimpleDictionary":"Quick Dict","card.tabDictionary":"Dictionary","card.tabAI":"AI Explain","card.detailedExplanation":"Detailed Explanation","card.detailedExplanationLoading":"Generating explanation...","card.detailedExplanationRetry":"Retry","card.originalText":"Original","card.translationText":"Translation","card.closeDetailedExplanation":"Close detailed explanation","card.closeCard":"Close the card","card.settings":"Settings","collection.title":"Collect","collection.closeModal":"Close collection window","collection.folder":"Collection","collection.loading":"Loading...","collection.defaultFolder":"Default Collection","collection.loadingHint":"Loading…","collection.word":"Word *","collection.wordPlaceholder":"Enter a word","collection.partOfSpeech":"POS","collection.partOfSpeechPlaceholder":"Part of speech","collection.phonetic":"Phonetic","collection.phoneticPlaceholder":"e.g. /mɪˈlɛniə/","collection.meaning":"Definition","collection.meaningPlaceholder":"Word definition","collection.context":"Context *","collection.contextPlaceholder":"Enter the full sentence","collection.contextTranslation":"Context Translation","collection.contextTranslationPlaceholder":"Translation of the context sentence","collection.examples":"Extra Examples","collection.examplesHint":"(optional, one per line)","collection.examplesPlaceholder":"Enter extra examples, one per line","collection.saving":"Saving...","collection.save":"Save","collection.saveSuccess":"Saved successfully","collection.saveToFolder":"Save to","collection.saveSuccessTo":"Saved to “{{name}}”","collection.moveFailed":"Failed to move to collection","collection.saveFailed":"Save failed","collection.notLoggedIn":"Not logged in, cannot save","collection.notLoggedInLoad":"Not logged in, cannot load collections","collection.loadFailed":"Failed to load collections","collection.wordRequired":"Please enter a word/phrase","collection.contextTooLong":"Context cannot exceed {{max}} characters","youtube.machineTranslate":"Machine Translate","youtube.aiTranslate":"AI Translate","youtube.subtitlePanel":"Subtitle Panel","youtube.closePanel":"Close subtitle panel","youtube.panelAriaLabel":"Subtitle panel tabs","youtube.tabSubtitles":"Subtitles","youtube.tabSettings":"Settings","youtube.downloadSrt":"Download Bilingual SRT","youtube.noSubtitles":"No subtitles","youtube.showBilingualSubtitle":"Show Bilingual Subtitles","youtube.showBilingualSubtitleDesc":"Toggle bilingual subtitle overlay on the video","youtube.enableSubtitleList":"Enable Subtitle List","youtube.enableSubtitleListDesc":"When disabled, the subtitle list panel will be hidden","youtube.autoScroll":"Auto Scroll","youtube.autoScrollDesc":"Automatically scroll to the current sentence during playback","youtube.noDownloadableSubtitle":"No downloadable subtitles","youtube.loadSecondaryFirst":"Please load secondary subtitles before downloading bilingual SRT","youtube.exportEmpty":"Subtitle export failed: content is empty","youtube.downloadStarted":"Bilingual SRT download started","youtube.downloadFailed":"Bilingual SRT download failed","youtube.subtitleTranslateFallbackFailed":"Subtitle translation failed, please try again later","youtube.primaryLoadFailed":"Primary subtitle loading failed","youtube.machineTranslateUnavailable":"Machine translation unavailable, switched to AI translation","youtube.machineTranslateFailed":"Machine translation failed, switched to AI translation","youtube.secondaryLoadFailed":"Secondary subtitle loading failed","youtube.aiTranslateEnabled":"AI subtitle translation enabled","youtube.fetchingMachineTranslate":"Fetching machine translation subtitles...","youtube.subtitleContentEmpty":"Subtitle track found, but no displayable subtitles are available","youtube.noAvailableSubtitles":"No subtitles available for this video","youtube.trackLoadFailed":"Subtitle track loading failed","youtube.btnSubtitleOn":"SentenWord Bilingual Subtitles (On)","youtube.btnSubtitleOff":"SentenWord Bilingual Subtitles (Off)","youtube.btnPanelOn":"SentenWord Subtitle Panel (On)","youtube.btnPanelOff":"SentenWord Subtitle Panel (Off)","youtube.btnSettings":"SentenWord Subtitle Settings","youtube.menuBilingualSubtitle":"Bilingual Subtitles","youtube.menuSidebar":"Subtitle Sidebar","youtube.menuSettings":"Settings","contextMenu.smartTranslate":"SentenWord | Smart Translate","contextMenu.translatePage":"SentenWord | Translate Page","contextMenu.restoreOriginal":"SentenWord | Restore Original","quickSearch.title":"Quick Search","quickSearch.dictionary":"Dictionary","quickSearch.ai":"AI","quickSearch.dictPlaceholder":"Search for a word...","quickSearch.aiPlaceholder":"Enter a word or sentence for AI explanation...","quickSearch.submit":"Search","quickSearch.hint":"Ctrl+Shift+F to open · Enter to search · Tab to switch mode · Escape to close","subtitle.loading":"Loading subtitles...","subtitle.ready":"Subtitles ready, waiting for speech to begin","subtitle.notDetected":"No displayable subtitles detected, please continue playing or try another video","floating.translate":"Translate","word.viewInDict":"View in {{name}}","word.unfavorite":"Remove from favorites","speech.playOriginal":"Play original","speech.playTranslation":"Play translation","word.favorite":"Add to favorites","ai.favoritePhrase":"Add phrase to favorites","ai.collapse":"Collapse","ai.viewAll":"View all ({{count}})","ai.noResult":"No translation results","ai.loading":"Loading...","common.expand":"View all","common.collapseText":"Collapse","common.translating":"Translating...","options.changelog.title":"Changelog","update.action":"New version available"},xm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"翻訳体験、辞書表示、カスタムAI設定を一元管理。視覚・操作・パフォーマンスの好みをここで調整できます。","options.language.title":"言語設定","options.language.description":"母国語と学習中のターゲット言語を設定します。","options.language.native":"母国語","options.language.nativeDesc":"この設定に基づいてUIの言語が自動的に切り替わります。","options.language.learning":"学習ターゲット言語","options.language.learningDesc":"学習中の言語。翻訳と辞書機能に使用されます。","options.account.title":"アカウントと接続","options.account.description":"ログイン状態と拡張機能の接続を管理します。","options.account.label":"アカウント","options.account.loading":"ログイン状態を読み込み中","options.account.loggedIn":"ログイン中：","options.account.notLoggedIn":"未ログイン。認証ページでログインしてください。","options.account.logout":"ログアウト","options.account.login":"ログイン","options.account.loggedOut":"ログアウトしました","options.account.profile":"プロフィール","options.account.avatar":"アバター","options.account.name":"ニックネーム","options.account.namePlaceholder":"ニックネームを入力","options.account.save":"保存","options.account.saving":"保存中...","options.account.profileUpdated":"プロフィールが更新されました","options.account.profileUpdateFailed":"更新に失敗しました。もう一度お試しください","options.account.editProfile":"プロフィール編集","options.account.cancel":"キャンセル","options.usage.title":"使用量","options.usage.description":"AI Token の使用状況","options.usage.monthly":"現在の期間クォータ","options.usage.used":"使用済み","options.usage.limit":"上限","options.usage.resetAt":"リセット時刻","options.usage.tokens":"tokens","options.usage.loadFailed":"使用量の読み込みに失敗しました","options.usage.loginRequired":"使用量を確認するにはログインしてください","options.usage.upgradeToPro":"Proにアップグレード","options.usage.upgradeToMax":"Maxにアップグレード","options.usage.dailyBreakdown":"日別内訳","options.usage.dailyTitle":"現在の期間の日別使用量","options.usage.dailySubtitle":"棒の高さはその日の相対的な消費量を示します · ホバーで期間総量に対する割合を確認","options.usage.monthTotal":"期間累計","options.usage.dailyEmpty":"内訳データを読み込めません","options.usage.dailyNote":"注：ここでの tokens は当システムの消費単位であり、特定モデルの token 数とは一致しません。","options.usage.dailyLoadFailed":"内訳の読み込みに失敗しました","paywall.title":"SentenWord Pro にアップグレード","paywall.subtitle":"安定した月間 AI クォータと快適な翻訳機能をご利用いただけます","paywall.max.title":"SentenWord Max にアップグレード","paywall.max.subtitle":"頻繁な翻訳、AI 字幕、詳しい解説向けの大容量月間クォータ","paywall.oneTimeNotice":"1か月の買い切り。自動更新はありません","paywall.feature.quota":"月間 30 万 AI トークン","paywall.feature.maxQuota":"AI トークン枠：月間 30 万 → 200 万","paywall.feature.subtitles":"YouTube AI バイリンガル字幕","paywall.feature.priority":"優先アクセスと専用サポート","paywall.plan.monthly":"1か月","paywall.plan.quarterly":"3ヶ月","paywall.plan.halfYear":"6ヶ月","paywall.plan.yearly":"年額","paywall.priceSuffix.month":"/月","paywall.price.loading":"価格を読み込み中…","paywall.priceTotal":"合計 {{total}}","paywall.savings":"{{percent}}% お得","paywall.recommended":"おすすめ","paywall.continueButton":"決済へ進む","paywall.continueLoading":"リダイレクト中...","paywall.close":"閉じる","paywall.error.loginRequired":"アップグレードするにはログインが必要です。","paywall.error.goLogin":"ログイン","paywall.error.network":"決済セッションの作成に失敗しました。後でもう一度お試しください。","paywall.error.priceUnavailable":"価格を取得できませんでした。もう一度お試しください。","paywall.confirm.title":"決済の完了を待っています","paywall.confirm.message":"新しいタブで決済ページを開きました。Stripe で決済を完了したら、こちらに戻って下のボタンをクリックしてください。","paywall.confirm.completed":"決済完了","paywall.confirm.cancel":"キャンセル","paywall.confirm.checking":"確認中…","paywall.confirm.retry":"もう一度試す","paywall.confirm.notYet":"まだ Pro が確認できません。決済直後の場合は少し待ってから再試行してください。","paywall.confirm.notYetMax":"まだ Max が確認できません。決済直後の場合は少し待ってから再試行してください。","options.highlight.title":"外観","options.highlight.description":"ハイライトスタイルとカラー設定を管理します。","options.highlight.panelTitle":"ハイライトスタイル","options.highlight.panelDescription":"保存した単語のWebページ上での表示方法とカラーシステム。","options.card.themeTitle":"カードテーマ","options.card.themeDescription":"辞書カードのビジュアルスタイルを切り替えます。","options.card.theme.warm":"ウォーム","options.card.theme.classic":"クラシック","options.card.theme.fresh":"フレッシュ","options.highlight.enable":"ハイライトを有効にする","options.highlight.enableDesc":"無効にすると、保存した単語はWebページ上でハイライトされなくなります。","options.highlight.inlineAnnotation":"インライン定義を表示","options.highlight.inlineAnnotationDesc":"ハイライトされた単語の横に品詞と定義を表示します（例：Reload(v.再読み込み)）。","options.highlight.trigger":"定義パネルのトリガー","options.highlight.triggerDesc":"ハイライト語でクリック、ホバー、または何もしない動作を選びます。","options.highlight.trigger.none":"動作なし","options.highlight.styleSelect":"スタイル選択","options.highlight.colorSelect":"カラー選択","options.highlight.opacity":"ハイライトの透明度","options.highlight.opacityDesc":"Webページ上のハイライト色の透明度を調整します。","options.highlight.style.none":"なし","options.highlight.style.background":"背景色","options.highlight.style.text":"テキスト色","options.highlight.style.underline":"下線","options.highlight.style.doubleUnderline":"二重下線","options.highlight.style.wavy":"波線","options.highlight.style.dotted":"点線","options.highlight.style.dashed":"破線","options.tagHighlight.panelTitle":"語彙タグハイライト","options.tagHighlight.panelDescription":"辞書タグと語頻範囲に基づいてWebページの単語をハイライトします。","options.tagHighlight.enable":"タグハイライトを有効にする","options.tagHighlight.enableDesc":"設定したルールに一致する単語を自動的にハイライトします。","options.tagHighlight.addRule":"ルールを追加","options.tagHighlight.tag":"辞書タグ","options.tagHighlight.frqRange":"語頻範囲","options.tagHighlight.frqMin":"最小","options.tagHighlight.frqMax":"最大","options.tagHighlight.noRules":"ルールがありません。上のボタンをクリックして追加してください。","options.tagHighlight.deleteRule":"削除","options.tagHighlight.style":"スタイル","options.tagHighlight.color":"カラー","options.tagHighlight.enabled":"有効","options.translation.title":"翻訳設定","options.translation.description":"ページのバイリンガル翻訳と選択翻訳を管理します。","options.autoTranslate.title":"ページの自動翻訳","options.autoTranslate.description":"設定したサイトを開いたときに、ページのバイリンガル翻訳を自動で開始します。","options.autoTranslate.enable":"自動翻訳を有効にする","options.autoTranslate.enableDesc":"下のドメインに一致した場合のみ開始します。開いているページは再読み込みしてください。","options.autoTranslate.domains":"ウェブサイトのドメイン","options.autoTranslate.domainsDesc":"基本ドメインはサブドメインにも一致します。reddit.com は www.reddit.com に一致します。","options.autoTranslate.placeholder":"ドメインまたはURLを入力（例：medium.com）","options.autoTranslate.add":"追加","options.autoTranslate.remove":"削除","options.autoTranslate.invalidDomain":"有効なドメインまたは HTTP(S) URL を入力してください。","options.autoTranslate.duplicateDomain":"そのドメインはすでにリストにあります。","options.autoTranslate.empty":"ドメインがありません。どのサイトでも自動翻訳は開始されません。","options.dictionary.title":"辞書コンテンツ","options.dictionary.description":"単語カードに表示される定義レベルと例文を制御します。","options.dictionary.showExamples":"例文を表示","options.dictionary.showExamplesDesc":"定義内に例文を表示します。","options.dictionary.tabs.title":"辞書検索設定","options.dictionary.tabs.description":"辞書カードの各検索タブの表示順序と有効状態を設定します。母語が中国語で学習言語が英語の場合のみ有効です。","options.dictionary.tabs.ai":"AI 検索","options.dictionary.tabs.simple":"簡易辞書","options.dictionary.tabs.dictionary":"専門辞書","options.dictionary.tabs.moveUp":"上へ移動","options.dictionary.tabs.moveDown":"下へ移動","options.floating.title":"選択翻訳","options.floating.description":"フローティングボタンの表示方法、サイズ、色、透明度、スタイルを定義します。","options.floating.enable":"フローティングボタンを有効にする","options.floating.enableDesc":"テキスト選択後に翻訳入口を表示します。","options.floating.trigger":"トリガーモード","options.floating.triggerDesc":"クリックまたはホバーで翻訳をトリガーします。","options.floating.trigger.click":"クリック","options.floating.trigger.hover":"ホバー","options.floating.size":"ボタンサイズ","options.floating.sizeDesc":"お好みに合わせてサイズを調整してください。","options.floating.size.xsmall":"極小","options.floating.size.small":"小","options.floating.size.medium":"中","options.floating.size.large":"大","options.floating.style":"ボタンスタイル","options.floating.styleDesc":"アイコン、ドット、またはテキスト。","options.floating.style.icon":"アイコン","options.floating.style.dot":"ドット","options.floating.color":"ボタンの色","options.floating.colorDesc":"プリセットまたはカスタムカラーを選択。","options.floating.opacity":"ボタンの透明度","options.floating.opacityDesc":"ページ上でのフローティングボタンの透明度を調整します。","options.hotkeys.title":"ショートカットキー","options.hotkeys.description":"フォーカス解除またはEnterで自動保存されます。","options.companion.title":"iOS アプリ","options.companion.description":"コレクションをポケットへ — 保存した単語と文をどこでも復習。","options.companion.platform":"for iPhone · iPad","options.companion.pitch":"保存した単語や例文を、iPhone でいつでも見返せます。","options.companion.feat1":"保存した単語と文をいつでも見返す","options.companion.feat2":"間隔反復で記憶を定着","options.companion.feat3":"厳選された単語帳で体系的に学習","options.companion.cta":"App Store で入手","options.favorites.title":"保存した単語を見る","options.companion.syncTitle":"デバイス間でデータを同期","options.companion.syncDesc":"Web と iOS アプリで同じ Apple Account にサインインすると、保存データを同期できます。","options.contact.title":"公式サイト・お問い合わせ","options.contact.description":"SentenWord 公式サイト、メール、WeChat からお気軽にご連絡ください。","options.contact.website":"公式サイト","options.contact.websiteDesc":"製品情報、アカウント、最新情報をご覧いただけます。","options.contact.email":"メール","options.contact.emailDesc":"機能のご提案、不具合報告、コラボレーションはこちら。","options.contact.signoff":"皆さまの声が SentenWord をより良くします。","options.contact.wechat":"WeChat","options.contact.wechatDesc":"WeChat で QR コードを読み取り、連絡先に追加してください。","options.speech.title":"音声読み上げ","options.speech.description":"原文と訳文を読み上げる際の音声を設定します。","options.speech.enable":"読み上げを有効化","options.speech.enableDesc":"翻訳カードに読み上げボタンを表示します。","options.speech.rate":"速度","options.speech.rateDesc":"0.5×〜2.0×、既定 1.0×。","options.speech.pitch":"ピッチ","options.speech.pitchDesc":"0.5〜1.5、既定 1.0。","options.speech.voices":"音声の選択","options.speech.provider":"エンジン","options.speech.providerDesc":"Edge は Microsoft ニューラル音声（オンライン、高音質）。システムはブラウザ内蔵音声（オフライン）。","options.speech.providerEdge":"Edge (高音質)","options.speech.providerWeb":"システム","options.speech.edgeVoicesDesc":"Microsoft ニューラル音声から選択。失敗時はシステム音声に自動フォールバックします。","options.speech.voicesDesc":"言語ごとに好みの音声を選択します。クラウド音声（☁）は通常より自然です。","options.speech.auto":"自動（最適）","options.speech.autoWithName":"自動 — {{name}}","options.speech.test":"試聴","options.speech.noVoices":"このブラウザで音声が検出されませんでした。システム音声設定を確認してください。","options.hotkeys.quickSearch":"クイック検索","options.hotkeys.quickSearchDesc":"クイック検索ポップアップを開きます。","options.hotkeys.paragraph":"段落翻訳","options.hotkeys.paragraphDesc":"カーソル下の段落を翻訳します。","options.ai.title":"AI翻訳","options.ai.description":"AI翻訳サービスを選択：内蔵サービスまたは独自のAPIキーを設定。","options.ai.usingCustom":"カスタムAPI","options.ai.usingBackend":"内蔵AI","options.ai.providerLabel":"プロバイダー: {{provider}}","options.ai.enable":"AIサービス","options.ai.enableDesc":"有効にすると、設定したプロバイダーとモデルを使用します。","options.ai.enableDescBackend":"SentenWordが提供する内蔵AI翻訳サービスを使用します。","options.ai.enableDescCustom":"独自のAPIキーとモデルを使用。キーはローカルにのみ保存されます。","options.ai.provider":"プロバイダー","options.ai.providerDesc":"使用するプロバイダーを選択します。","options.ai.configWarningTitle":"AI の設定が未完了","options.ai.missingKeyWarning":"{{provider}} の API キーが未入力です。AI 翻訳・単語検索・字幕翻訳は失敗します。","options.ai.incompleteCustomWarning":"カスタム API に不足があります：{{fields}}。入力するまで AI 機能は利用できません。","options.ai.fieldBaseUrl":"ベース URL","options.ai.fieldApiKey":"API キー","options.ai.fieldModel":"モデル名","options.ai.freeProviderNote":"無料の公開エンドポイント。API キーは不要です。単語解説などの AI 機能は内蔵バックエンドに自動フォールバックします。","options.ai.kind":"サービスの種類","options.ai.kindDesc":"AI モデルは単語の語義や文法解析に対応します。無料翻訳は API キー不要ですが文単位の翻訳のみで、語義機能は内蔵サービスにフォールバックします。","options.ai.kindModel":"AI モデル","options.ai.kindPlain":"無料翻訳","options.engine.title":"現在の翻訳エンジン","options.engine.description":"同じ設定でも機能ごとに動作が異なります。各機能が実際に呼び出すサービスです。","options.engine.page":"ページ翻訳","options.engine.selection":"選択範囲の翻訳","options.engine.subtitle":"YouTube 字幕","options.engine.backend":"内蔵サービス","options.engine.fallbackPlain":"{{provider}} は辞書的な語義を生成できないため、この機能は内蔵サービスにフォールバックします。","options.engine.fallbackUnconfigured":"API キーが未設定のため、この機能は内蔵サービスにフォールバックします。","options.engine.unconfigured":"API キーが未設定です。この機能は失敗します。","options.engine.goToAi":"AI 設定へ移動","options.subtitle.title":"YouTube 字幕","options.subtitle.description":"二か国語字幕の表示方法と再生時の挙動。","options.subtitle.secondaryMode":"第二字幕の表示","options.subtitle.secondaryModeDesc":"訳文の表示方法を設定します。ぼかしにするとクリックで表示でき、先に自分で確認するのに便利です。","options.subtitle.modeNormal":"通常","options.subtitle.modeBlur":"ぼかし","options.subtitle.modeHide":"非表示","options.subtitle.autoPause":"字幕ごとに自動停止","options.subtitle.autoPauseDesc":"字幕1行の終わりで動画を自動停止します。シャドーイングに便利です。","options.ai.apiKey":"APIキー","options.ai.apiKeyDesc":"フォーカス解除で自動保存。","options.ai.model":"モデル","options.ai.openaiModelDesc":"デフォルトモデルはgpt-4o-miniです。","options.ai.openrouterModelDesc":"例：openai/gpt-4o-mini。","options.ai.deepseekModelDesc":"デフォルトモデルはdeepseek-chatです。","options.ai.customBaseUrl":"API Base URL","options.ai.customBaseUrlDesc":"OpenAI互換APIのURL（Qwen、Zhipu、Moonshotなど）。","options.ai.customModelDesc":"モデル名（qwen-turbo、glm-4など）。","options.ai.translatePrompt":"翻訳プロンプト","options.ai.translatePromptDesc":"翻訳時にAIに送信するカスタムプロンプト。AIが自動的に単語か段落かを判断します。","options.ai.promptReset":"デフォルトに戻す","options.ai.promptVariablesHint":"使用可能な変数：{{text}}、{{context}}、{{targetLanguage}}、{{#context}}...{{/context}}","options.metrics.highlight":"現在のハイライト","options.metrics.customAI":"カスタムAI","options.metrics.enabled":"有効","options.metrics.disabled":"無効","options.metrics.account":"アカウント状態","options.metrics.loading":"読み込み中","options.metrics.loggedIn":"ログイン中","options.metrics.notLoggedIn":"未ログイン","options.metrics.syncHint":"ログインしてクラウド機能を同期","options.metrics.syncingHint":"アカウント情報を同期中","common.saving":"保存中","common.saveFailed":"保存に失敗しました。再試行してください","common.loading":"設定を読み込み中...","common.definitionGenerating":"定義を生成中です。しばらくしてからもう一度お試しください。","common.unknownError":"不明なエラー","common.pageTranslateLoginRequired":"ページ翻訳を利用するにはログインしてください。","common.trialQuotaExceededLogin":"無料体験回数を使い切りました。続行するにはログインしてください。","common.translationQuotaExceededUpgrade":"翻訳枠を使い切りました。プランをアップグレードするか、しばらくしてから再試行してください。","common.rateLimitNotLoggedIn":"リクエストが多すぎます。ログインしてより多くの翻訳枠を取得してください。","common.freeQuotaExceeded":"今月の使用上限に達しました。{{resetTime}}にリセットされます。Proにアップグレードしてより多くの枠を取得できます","common.proQuotaExceeded":"今月の使用上限に達しました。{{resetTime}}にリセットされます","common.quotaExceeded.title":"今月の利用枠を使い切りました","common.quotaExceeded.reset":"{{resetTime}} にリセット","common.toast.loginRequiredTitle":"ログインが必要です","common.toast.quotaInsufficientTitle":"利用枠不足","common.toast.translationErrorTitle":"翻訳エラー","common.toast.loginAction":"ログイン","common.toast.laterAction":"後で","common.toast.upgradeAction":"プランをアップグレード","common.toast.closeAction":"閉じる","common.toast.aiConfigTitle":"AI の設定が未完了","common.toast.openSettingsAction":"設定を開く","common.aiConfigNotEnabled":"まず設定でカスタム AI を有効にして構成してください。","common.aiConfigMissingKey":"カスタム AI（{{provider}}）が有効ですが、API キーが未入力です。設定でキーを入力するか、組み込みの AI サービスに戻してください。","common.aiConfigIncompleteCustom":"カスタム API の設定が不完全です。設定でベース URL、API キー、モデル名を入力してください。","common.aiConfigUnsupportedProvider":"{{provider}} は通常の翻訳のみ対応しています。AI 機能を使うには設定で LLM プロバイダーを選択してください。","common.sessionExpiredTitle":"ログインの有効期限が切れました","common.sessionExpiredDesc":"すべての機能を続けて利用するには、再度ログインしてください。","common.sessionReloginAction":"再ログイン","common.preview":"プレビュー","common.unexpectedError":"予期しないエラーが発生しました","footer.copyright":"SentenWord | スマート翻訳","color.amber":"アンバー","color.green":"グリーン","color.blue":"ブルー","color.indigo":"インディゴ","color.coral":"コーラル","color.orange":"オレンジ","color.cyan":"シアン","color.brown":"ブラウン","color.red":"レッド","color.gold":"ゴールド","color.magenta":"マゼンタ","color.darkGray":"ダークグレー","color.custom":"カスタム","color.customHighlight":"カスタムハイライト色","color.customButton":"カスタムボタン色","welcome.subtitle":"SentenWordへようこそ。まず基本設定を完了しましょう","welcome.nativeLanguage":"あなたの母国語","welcome.nativeLanguageDesc":"この設定に基づいてUIの言語が自動的に切り替わります。","welcome.learningLanguage":"学びたい言語","welcome.learningLanguageDesc":"学習中のターゲット言語を選択してください。","welcome.getStarted":"はじめる","welcome.account":"アカウント","welcome.accountDesc":"ログインして語彙と学習進捗を同期しましょう。","welcome.login":"ログイン / 登録","welcome.maybeLater":"あとで","welcome.loggedInAs":"ログイン済み","welcome.next":"次へ","welcome.back":"戻る","popup.title":"SentenWord | スマート翻訳","popup.settings":"設定","popup.quickSearch":"クイック検索","popup.stopTranslate":"翻訳を停止","popup.translatePage":"ページを翻訳","popup.translationEnabled":"翻訳が有効です","popup.visitWebsite":"公式サイトへ","popup.wordBook":"単語帳","popup.login":"ログイン","popup.loginDesc":"ログインしてデータを同期","popup.screenshot":"スクリーンショット認識","screenshot.hint":"ドラッグして範囲を選択 · Esc でキャンセル","screenshot.processing":"認識中…","screenshot.empty":"テキストが見つかりません","screenshot.failed":"認識に失敗しました","screenshot.loginRequired":"ログイン後にスクリーンショット認識をご利用いただけます","screenshot.quotaExceeded":"今月の利用枠を使い切りました。時間を置いて再試行するか、プランをアップグレードしてください。","screenshot.translation":"翻訳","screenshot.close":"閉じる","screenshot.copy":"コピー","screenshot.copied":"コピーしました","card.title":"SentenWord | スマート翻訳","card.wordBook":"単語帳","card.tabSimpleDictionary":"簡易辞書","card.tabDictionary":"辞書","card.tabAI":"AI 解説","card.detailedExplanation":"詳細解説","card.detailedExplanationLoading":"詳細解説を生成中...","card.detailedExplanationRetry":"再試行","card.originalText":"原文","card.translationText":"訳文","card.closeDetailedExplanation":"詳細解説を閉じる","card.closeCard":"カードを閉じる","card.settings":"設定","collection.title":"コレクション","collection.closeModal":"コレクションウィンドウを閉じる","collection.folder":"コレクション","collection.loading":"読み込み中...","collection.defaultFolder":"デフォルトコレクション","collection.loadingHint":"読み込み中…","collection.word":"単語 *","collection.wordPlaceholder":"単語を入力","collection.partOfSpeech":"品詞","collection.partOfSpeechPlaceholder":"品詞","collection.phonetic":"発音記号","collection.phoneticPlaceholder":"例: /mɪˈlɛniə/","collection.meaning":"意味","collection.meaningPlaceholder":"単語の意味","collection.context":"コンテキスト *","collection.contextPlaceholder":"完全な例文を入力","collection.contextTranslation":"コンテキストの翻訳","collection.contextTranslationPlaceholder":"コンテキスト文の翻訳を入力","collection.examples":"追加例文","collection.examplesHint":"（任意、1行に1つ）","collection.examplesPlaceholder":"追加例文を入力、1行に1つ","collection.saving":"保存中...","collection.save":"保存","collection.saveSuccess":"保存しました","collection.saveToFolder":"保存先","collection.saveSuccessTo":"「{{name}}」に保存しました","collection.moveFailed":"コレクションの移動に失敗しました","collection.saveFailed":"保存に失敗しました","collection.notLoggedIn":"ログインしていないため保存できません","collection.notLoggedInLoad":"ログインしていないためコレクションを読み込めません","collection.loadFailed":"コレクションの読み込みに失敗しました","collection.wordRequired":"単語/フレーズを入力してください","collection.contextTooLong":"コンテキストは{{max}}文字以内にしてください","youtube.machineTranslate":"機械翻訳","youtube.aiTranslate":"AI 翻訳","youtube.subtitlePanel":"字幕パネル","youtube.closePanel":"字幕パネルを閉じる","youtube.panelAriaLabel":"字幕パネルタブ","youtube.tabSubtitles":"字幕","youtube.tabSettings":"設定","youtube.downloadSrt":"バイリンガル SRT をダウンロード","youtube.noSubtitles":"字幕なし","youtube.showBilingualSubtitle":"バイリンガル字幕を表示","youtube.showBilingualSubtitleDesc":"動画上のバイリンガル字幕オーバーレイを切り替え","youtube.enableSubtitleList":"字幕リストを有効にする","youtube.enableSubtitleListDesc":"無効にすると字幕リストパネルが非表示になります","youtube.autoScroll":"自動スクロール","youtube.autoScrollDesc":"再生中に現在の文に自動スクロール","youtube.noDownloadableSubtitle":"ダウンロード可能な字幕がありません","youtube.loadSecondaryFirst":"バイリンガル SRT をダウンロードする前に副字幕を読み込んでください","youtube.exportEmpty":"字幕エクスポート失敗：内容が空です","youtube.downloadStarted":"バイリンガル SRT のダウンロードを開始しました","youtube.downloadFailed":"バイリンガル SRT のダウンロードに失敗しました","youtube.subtitleTranslateFallbackFailed":"字幕の翻訳に失敗しました。後ほど再試行してください","youtube.primaryLoadFailed":"主字幕の読み込みに失敗しました","youtube.machineTranslateUnavailable":"機械翻訳が利用できないため、AI 翻訳に切り替えました","youtube.machineTranslateFailed":"機械翻訳の取得に失敗、AI 翻訳に切り替えました","youtube.secondaryLoadFailed":"副字幕の読み込みに失敗しました","youtube.aiTranslateEnabled":"AI オンデマンド翻訳を有効にしました","youtube.fetchingMachineTranslate":"機械翻訳字幕を取得中...","youtube.subtitleContentEmpty":"字幕トラックは見つかりましたが、表示できる字幕がありません","youtube.noAvailableSubtitles":"この動画には利用可能な字幕がありません","youtube.trackLoadFailed":"字幕トラックの読み込みに失敗しました","youtube.btnSubtitleOn":"SentenWord バイリンガル字幕 (オン)","youtube.btnSubtitleOff":"SentenWord バイリンガル字幕 (オフ)","youtube.btnPanelOn":"SentenWord 字幕パネル (オン)","youtube.btnPanelOff":"SentenWord 字幕パネル (オフ)","youtube.btnSettings":"SentenWord 字幕設定","youtube.menuBilingualSubtitle":"バイリンガル字幕","youtube.menuSidebar":"字幕サイドバー","youtube.menuSettings":"設定","contextMenu.smartTranslate":"SentenWord | スマート翻訳","contextMenu.translatePage":"SentenWord | ページ翻訳","contextMenu.restoreOriginal":"SentenWord | 原文に戻す","quickSearch.title":"クイック検索","quickSearch.dictionary":"辞書","quickSearch.ai":"AI","quickSearch.dictPlaceholder":"単語を検索...","quickSearch.aiPlaceholder":"単語や文を入力してAIに説明してもらう...","quickSearch.submit":"検索","quickSearch.hint":"Ctrl+Shift+F で起動 · Enter で検索 · Tab でモード切替 · Escape で閉じる","subtitle.loading":"字幕を読み込み中...","subtitle.ready":"字幕準備完了、音声の開始を待っています","subtitle.notDetected":"表示可能な字幕が検出されませんでした。再生を続けるか、別の動画をお試しください","floating.translate":"翻訳","word.viewInDict":"{{name}} で表示","word.unfavorite":"お気に入りから削除","speech.playOriginal":"原文を再生","speech.playTranslation":"訳文を再生","word.favorite":"お気に入りに追加","ai.favoritePhrase":"フレーズをお気に入りに追加","ai.collapse":"折りたたむ","ai.viewAll":"すべて表示 ({{count}})","ai.noResult":"翻訳結果がありません","ai.loading":"読み込み中...","common.expand":"すべて表示","common.collapseText":"折りたたむ","common.translating":"翻訳中...","options.changelog.title":"更新履歴","update.action":"新しいバージョンが利用可能"},Mm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"번역 경험, 사전 표시 및 맞춤 AI 설정을 한곳에서 관리하세요. 시각, 상호작용 및 성능 설정을 여기서 구성합니다.","options.language.title":"언어 설정","options.language.description":"모국어와 학습 중인 대상 언어를 설정합니다.","options.language.native":"모국어","options.language.nativeDesc":"이 설정에 따라 인터페이스 언어가 자동으로 전환됩니다.","options.language.learning":"학습 대상 언어","options.language.learningDesc":"학습 중인 언어로, 번역 및 사전 기능에 사용됩니다.","options.account.title":"계정 및 연결","options.account.description":"로그인 상태와 확장 프로그램 연결을 관리합니다.","options.account.label":"계정","options.account.loading":"로그인 상태 확인 중","options.account.loggedIn":"로그인됨: ","options.account.notLoggedIn":"로그인되지 않음. 인증 페이지에서 로그인하세요.","options.account.logout":"로그아웃","options.account.login":"로그인","options.account.loggedOut":"로그아웃되었습니다","options.account.profile":"프로필","options.account.avatar":"아바타","options.account.name":"닉네임","options.account.namePlaceholder":"닉네임 입력","options.account.save":"저장","options.account.saving":"저장 중...","options.account.profileUpdated":"프로필이 업데이트되었습니다","options.account.profileUpdateFailed":"업데이트 실패, 다시 시도해 주세요","options.account.editProfile":"프로필 편집","options.account.cancel":"취소","options.usage.title":"사용량","options.usage.description":"AI Token 사용 현황","options.usage.monthly":"현재 기간 할당량","options.usage.used":"사용됨","options.usage.limit":"한도","options.usage.resetAt":"초기화 시간","options.usage.tokens":"tokens","options.usage.loadFailed":"사용량 로드 실패","options.usage.loginRequired":"사용량을 보려면 로그인하세요","options.usage.upgradeToPro":"Pro로 업그레이드","options.usage.upgradeToMax":"Max로 업그레이드","options.usage.dailyBreakdown":"일별 내역","options.usage.dailyTitle":"현재 기간 일별 사용량","options.usage.dailySubtitle":"막대 높이는 해당 일의 상대적 소비량을 나타냅니다 · 마우스를 올리면 기간 총량 대비 비율을 확인할 수 있습니다","options.usage.monthTotal":"기간 누계","options.usage.dailyEmpty":"내역 데이터를 불러올 수 없습니다","options.usage.dailyNote":"참고: 여기서 tokens는 본 시스템의 소비 단위이며 특정 모델의 token 수와는 다릅니다.","options.usage.dailyLoadFailed":"내역 로드 실패","paywall.title":"SentenWord Pro로 업그레이드","paywall.subtitle":"안정적인 월간 AI 할당량과 프리미엄 번역 기능을 이용하세요","paywall.max.title":"SentenWord Max로 업그레이드","paywall.max.subtitle":"잦은 번역, AI 자막, 심층 설명을 위한 더 큰 월간 할당량","paywall.oneTimeNotice":"1개월 일회성 구매이며 자동 갱신되지 않습니다","paywall.feature.quota":"월 30만 AI 토큰","paywall.feature.maxQuota":"AI 토큰 한도: 월 30만 → 200만","paywall.feature.subtitles":"YouTube AI 이중 자막","paywall.feature.priority":"우선 액세스 및 전담 지원","paywall.plan.monthly":"1개월","paywall.plan.quarterly":"분기","paywall.plan.halfYear":"6개월","paywall.plan.yearly":"연간","paywall.priceSuffix.month":"/월","paywall.price.loading":"가격 불러오는 중…","paywall.priceTotal":"총 {{total}}","paywall.savings":"{{percent}}% 할인","paywall.recommended":"최고 가치","paywall.continueButton":"결제 진행","paywall.continueLoading":"이동 중...","paywall.close":"닫기","paywall.error.loginRequired":"업그레이드하려면 로그인이 필요합니다.","paywall.error.goLogin":"로그인","paywall.error.network":"결제 세션 생성에 실패했습니다. 나중에 다시 시도해 주세요.","paywall.error.priceUnavailable":"가격을 불러오지 못했습니다. 다시 시도해 주세요.","paywall.confirm.title":"결제 완료를 기다리는 중","paywall.confirm.message":"새 탭에서 결제 페이지가 열렸습니다. Stripe에서 결제를 완료한 후 이곳으로 돌아와 아래 버튼을 클릭하세요.","paywall.confirm.completed":"결제를 완료했습니다","paywall.confirm.cancel":"취소","paywall.confirm.checking":"확인 중…","paywall.confirm.retry":"다시 시도","paywall.confirm.notYet":"아직 Pro 상태가 감지되지 않습니다. 방금 결제를 완료했다면 잠시 후 다시 시도해 주세요.","paywall.confirm.notYetMax":"아직 Max 이용 권한이 감지되지 않습니다. 방금 결제를 완료했다면 잠시 후 다시 시도해 주세요.","options.highlight.title":"외관","options.highlight.description":"하이라이트 스타일과 색상 설정을 관리합니다.","options.highlight.panelTitle":"하이라이트 스타일","options.highlight.panelDescription":"저장된 단어가 웹페이지에 표시되는 방식과 색상 시스템입니다.","options.card.themeTitle":"카드 테마","options.card.themeDescription":"사전 카드의 시각적 스타일을 전환합니다.","options.card.theme.warm":"따뜻한","options.card.theme.classic":"클래식","options.card.theme.fresh":"프레시","options.highlight.enable":"하이라이트 활성화","options.highlight.enableDesc":"비활성화하면 저장된 단어가 더 이상 웹페이지에 하이라이트되지 않습니다.","options.highlight.inlineAnnotation":"인라인 정의 표시","options.highlight.inlineAnnotationDesc":"하이라이트된 단어 옆에 품사와 정의를 표시합니다. 예: Reload(v.다시 로드).","options.highlight.trigger":"정의 패널 트리거","options.highlight.triggerDesc":"하이라이트 단어가 클릭, 호버 또는 동작 없음으로 정의 패널을 열지 선택합니다.","options.highlight.trigger.none":"동작 없음","options.highlight.styleSelect":"스타일 선택","options.highlight.colorSelect":"색상 선택","options.highlight.opacity":"하이라이트 투명도","options.highlight.opacityDesc":"페이지에서 하이라이트 색상이 보이는 투명도를 조정합니다.","options.highlight.style.none":"없음","options.highlight.style.background":"배경색","options.highlight.style.text":"텍스트 색상","options.highlight.style.underline":"밑줄","options.highlight.style.doubleUnderline":"이중 밑줄","options.highlight.style.wavy":"물결선","options.highlight.style.dotted":"점선","options.highlight.style.dashed":"파선","options.tagHighlight.panelTitle":"어휘 태그 하이라이트","options.tagHighlight.panelDescription":"사전 태그와 빈도 범위를 기반으로 웹페이지의 단어를 하이라이트합니다.","options.tagHighlight.enable":"태그 하이라이트 활성화","options.tagHighlight.enableDesc":"설정된 규칙에 맞는 단어를 자동으로 하이라이트합니다.","options.tagHighlight.addRule":"규칙 추가","options.tagHighlight.tag":"사전 태그","options.tagHighlight.frqRange":"빈도 범위","options.tagHighlight.frqMin":"최소","options.tagHighlight.frqMax":"최대","options.tagHighlight.noRules":"규칙이 없습니다. 위의 버튼을 클릭하여 추가하세요.","options.tagHighlight.deleteRule":"삭제","options.tagHighlight.style":"스타일","options.tagHighlight.color":"색상","options.tagHighlight.enabled":"활성화","options.translation.title":"번역 설정","options.translation.description":"페이지 이중 언어 번역과 선택 번역을 관리합니다.","options.autoTranslate.title":"페이지 자동 번역","options.autoTranslate.description":"설정한 사이트에 들어가면 페이지 이중 언어 번역을 자동으로 시작합니다.","options.autoTranslate.enable":"자동 번역 사용","options.autoTranslate.enableDesc":"아래 도메인과 일치할 때만 시작됩니다. 이미 열린 페이지는 새로고침하세요.","options.autoTranslate.domains":"웹사이트 도메인","options.autoTranslate.domainsDesc":"기본 도메인은 하위 도메인도 일치합니다. reddit.com은 www.reddit.com과 일치합니다.","options.autoTranslate.placeholder":"도메인 또는 URL 입력 (예: medium.com)","options.autoTranslate.add":"추가","options.autoTranslate.remove":"삭제","options.autoTranslate.invalidDomain":"유효한 도메인 또는 HTTP(S) URL을 입력하세요.","options.autoTranslate.duplicateDomain":"이미 목록에 있는 도메인입니다.","options.autoTranslate.empty":"도메인이 없습니다. 어떤 사이트에서도 자동 번역이 시작되지 않습니다.","options.dictionary.title":"사전 콘텐츠","options.dictionary.description":"단어 카드에 표시되는 정의 수준과 예문을 제어합니다.","options.dictionary.showExamples":"예문 표시","options.dictionary.showExamplesDesc":"정의에 예문을 표시합니다.","options.dictionary.tabs.title":"사전 검색 설정","options.dictionary.tabs.description":"사전 카드의 각 검색 탭 표시 순서와 활성화 상태를 설정합니다. 모국어가 중국어이고 학습 언어가 영어인 경우에만 적용됩니다.","options.dictionary.tabs.ai":"AI 검색","options.dictionary.tabs.simple":"간이 사전","options.dictionary.tabs.dictionary":"전문 사전","options.dictionary.tabs.moveUp":"위로 이동","options.dictionary.tabs.moveDown":"아래로 이동","options.floating.title":"선택 번역","options.floating.description":"플로팅 버튼의 표시 방식, 크기, 색상, 투명도 및 스타일을 정의합니다.","options.floating.enable":"플로팅 버튼 활성화","options.floating.enableDesc":"텍스트 선택 후 번역 입구를 표시합니다.","options.floating.trigger":"트리거 모드","options.floating.triggerDesc":"클릭 또는 호버로 번역을 트리거합니다.","options.floating.trigger.click":"클릭","options.floating.trigger.hover":"호버","options.floating.size":"버튼 크기","options.floating.sizeDesc":"선호도에 맞게 크기를 조절하세요.","options.floating.size.xsmall":"아주 작게","options.floating.size.small":"작게","options.floating.size.medium":"중간","options.floating.size.large":"크게","options.floating.style":"버튼 스타일","options.floating.styleDesc":"아이콘, 점 또는 텍스트.","options.floating.style.icon":"아이콘","options.floating.style.dot":"점","options.floating.color":"버튼 색상","options.floating.colorDesc":"프리셋 또는 사용자 정의 색상을 선택하세요.","options.floating.opacity":"버튼 투명도","options.floating.opacityDesc":"페이지에서 플로팅 버튼이 보이는 투명도를 조정합니다.","options.hotkeys.title":"단축키","options.hotkeys.description":"포커스 해제 또는 Enter 키로 자동 저장됩니다.","options.companion.title":"iOS 앱","options.companion.description":"컬렉션을 주머니 속에 — 저장한 단어와 문장을 어디서든 복습하세요.","options.companion.platform":"for iPhone · iPad","options.companion.pitch":"저장해 둔 단어와 문장을 iPhone에서 바로 열어보세요.","options.companion.feat1":"저장한 단어와 문장을 언제든 다시 보기","options.companion.feat2":"간격 반복으로 기억 강화","options.companion.feat3":"엄선된 단어장으로 체계적으로 학습","options.companion.cta":"App Store에서 받기","options.favorites.title":"저장한 단어 보기","options.companion.syncTitle":"기기 간 데이터 동기화","options.companion.syncDesc":"웹과 iOS 앱에서 동일한 Apple 계정으로 로그인하면 저장한 데이터를 동기화할 수 있습니다.","options.contact.title":"공식 사이트 및 연락처","options.contact.description":"SentenWord 공식 사이트를 방문하거나 이메일과 WeChat으로 연락하세요.","options.contact.website":"공식 사이트","options.contact.websiteDesc":"제품 소개, 계정 및 최신 소식을 확인하세요.","options.contact.email":"이메일","options.contact.emailDesc":"기능 제안, 문제 신고 및 협업 문의를 보내 주세요.","options.contact.signoff":"보내 주시는 모든 의견이 SentenWord를 더 좋게 만듭니다.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"WeChat에서 QR 코드를 스캔해 연락처로 추가하세요.","options.speech.title":"음성 읽기","options.speech.description":"원문과 번역을 읽어줄 음성을 설정합니다.","options.speech.enable":"읽기 활성화","options.speech.enableDesc":"번역 카드에 스피커 버튼을 표시합니다.","options.speech.rate":"속도","options.speech.rateDesc":"0.5×에서 2.0×, 기본 1.0×.","options.speech.pitch":"음조","options.speech.pitchDesc":"0.5에서 1.5, 기본 1.0.","options.speech.voices":"음성 선택","options.speech.provider":"엔진","options.speech.providerDesc":"Edge는 Microsoft 신경망 음성(온라인, 더 좋은 음질). 시스템은 브라우저 내장 음성(오프라인).","options.speech.providerEdge":"Edge (고품질)","options.speech.providerWeb":"시스템","options.speech.edgeVoicesDesc":"Microsoft 신경망 음성에서 선택하세요. 실패 시 시스템 음성으로 대체됩니다.","options.speech.voicesDesc":"언어별로 선호하는 음성을 선택하세요. 클라우드 음성(☁)이 대체로 더 자연스럽습니다.","options.speech.auto":"자동 (최적)","options.speech.autoWithName":"자동 — {{name}}","options.speech.test":"미리듣기","options.speech.noVoices":"이 브라우저에서 음성을 찾을 수 없습니다. 시스템 음성 설정을 확인하세요.","options.hotkeys.quickSearch":"빠른 검색","options.hotkeys.quickSearchDesc":"빠른 검색 팝업을 엽니다.","options.hotkeys.paragraph":"단락 번역","options.hotkeys.paragraphDesc":"커서 아래의 단락을 번역합니다.","options.ai.title":"AI 번역","options.ai.description":"AI 번역 서비스를 선택하세요: 내장 서비스 또는 자체 API 키를 설정하세요.","options.ai.usingCustom":"맞춤 API","options.ai.usingBackend":"내장 AI","options.ai.providerLabel":"프로바이더: {{provider}}","options.ai.enable":"AI 서비스","options.ai.enableDesc":"활성화하면 구성된 프로바이더와 모델을 사용합니다.","options.ai.enableDescBackend":"SentenWord에서 제공하는 내장 AI 번역 서비스를 사용합니다.","options.ai.enableDescCustom":"자체 API 키와 모델을 사용합니다. 키는 로컬에만 저장됩니다.","options.ai.provider":"프로바이더","options.ai.providerDesc":"사용할 제공업체를 선택하세요.","options.ai.configWarningTitle":"AI 설정 미완료","options.ai.missingKeyWarning":"{{provider}} API 키가 없어 AI 번역, 단어 조회, 자막 번역이 모두 실패합니다.","options.ai.incompleteCustomWarning":"사용자 지정 API에 다음 항목이 없습니다: {{fields}}. 채우기 전까지 AI 기능을 쓸 수 없습니다.","options.ai.fieldBaseUrl":"기본 URL","options.ai.fieldApiKey":"API 키","options.ai.fieldModel":"모델 이름","options.ai.freeProviderNote":"무료 공개 엔드포인트 — API 키가 필요 없습니다. 단어 설명 등 AI 기능은 내장 백엔드로 대체됩니다.","options.ai.kind":"서비스 유형","options.ai.kindDesc":"AI 모델은 단어 뜻풀이와 문법 분석을 제공합니다. 무료 번역은 API 키가 필요 없지만 문장 번역만 가능하며, 뜻풀이 기능은 내장 서비스로 대체됩니다.","options.ai.kindModel":"AI 모델","options.ai.kindPlain":"무료 번역","options.engine.title":"현재 번역 엔진","options.engine.description":"같은 설정이라도 기능마다 동작이 다릅니다. 각 기능이 실제로 호출하는 서비스입니다.","options.engine.page":"페이지 번역","options.engine.selection":"선택 번역","options.engine.subtitle":"YouTube 자막","options.engine.backend":"내장 서비스","options.engine.fallbackPlain":"{{provider}}은(는) 사전식 뜻풀이를 생성할 수 없어 이 기능은 내장 서비스로 대체됩니다.","options.engine.fallbackUnconfigured":"API 키가 설정되지 않아 이 기능은 내장 서비스로 대체됩니다.","options.engine.unconfigured":"API 키가 설정되지 않았습니다. 이 기능은 실패합니다.","options.engine.goToAi":"AI 설정으로 이동","options.subtitle.title":"YouTube 자막","options.subtitle.description":"이중 언어 자막의 표시 방식과 재생 동작.","options.subtitle.secondaryMode":"보조 자막 표시","options.subtitle.secondaryModeDesc":"번역 자막의 표시 방식을 설정합니다. 흐리게 하면 클릭해서 확인할 수 있어 먼저 스스로 점검하기 좋습니다.","options.subtitle.modeNormal":"보통","options.subtitle.modeBlur":"흐리게","options.subtitle.modeHide":"숨김","options.subtitle.autoPause":"자막마다 자동 일시정지","options.subtitle.autoPauseDesc":"자막 한 줄이 끝날 때 영상을 자동으로 일시정지합니다. 쉐도잉에 유용합니다.","options.ai.apiKey":"API 키","options.ai.apiKeyDesc":"포커스 해제 시 자동 저장.","options.ai.model":"모델","options.ai.openaiModelDesc":"기본 모델은 gpt-4o-mini입니다.","options.ai.openrouterModelDesc":"예: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"기본 모델은 deepseek-chat입니다.","options.ai.customBaseUrl":"API Base URL","options.ai.customBaseUrlDesc":"OpenAI 호환 API URL (Qwen, Zhipu, Moonshot 등).","options.ai.customModelDesc":"모델 이름 (qwen-turbo, glm-4 등).","options.ai.translatePrompt":"번역 프롬프트","options.ai.translatePromptDesc":"번역 시 AI에 전송하는 사용자 정의 프롬프트. AI가 자동으로 단어인지 단락인지 판단합니다.","options.ai.promptReset":"기본값으로 복원","options.ai.promptVariablesHint":"사용 가능한 변수: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"현재 하이라이트","options.metrics.customAI":"맞춤 AI","options.metrics.enabled":"활성화됨","options.metrics.disabled":"비활성화됨","options.metrics.account":"계정 상태","options.metrics.loading":"로딩 중","options.metrics.loggedIn":"로그인됨","options.metrics.notLoggedIn":"미로그인","options.metrics.syncHint":"로그인하여 클라우드 기능을 동기화하세요","options.metrics.syncingHint":"계정 정보 동기화 중","common.saving":"저장 중","common.saveFailed":"저장 실패. 다시 시도해 주세요","common.loading":"설정 로딩 중...","common.definitionGenerating":"정의를 생성 중입니다. 잠시 후 다시 시도해 주세요.","common.unknownError":"알 수 없는 오류","common.pageTranslateLoginRequired":"페이지 번역을 사용하려면 먼저 로그인해 주세요.","common.trialQuotaExceededLogin":"무료 체험 횟수를 모두 사용했습니다. 계속하려면 로그인해 주세요.","common.translationQuotaExceededUpgrade":"번역 한도를 모두 사용했습니다. 멤버십을 업그레이드하거나 잠시 후 다시 시도해 주세요.","common.rateLimitNotLoggedIn":"요청이 너무 많습니다. 더 많은 번역 한도를 받으려면 로그인해 주세요.","common.freeQuotaExceeded":"이번 달 사용 한도에 도달했습니다. {{resetTime}}에 초기화됩니다. Pro로 업그레이드하여 더 높은 한도를 받으세요","common.proQuotaExceeded":"이번 달 사용 한도에 도달했습니다. {{resetTime}}에 초기화됩니다","common.quotaExceeded.title":"이번 달 사용량을 모두 사용했습니다","common.quotaExceeded.reset":"{{resetTime}}에 초기화","common.toast.loginRequiredTitle":"로그인이 필요합니다","common.toast.quotaInsufficientTitle":"할당량 부족","common.toast.translationErrorTitle":"번역 오류","common.toast.loginAction":"로그인","common.toast.laterAction":"나중에","common.toast.upgradeAction":"요금제 업그레이드","common.toast.closeAction":"닫기","common.toast.aiConfigTitle":"AI 설정 미완료","common.toast.openSettingsAction":"설정 열기","common.aiConfigNotEnabled":"먼저 설정에서 사용자 지정 AI를 켜고 구성하세요.","common.aiConfigMissingKey":"사용자 지정 AI({{provider}})가 켜져 있지만 API 키가 없습니다. 설정에서 키를 입력하거나 기본 AI 서비스로 되돌리세요.","common.aiConfigIncompleteCustom":"사용자 지정 API 설정이 불완전합니다. 설정에서 기본 URL, API 키, 모델 이름을 채워 주세요.","common.aiConfigUnsupportedProvider":"{{provider}}는 일반 번역만 지원합니다. AI 기능을 쓰려면 설정에서 LLM 제공자를 선택하세요.","common.sessionExpiredTitle":"로그인이 만료되었습니다","common.sessionExpiredDesc":"전체 기능을 계속 사용하려면 다시 로그인해 주세요.","common.sessionReloginAction":"다시 로그인","common.preview":"미리보기","common.unexpectedError":"예기치 않은 오류가 발생했습니다","footer.copyright":"SentenWord | 스마트 번역","color.amber":"앰버","color.green":"그린","color.blue":"블루","color.indigo":"인디고","color.coral":"코랄","color.orange":"오렌지","color.cyan":"시안","color.brown":"브라운","color.red":"레드","color.gold":"골드","color.magenta":"마젠타","color.darkGray":"다크 그레이","color.custom":"사용자 정의","color.customHighlight":"사용자 정의 하이라이트 색상","color.customButton":"사용자 정의 버튼 색상","welcome.subtitle":"SentenWord에 오신 것을 환영합니다. 기본 설정을 완료해 봅시다","welcome.nativeLanguage":"모국어","welcome.nativeLanguageDesc":"이 설정에 따라 인터페이스 언어가 자동으로 전환됩니다.","welcome.learningLanguage":"배우고 싶은 언어","welcome.learningLanguageDesc":"학습 중인 대상 언어를 선택하세요.","welcome.getStarted":"시작하기","welcome.account":"계정","welcome.accountDesc":"로그인하여 어휘와 학습 진도를 동기화하세요.","welcome.login":"로그인 / 가입","welcome.maybeLater":"나중에","welcome.loggedInAs":"로그인됨","welcome.next":"다음","welcome.back":"뒤로","popup.title":"SentenWord | 스마트 번역","popup.settings":"설정","popup.quickSearch":"빠른 검색","popup.stopTranslate":"번역 중지","popup.translatePage":"페이지 번역","popup.translationEnabled":"번역이 활성화되었습니다","popup.visitWebsite":"웹사이트 방문","popup.wordBook":"단어장","popup.login":"로그인","popup.loginDesc":"로그인하여 데이터 동기화","popup.screenshot":"스크린샷 인식","screenshot.hint":"드래그하여 영역 선택 · Esc로 취소","screenshot.processing":"인식 중…","screenshot.empty":"텍스트를 찾을 수 없습니다","screenshot.failed":"인식 실패","screenshot.loginRequired":"로그인 후 스크린샷 인식을 사용하세요","screenshot.quotaExceeded":"이번 달 사용량을 모두 사용했습니다. 잠시 후 다시 시도하거나 플랜을 업그레이드하세요.","screenshot.translation":"번역","screenshot.close":"닫기","screenshot.copy":"복사","screenshot.copied":"복사됨","card.title":"SentenWord | 스마트 번역","card.wordBook":"단어장","card.tabSimpleDictionary":"간이 사전","card.tabDictionary":"사전","card.tabAI":"AI 설명","card.detailedExplanation":"상세 설명","card.detailedExplanationLoading":"상세 설명 생성 중...","card.detailedExplanationRetry":"재시도","card.originalText":"원문","card.translationText":"번역","card.closeDetailedExplanation":"상세 설명 닫기","card.closeCard":"카드 닫기","card.settings":"설정","collection.title":"수집","collection.closeModal":"수집 창 닫기","collection.folder":"컬렉션","collection.loading":"로딩 중...","collection.defaultFolder":"기본 컬렉션","collection.loadingHint":"로딩 중…","collection.word":"단어 *","collection.wordPlaceholder":"단어를 입력하세요","collection.partOfSpeech":"품사","collection.partOfSpeechPlaceholder":"품사","collection.phonetic":"발음 기호","collection.phoneticPlaceholder":"예: /mɪˈlɛniə/","collection.meaning":"뜻","collection.meaningPlaceholder":"단어의 뜻","collection.context":"문맥 *","collection.contextPlaceholder":"전체 예문을 입력하세요","collection.contextTranslation":"문맥 번역","collection.contextTranslationPlaceholder":"문맥 문장의 번역을 입력하세요","collection.examples":"추가 예문","collection.examplesHint":"(선택, 줄당 하나)","collection.examplesPlaceholder":"추가 예문을 입력하세요, 줄당 하나","collection.saving":"저장 중...","collection.save":"저장","collection.saveSuccess":"저장되었습니다","collection.saveToFolder":"저장 위치","collection.saveSuccessTo":"'{{name}}'에 저장되었습니다","collection.moveFailed":"컬렉션 이동에 실패했습니다","collection.saveFailed":"저장 실패","collection.notLoggedIn":"로그인하지 않아 저장할 수 없습니다","collection.notLoggedInLoad":"로그인하지 않아 컬렉션을 불러올 수 없습니다","collection.loadFailed":"컬렉션 불러오기 실패","collection.wordRequired":"단어/구문을 입력해주세요","collection.contextTooLong":"문맥은 {{max}}자를 초과할 수 없습니다","youtube.machineTranslate":"기계 번역","youtube.aiTranslate":"AI 번역","youtube.subtitlePanel":"자막 패널","youtube.closePanel":"자막 패널 닫기","youtube.panelAriaLabel":"자막 패널 탭","youtube.tabSubtitles":"자막","youtube.tabSettings":"설정","youtube.downloadSrt":"이중 언어 SRT 다운로드","youtube.noSubtitles":"자막 없음","youtube.showBilingualSubtitle":"이중 언어 자막 표시","youtube.showBilingualSubtitleDesc":"동영상의 이중 언어 자막 오버레이를 전환합니다","youtube.enableSubtitleList":"자막 목록 활성화","youtube.enableSubtitleListDesc":"비활성화하면 자막 목록 패널이 숨겨집니다","youtube.autoScroll":"자동 스크롤","youtube.autoScrollDesc":"재생 중 현재 문장으로 자동 스크롤","youtube.noDownloadableSubtitle":"다운로드 가능한 자막이 없습니다","youtube.loadSecondaryFirst":"이중 언어 SRT를 다운로드하기 전에 보조 자막을 먼저 불러오세요","youtube.exportEmpty":"자막 내보내기 실패: 내용이 비어있습니다","youtube.downloadStarted":"이중 언어 SRT 다운로드가 시작되었습니다","youtube.downloadFailed":"이중 언어 SRT 다운로드 실패","youtube.subtitleTranslateFallbackFailed":"자막 번역에 실패했습니다. 잠시 후 다시 시도해 주세요","youtube.primaryLoadFailed":"주 자막 불러오기 실패","youtube.machineTranslateUnavailable":"기계 번역을 사용할 수 없어 AI 번역으로 전환했습니다","youtube.machineTranslateFailed":"기계 번역 가져오기 실패, AI 번역으로 전환했습니다","youtube.secondaryLoadFailed":"보조 자막 불러오기 실패","youtube.aiTranslateEnabled":"AI 주문형 번역이 활성화되었습니다","youtube.fetchingMachineTranslate":"기계 번역 자막을 가져오는 중...","youtube.subtitleContentEmpty":"자막 트랙은 찾았지만 표시할 수 있는 자막이 없습니다","youtube.noAvailableSubtitles":"이 동영상에는 사용 가능한 자막이 없습니다","youtube.trackLoadFailed":"자막 트랙 불러오기 실패","youtube.btnSubtitleOn":"SentenWord 이중 언어 자막 (켜짐)","youtube.btnSubtitleOff":"SentenWord 이중 언어 자막 (꺼짐)","youtube.btnPanelOn":"SentenWord 자막 패널 (열림)","youtube.btnPanelOff":"SentenWord 자막 패널 (닫힘)","youtube.btnSettings":"SentenWord 자막 설정","youtube.menuBilingualSubtitle":"이중 언어 자막","youtube.menuSidebar":"자막 사이드바","youtube.menuSettings":"설정","contextMenu.smartTranslate":"SentenWord | 스마트 번역","contextMenu.translatePage":"SentenWord | 페이지 번역","contextMenu.restoreOriginal":"SentenWord | 원문 복원","quickSearch.title":"빠른 검색","quickSearch.dictionary":"사전","quickSearch.ai":"AI","quickSearch.dictPlaceholder":"단어 검색...","quickSearch.aiPlaceholder":"단어나 문장을 입력하여 AI 설명을 받으세요...","quickSearch.submit":"검색","quickSearch.hint":"Ctrl+Shift+F 열기 · Enter 검색 · Tab 모드 전환 · Escape 닫기","subtitle.loading":"자막 로딩 중...","subtitle.ready":"자막 준비 완료, 음성 시작을 기다리는 중","subtitle.notDetected":"표시할 수 있는 자막이 감지되지 않았습니다. 재생을 계속하거나 다른 동영상을 시도해주세요","floating.translate":"번역","word.viewInDict":"{{name}}에서 보기","word.unfavorite":"즐겨찾기에서 제거","speech.playOriginal":"원문 재생","speech.playTranslation":"번역 재생","word.favorite":"즐겨찾기에 추가","ai.favoritePhrase":"구문을 즐겨찾기에 추가","ai.collapse":"접기","ai.viewAll":"모두 보기 ({{count}})","ai.noResult":"번역 결과 없음","ai.loading":"로딩 중...","common.expand":"모두 보기","common.collapseText":"접기","common.translating":"번역 중...","options.changelog.title":"업데이트 기록","update.action":"새 버전 사용 가능"},Cm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Gérez votre expérience de traduction, l'affichage du dictionnaire et les paramètres d'IA personnalisés. Configurez vos préférences visuelles, d'interaction et de performance ici.","options.language.title":"Paramètres de langue","options.language.description":"Configurez votre langue maternelle et la langue cible que vous apprenez.","options.language.native":"Langue maternelle","options.language.nativeDesc":"La langue de l'interface changera automatiquement selon ce paramètre.","options.language.learning":"Langue cible d'apprentissage","options.language.learningDesc":"La langue que vous apprenez, utilisée pour la traduction et le dictionnaire.","options.account.title":"Compte et connexion","options.account.description":"Gérez l'état de connexion et le comportement de l'extension.","options.account.label":"Compte","options.account.loading":"Chargement de l'état de connexion","options.account.loggedIn":"Connecté : ","options.account.notLoggedIn":"Non connecté. Accédez à la page d'autorisation pour vous connecter.","options.account.logout":"Déconnexion","options.account.login":"Connexion","options.account.loggedOut":"Déconnecté","options.account.profile":"Profil","options.account.avatar":"Avatar","options.account.name":"Pseudo","options.account.namePlaceholder":"Entrez un pseudo","options.account.save":"Enregistrer","options.account.saving":"Enregistrement...","options.account.profileUpdated":"Profil mis à jour","options.account.profileUpdateFailed":"Échec de la mise à jour, veuillez réessayer","options.account.editProfile":"Modifier le profil","options.account.cancel":"Annuler","options.usage.title":"Utilisation","options.usage.description":"Utilisation des AI Tokens","options.usage.monthly":"Quota de la période actuelle","options.usage.used":"Utilisé","options.usage.limit":"Limite","options.usage.resetAt":"Réinitialisation","options.usage.tokens":"tokens","options.usage.loadFailed":"Échec du chargement de l'utilisation","options.usage.loginRequired":"Connectez-vous pour voir l'utilisation","options.usage.upgradeToPro":"Passer à Pro","options.usage.upgradeToMax":"Passer à Max","options.usage.dailyBreakdown":"Détail quotidien","options.usage.dailyTitle":"Utilisation quotidienne de la période","options.usage.dailySubtitle":"La hauteur des barres reflète la consommation relative du jour · Survolez pour voir la part du total de la période","options.usage.monthTotal":"Total de la période","options.usage.dailyEmpty":"Impossible de charger le détail","options.usage.dailyNote":"Remarque : les tokens représentent l'unité de consommation du système, pas le nombre de tokens d'un modèle spécifique.","options.usage.dailyLoadFailed":"Échec du chargement du détail","paywall.title":"Passez à SentenWord Pro","paywall.subtitle":"Profitez d’un quota IA mensuel stable et de fonctions de traduction premium.","paywall.max.title":"Passez à SentenWord Max","paywall.max.subtitle":"Un quota mensuel supérieur pour les traductions, sous-titres IA et explications fréquentes.","paywall.oneTimeNotice":"Achat unique pour 1 mois, sans renouvellement automatique.","paywall.feature.quota":"300 000 tokens IA par mois","paywall.feature.maxQuota":"Quota de tokens IA : 300 000 → 2 000 000 par mois","paywall.feature.subtitles":"Sous-titres bilingues IA YouTube","paywall.feature.priority":"Accès prioritaire et support dédié","paywall.plan.monthly":"1 mois","paywall.plan.quarterly":"Trimestriel","paywall.plan.halfYear":"6 mois","paywall.plan.yearly":"Annuel","paywall.priceSuffix.month":"/mois","paywall.price.loading":"Chargement du prix…","paywall.priceTotal":"Total {{total}}","paywall.savings":"−{{percent}}%","paywall.recommended":"Meilleure offre","paywall.continueButton":"Passer au paiement","paywall.continueLoading":"Redirection...","paywall.close":"Fermer","paywall.error.loginRequired":"Vous devez vous connecter avant de passer à Pro.","paywall.error.goLogin":"Se connecter","paywall.error.network":"Impossible de créer la session de paiement. Veuillez réessayer.","paywall.error.priceUnavailable":"Prix indisponible. Veuillez réessayer.","paywall.confirm.title":"En attente du paiement","paywall.confirm.message":"La page de paiement s'est ouverte dans un nouvel onglet. Finalisez le paiement sur Stripe, puis revenez ici et cliquez ci-dessous.","paywall.confirm.completed":"J'ai effectué le paiement","paywall.confirm.cancel":"Annuler","paywall.confirm.checking":"Vérification…","paywall.confirm.retry":"Réessayer","paywall.confirm.notYet":"Statut Pro non encore détecté. Si vous venez de payer, patientez un instant et réessayez.","paywall.confirm.notYetMax":"Accès Max non encore détecté. Si vous venez de payer, patientez un instant et réessayez.","options.highlight.title":"Apparence","options.highlight.description":"Gérer les styles et couleurs de surlignage.","options.highlight.panelTitle":"Style de surbrillance","options.highlight.panelDescription":"Apparence des mots sauvegardés sur les pages web et système de couleurs.","options.card.themeTitle":"Thème de carte","options.card.themeDescription":"Changer le style visuel de la carte dictionnaire.","options.card.theme.warm":"Chaleureux","options.card.theme.classic":"Classique","options.card.theme.fresh":"Frais","options.highlight.enable":"Activer la surbrillance","options.highlight.enableDesc":"Désactivé, les mots sauvegardés ne seront plus mis en surbrillance.","options.highlight.inlineAnnotation":"Afficher les définitions en ligne","options.highlight.inlineAnnotationDesc":"Affiche la nature et la définition à côté des mots surlignés, ex : Reload(v.recharger).","options.highlight.trigger":"Déclencheur du panneau","options.highlight.triggerDesc":"Choisissez si les mots surlignés ouvrent le panneau au clic, au survol ou pas du tout.","options.highlight.trigger.none":"Aucune action","options.highlight.styleSelect":"Sélection du style","options.highlight.colorSelect":"Sélection de couleur","options.highlight.opacity":"Opacité du surlignage","options.highlight.opacityDesc":"Ajustez la transparence de la couleur de surlignage sur les pages.","options.highlight.style.none":"Aucun","options.highlight.style.background":"Arrière-plan","options.highlight.style.text":"Couleur du texte","options.highlight.style.underline":"Souligné","options.highlight.style.doubleUnderline":"Double souligné","options.highlight.style.wavy":"Ondulé","options.highlight.style.dotted":"Pointillé","options.highlight.style.dashed":"Tirets","options.tagHighlight.panelTitle":"Surbrillance par étiquette","options.tagHighlight.panelDescription":"Mettre en surbrillance les mots sur les pages web selon les étiquettes et plages de fréquence.","options.tagHighlight.enable":"Activer la surbrillance par étiquette","options.tagHighlight.enableDesc":"Met automatiquement en surbrillance les mots correspondant aux règles configurées.","options.tagHighlight.addRule":"Ajouter une règle","options.tagHighlight.tag":"Étiquette","options.tagHighlight.frqRange":"Plage de fréquence","options.tagHighlight.frqMin":"Min","options.tagHighlight.frqMax":"Max","options.tagHighlight.noRules":"Aucune règle. Cliquez sur le bouton ci-dessus pour en ajouter.","options.tagHighlight.deleteRule":"Supprimer","options.tagHighlight.style":"Style","options.tagHighlight.color":"Couleur","options.tagHighlight.enabled":"Activé","options.translation.title":"Traduction","options.translation.description":"Gérez la traduction bilingue des pages et la traduction de sélection.","options.autoTranslate.title":"Traduction automatique des pages","options.autoTranslate.description":"Lancez automatiquement la traduction bilingue sur les sites configurés.","options.autoTranslate.enable":"Activer la traduction automatique","options.autoTranslate.enableDesc":"Se lance uniquement si un domaine ci-dessous correspond ; actualisez les pages déjà ouvertes.","options.autoTranslate.domains":"Domaines des sites","options.autoTranslate.domainsDesc":"Un domaine principal inclut ses sous-domaines ; reddit.com correspond à www.reddit.com.","options.autoTranslate.placeholder":"Saisissez un domaine ou une URL, ex. medium.com","options.autoTranslate.add":"Ajouter","options.autoTranslate.remove":"Supprimer","options.autoTranslate.invalidDomain":"Saisissez un domaine ou une URL HTTP(S) valide.","options.autoTranslate.duplicateDomain":"Ce domaine figure déjà dans la liste.","options.autoTranslate.empty":"Aucun domaine. La traduction automatique ne démarrera sur aucun site.","options.dictionary.title":"Contenu du dictionnaire","options.dictionary.description":"Contrôlez les niveaux de définition et les exemples affichés sur les cartes de mots.","options.dictionary.showExamples":"Afficher les exemples","options.dictionary.showExamplesDesc":"Afficher des phrases d'exemple dans les définitions.","options.dictionary.tabs.title":"Paramètres de recherche","options.dictionary.tabs.description":"Configurez l'ordre d'affichage et l'état d'activation des onglets de recherche. Effectif uniquement lorsque la langue maternelle est le chinois et la langue d'apprentissage est l'anglais.","options.dictionary.tabs.ai":"Recherche IA","options.dictionary.tabs.simple":"Dict. rapide","options.dictionary.tabs.dictionary":"Dict. professionnel","options.dictionary.tabs.moveUp":"Monter","options.dictionary.tabs.moveDown":"Descendre","options.floating.title":"Traduction de sélection","options.floating.description":"Définissez l'apparence, la taille, la couleur, l'opacité et le style du bouton flottant.","options.floating.enable":"Activer le bouton flottant","options.floating.enableDesc":"Afficher l'entrée de traduction après sélection de texte.","options.floating.trigger":"Mode de déclenchement","options.floating.triggerDesc":"Clic ou survol pour déclencher la traduction.","options.floating.trigger.click":"Clic","options.floating.trigger.hover":"Survol","options.floating.size":"Taille du bouton","options.floating.sizeDesc":"Ajustez la taille selon vos préférences.","options.floating.size.xsmall":"Très petit","options.floating.size.small":"Petit","options.floating.size.medium":"Moyen","options.floating.size.large":"Grand","options.floating.style":"Style du bouton","options.floating.styleDesc":"Icône, point ou texte.","options.floating.style.icon":"Icône","options.floating.style.dot":"Point","options.floating.color":"Couleur du bouton","options.floating.colorDesc":"Choisissez un préréglage ou une couleur personnalisée.","options.floating.opacity":"Opacité du bouton","options.floating.opacityDesc":"Ajustez la transparence du bouton flottant sur les pages.","options.hotkeys.title":"Raccourcis clavier","options.hotkeys.description":"Sauvegarde automatique lors de la perte de focus ou avec Entrée.","options.companion.title":"Application iOS","options.companion.description":"Votre collection dans la poche — révisez vos mots et phrases enregistrés où que vous soyez.","options.companion.platform":"pour iPhone · iPad","options.companion.pitch":"Retrouvez chaque mot et chaque phrase que vous avez sauvegardés, directement sur votre iPhone.","options.companion.feat1":"Retrouvez à tout moment vos mots et phrases enregistrés","options.companion.feat2":"Consolidez votre mémoire avec la répétition espacée","options.companion.feat3":"Découvrez des recueils de vocabulaire pour un apprentissage structuré","options.companion.cta":"Télécharger sur l'App Store","options.favorites.title":"Voir les mots enregistrés","options.companion.syncTitle":"Synchronisation entre appareils","options.companion.syncDesc":"Connectez-vous sur le Web et dans l’app iOS avec le même compte Apple pour synchroniser vos données enregistrées.","options.contact.title":"Site et contact","options.contact.description":"Visitez le site de SentenWord ou contactez-moi par e-mail et WeChat.","options.contact.website":"Site officiel","options.contact.websiteDesc":"Découvrez le produit, votre compte et les dernières nouveautés.","options.contact.email":"E-mail","options.contact.emailDesc":"Pour vos idées, signalements de problèmes et collaborations.","options.contact.signoff":"Chaque message contribue à améliorer SentenWord.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Scannez le QR code dans WeChat pour m’ajouter à vos contacts.","options.speech.title":"Synthèse vocale","options.speech.description":"Configurez la voix utilisée pour lire le texte original et la traduction.","options.speech.enable":"Activer la lecture","options.speech.enableDesc":"Afficher les boutons de lecture sur la carte de traduction.","options.speech.rate":"Vitesse","options.speech.rateDesc":"0,5× à 2,0×, par défaut 1,0×.","options.speech.pitch":"Hauteur","options.speech.pitchDesc":"0,5 à 1,5, par défaut 1,0.","options.speech.voices":"Voix","options.speech.provider":"Moteur","options.speech.providerDesc":"Edge utilise les voix neuronales Microsoft (en ligne, meilleure qualité). Système utilise les voix du navigateur (hors ligne).","options.speech.providerEdge":"Edge (haute qualité)","options.speech.providerWeb":"Système","options.speech.edgeVoicesDesc":"Choisissez une voix neuronale Microsoft. Repli automatique vers la voix système en cas d'échec.","options.speech.voicesDesc":"Choisissez une voix par langue. Les voix cloud (☁) sonnent généralement mieux.","options.speech.auto":"Auto (meilleure)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Tester","options.speech.noVoices":"Aucune voix détectée dans ce navigateur. Vérifiez les paramètres vocaux du système.","options.hotkeys.quickSearch":"Recherche rapide","options.hotkeys.quickSearchDesc":"Ouvrir la fenêtre de recherche rapide.","options.hotkeys.paragraph":"Traduction de paragraphe","options.hotkeys.paragraphDesc":"Traduire le paragraphe sous le curseur.","options.ai.title":"Traduction IA","options.ai.description":"Choisissez votre service de traduction IA : service intégré ou configurez votre propre clé API.","options.ai.usingCustom":"API personnalisée","options.ai.usingBackend":"IA intégrée","options.ai.providerLabel":"Fournisseur : {{provider}}","options.ai.enable":"Service IA","options.ai.enableDesc":"Activé, utilise votre fournisseur et modèle configurés.","options.ai.enableDescBackend":"Utiliser le service de traduction IA intégré fourni par SentenWord.","options.ai.enableDescCustom":"Utiliser votre propre clé API et modèle. Les clés sont stockées localement uniquement.","options.ai.provider":"Fournisseur","options.ai.providerDesc":"Choisissez un fournisseur.","options.ai.configWarningTitle":"IA non configurée","options.ai.missingKeyWarning":"Aucune clé API {{provider}} : la traduction IA, la recherche de mots et la traduction des sous-titres échoueront.","options.ai.incompleteCustomWarning":"Il manque encore à votre API personnalisée : {{fields}}. Les fonctions IA resteront indisponibles.","options.ai.fieldBaseUrl":"URL de base","options.ai.fieldApiKey":"clé API","options.ai.fieldModel":"nom du modèle","options.ai.freeProviderNote":"Point d'accès public gratuit — aucune clé API requise. Les explications de mots utilisent le backend intégré.","options.ai.kind":"Type de service","options.ai.kindDesc":"Les modèles IA fournissent définitions et analyse grammaticale. La traduction gratuite ne nécessite aucune clé API mais ne traduit que des phrases entières ; les fonctions de définition basculent vers le service intégré.","options.ai.kindModel":"Modèle IA","options.ai.kindPlain":"Traduction gratuite","options.engine.title":"Moteurs de traduction actuels","options.engine.description":"Un même réglage se comporte différemment selon la fonction. Voici les services réellement appelés.","options.engine.page":"Traduction de page","options.engine.selection":"Traduction de sélection","options.engine.subtitle":"Sous-titres YouTube","options.engine.backend":"Service intégré","options.engine.fallbackPlain":"{{provider}} ne peut pas produire de définitions ; cette fonction bascule vers le service intégré.","options.engine.fallbackUnconfigured":"Aucune clé API configurée ; cette fonction bascule vers le service intégré.","options.engine.unconfigured":"Aucune clé API configurée — cette fonction échouera.","options.engine.goToAi":"Aller aux réglages IA","options.subtitle.title":"Sous-titres YouTube","options.subtitle.description":"Affichage des sous-titres bilingues et comportement de lecture.","options.subtitle.secondaryMode":"Sous-titre secondaire","options.subtitle.secondaryModeDesc":"Contrôle l'affichage de la traduction. Floutez-la pour vous tester, puis cliquez pour la révéler.","options.subtitle.modeNormal":"Normal","options.subtitle.modeBlur":"Flou","options.subtitle.modeHide":"Masqué","options.subtitle.autoPause":"Pause auto sur sous-titre","options.subtitle.autoPauseDesc":"Met la vidéo en pause à la fin de chaque sous-titre, pratique pour le shadowing.","options.ai.apiKey":"Clé API","options.ai.apiKeyDesc":"Sauvegarde auto à la perte de focus.","options.ai.model":"Modèle","options.ai.openaiModelDesc":"Modèle par défaut : gpt-4o-mini.","options.ai.openrouterModelDesc":"Exemple : openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Modèle par défaut : deepseek-chat.","options.ai.customBaseUrl":"URL de base API","options.ai.customBaseUrlDesc":"URL d'API compatible OpenAI (Qwen, Zhipu, Moonshot, etc.).","options.ai.customModelDesc":"Nom du modèle (qwen-turbo, glm-4, etc.).","options.ai.translatePrompt":"Prompt de traduction","options.ai.translatePromptDesc":"Prompt personnalisé envoyé à l'IA pour la traduction. L'IA détermine automatiquement s'il s'agit d'un mot ou d'un passage.","options.ai.promptReset":"Réinitialiser par défaut","options.ai.promptVariablesHint":"Variables disponibles : {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Surbrillance actuelle","options.metrics.customAI":"IA personnalisée","options.metrics.enabled":"Activé","options.metrics.disabled":"Désactivé","options.metrics.account":"État du compte","options.metrics.loading":"Chargement","options.metrics.loggedIn":"Connecté","options.metrics.notLoggedIn":"Non connecté","options.metrics.syncHint":"Connectez-vous pour synchroniser les fonctionnalités cloud","options.metrics.syncingHint":"Synchronisation des informations du compte","common.saving":"Enregistrement","common.saveFailed":"Échec de l'enregistrement, veuillez réessayer","common.loading":"Chargement des paramètres...","common.definitionGenerating":"La définition est en cours de génération. Veuillez réessayer dans un instant.","common.unknownError":"Erreur inconnue","common.pageTranslateLoginRequired":"Veuillez vous connecter pour utiliser la traduction de page.","common.trialQuotaExceededLogin":"Les essais gratuits sont épuisés. Veuillez vous connecter pour continuer.","common.translationQuotaExceededUpgrade":"Le quota de traduction est épuisé. Veuillez passer à une offre supérieure ou réessayer plus tard.","common.rateLimitNotLoggedIn":"Trop de requêtes. Veuillez vous connecter pour obtenir plus de quota de traduction.","common.freeQuotaExceeded":"Limite d'utilisation mensuelle atteinte, réinitialisation le {{resetTime}}. Passez à Pro pour des limites plus élevées","common.proQuotaExceeded":"Limite d'utilisation mensuelle atteinte, réinitialisation le {{resetTime}}","common.quotaExceeded.title":"Quota mensuel épuisé","common.quotaExceeded.reset":"Réinitialisation le {{resetTime}}","common.toast.loginRequiredTitle":"Connexion requise","common.toast.quotaInsufficientTitle":"Quota insuffisant","common.toast.translationErrorTitle":"Erreur de traduction","common.toast.loginAction":"Se connecter","common.toast.laterAction":"Plus tard","common.toast.upgradeAction":"Mettre à niveau","common.toast.closeAction":"Fermer","common.toast.aiConfigTitle":"IA non configurée","common.toast.openSettingsAction":"Ouvrir les réglages","common.aiConfigNotEnabled":"Activez et configurez d'abord l'IA personnalisée dans les réglages.","common.aiConfigMissingKey":"L'IA personnalisée ({{provider}}) est activée, mais aucune clé API n'est renseignée. Ajoutez votre clé dans les réglages ou revenez au service IA intégré.","common.aiConfigIncompleteCustom":"Votre API personnalisée est incomplète. Renseignez l'URL de base, la clé API et le nom du modèle dans les réglages.","common.aiConfigUnsupportedProvider":"{{provider}} ne prend en charge que la traduction simple. Choisissez un fournisseur LLM dans les réglages pour les fonctions IA.","common.sessionExpiredTitle":"Session expirée","common.sessionExpiredDesc":"Veuillez vous reconnecter pour continuer à utiliser toutes les fonctionnalités.","common.sessionReloginAction":"Se reconnecter","common.preview":"Aperçu","common.unexpectedError":"Une erreur inattendue s'est produite","footer.copyright":"SentenWord | Traduction intelligente","color.amber":"Ambre","color.green":"Vert","color.blue":"Bleu","color.indigo":"Indigo","color.coral":"Corail","color.orange":"Orange","color.cyan":"Cyan","color.brown":"Marron","color.red":"Rouge","color.gold":"Or","color.magenta":"Magenta","color.darkGray":"Gris foncé","color.custom":"Personnalisé","color.customHighlight":"Couleur de surbrillance personnalisée","color.customButton":"Couleur de bouton personnalisée","welcome.subtitle":"Bienvenue sur SentenWord, configurons les paramètres de base","welcome.nativeLanguage":"Votre langue maternelle","welcome.nativeLanguageDesc":"La langue de l'interface changera automatiquement selon ce paramètre.","welcome.learningLanguage":"Langue que vous souhaitez apprendre","welcome.learningLanguageDesc":"Sélectionnez la langue cible que vous apprenez.","welcome.getStarted":"Commencer","welcome.account":"Compte","welcome.accountDesc":"Connectez-vous pour synchroniser votre vocabulaire et vos progrès.","welcome.login":"Connexion / Inscription","welcome.maybeLater":"Plus tard","welcome.loggedInAs":"Connecté","welcome.next":"Suivant","welcome.back":"Retour","popup.title":"SentenWord | Traduction Intelligente","popup.settings":"Paramètres","popup.quickSearch":"Recherche rapide","popup.stopTranslate":"Arrêter la traduction","popup.translatePage":"Traduire la page","popup.translationEnabled":"Traduction activée","popup.visitWebsite":"Visiter le site","popup.wordBook":"Carnet de mots","popup.login":"Connexion","popup.loginDesc":"Connectez-vous pour synchroniser","popup.screenshot":"OCR de capture d'écran","screenshot.hint":"Glissez pour sélectionner une zone · Esc pour annuler","screenshot.processing":"Reconnaissance…","screenshot.empty":"Aucun texte détecté","screenshot.failed":"Échec de la reconnaissance","screenshot.loginRequired":"Connectez-vous pour utiliser l'OCR","screenshot.quotaExceeded":"Quota mensuel atteint. Réessayez plus tard ou passez à un forfait supérieur.","screenshot.translation":"Traduction","screenshot.close":"Fermer","screenshot.copy":"Copier","screenshot.copied":"Copié","card.title":"SentenWord | Traduction Intelligente","card.wordBook":"Carnet de mots","card.tabSimpleDictionary":"Dict. rapide","card.tabDictionary":"Dictionnaire","card.tabAI":"Explication IA","card.detailedExplanation":"Explication détaillée","card.detailedExplanationLoading":"Génération de l'explication...","card.detailedExplanationRetry":"Réessayer","card.originalText":"Texte original","card.translationText":"Traduction","card.closeDetailedExplanation":"Fermer l'explication détaillée","card.closeCard":"Fermer la carte","card.settings":"Paramètres","collection.title":"Collecter","collection.closeModal":"Fermer la fenêtre de collection","collection.folder":"Collection","collection.loading":"Chargement...","collection.defaultFolder":"Collection par défaut","collection.loadingHint":"Chargement…","collection.word":"Mot *","collection.wordPlaceholder":"Saisir un mot","collection.partOfSpeech":"Nature","collection.partOfSpeechPlaceholder":"Nature grammaticale","collection.phonetic":"Phonétique","collection.phoneticPlaceholder":"ex. /mɪˈlɛniə/","collection.meaning":"Définition","collection.meaningPlaceholder":"Définition du mot","collection.context":"Contexte *","collection.contextPlaceholder":"Saisir la phrase complète","collection.contextTranslation":"Traduction du contexte","collection.contextTranslationPlaceholder":"Traduction de la phrase de contexte","collection.examples":"Exemples supplémentaires","collection.examplesHint":"(facultatif, un par ligne)","collection.examplesPlaceholder":"Saisir des exemples supplémentaires, un par ligne","collection.saving":"Enregistrement...","collection.save":"Enregistrer","collection.saveSuccess":"Enregistré avec succès","collection.saveToFolder":"Enregistrer dans","collection.saveSuccessTo":"Enregistré dans « {{name}} »","collection.moveFailed":"Échec du déplacement vers la collection","collection.saveFailed":"Échec de l'enregistrement","collection.notLoggedIn":"Non connecté, impossible d'enregistrer","collection.notLoggedInLoad":"Non connecté, impossible de charger les collections","collection.loadFailed":"Échec du chargement des collections","collection.wordRequired":"Veuillez saisir un mot/phrase","collection.contextTooLong":"Le contexte ne peut pas dépasser {{max}} caractères","youtube.machineTranslate":"Traduction automatique","youtube.aiTranslate":"Traduction IA","youtube.subtitlePanel":"Panneau de sous-titres","youtube.closePanel":"Fermer le panneau de sous-titres","youtube.panelAriaLabel":"Onglets du panneau de sous-titres","youtube.tabSubtitles":"Sous-titres","youtube.tabSettings":"Paramètres","youtube.downloadSrt":"Télécharger SRT bilingue","youtube.noSubtitles":"Aucun sous-titre","youtube.showBilingualSubtitle":"Afficher les sous-titres bilingues","youtube.showBilingualSubtitleDesc":"Activer/désactiver la superposition de sous-titres bilingues","youtube.enableSubtitleList":"Activer la liste des sous-titres","youtube.enableSubtitleListDesc":"Lorsque désactivé, le panneau de sous-titres sera masqué","youtube.autoScroll":"Défilement automatique","youtube.autoScrollDesc":"Défiler automatiquement vers la phrase en cours pendant la lecture","youtube.noDownloadableSubtitle":"Aucun sous-titre téléchargeable","youtube.loadSecondaryFirst":"Veuillez charger les sous-titres secondaires avant de télécharger le SRT bilingue","youtube.exportEmpty":"Échec de l'export : contenu vide","youtube.downloadStarted":"Téléchargement du SRT bilingue commencé","youtube.downloadFailed":"Échec du téléchargement du SRT bilingue","youtube.subtitleTranslateFallbackFailed":"Échec de la traduction des sous-titres, veuillez réessayer plus tard","youtube.primaryLoadFailed":"Échec du chargement des sous-titres principaux","youtube.machineTranslateUnavailable":"Traduction automatique indisponible, basculé vers la traduction IA","youtube.machineTranslateFailed":"Échec de la traduction automatique, basculé vers la traduction IA","youtube.secondaryLoadFailed":"Échec du chargement des sous-titres secondaires","youtube.aiTranslateEnabled":"Traduction IA à la demande activée","youtube.fetchingMachineTranslate":"Récupération des sous-titres traduits automatiquement...","youtube.subtitleContentEmpty":"Une piste de sous-titres a été trouvée, mais aucun sous-titre affichable n'est disponible","youtube.noAvailableSubtitles":"Aucun sous-titre disponible pour cette vidéo","youtube.trackLoadFailed":"Échec du chargement des pistes de sous-titres","youtube.btnSubtitleOn":"SentenWord Sous-titres bilingues (Activé)","youtube.btnSubtitleOff":"SentenWord Sous-titres bilingues (Désactivé)","youtube.btnPanelOn":"SentenWord Panneau de sous-titres (Ouvert)","youtube.btnPanelOff":"SentenWord Panneau de sous-titres (Fermé)","youtube.btnSettings":"SentenWord Paramètres de sous-titres","youtube.menuBilingualSubtitle":"Sous-titres bilingues","youtube.menuSidebar":"Barre latérale des sous-titres","youtube.menuSettings":"Paramètres","contextMenu.smartTranslate":"SentenWord | Traduction Intelligente","contextMenu.translatePage":"SentenWord | Traduire la page","contextMenu.restoreOriginal":"SentenWord | Restaurer l'original","quickSearch.title":"Recherche rapide","quickSearch.dictionary":"Dictionnaire","quickSearch.ai":"IA","quickSearch.dictPlaceholder":"Rechercher un mot...","quickSearch.aiPlaceholder":"Saisir un mot ou une phrase pour une explication IA...","quickSearch.submit":"Rechercher","quickSearch.hint":"Ctrl+Shift+F pour ouvrir · Entrée pour rechercher · Tab pour changer de mode · Échap pour fermer","subtitle.loading":"Chargement des sous-titres...","subtitle.ready":"Sous-titres prêts, en attente du début de la parole","subtitle.notDetected":"Aucun sous-titre affichable détecté, continuez la lecture ou essayez une autre vidéo","floating.translate":"Traduire","word.viewInDict":"Voir dans {{name}}","word.unfavorite":"Retirer des favoris","speech.playOriginal":"Lire le texte original","speech.playTranslation":"Lire la traduction","word.favorite":"Ajouter aux favoris","ai.favoritePhrase":"Ajouter la phrase aux favoris","ai.collapse":"Réduire","ai.viewAll":"Voir tout ({{count}})","ai.noResult":"Aucun résultat de traduction","ai.loading":"Chargement...","common.expand":"Voir tout","common.collapseText":"Réduire","common.translating":"Traduction en cours...","options.changelog.title":"Journal des modifications","update.action":"Nouvelle version disponible"},qm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Verwalten Sie Ihre Übersetzungserfahrung, Wörterbuchanzeige und benutzerdefinierte KI-Einstellungen. Konfigurieren Sie hier visuelle, Interaktions- und Leistungseinstellungen.","options.language.title":"Spracheinstellungen","options.language.description":"Konfigurieren Sie Ihre Muttersprache und die Zielsprache, die Sie lernen.","options.language.native":"Muttersprache","options.language.nativeDesc":"Die Oberflächensprache wird automatisch basierend auf dieser Einstellung umgeschaltet.","options.language.learning":"Lern-Zielsprache","options.language.learningDesc":"Die Sprache, die Sie lernen, wird für Übersetzungs- und Wörterbuchfunktionen verwendet.","options.account.title":"Konto und Verbindung","options.account.description":"Verwalten Sie den Anmeldestatus und das Verbindungsverhalten der Erweiterung.","options.account.label":"Konto","options.account.loading":"Anmeldestatus wird geladen","options.account.loggedIn":"Angemeldet: ","options.account.notLoggedIn":"Nicht angemeldet. Gehen Sie zur Autorisierungsseite, um sich anzumelden.","options.account.logout":"Abmelden","options.account.login":"Anmelden","options.account.loggedOut":"Abgemeldet","options.account.profile":"Profil","options.account.avatar":"Avatar","options.account.name":"Anzeigename","options.account.namePlaceholder":"Anzeigename eingeben","options.account.save":"Speichern","options.account.saving":"Speichern...","options.account.profileUpdated":"Profil aktualisiert","options.account.profileUpdateFailed":"Aktualisierung fehlgeschlagen, bitte erneut versuchen","options.account.editProfile":"Profil bearbeiten","options.account.cancel":"Abbrechen","options.usage.title":"Nutzung","options.usage.description":"AI-Token-Nutzung","options.usage.monthly":"Kontingent des aktuellen Zeitraums","options.usage.used":"Verwendet","options.usage.limit":"Limit","options.usage.resetAt":"Zurücksetzen","options.usage.tokens":"Tokens","options.usage.loadFailed":"Nutzung konnte nicht geladen werden","options.usage.loginRequired":"Melden Sie sich an, um die Nutzung anzuzeigen","options.usage.upgradeToPro":"Auf Pro upgraden","options.usage.upgradeToMax":"Auf Max upgraden","options.usage.dailyBreakdown":"Tagesübersicht","options.usage.dailyTitle":"Tägliche Nutzung im aktuellen Zeitraum","options.usage.dailySubtitle":"Balkenhöhe zeigt den relativen täglichen Verbrauch · Bewegen Sie den Mauszeiger, um den Anteil am Zeitraumtotal zu sehen","options.usage.monthTotal":"Zeitraumssumme","options.usage.dailyEmpty":"Detaildaten können nicht geladen werden","options.usage.dailyNote":"Hinweis: Tokens stehen hier für die Verbrauchseinheit dieses Systems, nicht für die Tokenanzahl eines bestimmten Modells.","options.usage.dailyLoadFailed":"Detail konnte nicht geladen werden","paywall.title":"Upgrade auf SentenWord Pro","paywall.subtitle":"Ein verlässliches monatliches KI-Kontingent plus Premium-Übersetzungsfunktionen.","paywall.max.title":"Upgrade auf SentenWord Max","paywall.max.subtitle":"Ein größeres Monatskontingent für häufige Übersetzungen, KI-Untertitel und Erklärungen.","paywall.oneTimeNotice":"Einmaliger Kauf für 1 Monat, ohne automatische Verlängerung.","paywall.feature.quota":"300.000 KI-Tokens pro Monat","paywall.feature.maxQuota":"KI-Token-Kontingent: 300.000 → 2.000.000 pro Monat","paywall.feature.subtitles":"Zweisprachige KI-Untertitel auf YouTube","paywall.feature.priority":"Vorrangiger Zugang und dedizierter Support","paywall.plan.monthly":"1 Monat","paywall.plan.quarterly":"Quartalsweise","paywall.plan.halfYear":"6 Monate","paywall.plan.yearly":"Jährlich","paywall.priceSuffix.month":"/Mon.","paywall.price.loading":"Preis wird geladen…","paywall.priceTotal":"{{total}} gesamt","paywall.savings":"{{percent}}% sparen","paywall.recommended":"Bestes Angebot","paywall.continueButton":"Zur Kasse","paywall.continueLoading":"Weiterleitung...","paywall.close":"Schließen","paywall.error.loginRequired":"Sie müssen sich anmelden, bevor Sie upgraden können.","paywall.error.goLogin":"Anmelden","paywall.error.network":"Zahlungssitzung konnte nicht erstellt werden. Bitte erneut versuchen.","paywall.error.priceUnavailable":"Preis nicht verfügbar. Bitte erneut versuchen.","paywall.confirm.title":"Warte auf Zahlung","paywall.confirm.message":"Die Zahlungsseite wurde in einem neuen Tab geöffnet. Schließe die Zahlung bei Stripe ab und klicke dann hier unten.","paywall.confirm.completed":"Zahlung abgeschlossen","paywall.confirm.cancel":"Abbrechen","paywall.confirm.checking":"Überprüfung…","paywall.confirm.retry":"Erneut versuchen","paywall.confirm.notYet":"Pro-Status noch nicht erkannt. Wenn du gerade bezahlt hast, warte kurz und versuche es erneut.","paywall.confirm.notYetMax":"Max-Zugang noch nicht erkannt. Wenn du gerade bezahlt hast, warte kurz und versuche es erneut.","options.highlight.title":"Erscheinungsbild","options.highlight.description":"Hervorhebungsstile und Farbeinstellungen verwalten.","options.highlight.panelTitle":"Hervorhebungsstil","options.highlight.panelDescription":"Wie gespeicherte Wörter auf Webseiten erscheinen und das Farbsystem.","options.card.themeTitle":"Kartenthema","options.card.themeDescription":"Visuellen Stil der Wörterbuchkarte wechseln.","options.card.theme.warm":"Warm","options.card.theme.classic":"Klassisch","options.card.theme.fresh":"Frisch","options.highlight.enable":"Hervorhebung aktivieren","options.highlight.enableDesc":"Bei Deaktivierung werden gespeicherte Wörter nicht mehr hervorgehoben.","options.highlight.inlineAnnotation":"Inline-Definitionen anzeigen","options.highlight.inlineAnnotationDesc":"Zeigt Wortart und Definition neben hervorgehobenen Wörtern an, z.B. Reload(v.neu laden).","options.highlight.trigger":"Definitionsfenster-Auslöser","options.highlight.triggerDesc":"Wählen Sie, ob hervorgehobene Wörter das Fenster per Klick, Hover oder gar nicht öffnen.","options.highlight.trigger.none":"Keine Aktion","options.highlight.styleSelect":"Stilauswahl","options.highlight.colorSelect":"Farbauswahl","options.highlight.opacity":"Hervorhebungsdeckkraft","options.highlight.opacityDesc":"Passen Sie die Transparenz der Hervorhebungsfarbe auf Seiten an.","options.highlight.style.none":"Keine","options.highlight.style.background":"Hintergrund","options.highlight.style.text":"Textfarbe","options.highlight.style.underline":"Unterstrichen","options.highlight.style.doubleUnderline":"Doppelt unterstrichen","options.highlight.style.wavy":"Wellig","options.highlight.style.dotted":"Gepunktet","options.highlight.style.dashed":"Gestrichelt","options.tagHighlight.panelTitle":"Vokabel-Tag-Hervorhebung","options.tagHighlight.panelDescription":"Wörter auf Webseiten anhand von Wörterbuch-Tags und Häufigkeitsbereichen hervorheben.","options.tagHighlight.enable":"Tag-Hervorhebung aktivieren","options.tagHighlight.enableDesc":"Wörter, die den konfigurierten Regeln entsprechen, automatisch hervorheben.","options.tagHighlight.addRule":"Regel hinzufügen","options.tagHighlight.tag":"Wörterbuch-Tag","options.tagHighlight.frqRange":"Häufigkeitsbereich","options.tagHighlight.frqMin":"Min","options.tagHighlight.frqMax":"Max","options.tagHighlight.noRules":"Keine Regeln. Klicken Sie oben, um eine hinzuzufügen.","options.tagHighlight.deleteRule":"Löschen","options.tagHighlight.style":"Stil","options.tagHighlight.color":"Farbe","options.tagHighlight.enabled":"Aktiviert","options.translation.title":"Übersetzung","options.translation.description":"Zweisprachige Seiten- und Auswahlübersetzung verwalten.","options.autoTranslate.title":"Automatische Seitenübersetzung","options.autoTranslate.description":"Zweisprachige Seitenübersetzung auf konfigurierten Websites automatisch starten.","options.autoTranslate.enable":"Automatische Übersetzung aktivieren","options.autoTranslate.enableDesc":"Startet nur bei einer passenden Domain; bereits geöffnete Seiten bitte neu laden.","options.autoTranslate.domains":"Website-Domains","options.autoTranslate.domainsDesc":"Eine Basisdomain umfasst ihre Subdomains; reddit.com passt zu www.reddit.com.","options.autoTranslate.placeholder":"Domain oder URL eingeben, z. B. medium.com","options.autoTranslate.add":"Hinzufügen","options.autoTranslate.remove":"Entfernen","options.autoTranslate.invalidDomain":"Gib eine gültige Domain oder HTTP(S)-URL ein.","options.autoTranslate.duplicateDomain":"Diese Domain ist bereits in der Liste.","options.autoTranslate.empty":"Keine Domains. Die automatische Übersetzung startet auf keiner Website.","options.dictionary.title":"Wörterbuchinhalt","options.dictionary.description":"Steuern Sie die Definitionsebenen und Beispielinhalte auf Wortkarten.","options.dictionary.showExamples":"Beispiele anzeigen","options.dictionary.showExamplesDesc":"Beispielsätze in Definitionen anzeigen.","options.dictionary.tabs.title":"Wörterbuch-Sucheinstellungen","options.dictionary.tabs.description":"Konfigurieren Sie die Anzeigereihenfolge und den Aktivierungsstatus der Wörterbuch-Such-Tabs. Nur wirksam, wenn die Muttersprache Chinesisch und die Lernsprache Englisch ist.","options.dictionary.tabs.ai":"KI-Suche","options.dictionary.tabs.simple":"Kurzwörterbuch","options.dictionary.tabs.dictionary":"Fachwörterbuch","options.dictionary.tabs.moveUp":"Nach oben","options.dictionary.tabs.moveDown":"Nach unten","options.floating.title":"Auswahlübersetzung","options.floating.description":"Definieren Sie Erscheinungsbild, Größe, Farbe, Deckkraft und Stil des schwebenden Buttons.","options.floating.enable":"Schwebenden Button aktivieren","options.floating.enableDesc":"Übersetzungseintrag nach Textauswahl anzeigen.","options.floating.trigger":"Auslösemodus","options.floating.triggerDesc":"Klick oder Hover zum Auslösen der Übersetzung.","options.floating.trigger.click":"Klick","options.floating.trigger.hover":"Hover","options.floating.size":"Buttongröße","options.floating.sizeDesc":"Passen Sie die Größe nach Ihren Vorlieben an.","options.floating.size.xsmall":"Sehr klein","options.floating.size.small":"Klein","options.floating.size.medium":"Mittel","options.floating.size.large":"Groß","options.floating.style":"Buttonstil","options.floating.styleDesc":"Symbol, Punkt oder Text.","options.floating.style.icon":"Symbol","options.floating.style.dot":"Punkt","options.floating.color":"Buttonfarbe","options.floating.colorDesc":"Voreinstellung oder benutzerdefinierte Farbe wählen.","options.floating.opacity":"Button-Deckkraft","options.floating.opacityDesc":"Passen Sie an, wie transparent der schwebende Button auf Seiten erscheint.","options.hotkeys.title":"Tastaturkürzel","options.hotkeys.description":"Automatisches Speichern bei Fokusverlust oder Enter.","options.companion.title":"iOS-App","options.companion.description":"Deine Sammlung für unterwegs — gespeicherte Wörter und Sätze jederzeit wiederholen.","options.companion.platform":"für iPhone · iPad","options.companion.pitch":"Öffne jedes gespeicherte Wort und jeden Satz direkt auf deinem iPhone.","options.companion.feat1":"Gespeicherte Wörter und Sätze jederzeit nachlesen","options.companion.feat2":"Erinnerung mit verteilter Wiederholung festigen","options.companion.feat3":"Kuratierte Wortlisten für systematisches Lernen entdecken","options.companion.cta":"Im App Store laden","options.favorites.title":"Gespeicherte Wörter ansehen","options.companion.syncTitle":"Geräteübergreifend synchronisieren","options.companion.syncDesc":"Melde dich im Web und in der iOS-App mit demselben Apple Account an, um gespeicherte Daten zu synchronisieren.","options.contact.title":"Website & Kontakt","options.contact.description":"Besuche die SentenWord-Website oder kontaktiere mich per E-Mail und WeChat.","options.contact.website":"Offizielle Website","options.contact.websiteDesc":"Entdecke das Produkt, dein Konto und aktuelle Neuigkeiten.","options.contact.email":"E-Mail","options.contact.emailDesc":"Für Funktionsideen, Fehlermeldungen und Kooperationen.","options.contact.signoff":"Jede Nachricht hilft dabei, SentenWord weiter zu verbessern.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Scanne den QR-Code in WeChat, um mich hinzuzufügen.","options.speech.title":"Sprachausgabe","options.speech.description":"Konfigurieren Sie die Stimme zum Vorlesen von Original und Übersetzung.","options.speech.enable":"Sprachausgabe aktivieren","options.speech.enableDesc":"Lautsprecher-Schaltflächen auf der Übersetzungskarte anzeigen.","options.speech.rate":"Geschwindigkeit","options.speech.rateDesc":"0,5× bis 2,0×, Standard 1,0×.","options.speech.pitch":"Tonhöhe","options.speech.pitchDesc":"0,5 bis 1,5, Standard 1,0.","options.speech.voices":"Stimmen","options.speech.provider":"Modul","options.speech.providerDesc":"Edge nutzt Microsoft-Neural-Stimmen (online, bessere Qualität). System nutzt Browser-Stimmen (offline).","options.speech.providerEdge":"Edge (hohe Qualität)","options.speech.providerWeb":"System","options.speech.edgeVoicesDesc":"Wähle eine Microsoft-Neural-Stimme. Bei Fehlern wird auf die Systemstimme zurückgegriffen.","options.speech.voicesDesc":"Bevorzugte Stimme je Sprache wählen. Cloud-Stimmen (☁) klingen meist besser.","options.speech.auto":"Auto (beste)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Testen","options.speech.noVoices":"Keine Stimmen in diesem Browser gefunden. Bitte Systemeinstellungen prüfen.","options.hotkeys.quickSearch":"Schnellsuche","options.hotkeys.quickSearchDesc":"Schnellsuche-Popup öffnen.","options.hotkeys.paragraph":"Absatzübersetzung","options.hotkeys.paragraphDesc":"Absatz unter dem Cursor übersetzen.","options.ai.title":"KI-Übersetzung","options.ai.description":"Wählen Sie Ihren KI-Übersetzungsdienst: integrierten Dienst oder eigenen API-Schlüssel konfigurieren.","options.ai.usingCustom":"Benutzerdefinierte API","options.ai.usingBackend":"Integrierte KI","options.ai.providerLabel":"Anbieter: {{provider}}","options.ai.enable":"KI-Dienst","options.ai.enableDesc":"Bei Aktivierung wird Ihr konfigurierter Anbieter und Ihr Modell verwendet.","options.ai.enableDescBackend":"Verwenden Sie den von SentenWord bereitgestellten integrierten KI-Übersetzungsdienst.","options.ai.enableDescCustom":"Verwenden Sie Ihren eigenen API-Schlüssel und Ihr Modell. Schlüssel werden nur lokal gespeichert.","options.ai.provider":"Anbieter","options.ai.providerDesc":"Wählen Sie einen Anbieter.","options.ai.configWarningTitle":"KI nicht konfiguriert","options.ai.missingKeyWarning":"Noch kein {{provider}}-API-Schlüssel — KI-Übersetzung, Wortsuche und Untertitelübersetzung schlagen fehl.","options.ai.incompleteCustomWarning":"Deiner eigenen API fehlt noch: {{fields}}. Bis dahin bleiben KI-Funktionen deaktiviert.","options.ai.fieldBaseUrl":"Basis-URL","options.ai.fieldApiKey":"API-Schlüssel","options.ai.fieldModel":"Modellname","options.ai.freeProviderNote":"Kostenloser öffentlicher Endpunkt — kein API-Schlüssel erforderlich. Worterklärungen greifen auf das integrierte Backend zurück.","options.ai.kind":"Diensttyp","options.ai.kindDesc":"KI-Modelle liefern Worterklärungen und Grammatikanalyse. Freie Übersetzung braucht keinen API-Schlüssel, übersetzt aber nur ganze Sätze; Erklärungsfunktionen fallen auf den integrierten Dienst zurück.","options.ai.kindModel":"KI-Modell","options.ai.kindPlain":"Freie Übersetzung","options.engine.title":"Aktuelle Übersetzungsdienste","options.engine.description":"Dieselbe Einstellung wirkt sich je nach Funktion unterschiedlich aus. Dies sind die tatsächlich aufgerufenen Dienste.","options.engine.page":"Seitenübersetzung","options.engine.selection":"Auswahlübersetzung","options.engine.subtitle":"YouTube-Untertitel","options.engine.backend":"Integrierter Dienst","options.engine.fallbackPlain":"{{provider}} kann keine Worterklärungen erzeugen; diese Funktion fällt auf den integrierten Dienst zurück.","options.engine.fallbackUnconfigured":"Kein API-Schlüssel konfiguriert; diese Funktion fällt auf den integrierten Dienst zurück.","options.engine.unconfigured":"Kein API-Schlüssel konfiguriert – diese Funktion schlägt fehl.","options.engine.goToAi":"Zu den KI-Einstellungen","options.subtitle.title":"YouTube-Untertitel","options.subtitle.description":"Darstellung zweisprachiger Untertitel und Wiedergabeverhalten.","options.subtitle.secondaryMode":"Zweiter Untertitel","options.subtitle.secondaryModeDesc":"Legt fest, wie die Übersetzung angezeigt wird. Unscharf zum Selbsttest, dann zum Aufdecken klicken.","options.subtitle.modeNormal":"Normal","options.subtitle.modeBlur":"Unscharf","options.subtitle.modeHide":"Ausblenden","options.subtitle.autoPause":"Auto-Pause bei Untertitel","options.subtitle.autoPauseDesc":"Pausiert das Video am Ende jeder Untertitelzeile – praktisch zum Nachsprechen.","options.ai.apiKey":"API-Schlüssel","options.ai.apiKeyDesc":"Automatisch gespeichert bei Fokusverlust.","options.ai.model":"Modell","options.ai.openaiModelDesc":"Standardmodell ist gpt-4o-mini.","options.ai.openrouterModelDesc":"Beispiel: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Standardmodell ist deepseek-chat.","options.ai.customBaseUrl":"API-Basis-URL","options.ai.customBaseUrlDesc":"OpenAI-kompatible API-URL (Qwen, Zhipu, Moonshot usw.).","options.ai.customModelDesc":"Modellname (qwen-turbo, glm-4 usw.).","options.ai.translatePrompt":"Übersetzungs-Prompt","options.ai.translatePromptDesc":"Benutzerdefinierter Prompt für die Übersetzung. Die KI erkennt automatisch, ob es sich um ein Wort oder einen Absatz handelt.","options.ai.promptReset":"Auf Standard zurücksetzen","options.ai.promptVariablesHint":"Verfügbare Variablen: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Aktuelle Hervorhebung","options.metrics.customAI":"Benutzerdefinierte KI","options.metrics.enabled":"Aktiviert","options.metrics.disabled":"Deaktiviert","options.metrics.account":"Kontostatus","options.metrics.loading":"Laden","options.metrics.loggedIn":"Angemeldet","options.metrics.notLoggedIn":"Nicht angemeldet","options.metrics.syncHint":"Anmelden, um Cloud-Funktionen zu synchronisieren","options.metrics.syncingHint":"Kontoinformationen werden synchronisiert","common.saving":"Speichern","common.saveFailed":"Speichern fehlgeschlagen, bitte erneut versuchen","common.loading":"Einstellungen werden geladen...","common.definitionGenerating":"Die Definition wird erstellt. Bitte versuchen Sie es in Kürze erneut.","common.unknownError":"Unbekannter Fehler","common.pageTranslateLoginRequired":"Bitte melden Sie sich an, um die Seitenübersetzung zu nutzen.","common.trialQuotaExceededLogin":"Die kostenlosen Testnutzungen sind aufgebraucht. Bitte melden Sie sich an, um fortzufahren.","common.translationQuotaExceededUpgrade":"Das Übersetzungskontingent ist aufgebraucht. Bitte upgraden Sie oder versuchen Sie es später erneut.","common.rateLimitNotLoggedIn":"Zu viele Anfragen. Bitte melden Sie sich an, um mehr Übersetzungskontingent zu erhalten.","common.freeQuotaExceeded":"Monatliches Nutzungslimit erreicht, Zurücksetzung am {{resetTime}}. Auf Pro upgraden für höhere Limits","common.proQuotaExceeded":"Monatliches Nutzungslimit erreicht, Zurücksetzung am {{resetTime}}","common.quotaExceeded.title":"Monatliches Kontingent aufgebraucht","common.quotaExceeded.reset":"Zurücksetzung am {{resetTime}}","common.toast.loginRequiredTitle":"Anmeldung erforderlich","common.toast.quotaInsufficientTitle":"Kontingent erschöpft","common.toast.translationErrorTitle":"Übersetzungsfehler","common.toast.loginAction":"Anmelden","common.toast.laterAction":"Später","common.toast.upgradeAction":"Plan upgraden","common.toast.closeAction":"Schließen","common.toast.aiConfigTitle":"KI nicht konfiguriert","common.toast.openSettingsAction":"Einstellungen öffnen","common.aiConfigNotEnabled":"Aktiviere und konfiguriere die eigene KI zuerst in den Einstellungen.","common.aiConfigMissingKey":"Eigene KI ({{provider}}) ist aktiviert, aber es ist kein API-Schlüssel hinterlegt. Trage deinen Schlüssel in den Einstellungen ein oder wechsle zurück zum integrierten KI-Dienst.","common.aiConfigIncompleteCustom":"Deine eigene API ist unvollständig. Trage Basis-URL, API-Schlüssel und Modellname in den Einstellungen ein.","common.aiConfigUnsupportedProvider":"{{provider}} unterstützt nur einfache Übersetzung. Wähle in den Einstellungen einen LLM-Anbieter für KI-Funktionen.","common.sessionExpiredTitle":"Sitzung abgelaufen","common.sessionExpiredDesc":"Bitte melden Sie sich erneut an, um alle Funktionen weiter zu nutzen.","common.sessionReloginAction":"Erneut anmelden","common.preview":"Vorschau","common.unexpectedError":"Ein unerwarteter Fehler ist aufgetreten","footer.copyright":"SentenWord | Intelligente Übersetzung","color.amber":"Bernstein","color.green":"Grün","color.blue":"Blau","color.indigo":"Indigo","color.coral":"Koralle","color.orange":"Orange","color.cyan":"Cyan","color.brown":"Braun","color.red":"Rot","color.gold":"Gold","color.magenta":"Magenta","color.darkGray":"Dunkelgrau","color.custom":"Benutzerdefiniert","color.customHighlight":"Benutzerdefinierte Hervorhebungsfarbe","color.customButton":"Benutzerdefinierte Buttonfarbe","welcome.subtitle":"Willkommen bei SentenWord, lassen Sie uns die Grundeinstellungen vornehmen","welcome.nativeLanguage":"Ihre Muttersprache","welcome.nativeLanguageDesc":"Die Oberflächensprache wird automatisch basierend auf dieser Einstellung umgeschaltet.","welcome.learningLanguage":"Sprache, die Sie lernen möchten","welcome.learningLanguageDesc":"Wählen Sie die Zielsprache, die Sie lernen.","welcome.getStarted":"Loslegen","welcome.account":"Konto","welcome.accountDesc":"Melden Sie sich an, um Vokabeln und Lernfortschritte zu synchronisieren.","welcome.login":"Anmelden / Registrieren","welcome.maybeLater":"Vielleicht später","welcome.loggedInAs":"Angemeldet","welcome.next":"Weiter","welcome.back":"Zurück","popup.title":"SentenWord | Intelligente Übersetzung","popup.settings":"Einstellungen","popup.quickSearch":"Schnellsuche","popup.stopTranslate":"Übersetzung stoppen","popup.translatePage":"Seite übersetzen","popup.translationEnabled":"Übersetzung aktiviert","popup.visitWebsite":"Website besuchen","popup.wordBook":"Wortbuch","popup.login":"Anmelden","popup.loginDesc":"Anmelden zum Synchronisieren","popup.screenshot":"Screenshot-Texterkennung","screenshot.hint":"Ziehen, um Bereich auszuwählen · Esc zum Abbrechen","screenshot.processing":"Erkennung läuft…","screenshot.empty":"Kein Text erkannt","screenshot.failed":"Erkennung fehlgeschlagen","screenshot.loginRequired":"Bitte melde dich an, um die Screenshot-Texterkennung zu nutzen","screenshot.quotaExceeded":"Monatliches Kontingent erreicht. Bitte später erneut versuchen oder Plan upgraden.","screenshot.translation":"Übersetzung","screenshot.close":"Schließen","screenshot.copy":"Kopieren","screenshot.copied":"Kopiert","card.title":"SentenWord | Intelligente Übersetzung","card.wordBook":"Wörterbuch","card.tabSimpleDictionary":"Kurzwörterbuch","card.tabDictionary":"Wörterbuch","card.tabAI":"KI-Erklärung","card.detailedExplanation":"Ausführliche Erklärung","card.detailedExplanationLoading":"Erklärung wird generiert...","card.detailedExplanationRetry":"Erneut versuchen","card.originalText":"Originaltext","card.translationText":"Übersetzung","card.closeDetailedExplanation":"Ausführliche Erklärung schließen","card.closeCard":"Karte schließen","card.settings":"Einstellungen","collection.title":"Sammeln","collection.closeModal":"Sammlungsfenster schließen","collection.folder":"Sammlung","collection.loading":"Laden...","collection.defaultFolder":"Standardsammlung","collection.loadingHint":"Laden…","collection.word":"Wort *","collection.wordPlaceholder":"Wort eingeben","collection.partOfSpeech":"Wortart","collection.partOfSpeechPlaceholder":"Wortart","collection.phonetic":"Lautschrift","collection.phoneticPlaceholder":"z. B. /mɪˈlɛniə/","collection.meaning":"Bedeutung","collection.meaningPlaceholder":"Wortbedeutung","collection.context":"Kontext *","collection.contextPlaceholder":"Vollständigen Satz eingeben","collection.contextTranslation":"Übersetzung des Kontexts","collection.contextTranslationPlaceholder":"Übersetzung des Kontextsatzes","collection.examples":"Zusätzliche Beispiele","collection.examplesHint":"(optional, eins pro Zeile)","collection.examplesPlaceholder":"Zusätzliche Beispiele eingeben, eins pro Zeile","collection.saving":"Speichern...","collection.save":"Speichern","collection.saveSuccess":"Erfolgreich gespeichert","collection.saveToFolder":"Speichern in","collection.saveSuccessTo":"In „{{name}}“ gespeichert","collection.moveFailed":"Verschieben in die Sammlung fehlgeschlagen","collection.saveFailed":"Speichern fehlgeschlagen","collection.notLoggedIn":"Nicht angemeldet, Speichern nicht möglich","collection.notLoggedInLoad":"Nicht angemeldet, Sammlungen können nicht geladen werden","collection.loadFailed":"Sammlungen konnten nicht geladen werden","collection.wordRequired":"Bitte ein Wort/eine Phrase eingeben","collection.contextTooLong":"Kontext darf {{max}} Zeichen nicht überschreiten","youtube.machineTranslate":"Maschinelle Übersetzung","youtube.aiTranslate":"KI-Übersetzung","youtube.subtitlePanel":"Untertitel-Panel","youtube.closePanel":"Untertitel-Panel schließen","youtube.panelAriaLabel":"Untertitel-Panel Tabs","youtube.tabSubtitles":"Untertitel","youtube.tabSettings":"Einstellungen","youtube.downloadSrt":"Zweisprachige SRT herunterladen","youtube.noSubtitles":"Keine Untertitel","youtube.showBilingualSubtitle":"Zweisprachige Untertitel anzeigen","youtube.showBilingualSubtitleDesc":"Zweisprachiges Untertitel-Overlay auf dem Video umschalten","youtube.enableSubtitleList":"Untertitelliste aktivieren","youtube.enableSubtitleListDesc":"Wenn deaktiviert, wird das Untertitel-Panel ausgeblendet","youtube.autoScroll":"Automatisches Scrollen","youtube.autoScrollDesc":"Automatisch zum aktuellen Satz scrollen während der Wiedergabe","youtube.noDownloadableSubtitle":"Keine herunterladbaren Untertitel","youtube.loadSecondaryFirst":"Bitte laden Sie zuerst die sekundären Untertitel, bevor Sie die zweisprachige SRT herunterladen","youtube.exportEmpty":"Untertitel-Export fehlgeschlagen: Inhalt ist leer","youtube.downloadStarted":"Download der zweisprachigen SRT gestartet","youtube.downloadFailed":"Download der zweisprachigen SRT fehlgeschlagen","youtube.subtitleTranslateFallbackFailed":"Untertitel-Übersetzung fehlgeschlagen, bitte später erneut versuchen","youtube.primaryLoadFailed":"Laden der primären Untertitel fehlgeschlagen","youtube.machineTranslateUnavailable":"Maschinelle Übersetzung nicht verfügbar, auf KI-Übersetzung umgeschaltet","youtube.machineTranslateFailed":"Maschinelle Übersetzung fehlgeschlagen, auf KI-Übersetzung umgeschaltet","youtube.secondaryLoadFailed":"Laden der sekundären Untertitel fehlgeschlagen","youtube.aiTranslateEnabled":"KI-On-Demand-Übersetzung aktiviert","youtube.fetchingMachineTranslate":"Maschinell übersetzte Untertitel werden abgerufen...","youtube.subtitleContentEmpty":"Untertitelspur gefunden, aber es sind keine anzeigbaren Untertitel verfügbar","youtube.noAvailableSubtitles":"Für dieses Video sind keine Untertitel verfügbar","youtube.trackLoadFailed":"Laden der Untertitelspuren fehlgeschlagen","youtube.btnSubtitleOn":"SentenWord Zweisprachige Untertitel (An)","youtube.btnSubtitleOff":"SentenWord Zweisprachige Untertitel (Aus)","youtube.btnPanelOn":"SentenWord Untertitel-Panel (Offen)","youtube.btnPanelOff":"SentenWord Untertitel-Panel (Geschlossen)","youtube.btnSettings":"SentenWord Untertiteleinstellungen","youtube.menuBilingualSubtitle":"Zweisprachige Untertitel","youtube.menuSidebar":"Untertitel-Seitenleiste","youtube.menuSettings":"Einstellungen","contextMenu.smartTranslate":"SentenWord | Intelligente Übersetzung","contextMenu.translatePage":"SentenWord | Seite übersetzen","contextMenu.restoreOriginal":"SentenWord | Original wiederherstellen","quickSearch.title":"Schnellsuche","quickSearch.dictionary":"Wörterbuch","quickSearch.ai":"KI","quickSearch.dictPlaceholder":"Wort suchen...","quickSearch.aiPlaceholder":"Wort oder Satz eingeben für KI-Erklärung...","quickSearch.submit":"Suchen","quickSearch.hint":"Ctrl+Shift+F zum Öffnen · Enter zum Suchen · Tab zum Moduswechsel · Escape zum Schließen","subtitle.loading":"Untertitel werden geladen...","subtitle.ready":"Untertitel bereit, warten auf Sprachbeginn","subtitle.notDetected":"Keine anzeigbaren Untertitel erkannt. Bitte weiter abspielen oder ein anderes Video versuchen","floating.translate":"Übersetzen","word.viewInDict":"In {{name}} ansehen","word.unfavorite":"Aus Favoriten entfernen","speech.playOriginal":"Original vorlesen","speech.playTranslation":"Übersetzung vorlesen","word.favorite":"Zu Favoriten hinzufügen","ai.favoritePhrase":"Phrase zu Favoriten hinzufügen","ai.collapse":"Einklappen","ai.viewAll":"Alle anzeigen ({{count}})","ai.noResult":"Keine Übersetzungsergebnisse","ai.loading":"Laden...","common.expand":"Alle anzeigen","common.collapseText":"Einklappen","common.translating":"Übersetzen...","options.changelog.title":"Änderungsprotokoll","update.action":"Neue Version verfügbar"},Rm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Gestiona tu experiencia de traducción, visualización del diccionario y configuración de IA personalizada. Configura tus preferencias visuales, de interacción y rendimiento aquí.","options.language.title":"Configuración de idioma","options.language.description":"Configura tu idioma nativo y el idioma objetivo que estás aprendiendo.","options.language.native":"Idioma nativo","options.language.nativeDesc":"El idioma de la interfaz cambiará automáticamente según esta configuración.","options.language.learning":"Idioma objetivo de aprendizaje","options.language.learningDesc":"El idioma que estás aprendiendo, usado para traducción y diccionario.","options.account.title":"Cuenta y conexión","options.account.description":"Gestiona el estado de inicio de sesión y el comportamiento de la extensión.","options.account.label":"Cuenta","options.account.loading":"Cargando estado de inicio de sesión","options.account.loggedIn":"Conectado: ","options.account.notLoggedIn":"No conectado. Ve a la página de autorización para iniciar sesión.","options.account.logout":"Cerrar sesión","options.account.login":"Iniciar sesión","options.account.loggedOut":"Sesión cerrada","options.account.profile":"Perfil","options.account.avatar":"Avatar","options.account.name":"Nombre","options.account.namePlaceholder":"Ingrese su nombre","options.account.save":"Guardar","options.account.saving":"Guardando...","options.account.profileUpdated":"Perfil actualizado","options.account.profileUpdateFailed":"Error al actualizar, inténtelo de nuevo","options.account.editProfile":"Editar perfil","options.account.cancel":"Cancelar","options.usage.title":"Uso","options.usage.description":"Uso de AI Tokens","options.usage.monthly":"Cuota del periodo actual","options.usage.used":"Usado","options.usage.limit":"Límite","options.usage.resetAt":"Se reinicia","options.usage.tokens":"tokens","options.usage.loadFailed":"Error al cargar el uso","options.usage.loginRequired":"Inicia sesión para ver el uso","options.usage.upgradeToPro":"Actualizar a Pro","options.usage.upgradeToMax":"Actualizar a Max","options.usage.dailyBreakdown":"Detalle diario","options.usage.dailyTitle":"Uso diario de este periodo","options.usage.dailySubtitle":"La altura de las barras refleja el consumo relativo del día · Pasa el ratón para ver el porcentaje del total del periodo","options.usage.monthTotal":"Total del periodo","options.usage.dailyEmpty":"No se pueden cargar los datos detallados","options.usage.dailyNote":"Nota: los tokens representan la unidad de consumo de este sistema y no equivalen al recuento de tokens de un modelo específico.","options.usage.dailyLoadFailed":"Error al cargar el detalle","paywall.title":"Actualiza a SentenWord Pro","paywall.subtitle":"Obtén una cuota mensual de IA estable y funciones de traducción premium.","paywall.max.title":"Actualiza a SentenWord Max","paywall.max.subtitle":"Una cuota mensual mayor para traducciones frecuentes, subtítulos IA y explicaciones.","paywall.oneTimeNotice":"Compra única por 1 mes, sin renovación automática.","paywall.feature.quota":"300.000 tokens de IA al mes","paywall.feature.maxQuota":"Cuota de tokens de IA: 300.000 → 2.000.000 al mes","paywall.feature.subtitles":"Subtítulos bilingües con IA en YouTube","paywall.feature.priority":"Acceso prioritario y soporte dedicado","paywall.plan.monthly":"1 mes","paywall.plan.quarterly":"Trimestral","paywall.plan.halfYear":"6 meses","paywall.plan.yearly":"Anual","paywall.priceSuffix.month":"/mes","paywall.price.loading":"Cargando precio…","paywall.priceTotal":"Total {{total}}","paywall.savings":"Ahorra {{percent}}%","paywall.recommended":"Mejor valor","paywall.continueButton":"Continuar al pago","paywall.continueLoading":"Redirigiendo...","paywall.close":"Cerrar","paywall.error.loginRequired":"Debes iniciar sesión antes de actualizar.","paywall.error.goLogin":"Iniciar sesión","paywall.error.network":"No se pudo crear la sesión de pago. Inténtalo de nuevo.","paywall.error.priceUnavailable":"Precio no disponible. Inténtalo de nuevo.","paywall.confirm.title":"Esperando el pago","paywall.confirm.message":"La página de pago se abrió en una pestaña nueva. Completa el pago en Stripe y vuelve aquí para hacer clic en el botón.","paywall.confirm.completed":"He completado el pago","paywall.confirm.cancel":"Cancelar","paywall.confirm.checking":"Verificando…","paywall.confirm.retry":"Intentar de nuevo","paywall.confirm.notYet":"Estado Pro aún no detectado. Si acabas de pagar, espera un momento e inténtalo de nuevo.","paywall.confirm.notYetMax":"Acceso Max aún no detectado. Si acabas de pagar, espera un momento e inténtalo de nuevo.","options.highlight.title":"Apariencia","options.highlight.description":"Gestionar estilos y colores de resaltado.","options.highlight.panelTitle":"Estilo de resaltado","options.highlight.panelDescription":"Cómo aparecen las palabras guardadas en las páginas web y el sistema de colores.","options.card.themeTitle":"Tema de tarjeta","options.card.themeDescription":"Cambiar el estilo visual de la tarjeta del diccionario.","options.card.theme.warm":"Cálido","options.card.theme.classic":"Clásico","options.card.theme.fresh":"Fresco","options.highlight.enable":"Activar resaltado","options.highlight.enableDesc":"Al desactivar, las palabras guardadas ya no se resaltarán en las páginas web.","options.highlight.inlineAnnotation":"Mostrar definiciones en línea","options.highlight.inlineAnnotationDesc":"Muestra la categoría gramatical y la definición junto a las palabras resaltadas, ej: Reload(v.recargar).","options.highlight.trigger":"Activación del panel","options.highlight.triggerDesc":"Elige si las palabras resaltadas abren el panel con clic, al pasar el cursor o no hacen nada.","options.highlight.trigger.none":"Sin acción","options.highlight.styleSelect":"Selección de estilo","options.highlight.colorSelect":"Selección de color","options.highlight.opacity":"Opacidad del resaltado","options.highlight.opacityDesc":"Ajusta la transparencia del color de resaltado en las páginas.","options.highlight.style.none":"Ninguno","options.highlight.style.background":"Fondo","options.highlight.style.text":"Color de texto","options.highlight.style.underline":"Subrayado","options.highlight.style.doubleUnderline":"Doble subrayado","options.highlight.style.wavy":"Ondulado","options.highlight.style.dotted":"Punteado","options.highlight.style.dashed":"Discontinuo","options.tagHighlight.panelTitle":"Resaltado por etiqueta","options.tagHighlight.panelDescription":"Resaltar palabras en páginas web según etiquetas y rangos de frecuencia.","options.tagHighlight.enable":"Activar resaltado por etiqueta","options.tagHighlight.enableDesc":"Resalta automáticamente las palabras que coincidan con las reglas configuradas.","options.tagHighlight.addRule":"Añadir regla","options.tagHighlight.tag":"Etiqueta","options.tagHighlight.frqRange":"Rango de frecuencia","options.tagHighlight.frqMin":"Mín","options.tagHighlight.frqMax":"Máx","options.tagHighlight.noRules":"Sin reglas. Haz clic en el botón de arriba para añadir una.","options.tagHighlight.deleteRule":"Eliminar","options.tagHighlight.style":"Estilo","options.tagHighlight.color":"Color","options.tagHighlight.enabled":"Activado","options.translation.title":"Traducción","options.translation.description":"Gestiona la traducción bilingüe de páginas y la traducción de selección.","options.autoTranslate.title":"Traducción automática de páginas","options.autoTranslate.description":"Inicia automáticamente la traducción bilingüe en los sitios configurados.","options.autoTranslate.enable":"Activar traducción automática","options.autoTranslate.enableDesc":"Solo se inicia si coincide un dominio; actualiza las páginas que ya estén abiertas.","options.autoTranslate.domains":"Dominios de sitios web","options.autoTranslate.domainsDesc":"Un dominio base también incluye sus subdominios; reddit.com coincide con www.reddit.com.","options.autoTranslate.placeholder":"Introduce un dominio o URL, p. ej. medium.com","options.autoTranslate.add":"Añadir","options.autoTranslate.remove":"Eliminar","options.autoTranslate.invalidDomain":"Introduce un dominio o una URL HTTP(S) válidos.","options.autoTranslate.duplicateDomain":"Ese dominio ya está en la lista.","options.autoTranslate.empty":"No hay dominios. La traducción automática no se iniciará en ningún sitio.","options.dictionary.title":"Contenido del diccionario","options.dictionary.description":"Controla los niveles de definición y ejemplos mostrados en las tarjetas de palabras.","options.dictionary.showExamples":"Mostrar ejemplos","options.dictionary.showExamplesDesc":"Mostrar frases de ejemplo en las definiciones.","options.dictionary.tabs.title":"Configuración de búsqueda","options.dictionary.tabs.description":"Configure el orden de visualización y el estado de activación de las pestañas de búsqueda del diccionario. Solo efectivo cuando el idioma nativo es chino y el idioma de aprendizaje es inglés.","options.dictionary.tabs.ai":"Búsqueda IA","options.dictionary.tabs.simple":"Dict. rápido","options.dictionary.tabs.dictionary":"Dict. profesional","options.dictionary.tabs.moveUp":"Subir","options.dictionary.tabs.moveDown":"Bajar","options.floating.title":"Traducción de selección","options.floating.description":"Define la apariencia, tamaño, color, opacidad y estilo del botón flotante.","options.floating.enable":"Activar botón flotante","options.floating.enableDesc":"Mostrar entrada de traducción después de seleccionar texto.","options.floating.trigger":"Modo de activación","options.floating.triggerDesc":"Clic o pasar el cursor para activar la traducción.","options.floating.trigger.click":"Clic","options.floating.trigger.hover":"Pasar cursor","options.floating.size":"Tamaño del botón","options.floating.sizeDesc":"Ajusta el tamaño según tu preferencia visual.","options.floating.size.xsmall":"Muy pequeño","options.floating.size.small":"Pequeño","options.floating.size.medium":"Mediano","options.floating.size.large":"Grande","options.floating.style":"Estilo del botón","options.floating.styleDesc":"Icono, punto o texto.","options.floating.style.icon":"Icono","options.floating.style.dot":"Punto","options.floating.color":"Color del botón","options.floating.colorDesc":"Elige un color predefinido o personalizado.","options.floating.opacity":"Opacidad del botón","options.floating.opacityDesc":"Ajusta qué tan transparente aparece el botón flotante en las páginas.","options.hotkeys.title":"Atajos de teclado","options.hotkeys.description":"Guardado automático al perder el foco o con Enter.","options.companion.title":"App para iOS","options.companion.description":"Tu colección en el bolsillo — repasa tus palabras y frases guardadas estés donde estés.","options.companion.platform":"para iPhone · iPad","options.companion.pitch":"Abre cada palabra y frase que has guardado, directamente desde tu iPhone.","options.companion.feat1":"Repasa tus palabras y frases guardadas cuando quieras","options.companion.feat2":"Refuerza la memoria con repetición espaciada","options.companion.feat3":"Descubre libros de vocabulario seleccionados para un estudio sistemático","options.companion.cta":"Descargar en App Store","options.favorites.title":"Ver palabras guardadas","options.companion.syncTitle":"Sincronización entre dispositivos","options.companion.syncDesc":"Inicia sesión en la web y en la app para iOS con la misma cuenta de Apple para sincronizar los datos guardados.","options.contact.title":"Sitio web y contacto","options.contact.description":"Visita el sitio de SentenWord o contáctame por correo electrónico y WeChat.","options.contact.website":"Sitio oficial","options.contact.websiteDesc":"Descubre el producto, tu cuenta y las últimas novedades.","options.contact.email":"Correo electrónico","options.contact.emailDesc":"Para sugerencias, informes de problemas y colaboraciones.","options.contact.signoff":"Cada mensaje ayuda a que SentenWord sea aún mejor.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Escanea el código QR en WeChat para añadirme como contacto.","options.speech.title":"Lectura por voz","options.speech.description":"Configura la voz usada para leer el texto original y la traducción.","options.speech.enable":"Activar lectura","options.speech.enableDesc":"Mostrar botones de altavoz en la tarjeta de traducción.","options.speech.rate":"Velocidad","options.speech.rateDesc":"0,5× a 2,0×, predeterminado 1,0×.","options.speech.pitch":"Tono","options.speech.pitchDesc":"0,5 a 1,5, predeterminado 1,0.","options.speech.voices":"Voces","options.speech.provider":"Motor","options.speech.providerDesc":"Edge usa voces Microsoft Neural (en línea, mejor calidad). Sistema usa voces del navegador (sin conexión).","options.speech.providerEdge":"Edge (alta calidad)","options.speech.providerWeb":"Sistema","options.speech.edgeVoicesDesc":"Elige una voz Microsoft Neural. Si falla, usará la voz del sistema automáticamente.","options.speech.voicesDesc":"Elige una voz preferida por idioma. Las voces en la nube (☁) suelen sonar mejor.","options.speech.auto":"Auto (mejor)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Probar","options.speech.noVoices":"No se detectan voces en este navegador. Revisa la configuración de voz del sistema.","options.hotkeys.quickSearch":"Búsqueda rápida","options.hotkeys.quickSearchDesc":"Abrir ventana de búsqueda rápida.","options.hotkeys.paragraph":"Traducción de párrafo","options.hotkeys.paragraphDesc":"Traducir el párrafo bajo el cursor.","options.ai.title":"Traducción IA","options.ai.description":"Elige tu servicio de traducción IA: servicio integrado o configura tu propia clave API.","options.ai.usingCustom":"API personalizada","options.ai.usingBackend":"IA integrada","options.ai.providerLabel":"Proveedor: {{provider}}","options.ai.enable":"Servicio IA","options.ai.enableDesc":"Al activar, usa tu proveedor y modelo configurados.","options.ai.enableDescBackend":"Usar el servicio de traducción IA integrado proporcionado por SentenWord.","options.ai.enableDescCustom":"Usar tu propia clave API y modelo. Las claves se almacenan solo localmente.","options.ai.provider":"Proveedor","options.ai.providerDesc":"Elige un proveedor.","options.ai.configWarningTitle":"IA sin configurar","options.ai.missingKeyWarning":"Todavía no hay clave de API de {{provider}}: la traducción con IA, la consulta de palabras y la traducción de subtítulos fallarán.","options.ai.incompleteCustomWarning":"A tu API personalizada aún le falta: {{fields}}. Las funciones de IA no estarán disponibles hasta completarla.","options.ai.fieldBaseUrl":"URL base","options.ai.fieldApiKey":"clave de API","options.ai.fieldModel":"nombre del modelo","options.ai.freeProviderNote":"Endpoint público gratuito — no se necesita clave API. Las explicaciones de palabras usan el backend integrado.","options.ai.kind":"Tipo de servicio","options.ai.kindDesc":"Los modelos de IA ofrecen definiciones y análisis gramatical. La traducción gratuita no necesita clave API, pero solo traduce frases completas; las funciones de definición recurren al servicio integrado.","options.ai.kindModel":"Modelo de IA","options.ai.kindPlain":"Traducción gratuita","options.engine.title":"Motores de traducción actuales","options.engine.description":"Un mismo ajuste se comporta de forma distinta según la función. Estos son los servicios que se usan realmente.","options.engine.page":"Traducción de página","options.engine.selection":"Traducción de selección","options.engine.subtitle":"Subtítulos de YouTube","options.engine.backend":"Servicio integrado","options.engine.fallbackPlain":"{{provider}} no puede generar definiciones; esta función recurre al servicio integrado.","options.engine.fallbackUnconfigured":"No hay clave API configurada; esta función recurre al servicio integrado.","options.engine.unconfigured":"No hay clave API configurada: esta función fallará.","options.engine.goToAi":"Ir a los ajustes de IA","options.subtitle.title":"Subtítulos de YouTube","options.subtitle.description":"Cómo se muestran los subtítulos bilingües y cómo se comporta la reproducción.","options.subtitle.secondaryMode":"Subtítulo secundario","options.subtitle.secondaryModeDesc":"Controla cómo se muestra la traducción. Desenfócala para autoevaluarte y haz clic para revelarla.","options.subtitle.modeNormal":"Normal","options.subtitle.modeBlur":"Desenfocar","options.subtitle.modeHide":"Ocultar","options.subtitle.autoPause":"Pausa automática por subtítulo","options.subtitle.autoPauseDesc":"Pausa el vídeo al final de cada línea de subtítulo, útil para el shadowing.","options.ai.apiKey":"Clave API","options.ai.apiKeyDesc":"Guardado automático al perder el foco.","options.ai.model":"Modelo","options.ai.openaiModelDesc":"Modelo predeterminado: gpt-4o-mini.","options.ai.openrouterModelDesc":"Ejemplo: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Modelo predeterminado: deepseek-chat.","options.ai.customBaseUrl":"URL base de API","options.ai.customBaseUrlDesc":"URL de API compatible con OpenAI (Qwen, Zhipu, Moonshot, etc.).","options.ai.customModelDesc":"Nombre del modelo (qwen-turbo, glm-4, etc.).","options.ai.translatePrompt":"Prompt de traducción","options.ai.translatePromptDesc":"Prompt personalizado enviado a la IA para la traducción. La IA determina automáticamente si es una palabra o un pasaje.","options.ai.promptReset":"Restablecer predeterminado","options.ai.promptVariablesHint":"Variables disponibles: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Resaltado actual","options.metrics.customAI":"IA personalizada","options.metrics.enabled":"Activado","options.metrics.disabled":"Desactivado","options.metrics.account":"Estado de la cuenta","options.metrics.loading":"Cargando","options.metrics.loggedIn":"Conectado","options.metrics.notLoggedIn":"No conectado","options.metrics.syncHint":"Inicia sesión para sincronizar funciones en la nube","options.metrics.syncingHint":"Sincronizando información de la cuenta","common.saving":"Guardando","common.saveFailed":"Error al guardar, por favor reintenta","common.loading":"Cargando configuración...","common.definitionGenerating":"La definición se está generando. Vuelve a intentarlo en breve.","common.unknownError":"Error desconocido","common.pageTranslateLoginRequired":"Inicia sesión para usar la traducción de páginas.","common.trialQuotaExceededLogin":"Se agotaron los usos de prueba gratuitos. Inicia sesión para continuar.","common.translationQuotaExceededUpgrade":"Se agotó la cuota de traducción. Mejora tu plan o vuelve a intentarlo más tarde.","common.rateLimitNotLoggedIn":"Demasiadas solicitudes. Inicia sesión para obtener más cuota de traducción.","common.freeQuotaExceeded":"Límite de uso mensual alcanzado, se restablece el {{resetTime}}. Mejora a Pro para límites más altos","common.proQuotaExceeded":"Límite de uso mensual alcanzado, se restablece el {{resetTime}}","common.quotaExceeded.title":"Cuota mensual agotada","common.quotaExceeded.reset":"Se restablece el {{resetTime}}","common.toast.loginRequiredTitle":"Se requiere iniciar sesión","common.toast.quotaInsufficientTitle":"Cuota insuficiente","common.toast.translationErrorTitle":"Error de traducción","common.toast.loginAction":"Iniciar sesión","common.toast.laterAction":"Más tarde","common.toast.upgradeAction":"Mejorar plan","common.toast.closeAction":"Cerrar","common.toast.aiConfigTitle":"IA sin configurar","common.toast.openSettingsAction":"Abrir ajustes","common.aiConfigNotEnabled":"Primero activa y configura la IA personalizada en los ajustes.","common.aiConfigMissingKey":"La IA personalizada ({{provider}}) está activada, pero no hay clave de API. Añádela en los ajustes o vuelve al servicio de IA integrado.","common.aiConfigIncompleteCustom":"Tu API personalizada está incompleta. Completa la URL base, la clave de API y el nombre del modelo en los ajustes.","common.aiConfigUnsupportedProvider":"{{provider}} solo admite traducción simple. Elige un proveedor de LLM en los ajustes para usar las funciones de IA.","common.sessionExpiredTitle":"Sesión expirada","common.sessionExpiredDesc":"Vuelve a iniciar sesión para seguir usando todas las funciones.","common.sessionReloginAction":"Iniciar sesión de nuevo","common.preview":"Vista previa","common.unexpectedError":"Se produjo un error inesperado","footer.copyright":"SentenWord | Traducción inteligente","color.amber":"Ámbar","color.green":"Verde","color.blue":"Azul","color.indigo":"Índigo","color.coral":"Coral","color.orange":"Naranja","color.cyan":"Cian","color.brown":"Marrón","color.red":"Rojo","color.gold":"Dorado","color.magenta":"Magenta","color.darkGray":"Gris oscuro","color.custom":"Personalizado","color.customHighlight":"Color de resaltado personalizado","color.customButton":"Color de botón personalizado","welcome.subtitle":"Bienvenido a SentenWord, configuremos los ajustes básicos","welcome.nativeLanguage":"Tu idioma nativo","welcome.nativeLanguageDesc":"El idioma de la interfaz cambiará automáticamente según esta configuración.","welcome.learningLanguage":"Idioma que quieres aprender","welcome.learningLanguageDesc":"Selecciona el idioma objetivo que estás aprendiendo.","welcome.getStarted":"Comenzar","welcome.account":"Cuenta","welcome.accountDesc":"Inicia sesión para sincronizar tu vocabulario y progreso de aprendizaje.","welcome.login":"Iniciar sesión / Registrarse","welcome.maybeLater":"Quizás después","welcome.loggedInAs":"Conectado","welcome.next":"Siguiente","welcome.back":"Volver","popup.title":"SentenWord | Traducción Inteligente","popup.settings":"Configuración","popup.quickSearch":"Búsqueda rápida","popup.stopTranslate":"Detener traducción","popup.translatePage":"Traducir página","popup.translationEnabled":"Traducción activada","popup.visitWebsite":"Visitar sitio web","popup.wordBook":"Cuaderno de palabras","popup.login":"Iniciar sesión","popup.loginDesc":"Inicia sesión para sincronizar","popup.screenshot":"OCR de captura","screenshot.hint":"Arrastra para seleccionar un área · Esc para cancelar","screenshot.processing":"Reconociendo…","screenshot.empty":"No se detectó texto","screenshot.failed":"Error de reconocimiento","screenshot.loginRequired":"Inicia sesión para usar el OCR de captura","screenshot.quotaExceeded":"Cuota mensual agotada. Inténtalo más tarde o mejora tu plan.","screenshot.translation":"Traducción","screenshot.close":"Cerrar","screenshot.copy":"Copiar","screenshot.copied":"Copiado","card.title":"SentenWord | Traducción Inteligente","card.wordBook":"Cuaderno de palabras","card.tabSimpleDictionary":"Dict. rápido","card.tabDictionary":"Diccionario","card.tabAI":"Explicación IA","card.detailedExplanation":"Explicación detallada","card.detailedExplanationLoading":"Generando explicación...","card.detailedExplanationRetry":"Reintentar","card.originalText":"Texto original","card.translationText":"Traducción","card.closeDetailedExplanation":"Cerrar explicación detallada","card.closeCard":"Cerrar tarjeta","card.settings":"Configuración","collection.title":"Recopilar","collection.closeModal":"Cerrar ventana de colección","collection.folder":"Colección","collection.loading":"Cargando...","collection.defaultFolder":"Colección predeterminada","collection.loadingHint":"Cargando…","collection.word":"Palabra *","collection.wordPlaceholder":"Introduce una palabra","collection.partOfSpeech":"Categoría","collection.partOfSpeechPlaceholder":"Categoría gramatical","collection.phonetic":"Fonética","collection.phoneticPlaceholder":"p. ej. /mɪˈlɛniə/","collection.meaning":"Definición","collection.meaningPlaceholder":"Definición de la palabra","collection.context":"Contexto *","collection.contextPlaceholder":"Introduce la oración completa","collection.contextTranslation":"Traducción del contexto","collection.contextTranslationPlaceholder":"Traducción de la oración de contexto","collection.examples":"Ejemplos adicionales","collection.examplesHint":"(opcional, uno por línea)","collection.examplesPlaceholder":"Introduce ejemplos adicionales, uno por línea","collection.saving":"Guardando...","collection.save":"Guardar","collection.saveSuccess":"Guardado con éxito","collection.saveToFolder":"Guardar en","collection.saveSuccessTo":"Guardado en «{{name}}»","collection.moveFailed":"No se pudo mover a la colección","collection.saveFailed":"Error al guardar","collection.notLoggedIn":"No has iniciado sesión, no se puede guardar","collection.notLoggedInLoad":"No has iniciado sesión, no se pueden cargar las colecciones","collection.loadFailed":"Error al cargar las colecciones","collection.wordRequired":"Por favor, introduce una palabra/frase","collection.contextTooLong":"El contexto no puede superar {{max}} caracteres","youtube.machineTranslate":"Traducción automática","youtube.aiTranslate":"Traducción IA","youtube.subtitlePanel":"Panel de subtítulos","youtube.closePanel":"Cerrar panel de subtítulos","youtube.panelAriaLabel":"Pestañas del panel de subtítulos","youtube.tabSubtitles":"Subtítulos","youtube.tabSettings":"Configuración","youtube.downloadSrt":"Descargar SRT bilingüe","youtube.noSubtitles":"Sin subtítulos","youtube.showBilingualSubtitle":"Mostrar subtítulos bilingües","youtube.showBilingualSubtitleDesc":"Alternar la superposición de subtítulos bilingües en el video","youtube.enableSubtitleList":"Activar lista de subtítulos","youtube.enableSubtitleListDesc":"Al desactivar, el panel de subtítulos se ocultará","youtube.autoScroll":"Desplazamiento automático","youtube.autoScrollDesc":"Desplazarse automáticamente a la frase actual durante la reproducción","youtube.noDownloadableSubtitle":"No hay subtítulos descargables","youtube.loadSecondaryFirst":"Carga los subtítulos secundarios antes de descargar el SRT bilingüe","youtube.exportEmpty":"Exportación de subtítulos fallida: contenido vacío","youtube.downloadStarted":"Descarga del SRT bilingüe iniciada","youtube.downloadFailed":"Error en la descarga del SRT bilingüe","youtube.subtitleTranslateFallbackFailed":"Error en la traducción de subtítulos, inténtalo de nuevo más tarde","youtube.primaryLoadFailed":"Error al cargar los subtítulos principales","youtube.machineTranslateUnavailable":"Traducción automática no disponible, cambiado a traducción IA","youtube.machineTranslateFailed":"Error en la traducción automática, cambiado a traducción IA","youtube.secondaryLoadFailed":"Error al cargar los subtítulos secundarios","youtube.aiTranslateEnabled":"Traducción IA bajo demanda activada","youtube.fetchingMachineTranslate":"Obteniendo subtítulos de traducción automática...","youtube.subtitleContentEmpty":"Se encontró una pista de subtítulos, pero no hay subtítulos visibles disponibles","youtube.noAvailableSubtitles":"No hay subtítulos disponibles para este video","youtube.trackLoadFailed":"Error al cargar las pistas de subtítulos","youtube.btnSubtitleOn":"SentenWord Subtítulos bilingües (Activado)","youtube.btnSubtitleOff":"SentenWord Subtítulos bilingües (Desactivado)","youtube.btnPanelOn":"SentenWord Panel de subtítulos (Abierto)","youtube.btnPanelOff":"SentenWord Panel de subtítulos (Cerrado)","youtube.btnSettings":"SentenWord Configuración de subtítulos","youtube.menuBilingualSubtitle":"Subtítulos bilingües","youtube.menuSidebar":"Barra lateral de subtítulos","youtube.menuSettings":"Configuración","contextMenu.smartTranslate":"SentenWord | Traducción Inteligente","contextMenu.translatePage":"SentenWord | Traducir página","contextMenu.restoreOriginal":"SentenWord | Restaurar original","quickSearch.title":"Búsqueda rápida","quickSearch.dictionary":"Diccionario","quickSearch.ai":"IA","quickSearch.dictPlaceholder":"Buscar una palabra...","quickSearch.aiPlaceholder":"Introduce una palabra o frase para explicación IA...","quickSearch.submit":"Buscar","quickSearch.hint":"Ctrl+Shift+F para abrir · Enter para buscar · Tab para cambiar modo · Escape para cerrar","subtitle.loading":"Cargando subtítulos...","subtitle.ready":"Subtítulos listos, esperando inicio de voz","subtitle.notDetected":"No se detectaron subtítulos visibles, continúa la reproducción o prueba otro video","floating.translate":"Traducir","word.viewInDict":"Ver en {{name}}","word.unfavorite":"Quitar de favoritos","speech.playOriginal":"Reproducir original","speech.playTranslation":"Reproducir traducción","word.favorite":"Añadir a favoritos","ai.favoritePhrase":"Añadir frase a favoritos","ai.collapse":"Contraer","ai.viewAll":"Ver todo ({{count}})","ai.noResult":"Sin resultados de traducción","ai.loading":"Cargando...","common.expand":"Ver todo","common.collapseText":"Contraer","common.translating":"Traduciendo...","options.changelog.title":"Registro de cambios","update.action":"Nueva versión disponible"},Lm={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Gerencie sua experiência de tradução, exibição do dicionário e configurações de IA personalizada. Configure suas preferências visuais, de interação e desempenho aqui.","options.language.title":"Configurações de idioma","options.language.description":"Configure seu idioma nativo e o idioma alvo que está aprendendo.","options.language.native":"Idioma nativo","options.language.nativeDesc":"O idioma da interface mudará automaticamente com base nesta configuração.","options.language.learning":"Idioma alvo de aprendizado","options.language.learningDesc":"O idioma que você está aprendendo, usado para tradução e dicionário.","options.account.title":"Conta e conexão","options.account.description":"Gerencie o status de login e o comportamento da extensão.","options.account.label":"Conta","options.account.loading":"Carregando status de login","options.account.loggedIn":"Conectado: ","options.account.notLoggedIn":"Não conectado. Vá à página de autorização para fazer login.","options.account.logout":"Sair","options.account.login":"Entrar","options.account.loggedOut":"Desconectado","options.account.profile":"Perfil","options.account.avatar":"Avatar","options.account.name":"Nome de exibição","options.account.namePlaceholder":"Digite o nome de exibição","options.account.save":"Salvar","options.account.saving":"Salvando...","options.account.profileUpdated":"Perfil atualizado","options.account.profileUpdateFailed":"Falha na atualização, tente novamente","options.account.editProfile":"Editar perfil","options.account.cancel":"Cancelar","options.usage.title":"Uso","options.usage.description":"Uso de AI Tokens","options.usage.monthly":"Cota do período atual","options.usage.used":"Usado","options.usage.limit":"Limite","options.usage.resetAt":"Reinicia em","options.usage.tokens":"tokens","options.usage.loadFailed":"Falha ao carregar uso","options.usage.loginRequired":"Faça login para ver o uso","options.usage.upgradeToPro":"Atualizar para Pro","options.usage.upgradeToMax":"Atualizar para Max","options.usage.dailyBreakdown":"Detalhes diários","options.usage.dailyTitle":"Uso diário deste período","options.usage.dailySubtitle":"A altura das barras reflete o consumo relativo do dia · Passe o mouse para ver a porcentagem do total do período","options.usage.monthTotal":"Total do período","options.usage.dailyEmpty":"Não foi possível carregar os detalhes","options.usage.dailyNote":"Nota: os tokens representam a unidade de consumo deste sistema, não a contagem de tokens de um modelo específico.","options.usage.dailyLoadFailed":"Falha ao carregar os detalhes","paywall.title":"Faça upgrade para o SentenWord Pro","paywall.subtitle":"Obtenha uma cota mensal de IA estável e recursos premium de tradução.","paywall.max.title":"Faça upgrade para o SentenWord Max","paywall.max.subtitle":"Uma cota mensal maior para traduções frequentes, legendas de IA e explicações.","paywall.oneTimeNotice":"Compra única por 1 mês, sem renovação automática.","paywall.feature.quota":"300.000 tokens de IA por mês","paywall.feature.maxQuota":"Cota de tokens de IA: 300.000 → 2.000.000 por mês","paywall.feature.subtitles":"Legendas bilíngues com IA no YouTube","paywall.feature.priority":"Acesso prioritário e suporte dedicado","paywall.plan.monthly":"1 mês","paywall.plan.quarterly":"Trimestral","paywall.plan.halfYear":"6 meses","paywall.plan.yearly":"Anual","paywall.priceSuffix.month":"/mês","paywall.price.loading":"Carregando preço…","paywall.priceTotal":"Total {{total}}","paywall.savings":"Economize {{percent}}%","paywall.recommended":"Melhor valor","paywall.continueButton":"Ir para o pagamento","paywall.continueLoading":"Redirecionando...","paywall.close":"Fechar","paywall.error.loginRequired":"Você precisa entrar antes de fazer upgrade.","paywall.error.goLogin":"Entrar","paywall.error.network":"Falha ao criar sessão de pagamento. Tente novamente.","paywall.error.priceUnavailable":"Preço indisponível. Tente novamente.","paywall.confirm.title":"Aguardando pagamento","paywall.confirm.message":"A página de pagamento foi aberta em uma nova aba. Conclua o pagamento no Stripe e volte aqui para clicar no botão abaixo.","paywall.confirm.completed":"Concluí o pagamento","paywall.confirm.cancel":"Cancelar","paywall.confirm.checking":"Verificando…","paywall.confirm.retry":"Tentar novamente","paywall.confirm.notYet":"Status Pro ainda não detectado. Se você acabou de pagar, aguarde um momento e tente novamente.","paywall.confirm.notYetMax":"Acesso Max ainda não detectado. Se você acabou de pagar, aguarde um momento e tente novamente.","options.highlight.title":"Aparência","options.highlight.description":"Gerenciar estilos e cores de destaque.","options.highlight.panelTitle":"Estilo de destaque","options.highlight.panelDescription":"Como as palavras salvas aparecem nas páginas web e o sistema de cores.","options.card.themeTitle":"Tema do cartão","options.card.themeDescription":"Alterar o estilo visual do cartão do dicionário.","options.card.theme.warm":"Acolhedor","options.card.theme.classic":"Clássico","options.card.theme.fresh":"Fresco","options.highlight.enable":"Ativar destaque","options.highlight.enableDesc":"Ao desativar, as palavras salvas não serão mais destacadas nas páginas web.","options.highlight.inlineAnnotation":"Mostrar definições em linha","options.highlight.inlineAnnotationDesc":"Exibe a classe gramatical e a definição ao lado das palavras destacadas, ex: Reload(v.recarregar).","options.highlight.trigger":"Acionamento do painel","options.highlight.triggerDesc":"Escolha se palavras destacadas abrem o painel por clique, ao passar o cursor ou sem ação.","options.highlight.trigger.none":"Sem ação","options.highlight.styleSelect":"Seleção de estilo","options.highlight.colorSelect":"Seleção de cor","options.highlight.opacity":"Opacidade do destaque","options.highlight.opacityDesc":"Ajuste a transparência da cor de destaque nas páginas.","options.highlight.style.none":"Nenhum","options.highlight.style.background":"Fundo","options.highlight.style.text":"Cor do texto","options.highlight.style.underline":"Sublinhado","options.highlight.style.doubleUnderline":"Sublinhado duplo","options.highlight.style.wavy":"Ondulado","options.highlight.style.dotted":"Pontilhado","options.highlight.style.dashed":"Tracejado","options.tagHighlight.panelTitle":"Destaque por etiqueta","options.tagHighlight.panelDescription":"Destacar palavras em páginas web com base em etiquetas e faixas de frequência.","options.tagHighlight.enable":"Ativar destaque por etiqueta","options.tagHighlight.enableDesc":"Destaca automaticamente as palavras que correspondam às regras configuradas.","options.tagHighlight.addRule":"Adicionar regra","options.tagHighlight.tag":"Etiqueta","options.tagHighlight.frqRange":"Faixa de frequência","options.tagHighlight.frqMin":"Mín","options.tagHighlight.frqMax":"Máx","options.tagHighlight.noRules":"Sem regras. Clique no botão acima para adicionar.","options.tagHighlight.deleteRule":"Excluir","options.tagHighlight.style":"Estilo","options.tagHighlight.color":"Cor","options.tagHighlight.enabled":"Ativado","options.translation.title":"Tradução","options.translation.description":"Gerencie a tradução bilíngue de páginas e a tradução de seleção.","options.autoTranslate.title":"Tradução automática de páginas","options.autoTranslate.description":"Inicie automaticamente a tradução bilíngue nos sites configurados.","options.autoTranslate.enable":"Ativar tradução automática","options.autoTranslate.enableDesc":"Só inicia quando um domínio abaixo corresponder; atualize páginas já abertas.","options.autoTranslate.domains":"Domínios de sites","options.autoTranslate.domainsDesc":"Um domínio base também corresponde aos subdomínios; reddit.com corresponde a www.reddit.com.","options.autoTranslate.placeholder":"Digite um domínio ou URL, ex.: medium.com","options.autoTranslate.add":"Adicionar","options.autoTranslate.remove":"Remover","options.autoTranslate.invalidDomain":"Digite um domínio ou URL HTTP(S) válido.","options.autoTranslate.duplicateDomain":"Esse domínio já está na lista.","options.autoTranslate.empty":"Nenhum domínio. A tradução automática não iniciará em nenhum site.","options.dictionary.title":"Conteúdo do dicionário","options.dictionary.description":"Controle os níveis de definição e exemplos exibidos nos cartões de palavras.","options.dictionary.showExamples":"Mostrar exemplos","options.dictionary.showExamplesDesc":"Exibir frases de exemplo nas definições.","options.dictionary.tabs.title":"Configurações de pesquisa","options.dictionary.tabs.description":"Configure a ordem de exibição e o estado de ativação das abas de pesquisa do dicionário. Efetivo apenas quando o idioma nativo é chinês e o idioma de aprendizagem é inglês.","options.dictionary.tabs.ai":"Pesquisa IA","options.dictionary.tabs.simple":"Dict. rápido","options.dictionary.tabs.dictionary":"Dict. profissional","options.dictionary.tabs.moveUp":"Mover para cima","options.dictionary.tabs.moveDown":"Mover para baixo","options.floating.title":"Tradução de seleção","options.floating.description":"Defina a aparência, tamanho, cor, opacidade e estilo do botão flutuante.","options.floating.enable":"Ativar botão flutuante","options.floating.enableDesc":"Mostrar entrada de tradução após selecionar texto.","options.floating.trigger":"Modo de ativação","options.floating.triggerDesc":"Clique ou passe o cursor para ativar a tradução.","options.floating.trigger.click":"Clique","options.floating.trigger.hover":"Passar cursor","options.floating.size":"Tamanho do botão","options.floating.sizeDesc":"Ajuste o tamanho de acordo com sua preferência.","options.floating.size.xsmall":"Muito pequeno","options.floating.size.small":"Pequeno","options.floating.size.medium":"Médio","options.floating.size.large":"Grande","options.floating.style":"Estilo do botão","options.floating.styleDesc":"Ícone, ponto ou texto.","options.floating.style.icon":"Ícone","options.floating.style.dot":"Ponto","options.floating.color":"Cor do botão","options.floating.colorDesc":"Escolha uma cor predefinida ou personalizada.","options.floating.opacity":"Opacidade do botão","options.floating.opacityDesc":"Ajuste a transparência do botão flutuante nas páginas.","options.hotkeys.title":"Atalhos de teclado","options.hotkeys.description":"Salvamento automático ao perder foco ou com Enter.","options.companion.title":"App para iOS","options.companion.description":"Sua coleção no bolso — revise palavras e frases salvas onde estiver.","options.companion.platform":"para iPhone · iPad","options.companion.pitch":"Abra cada palavra e frase que você salvou, direto do seu iPhone.","options.companion.feat1":"Reveja suas palavras e frases salvas a qualquer momento","options.companion.feat2":"Fortaleça a memória com repetição espaçada","options.companion.feat3":"Explore livros de vocabulário selecionados para um estudo sistemático","options.companion.cta":"Baixar na App Store","options.favorites.title":"Ver palavras salvas","options.companion.syncTitle":"Sincronização entre dispositivos","options.companion.syncDesc":"Entre na web e no app para iOS com a mesma Conta Apple para sincronizar os dados salvos.","options.contact.title":"Site e contato","options.contact.description":"Visite o site do SentenWord ou fale comigo por e-mail e WeChat.","options.contact.website":"Site oficial","options.contact.websiteDesc":"Conheça o produto, sua conta e as últimas novidades.","options.contact.email":"E-mail","options.contact.emailDesc":"Para ideias, relatos de problemas e colaborações.","options.contact.signoff":"Cada mensagem ajuda a tornar o SentenWord ainda melhor.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Escaneie o QR code no WeChat para me adicionar aos contatos.","options.speech.title":"Leitura por voz","options.speech.description":"Configure a voz usada para ler o texto original e a tradução.","options.speech.enable":"Ativar leitura","options.speech.enableDesc":"Mostrar botões de alto-falante no cartão de tradução.","options.speech.rate":"Velocidade","options.speech.rateDesc":"0,5× a 2,0×, padrão 1,0×.","options.speech.pitch":"Tom","options.speech.pitchDesc":"0,5 a 1,5, padrão 1,0.","options.speech.voices":"Vozes","options.speech.provider":"Motor","options.speech.providerDesc":"Edge usa vozes Microsoft Neural (online, melhor qualidade). Sistema usa vozes do navegador (offline).","options.speech.providerEdge":"Edge (alta qualidade)","options.speech.providerWeb":"Sistema","options.speech.edgeVoicesDesc":"Escolha uma voz Microsoft Neural. Em caso de falha, retrocede para a voz do sistema.","options.speech.voicesDesc":"Escolha uma voz preferida por idioma. Vozes em nuvem (☁) costumam soar melhor.","options.speech.auto":"Auto (melhor)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Testar","options.speech.noVoices":"Nenhuma voz detectada neste navegador. Verifique as configurações de voz do sistema.","options.hotkeys.quickSearch":"Busca rápida","options.hotkeys.quickSearchDesc":"Abrir janela de busca rápida.","options.hotkeys.paragraph":"Tradução de parágrafo","options.hotkeys.paragraphDesc":"Traduzir o parágrafo sob o cursor.","options.ai.title":"Tradução IA","options.ai.description":"Escolha seu serviço de tradução IA: serviço integrado ou configure sua própria chave API.","options.ai.usingCustom":"API personalizada","options.ai.usingBackend":"IA integrada","options.ai.providerLabel":"Provedor: {{provider}}","options.ai.enable":"Serviço IA","options.ai.enableDesc":"Ao ativar, usa seu provedor e modelo configurados.","options.ai.enableDescBackend":"Usar o serviço de tradução IA integrado fornecido pelo SentenWord.","options.ai.enableDescCustom":"Usar sua própria chave API e modelo. As chaves são armazenadas apenas localmente.","options.ai.provider":"Provedor","options.ai.providerDesc":"Escolha um provedor.","options.ai.configWarningTitle":"IA não configurada","options.ai.missingKeyWarning":"Ainda não há chave de API do {{provider}} — tradução com IA, consulta de palavras e tradução de legendas vão falhar.","options.ai.incompleteCustomWarning":"Sua API personalizada ainda não tem: {{fields}}. Os recursos de IA ficam indisponíveis até completar.","options.ai.fieldBaseUrl":"URL base","options.ai.fieldApiKey":"chave de API","options.ai.fieldModel":"nome do modelo","options.ai.freeProviderNote":"Endpoint público gratuito — sem necessidade de chave API. Explicações de palavras usam o backend integrado.","options.ai.kind":"Tipo de serviço","options.ai.kindDesc":"Modelos de IA fornecem definições e análise gramatical. A tradução gratuita não exige chave de API, mas traduz apenas frases inteiras; os recursos de definição voltam ao serviço integrado.","options.ai.kindModel":"Modelo de IA","options.ai.kindPlain":"Tradução gratuita","options.engine.title":"Motores de tradução atuais","options.engine.description":"A mesma configuração se comporta de forma diferente em cada recurso. Estes são os serviços realmente usados.","options.engine.page":"Tradução de página","options.engine.selection":"Tradução de seleção","options.engine.subtitle":"Legendas do YouTube","options.engine.backend":"Serviço integrado","options.engine.fallbackPlain":"{{provider}} não gera definições de dicionário; este recurso volta ao serviço integrado.","options.engine.fallbackUnconfigured":"Nenhuma chave de API configurada; este recurso volta ao serviço integrado.","options.engine.unconfigured":"Nenhuma chave de API configurada — este recurso vai falhar.","options.engine.goToAi":"Ir para as configurações de IA","options.subtitle.title":"Legendas do YouTube","options.subtitle.description":"Como as legendas bilíngues são exibidas e como a reprodução se comporta.","options.subtitle.secondaryMode":"Legenda secundária","options.subtitle.secondaryModeDesc":"Controla como a tradução aparece. Desfoque para se testar e clique para revelar.","options.subtitle.modeNormal":"Normal","options.subtitle.modeBlur":"Desfocar","options.subtitle.modeHide":"Ocultar","options.subtitle.autoPause":"Pausa automática por legenda","options.subtitle.autoPauseDesc":"Pausa o vídeo ao fim de cada linha de legenda, útil para shadowing.","options.ai.apiKey":"Chave API","options.ai.apiKeyDesc":"Salvo automaticamente ao perder foco.","options.ai.model":"Modelo","options.ai.openaiModelDesc":"Modelo padrão: gpt-4o-mini.","options.ai.openrouterModelDesc":"Exemplo: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Modelo padrão: deepseek-chat.","options.ai.customBaseUrl":"URL base da API","options.ai.customBaseUrlDesc":"URL de API compatível com OpenAI (Qwen, Zhipu, Moonshot, etc.).","options.ai.customModelDesc":"Nome do modelo (qwen-turbo, glm-4, etc.).","options.ai.translatePrompt":"Prompt de tradução","options.ai.translatePromptDesc":"Prompt personalizado enviado à IA para tradução. A IA determina automaticamente se é uma palavra ou uma passagem.","options.ai.promptReset":"Restaurar padrão","options.ai.promptVariablesHint":"Variáveis disponíveis: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Destaque atual","options.metrics.customAI":"IA personalizada","options.metrics.enabled":"Ativado","options.metrics.disabled":"Desativado","options.metrics.account":"Status da conta","options.metrics.loading":"Carregando","options.metrics.loggedIn":"Conectado","options.metrics.notLoggedIn":"Não conectado","options.metrics.syncHint":"Faça login para sincronizar recursos na nuvem","options.metrics.syncingHint":"Sincronizando informações da conta","common.saving":"Salvando","common.saveFailed":"Falha ao salvar, tente novamente","common.loading":"Carregando configurações...","common.definitionGenerating":"A definição está sendo gerada. Tente novamente em instantes.","common.unknownError":"Erro desconhecido","common.pageTranslateLoginRequired":"Faça login para usar a tradução de página.","common.trialQuotaExceededLogin":"As tentativas gratuitas se esgotaram. Faça login para continuar.","common.translationQuotaExceededUpgrade":"A cota de tradução se esgotou. Faça upgrade do plano ou tente novamente mais tarde.","common.rateLimitNotLoggedIn":"Muitas solicitações. Faça login para obter mais cota de tradução.","common.freeQuotaExceeded":"Limite de uso mensal atingido, redefine em {{resetTime}}. Faça upgrade para Pro para limites mais altos","common.proQuotaExceeded":"Limite de uso mensal atingido, redefine em {{resetTime}}","common.quotaExceeded.title":"Cota mensal esgotada","common.quotaExceeded.reset":"Redefine em {{resetTime}}","common.toast.loginRequiredTitle":"Login necessário","common.toast.quotaInsufficientTitle":"Cota insuficiente","common.toast.translationErrorTitle":"Erro de tradução","common.toast.loginAction":"Entrar","common.toast.laterAction":"Mais tarde","common.toast.upgradeAction":"Fazer upgrade do plano","common.toast.closeAction":"Fechar","common.toast.aiConfigTitle":"IA não configurada","common.toast.openSettingsAction":"Abrir configurações","common.aiConfigNotEnabled":"Ative e configure a IA personalizada nas configurações primeiro.","common.aiConfigMissingKey":"A IA personalizada ({{provider}}) está ativada, mas não há chave de API. Adicione sua chave nas configurações ou volte ao serviço de IA integrado.","common.aiConfigIncompleteCustom":"Sua API personalizada está incompleta. Preencha a URL base, a chave de API e o nome do modelo nas configurações.","common.aiConfigUnsupportedProvider":"{{provider}} só oferece tradução simples. Escolha um provedor de LLM nas configurações para usar os recursos de IA.","common.sessionExpiredTitle":"Sessão expirada","common.sessionExpiredDesc":"Faça login novamente para continuar usando todos os recursos.","common.sessionReloginAction":"Entrar novamente","common.preview":"Visualização","common.unexpectedError":"Ocorreu um erro inesperado","footer.copyright":"SentenWord | Tradução inteligente","color.amber":"Âmbar","color.green":"Verde","color.blue":"Azul","color.indigo":"Índigo","color.coral":"Coral","color.orange":"Laranja","color.cyan":"Ciano","color.brown":"Marrom","color.red":"Vermelho","color.gold":"Dourado","color.magenta":"Magenta","color.darkGray":"Cinza escuro","color.custom":"Personalizado","color.customHighlight":"Cor de destaque personalizada","color.customButton":"Cor de botão personalizada","welcome.subtitle":"Bem-vindo ao SentenWord, vamos configurar o básico","welcome.nativeLanguage":"Seu idioma nativo","welcome.nativeLanguageDesc":"O idioma da interface mudará automaticamente com base nesta configuração.","welcome.learningLanguage":"Idioma que deseja aprender","welcome.learningLanguageDesc":"Selecione o idioma alvo que está aprendendo.","welcome.getStarted":"Começar","welcome.account":"Conta","welcome.accountDesc":"Faça login para sincronizar seu vocabulário e progresso de aprendizado.","welcome.login":"Entrar / Cadastrar","welcome.maybeLater":"Talvez depois","welcome.loggedInAs":"Conectado","welcome.next":"Próximo","welcome.back":"Voltar","popup.title":"SentenWord | Tradução Inteligente","popup.settings":"Configurações","popup.quickSearch":"Pesquisa rápida","popup.stopTranslate":"Parar tradução","popup.translatePage":"Traduzir página","popup.translationEnabled":"Tradução ativada","popup.visitWebsite":"Visitar site","popup.wordBook":"Caderno de palavras","popup.login":"Entrar","popup.loginDesc":"Entre para sincronizar dados","popup.screenshot":"OCR de captura","screenshot.hint":"Arraste para selecionar uma área · Esc para cancelar","screenshot.processing":"Reconhecendo…","screenshot.empty":"Nenhum texto detectado","screenshot.failed":"Falha no reconhecimento","screenshot.loginRequired":"Entre para usar o OCR de captura","screenshot.quotaExceeded":"Cota mensal esgotada. Tente novamente mais tarde ou atualize seu plano.","screenshot.translation":"Tradução","screenshot.close":"Fechar","screenshot.copy":"Copiar","screenshot.copied":"Copiado","card.title":"SentenWord | Tradução Inteligente","card.wordBook":"Caderno de palavras","card.tabSimpleDictionary":"Dict. rápido","card.tabDictionary":"Dicionário","card.tabAI":"Explicação IA","card.detailedExplanation":"Explicação detalhada","card.detailedExplanationLoading":"Gerando explicação...","card.detailedExplanationRetry":"Tentar novamente","card.originalText":"Texto original","card.translationText":"Tradução","card.closeDetailedExplanation":"Fechar explicação detalhada","card.closeCard":"Fechar cartão","card.settings":"Configurações","collection.title":"Coletar","collection.closeModal":"Fechar janela de coleção","collection.folder":"Coleção","collection.loading":"Carregando...","collection.defaultFolder":"Coleção padrão","collection.loadingHint":"Carregando…","collection.word":"Palavra *","collection.wordPlaceholder":"Digite uma palavra","collection.partOfSpeech":"Classe","collection.partOfSpeechPlaceholder":"Classe gramatical","collection.phonetic":"Fonética","collection.phoneticPlaceholder":"ex. /mɪˈlɛniə/","collection.meaning":"Definição","collection.meaningPlaceholder":"Definição da palavra","collection.context":"Contexto *","collection.contextPlaceholder":"Digite a frase completa","collection.contextTranslation":"Tradução do contexto","collection.contextTranslationPlaceholder":"Tradução da frase de contexto","collection.examples":"Exemplos adicionais","collection.examplesHint":"(opcional, um por linha)","collection.examplesPlaceholder":"Digite exemplos adicionais, um por linha","collection.saving":"Salvando...","collection.save":"Salvar","collection.saveSuccess":"Salvo com sucesso","collection.saveToFolder":"Salvar em","collection.saveSuccessTo":"Salvo em “{{name}}”","collection.moveFailed":"Falha ao mover para a coleção","collection.saveFailed":"Falha ao salvar","collection.notLoggedIn":"Não conectado, não é possível salvar","collection.notLoggedInLoad":"Não conectado, não é possível carregar coleções","collection.loadFailed":"Falha ao carregar coleções","collection.wordRequired":"Por favor, insira uma palavra/frase","collection.contextTooLong":"O contexto não pode exceder {{max}} caracteres","youtube.machineTranslate":"Tradução automática","youtube.aiTranslate":"Tradução IA","youtube.subtitlePanel":"Painel de legendas","youtube.closePanel":"Fechar painel de legendas","youtube.panelAriaLabel":"Abas do painel de legendas","youtube.tabSubtitles":"Legendas","youtube.tabSettings":"Configurações","youtube.downloadSrt":"Baixar SRT bilíngue","youtube.noSubtitles":"Sem legendas","youtube.showBilingualSubtitle":"Mostrar legendas bilíngues","youtube.showBilingualSubtitleDesc":"Alternar a sobreposição de legendas bilíngues no vídeo","youtube.enableSubtitleList":"Ativar lista de legendas","youtube.enableSubtitleListDesc":"Quando desativado, o painel de legendas será ocultado","youtube.autoScroll":"Rolagem automática","youtube.autoScrollDesc":"Rolar automaticamente para a frase atual durante a reprodução","youtube.noDownloadableSubtitle":"Nenhuma legenda disponível para download","youtube.loadSecondaryFirst":"Carregue as legendas secundárias antes de baixar o SRT bilíngue","youtube.exportEmpty":"Falha na exportação de legendas: conteúdo vazio","youtube.downloadStarted":"Download do SRT bilíngue iniciado","youtube.downloadFailed":"Falha no download do SRT bilíngue","youtube.subtitleTranslateFallbackFailed":"Falha na tradução dos subtítulos, tente novamente mais tarde","youtube.primaryLoadFailed":"Falha ao carregar legendas principais","youtube.machineTranslateUnavailable":"Tradução automática indisponível, alternado para tradução IA","youtube.machineTranslateFailed":"Falha na tradução automática, alternado para tradução IA","youtube.secondaryLoadFailed":"Falha ao carregar legendas secundárias","youtube.aiTranslateEnabled":"Tradução IA sob demanda ativada","youtube.fetchingMachineTranslate":"Obtendo legendas de tradução automática...","youtube.subtitleContentEmpty":"Faixa de legendas encontrada, mas não há legendas exibíveis disponíveis","youtube.noAvailableSubtitles":"Nenhuma legenda disponível para este vídeo","youtube.trackLoadFailed":"Falha ao carregar faixas de legendas","youtube.btnSubtitleOn":"SentenWord Legendas bilíngues (Ligado)","youtube.btnSubtitleOff":"SentenWord Legendas bilíngues (Desligado)","youtube.btnPanelOn":"SentenWord Painel de legendas (Aberto)","youtube.btnPanelOff":"SentenWord Painel de legendas (Fechado)","youtube.btnSettings":"SentenWord Configurações de legendas","youtube.menuBilingualSubtitle":"Legendas bilíngues","youtube.menuSidebar":"Barra lateral de legendas","youtube.menuSettings":"Configurações","contextMenu.smartTranslate":"SentenWord | Tradução Inteligente","contextMenu.translatePage":"SentenWord | Traduzir página","contextMenu.restoreOriginal":"SentenWord | Restaurar original","quickSearch.title":"Pesquisa rápida","quickSearch.dictionary":"Dicionário","quickSearch.ai":"IA","quickSearch.dictPlaceholder":"Pesquisar uma palavra...","quickSearch.aiPlaceholder":"Digite uma palavra ou frase para explicação IA...","quickSearch.submit":"Pesquisar","quickSearch.hint":"Ctrl+Shift+F para abrir · Enter para pesquisar · Tab para mudar modo · Escape para fechar","subtitle.loading":"Carregando legendas...","subtitle.ready":"Legendas prontas, aguardando início da fala","subtitle.notDetected":"Nenhuma legenda exibível detectada, continue a reprodução ou tente outro vídeo","floating.translate":"Traduzir","word.viewInDict":"Ver no {{name}}","word.unfavorite":"Remover dos favoritos","speech.playOriginal":"Reproduzir original","speech.playTranslation":"Reproduzir tradução","word.favorite":"Adicionar aos favoritos","ai.favoritePhrase":"Adicionar frase aos favoritos","ai.collapse":"Recolher","ai.viewAll":"Ver tudo ({{count}})","ai.noResult":"Sem resultados de tradução","ai.loading":"Carregando...","common.expand":"Ver tudo","common.collapseText":"Recolher","common.translating":"Traduzindo...","options.changelog.title":"Histórico de alterações","update.action":"Nova versão disponível"},Um={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Gestisci la tua esperienza di traduzione, la visualizzazione del dizionario e le impostazioni IA personalizzate. Configura le preferenze visive, di interazione e prestazioni qui.","options.language.title":"Impostazioni lingua","options.language.description":"Configura la tua lingua madre e la lingua obiettivo che stai imparando.","options.language.native":"Lingua madre","options.language.nativeDesc":"La lingua dell'interfaccia cambierà automaticamente in base a questa impostazione.","options.language.learning":"Lingua obiettivo di apprendimento","options.language.learningDesc":"La lingua che stai imparando, usata per traduzione e dizionario.","options.account.title":"Account e connessione","options.account.description":"Gestisci lo stato di accesso e il comportamento dell'estensione.","options.account.label":"Account","options.account.loading":"Caricamento stato di accesso","options.account.loggedIn":"Connesso: ","options.account.notLoggedIn":"Non connesso. Vai alla pagina di autorizzazione per accedere.","options.account.logout":"Esci","options.account.login":"Accedi","options.account.loggedOut":"Disconnesso","options.account.profile":"Profilo","options.account.avatar":"Avatar","options.account.name":"Nome visualizzato","options.account.namePlaceholder":"Inserisci il nome visualizzato","options.account.save":"Salva","options.account.saving":"Salvataggio...","options.account.profileUpdated":"Profilo aggiornato","options.account.profileUpdateFailed":"Aggiornamento non riuscito, riprova","options.account.editProfile":"Modifica profilo","options.account.cancel":"Annulla","options.usage.title":"Utilizzo","options.usage.description":"Utilizzo dei token AI","options.usage.monthly":"Quota del periodo corrente","options.usage.used":"Utilizzato","options.usage.limit":"Limite","options.usage.resetAt":"Reset alle","options.usage.tokens":"tokens","options.usage.loadFailed":"Caricamento utilizzo fallito","options.usage.loginRequired":"Accedi per visualizzare l'utilizzo","options.usage.upgradeToPro":"Passa a Pro","options.usage.upgradeToMax":"Passa a Max","options.usage.dailyBreakdown":"Dettaglio giornaliero","options.usage.dailyTitle":"Utilizzo giornaliero del periodo","options.usage.dailySubtitle":"L'altezza delle barre riflette il consumo relativo del giorno · Passa il mouse per vedere la percentuale sul totale del periodo","options.usage.monthTotal":"Totale del periodo","options.usage.dailyEmpty":"Impossibile caricare i dettagli","options.usage.dailyNote":"Nota: i tokens rappresentano l'unità di consumo di questo sistema, non il conteggio di tokens di un modello specifico.","options.usage.dailyLoadFailed":"Caricamento dei dettagli non riuscito","paywall.title":"Passa a SentenWord Pro","paywall.subtitle":"Ottieni una quota IA mensile stabile e funzioni di traduzione premium.","paywall.max.title":"Passa a SentenWord Max","paywall.max.subtitle":"Una quota mensile più ampia per traduzioni, sottotitoli IA e spiegazioni frequenti.","paywall.oneTimeNotice":"Acquisto una tantum per 1 mese, senza rinnovo automatico.","paywall.feature.quota":"300.000 token IA al mese","paywall.feature.maxQuota":"Quota token IA: 300.000 → 2.000.000 al mese","paywall.feature.subtitles":"Sottotitoli bilingue con IA su YouTube","paywall.feature.priority":"Accesso prioritario e supporto dedicato","paywall.plan.monthly":"1 mese","paywall.plan.quarterly":"Trimestrale","paywall.plan.halfYear":"6 mesi","paywall.plan.yearly":"Annuale","paywall.priceSuffix.month":"/mese","paywall.price.loading":"Caricamento prezzo…","paywall.priceTotal":"Totale {{total}}","paywall.savings":"Risparmia {{percent}}%","paywall.recommended":"Miglior valore","paywall.continueButton":"Vai al pagamento","paywall.continueLoading":"Reindirizzamento...","paywall.close":"Chiudi","paywall.error.loginRequired":"Devi accedere prima di passare a Pro.","paywall.error.goLogin":"Accedi","paywall.error.network":"Impossibile creare la sessione di pagamento. Riprova.","paywall.error.priceUnavailable":"Prezzo non disponibile. Riprova.","paywall.confirm.title":"In attesa del pagamento","paywall.confirm.message":"La pagina di pagamento è stata aperta in una nuova scheda. Completa il pagamento su Stripe, poi torna qui e clicca il pulsante.","paywall.confirm.completed":"Ho completato il pagamento","paywall.confirm.cancel":"Annulla","paywall.confirm.checking":"Verifica in corso…","paywall.confirm.retry":"Riprova","paywall.confirm.notYet":"Stato Pro non ancora rilevato. Se hai appena pagato, attendi un momento e riprova.","paywall.confirm.notYetMax":"Accesso Max non ancora rilevato. Se hai appena pagato, attendi un momento e riprova.","options.highlight.title":"Aspetto","options.highlight.description":"Gestisci stili e colori di evidenziazione.","options.highlight.panelTitle":"Stile evidenziazione","options.highlight.panelDescription":"Come appaiono le parole salvate sulle pagine web e il sistema di colori.","options.card.themeTitle":"Tema scheda","options.card.themeDescription":"Cambia lo stile visivo della scheda dizionario.","options.card.theme.warm":"Caldo","options.card.theme.classic":"Classico","options.card.theme.fresh":"Fresco","options.highlight.enable":"Attiva evidenziazione","options.highlight.enableDesc":"Se disattivato, le parole salvate non saranno più evidenziate sulle pagine web.","options.highlight.inlineAnnotation":"Mostra definizioni in linea","options.highlight.inlineAnnotationDesc":"Mostra la categoria grammaticale e la definizione accanto alle parole evidenziate, es: Reload(v.ricaricare).","options.highlight.trigger":"Attivazione pannello","options.highlight.triggerDesc":"Scegli se le parole evidenziate aprono il pannello al clic, al passaggio del mouse o mai.","options.highlight.trigger.none":"Nessuna azione","options.highlight.styleSelect":"Selezione stile","options.highlight.colorSelect":"Selezione colore","options.highlight.opacity":"Opacità evidenziazione","options.highlight.opacityDesc":"Regola la trasparenza del colore di evidenziazione nelle pagine.","options.highlight.style.none":"Nessuno","options.highlight.style.background":"Sfondo","options.highlight.style.text":"Colore testo","options.highlight.style.underline":"Sottolineato","options.highlight.style.doubleUnderline":"Doppia sottolineatura","options.highlight.style.wavy":"Ondulato","options.highlight.style.dotted":"Punteggiato","options.highlight.style.dashed":"Tratteggiato","options.tagHighlight.panelTitle":"Evidenziazione per etichetta","options.tagHighlight.panelDescription":"Evidenzia le parole sulle pagine web in base a etichette e intervalli di frequenza.","options.tagHighlight.enable":"Attiva evidenziazione per etichetta","options.tagHighlight.enableDesc":"Evidenzia automaticamente le parole corrispondenti alle regole configurate.","options.tagHighlight.addRule":"Aggiungi regola","options.tagHighlight.tag":"Etichetta","options.tagHighlight.frqRange":"Intervallo di frequenza","options.tagHighlight.frqMin":"Min","options.tagHighlight.frqMax":"Max","options.tagHighlight.noRules":"Nessuna regola. Clicca il pulsante sopra per aggiungerne una.","options.tagHighlight.deleteRule":"Elimina","options.tagHighlight.style":"Stile","options.tagHighlight.color":"Colore","options.tagHighlight.enabled":"Attivo","options.translation.title":"Traduzione","options.translation.description":"Gestisci la traduzione bilingue delle pagine e la traduzione della selezione.","options.autoTranslate.title":"Traduzione automatica delle pagine","options.autoTranslate.description":"Avvia automaticamente la traduzione bilingue sui siti configurati.","options.autoTranslate.enable":"Attiva traduzione automatica","options.autoTranslate.enableDesc":"Si avvia solo se un dominio corrisponde; ricarica le pagine già aperte.","options.autoTranslate.domains":"Domini dei siti","options.autoTranslate.domainsDesc":"Un dominio base include anche i sottodomini; reddit.com corrisponde a www.reddit.com.","options.autoTranslate.placeholder":"Inserisci un dominio o URL, es. medium.com","options.autoTranslate.add":"Aggiungi","options.autoTranslate.remove":"Rimuovi","options.autoTranslate.invalidDomain":"Inserisci un dominio o URL HTTP(S) valido.","options.autoTranslate.duplicateDomain":"Questo dominio è già nell'elenco.","options.autoTranslate.empty":"Nessun dominio. La traduzione automatica non verrà avviata su alcun sito.","options.dictionary.title":"Contenuto dizionario","options.dictionary.description":"Controlla i livelli di definizione e gli esempi mostrati nelle schede parole.","options.dictionary.showExamples":"Mostra esempi","options.dictionary.showExamplesDesc":"Mostra frasi di esempio nelle definizioni.","options.dictionary.tabs.title":"Impostazioni di ricerca","options.dictionary.tabs.description":"Configura l'ordine di visualizzazione e lo stato di attivazione delle schede di ricerca del dizionario. Effettivo solo quando la lingua madre è il cinese e la lingua di apprendimento è l'inglese.","options.dictionary.tabs.ai":"Ricerca IA","options.dictionary.tabs.simple":"Diz. rapido","options.dictionary.tabs.dictionary":"Diz. professionale","options.dictionary.tabs.moveUp":"Sposta su","options.dictionary.tabs.moveDown":"Sposta giù","options.floating.title":"Traduzione selezione","options.floating.description":"Definisci l'aspetto, la dimensione, il colore, l'opacità e lo stile del pulsante mobile.","options.floating.enable":"Attiva pulsante mobile","options.floating.enableDesc":"Mostra ingresso traduzione dopo la selezione del testo.","options.floating.trigger":"Modalità di attivazione","options.floating.triggerDesc":"Clic o passaggio del mouse per attivare la traduzione.","options.floating.trigger.click":"Clic","options.floating.trigger.hover":"Passaggio mouse","options.floating.size":"Dimensione pulsante","options.floating.sizeDesc":"Regola la dimensione secondo le tue preferenze.","options.floating.size.xsmall":"Molto piccolo","options.floating.size.small":"Piccolo","options.floating.size.medium":"Medio","options.floating.size.large":"Grande","options.floating.style":"Stile pulsante","options.floating.styleDesc":"Icona, punto o testo.","options.floating.style.icon":"Icona","options.floating.style.dot":"Punto","options.floating.color":"Colore pulsante","options.floating.colorDesc":"Scegli un colore preimpostato o personalizzato.","options.floating.opacity":"Opacità pulsante","options.floating.opacityDesc":"Regola la trasparenza del pulsante mobile nelle pagine.","options.hotkeys.title":"Scorciatoie da tastiera","options.hotkeys.description":"Salvataggio automatico alla perdita del focus o con Invio.","options.companion.title":"App iOS","options.companion.description":"La tua raccolta in tasca — rivedi parole e frasi salvate ovunque tu sia.","options.companion.platform":"per iPhone · iPad","options.companion.pitch":"Apri ogni parola e frase che hai salvato, direttamente dal tuo iPhone.","options.companion.feat1":"Rivedi parole e frasi salvate quando vuoi","options.companion.feat2":"Consolida la memoria con la ripetizione dilazionata","options.companion.feat3":"Scopri raccolte di vocaboli per uno studio sistematico","options.companion.cta":"Scarica su App Store","options.favorites.title":"Vedi parole salvate","options.companion.syncTitle":"Sincronizzazione tra dispositivi","options.companion.syncDesc":"Accedi sul Web e nell’app iOS con lo stesso Apple Account per sincronizzare i dati salvati.","options.contact.title":"Sito e contatti","options.contact.description":"Visita il sito di SentenWord o contattami via e-mail e WeChat.","options.contact.website":"Sito ufficiale","options.contact.websiteDesc":"Scopri il prodotto, il tuo account e le ultime novità.","options.contact.email":"E-mail","options.contact.emailDesc":"Per idee, segnalazioni di problemi e collaborazioni.","options.contact.signoff":"Ogni messaggio contribuisce a migliorare SentenWord.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Scansiona il codice QR in WeChat per aggiungermi ai contatti.","options.speech.title":"Lettura vocale","options.speech.description":"Configura la voce usata per leggere il testo originale e la traduzione.","options.speech.enable":"Attiva lettura","options.speech.enableDesc":"Mostra i pulsanti altoparlante sulla scheda di traduzione.","options.speech.rate":"Velocità","options.speech.rateDesc":"Da 0,5× a 2,0×, predefinito 1,0×.","options.speech.pitch":"Tono","options.speech.pitchDesc":"Da 0,5 a 1,5, predefinito 1,0.","options.speech.voices":"Voci","options.speech.provider":"Motore","options.speech.providerDesc":"Edge usa voci Microsoft Neural (online, qualità migliore). Sistema usa le voci del browser (offline).","options.speech.providerEdge":"Edge (alta qualità)","options.speech.providerWeb":"Sistema","options.speech.edgeVoicesDesc":"Scegli una voce Microsoft Neural. In caso di errore torna alla voce di sistema.","options.speech.voicesDesc":"Scegli una voce preferita per lingua. Le voci cloud (☁) suonano solitamente meglio.","options.speech.auto":"Auto (migliore)","options.speech.autoWithName":"Auto — {{name}}","options.speech.test":"Prova","options.speech.noVoices":"Nessuna voce rilevata in questo browser. Controlla le impostazioni vocali del sistema.","options.hotkeys.quickSearch":"Ricerca rapida","options.hotkeys.quickSearchDesc":"Apri il popup di ricerca rapida.","options.hotkeys.paragraph":"Traduzione paragrafo","options.hotkeys.paragraphDesc":"Traduci il paragrafo sotto il cursore.","options.ai.title":"Traduzione IA","options.ai.description":"Scegli il tuo servizio di traduzione IA: servizio integrato o configura la tua chiave API.","options.ai.usingCustom":"API personalizzata","options.ai.usingBackend":"IA integrata","options.ai.providerLabel":"Provider: {{provider}}","options.ai.enable":"Servizio IA","options.ai.enableDesc":"Se attivato, usa il provider e il modello configurati.","options.ai.enableDescBackend":"Utilizza il servizio di traduzione IA integrato fornito da SentenWord.","options.ai.enableDescCustom":"Usa la tua chiave API e il tuo modello. Le chiavi sono memorizzate solo localmente.","options.ai.provider":"Provider","options.ai.providerDesc":"Scegli un provider.","options.ai.configWarningTitle":"IA non configurata","options.ai.missingKeyWarning":"Manca ancora la chiave API di {{provider}}: traduzione IA, ricerca parole e traduzione dei sottotitoli falliranno.","options.ai.incompleteCustomWarning":"Alla tua API personalizzata manca ancora: {{fields}}. Le funzioni IA restano non disponibili.","options.ai.fieldBaseUrl":"URL di base","options.ai.fieldApiKey":"chiave API","options.ai.fieldModel":"nome del modello","options.ai.freeProviderNote":"Endpoint pubblico gratuito — nessuna chiave API richiesta. Le spiegazioni delle parole usano il backend integrato.","options.ai.kind":"Tipo di servizio","options.ai.kindDesc":"I modelli IA forniscono definizioni e analisi grammaticale. La traduzione gratuita non richiede chiave API ma traduce solo frasi intere; le funzioni di definizione ricadono sul servizio integrato.","options.ai.kindModel":"Modello IA","options.ai.kindPlain":"Traduzione gratuita","options.engine.title":"Motori di traduzione attuali","options.engine.description":"La stessa impostazione si comporta diversamente per ogni funzione. Questi sono i servizi realmente usati.","options.engine.page":"Traduzione della pagina","options.engine.selection":"Traduzione della selezione","options.engine.subtitle":"Sottotitoli di YouTube","options.engine.backend":"Servizio integrato","options.engine.fallbackPlain":"{{provider}} non può generare definizioni; questa funzione ricade sul servizio integrato.","options.engine.fallbackUnconfigured":"Nessuna chiave API configurata; questa funzione ricade sul servizio integrato.","options.engine.unconfigured":"Nessuna chiave API configurata: questa funzione fallirà.","options.engine.goToAi":"Vai alle impostazioni IA","options.subtitle.title":"Sottotitoli di YouTube","options.subtitle.description":"Come vengono mostrati i sottotitoli bilingui e come si comporta la riproduzione.","options.subtitle.secondaryMode":"Sottotitolo secondario","options.subtitle.secondaryModeDesc":"Controlla come viene mostrata la traduzione. Sfocala per metterti alla prova, poi clicca per rivelarla.","options.subtitle.modeNormal":"Normale","options.subtitle.modeBlur":"Sfocato","options.subtitle.modeHide":"Nascosto","options.subtitle.autoPause":"Pausa automatica sui sottotitoli","options.subtitle.autoPauseDesc":"Mette in pausa il video alla fine di ogni sottotitolo, utile per lo shadowing.","options.ai.apiKey":"Chiave API","options.ai.apiKeyDesc":"Salvato automaticamente alla perdita del focus.","options.ai.model":"Modello","options.ai.openaiModelDesc":"Modello predefinito: gpt-4o-mini.","options.ai.openrouterModelDesc":"Esempio: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Modello predefinito: deepseek-chat.","options.ai.customBaseUrl":"URL base API","options.ai.customBaseUrlDesc":"URL API compatibile con OpenAI (Qwen, Zhipu, Moonshot, ecc.).","options.ai.customModelDesc":"Nome del modello (qwen-turbo, glm-4, ecc.).","options.ai.translatePrompt":"Prompt di traduzione","options.ai.translatePromptDesc":"Prompt personalizzato inviato all'IA per la traduzione. L'IA determina automaticamente se si tratta di una parola o di un passaggio.","options.ai.promptReset":"Ripristina predefinito","options.ai.promptVariablesHint":"Variabili disponibili: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Evidenziazione attuale","options.metrics.customAI":"IA personalizzata","options.metrics.enabled":"Attivato","options.metrics.disabled":"Disattivato","options.metrics.account":"Stato account","options.metrics.loading":"Caricamento","options.metrics.loggedIn":"Connesso","options.metrics.notLoggedIn":"Non connesso","options.metrics.syncHint":"Accedi per sincronizzare le funzionalità cloud","options.metrics.syncingHint":"Sincronizzazione informazioni account","common.saving":"Salvataggio","common.saveFailed":"Salvataggio fallito, riprova","common.loading":"Caricamento impostazioni...","common.definitionGenerating":"La definizione è in fase di generazione. Riprova tra poco.","common.unknownError":"Errore sconosciuto","common.pageTranslateLoginRequired":"Accedi per usare la traduzione della pagina.","common.trialQuotaExceededLogin":"Le prove gratuite sono esaurite. Accedi per continuare.","common.translationQuotaExceededUpgrade":"La quota di traduzione è esaurita. Passa a un piano superiore o riprova più tardi.","common.rateLimitNotLoggedIn":"Troppe richieste. Accedi per ottenere più quota di traduzione.","common.freeQuotaExceeded":"Limite di utilizzo mensile raggiunto, ripristino il {{resetTime}}. Passa a Pro per limiti più alti","common.proQuotaExceeded":"Limite di utilizzo mensile raggiunto, ripristino il {{resetTime}}","common.quotaExceeded.title":"Quota mensile esaurita","common.quotaExceeded.reset":"Ripristino il {{resetTime}}","common.toast.loginRequiredTitle":"Accesso richiesto","common.toast.quotaInsufficientTitle":"Quota insufficiente","common.toast.translationErrorTitle":"Errore di traduzione","common.toast.loginAction":"Accedi","common.toast.laterAction":"Più tardi","common.toast.upgradeAction":"Aggiorna piano","common.toast.closeAction":"Chiudi","common.toast.aiConfigTitle":"IA non configurata","common.toast.openSettingsAction":"Apri impostazioni","common.aiConfigNotEnabled":"Attiva e configura prima l'IA personalizzata nelle impostazioni.","common.aiConfigMissingKey":"L'IA personalizzata ({{provider}}) è attiva, ma manca la chiave API. Inseriscila nelle impostazioni o torna al servizio IA integrato.","common.aiConfigIncompleteCustom":"La tua API personalizzata è incompleta. Inserisci URL di base, chiave API e nome del modello nelle impostazioni.","common.aiConfigUnsupportedProvider":"{{provider}} supporta solo la traduzione semplice. Scegli un provider LLM nelle impostazioni per usare le funzioni IA.","common.sessionExpiredTitle":"Sessione scaduta","common.sessionExpiredDesc":"Accedi di nuovo per continuare a usare tutte le funzionalità.","common.sessionReloginAction":"Accedi di nuovo","common.preview":"Anteprima","common.unexpectedError":"Si è verificato un errore imprevisto","footer.copyright":"SentenWord | Traduzione intelligente","color.amber":"Ambra","color.green":"Verde","color.blue":"Blu","color.indigo":"Indaco","color.coral":"Corallo","color.orange":"Arancione","color.cyan":"Ciano","color.brown":"Marrone","color.red":"Rosso","color.gold":"Oro","color.magenta":"Magenta","color.darkGray":"Grigio scuro","color.custom":"Personalizzato","color.customHighlight":"Colore evidenziazione personalizzato","color.customButton":"Colore pulsante personalizzato","welcome.subtitle":"Benvenuto su SentenWord, configuriamo le impostazioni di base","welcome.nativeLanguage":"La tua lingua madre","welcome.nativeLanguageDesc":"La lingua dell'interfaccia cambierà automaticamente in base a questa impostazione.","welcome.learningLanguage":"Lingua che vuoi imparare","welcome.learningLanguageDesc":"Seleziona la lingua obiettivo che stai imparando.","welcome.getStarted":"Inizia","welcome.account":"Account","welcome.accountDesc":"Accedi per sincronizzare il tuo vocabolario e i progressi di apprendimento.","welcome.login":"Accedi / Registrati","welcome.maybeLater":"Forse dopo","welcome.loggedInAs":"Connesso","welcome.next":"Avanti","welcome.back":"Indietro","popup.title":"SentenWord | Traduzione Intelligente","popup.settings":"Impostazioni","popup.quickSearch":"Ricerca rapida","popup.stopTranslate":"Ferma traduzione","popup.translatePage":"Traduci pagina","popup.translationEnabled":"Traduzione attivata","popup.visitWebsite":"Visita il sito","popup.wordBook":"Quaderno dei vocaboli","popup.login":"Accedi","popup.loginDesc":"Accedi per sincronizzare","popup.screenshot":"OCR Screenshot","screenshot.hint":"Trascina per selezionare un'area · Esc per annullare","screenshot.processing":"Riconoscimento…","screenshot.empty":"Nessun testo rilevato","screenshot.failed":"Riconoscimento fallito","screenshot.loginRequired":"Accedi per usare l'OCR Screenshot","screenshot.quotaExceeded":"Quota mensile esaurita. Riprova più tardi o aggiorna il piano.","screenshot.translation":"Traduzione","screenshot.close":"Chiudi","screenshot.copy":"Copia","screenshot.copied":"Copiato","card.title":"SentenWord | Traduzione Intelligente","card.wordBook":"Quaderno dei vocaboli","card.tabSimpleDictionary":"Diz. rapido","card.tabDictionary":"Dizionario","card.tabAI":"Spiegazione IA","card.detailedExplanation":"Spiegazione dettagliata","card.detailedExplanationLoading":"Generazione della spiegazione...","card.detailedExplanationRetry":"Riprova","card.originalText":"Testo originale","card.translationText":"Traduzione","card.closeDetailedExplanation":"Chiudi spiegazione dettagliata","card.closeCard":"Chiudi scheda","card.settings":"Impostazioni","collection.title":"Raccolta","collection.closeModal":"Chiudi finestra della raccolta","collection.folder":"Raccolta","collection.loading":"Caricamento...","collection.defaultFolder":"Raccolta predefinita","collection.loadingHint":"Caricamento…","collection.word":"Parola *","collection.wordPlaceholder":"Inserisci una parola","collection.partOfSpeech":"Categoria","collection.partOfSpeechPlaceholder":"Categoria grammaticale","collection.phonetic":"Fonetica","collection.phoneticPlaceholder":"es. /mɪˈlɛniə/","collection.meaning":"Definizione","collection.meaningPlaceholder":"Definizione della parola","collection.context":"Contesto *","collection.contextPlaceholder":"Inserisci la frase completa","collection.contextTranslation":"Traduzione del contesto","collection.contextTranslationPlaceholder":"Traduzione della frase di contesto","collection.examples":"Esempi aggiuntivi","collection.examplesHint":"(facoltativo, uno per riga)","collection.examplesPlaceholder":"Inserisci esempi aggiuntivi, uno per riga","collection.saving":"Salvataggio...","collection.save":"Salva","collection.saveSuccess":"Salvato con successo","collection.saveToFolder":"Salva in","collection.saveSuccessTo":"Salvato in «{{name}}»","collection.moveFailed":"Spostamento nella raccolta non riuscito","collection.saveFailed":"Salvataggio fallito","collection.notLoggedIn":"Non connesso, impossibile salvare","collection.notLoggedInLoad":"Non connesso, impossibile caricare le raccolte","collection.loadFailed":"Caricamento delle raccolte fallito","collection.wordRequired":"Inserisci una parola/frase","collection.contextTooLong":"Il contesto non può superare {{max}} caratteri","youtube.machineTranslate":"Traduzione automatica","youtube.aiTranslate":"Traduzione IA","youtube.subtitlePanel":"Pannello sottotitoli","youtube.closePanel":"Chiudi pannello sottotitoli","youtube.panelAriaLabel":"Schede del pannello sottotitoli","youtube.tabSubtitles":"Sottotitoli","youtube.tabSettings":"Impostazioni","youtube.downloadSrt":"Scarica SRT bilingue","youtube.noSubtitles":"Nessun sottotitolo","youtube.showBilingualSubtitle":"Mostra sottotitoli bilingui","youtube.showBilingualSubtitleDesc":"Attiva/disattiva la sovrapposizione dei sottotitoli bilingui sul video","youtube.enableSubtitleList":"Attiva lista sottotitoli","youtube.enableSubtitleListDesc":"Se disattivato, il pannello sottotitoli verrà nascosto","youtube.autoScroll":"Scorrimento automatico","youtube.autoScrollDesc":"Scorri automaticamente alla frase corrente durante la riproduzione","youtube.noDownloadableSubtitle":"Nessun sottotitolo scaricabile","youtube.loadSecondaryFirst":"Carica i sottotitoli secondari prima di scaricare l'SRT bilingue","youtube.exportEmpty":"Esportazione sottotitoli fallita: contenuto vuoto","youtube.downloadStarted":"Download dell'SRT bilingue avviato","youtube.downloadFailed":"Download dell'SRT bilingue fallito","youtube.subtitleTranslateFallbackFailed":"Traduzione dei sottotitoli non riuscita, riprova più tardi","youtube.primaryLoadFailed":"Caricamento dei sottotitoli principali fallito","youtube.machineTranslateUnavailable":"Traduzione automatica non disponibile, passato alla traduzione IA","youtube.machineTranslateFailed":"Traduzione automatica fallita, passato alla traduzione IA","youtube.secondaryLoadFailed":"Caricamento dei sottotitoli secondari fallito","youtube.aiTranslateEnabled":"Traduzione IA su richiesta attivata","youtube.fetchingMachineTranslate":"Recupero dei sottotitoli tradotti automaticamente...","youtube.subtitleContentEmpty":"Traccia sottotitoli trovata, ma non ci sono sottotitoli visualizzabili disponibili","youtube.noAvailableSubtitles":"Nessun sottotitolo disponibile per questo video","youtube.trackLoadFailed":"Caricamento delle tracce sottotitoli fallito","youtube.btnSubtitleOn":"SentenWord Sottotitoli bilingui (Attivo)","youtube.btnSubtitleOff":"SentenWord Sottotitoli bilingui (Disattivo)","youtube.btnPanelOn":"SentenWord Pannello sottotitoli (Aperto)","youtube.btnPanelOff":"SentenWord Pannello sottotitoli (Chiuso)","youtube.btnSettings":"SentenWord Impostazioni sottotitoli","youtube.menuBilingualSubtitle":"Sottotitoli bilingui","youtube.menuSidebar":"Barra laterale sottotitoli","youtube.menuSettings":"Impostazioni","contextMenu.smartTranslate":"SentenWord | Traduzione Intelligente","contextMenu.translatePage":"SentenWord | Traduci pagina","contextMenu.restoreOriginal":"SentenWord | Ripristina originale","quickSearch.title":"Ricerca rapida","quickSearch.dictionary":"Dizionario","quickSearch.ai":"IA","quickSearch.dictPlaceholder":"Cerca una parola...","quickSearch.aiPlaceholder":"Inserisci una parola o frase per spiegazione IA...","quickSearch.submit":"Cerca","quickSearch.hint":"Ctrl+Shift+F per aprire · Invio per cercare · Tab per cambiare modalità · Esc per chiudere","subtitle.loading":"Caricamento sottotitoli...","subtitle.ready":"Sottotitoli pronti, in attesa dell'inizio del parlato","subtitle.notDetected":"Nessun sottotitolo visualizzabile rilevato, continua la riproduzione o prova un altro video","floating.translate":"Traduci","word.viewInDict":"Vedi su {{name}}","word.unfavorite":"Rimuovi dai preferiti","speech.playOriginal":"Riproduci originale","speech.playTranslation":"Riproduci traduzione","word.favorite":"Aggiungi ai preferiti","ai.favoritePhrase":"Aggiungi frase ai preferiti","ai.collapse":"Comprimi","ai.viewAll":"Vedi tutto ({{count}})","ai.noResult":"Nessun risultato di traduzione","ai.loading":"Caricamento...","common.expand":"Vedi tutto","common.collapseText":"Comprimi","common.translating":"Traduzione in corso...","options.changelog.title":"Registro modifiche","update.action":"Nuova versione disponibile"},Om={"options.header.subtitle":"SentenWord Preference Desk","options.header.title":"Options Studio","options.header.description":"Управляйте настройками перевода, отображением словаря и пользовательским ИИ. Настройте визуальные параметры, взаимодействие и производительность здесь.","options.language.title":"Настройки языка","options.language.description":"Настройте родной язык и целевой язык, который вы изучаете.","options.language.native":"Родной язык","options.language.nativeDesc":"Язык интерфейса автоматически изменится в соответствии с этой настройкой.","options.language.learning":"Целевой язык обучения","options.language.learningDesc":"Язык, который вы изучаете, используется для перевода и словаря.","options.account.title":"Аккаунт и подключение","options.account.description":"Управление состоянием входа и поведением расширения.","options.account.label":"Аккаунт","options.account.loading":"Загрузка статуса входа","options.account.loggedIn":"Вход выполнен: ","options.account.notLoggedIn":"Не авторизован. Перейдите на страницу авторизации для входа.","options.account.logout":"Выйти","options.account.login":"Войти","options.account.loggedOut":"Выход выполнен","options.account.profile":"Профиль","options.account.avatar":"Аватар","options.account.name":"Имя","options.account.namePlaceholder":"Введите имя","options.account.save":"Сохранить","options.account.saving":"Сохранение...","options.account.profileUpdated":"Профиль обновлён","options.account.profileUpdateFailed":"Ошибка обновления, попробуйте ещё раз","options.account.editProfile":"Редактировать профиль","options.account.cancel":"Отмена","options.usage.title":"Использование","options.usage.description":"Использование AI-токенов","options.usage.monthly":"Квота текущего периода","options.usage.used":"Использовано","options.usage.limit":"Лимит","options.usage.resetAt":"Сброс","options.usage.tokens":"токенов","options.usage.loadFailed":"Не удалось загрузить данные об использовании","options.usage.loginRequired":"Войдите, чтобы посмотреть использование","options.usage.upgradeToPro":"Перейти на Pro","options.usage.upgradeToMax":"Перейти на Max","options.usage.dailyBreakdown":"По дням","options.usage.dailyTitle":"Дневное использование за текущий период","options.usage.dailySubtitle":"Высота столбцов отражает относительный расход за день · Наведите курсор, чтобы увидеть долю от итога периода","options.usage.monthTotal":"Итог периода","options.usage.dailyEmpty":"Не удалось загрузить данные","options.usage.dailyNote":"Примечание: tokens здесь — это условная единица расхода данной системы, а не число токенов конкретной модели.","options.usage.dailyLoadFailed":"Не удалось загрузить детали","paywall.title":"Перейдите на SentenWord Pro","paywall.subtitle":"Получите стабильную месячную квоту ИИ и премиум-функции перевода.","paywall.max.title":"Перейдите на SentenWord Max","paywall.max.subtitle":"Увеличенная месячная квота для частых переводов, ИИ-субтитров и объяснений.","paywall.oneTimeNotice":"Разовая покупка на 1 месяц без автопродления.","paywall.feature.quota":"300 000 AI-токенов в месяц","paywall.feature.maxQuota":"Лимит AI-токенов: 300 000 → 2 000 000 в месяц","paywall.feature.subtitles":"Двуязычные ИИ-субтитры на YouTube","paywall.feature.priority":"Приоритетный доступ и поддержка","paywall.plan.monthly":"1 месяц","paywall.plan.quarterly":"Квартальный","paywall.plan.halfYear":"6 месяцев","paywall.plan.yearly":"Годовой","paywall.priceSuffix.month":"/мес","paywall.price.loading":"Загрузка цены…","paywall.priceTotal":"Итого {{total}}","paywall.savings":"Экономия {{percent}}%","paywall.recommended":"Лучшая цена","paywall.continueButton":"Перейти к оплате","paywall.continueLoading":"Переадресация...","paywall.close":"Закрыть","paywall.error.loginRequired":"Войдите, чтобы перейти на Pro.","paywall.error.goLogin":"Войти","paywall.error.network":"Не удалось создать платежную сессию. Попробуйте позже.","paywall.error.priceUnavailable":"Цена недоступна. Попробуйте снова.","paywall.confirm.title":"Ожидание оплаты","paywall.confirm.message":"Страница оплаты открыта в новой вкладке. Завершите оплату в Stripe и вернитесь сюда, чтобы нажать кнопку ниже.","paywall.confirm.completed":"Я завершил оплату","paywall.confirm.cancel":"Отмена","paywall.confirm.checking":"Проверка…","paywall.confirm.retry":"Попробовать снова","paywall.confirm.notYet":"Статус Pro пока не определён. Если вы только что оплатили, подождите немного и попробуйте снова.","paywall.confirm.notYetMax":"Доступ Max пока не определён. Если вы только что оплатили, подождите немного и попробуйте снова.","options.highlight.title":"Внешний вид","options.highlight.description":"Управление стилями и цветами выделения.","options.highlight.panelTitle":"Стиль выделения","options.highlight.panelDescription":"Как сохранённые слова отображаются на веб-страницах и система цветов.","options.card.themeTitle":"Тема карточки","options.card.themeDescription":"Переключить визуальный стиль карточки словаря.","options.card.theme.warm":"Тёплый","options.card.theme.classic":"Классика","options.card.theme.fresh":"Свежий","options.highlight.enable":"Включить выделение","options.highlight.enableDesc":"При отключении сохранённые слова больше не будут выделяться на веб-страницах.","options.highlight.inlineAnnotation":"Показать определения в строке","options.highlight.inlineAnnotationDesc":"Отображает часть речи и определение рядом с выделенными словами, напр.: Reload(v.перезагрузить).","options.highlight.trigger":"Открытие панели","options.highlight.triggerDesc":"Выберите, открывать ли панель по клику, при наведении или не открывать.","options.highlight.trigger.none":"Нет действия","options.highlight.styleSelect":"Выбор стиля","options.highlight.colorSelect":"Выбор цвета","options.highlight.opacity":"Прозрачность выделения","options.highlight.opacityDesc":"Настройте прозрачность цвета выделения на страницах.","options.highlight.style.none":"Нет","options.highlight.style.background":"Фон","options.highlight.style.text":"Цвет текста","options.highlight.style.underline":"Подчёркивание","options.highlight.style.doubleUnderline":"Двойное подчёркивание","options.highlight.style.wavy":"Волнистое","options.highlight.style.dotted":"Точечное","options.highlight.style.dashed":"Пунктирное","options.tagHighlight.panelTitle":"Выделение по тегам","options.tagHighlight.panelDescription":"Выделять слова на веб-страницах на основе тегов словаря и диапазонов частотности.","options.tagHighlight.enable":"Включить выделение по тегам","options.tagHighlight.enableDesc":"Автоматически выделять слова, соответствующие настроенным правилам.","options.tagHighlight.addRule":"Добавить правило","options.tagHighlight.tag":"Тег словаря","options.tagHighlight.frqRange":"Диапазон частотности","options.tagHighlight.frqMin":"Мин","options.tagHighlight.frqMax":"Макс","options.tagHighlight.noRules":"Нет правил. Нажмите кнопку выше, чтобы добавить.","options.tagHighlight.deleteRule":"Удалить","options.tagHighlight.style":"Стиль","options.tagHighlight.color":"Цвет","options.tagHighlight.enabled":"Включено","options.translation.title":"Перевод","options.translation.description":"Управление двуязычным переводом страниц и переводом выделенного текста.","options.autoTranslate.title":"Автоматический перевод страниц","options.autoTranslate.description":"Автоматически запускайте двуязычный перевод на настроенных сайтах.","options.autoTranslate.enable":"Включить автоматический перевод","options.autoTranslate.enableDesc":"Запускается только при совпадении домена; обновите уже открытые страницы.","options.autoTranslate.domains":"Домены сайтов","options.autoTranslate.domainsDesc":"Базовый домен включает поддомены; reddit.com соответствует www.reddit.com.","options.autoTranslate.placeholder":"Введите домен или URL, например medium.com","options.autoTranslate.add":"Добавить","options.autoTranslate.remove":"Удалить","options.autoTranslate.invalidDomain":"Введите корректный домен или URL HTTP(S).","options.autoTranslate.duplicateDomain":"Этот домен уже есть в списке.","options.autoTranslate.empty":"Доменов нет. Автоматический перевод не запустится ни на одном сайте.","options.dictionary.title":"Содержание словаря","options.dictionary.description":"Управление уровнями определений и примерами на карточках слов.","options.dictionary.showExamples":"Показать примеры","options.dictionary.showExamplesDesc":"Отображать примеры предложений в определениях.","options.dictionary.tabs.title":"Настройки поиска в словаре","options.dictionary.tabs.description":"Настройте порядок отображения и состояние активации вкладок поиска в словаре. Действует только при родном языке — китайском и изучаемом — английском.","options.dictionary.tabs.ai":"Поиск ИИ","options.dictionary.tabs.simple":"Краткий словарь","options.dictionary.tabs.dictionary":"Профессиональный словарь","options.dictionary.tabs.moveUp":"Вверх","options.dictionary.tabs.moveDown":"Вниз","options.floating.title":"Перевод выделения","options.floating.description":"Определите внешний вид, размер, цвет, прозрачность и стиль плавающей кнопки.","options.floating.enable":"Включить плавающую кнопку","options.floating.enableDesc":"Показывать вход для перевода после выделения текста.","options.floating.trigger":"Режим активации","options.floating.triggerDesc":"Клик или наведение для активации перевода.","options.floating.trigger.click":"Клик","options.floating.trigger.hover":"Наведение","options.floating.size":"Размер кнопки","options.floating.sizeDesc":"Настройте размер по вашим предпочтениям.","options.floating.size.xsmall":"Очень маленький","options.floating.size.small":"Маленький","options.floating.size.medium":"Средний","options.floating.size.large":"Большой","options.floating.style":"Стиль кнопки","options.floating.styleDesc":"Иконка, точка или текст.","options.floating.style.icon":"Иконка","options.floating.style.dot":"Точка","options.floating.color":"Цвет кнопки","options.floating.colorDesc":"Выберите предустановленный или пользовательский цвет.","options.floating.opacity":"Прозрачность кнопки","options.floating.opacityDesc":"Настройте прозрачность плавающей кнопки на страницах.","options.hotkeys.title":"Горячие клавиши","options.hotkeys.description":"Автосохранение при потере фокуса или нажатии Enter.","options.companion.title":"Приложение iOS","options.companion.description":"Ваша коллекция в кармане — повторяйте сохранённые слова и фразы где угодно.","options.companion.platform":"для iPhone · iPad","options.companion.pitch":"Открывайте каждое слово и фразу, которые вы сохранили, прямо с iPhone.","options.companion.feat1":"Возвращайтесь к сохранённым словам и фразам в любое время","options.companion.feat2":"Закрепляйте память с интервальным повторением","options.companion.feat3":"Изучайте подобранные словарные сборники для системной учёбы","options.companion.cta":"Загрузить в App Store","options.favorites.title":"Открыть сохранённые слова","options.companion.syncTitle":"Синхронизация между устройствами","options.companion.syncDesc":"Войдите на сайте и в приложении iOS с одной учётной записью Apple, чтобы синхронизировать сохранённые данные.","options.contact.title":"Сайт и контакты","options.contact.description":"Посетите сайт SentenWord или свяжитесь со мной по электронной почте и в WeChat.","options.contact.website":"Официальный сайт","options.contact.websiteDesc":"Узнайте о продукте, аккаунте и последних обновлениях.","options.contact.email":"Электронная почта","options.contact.emailDesc":"Для предложений, сообщений о проблемах и сотрудничества.","options.contact.signoff":"Каждое сообщение помогает сделать SentenWord лучше.","options.contact.wechat":"WeChat","options.contact.wechatDesc":"Отсканируйте QR-код в WeChat, чтобы добавить меня в контакты.","options.speech.title":"Озвучивание","options.speech.description":"Настройте голос для озвучивания оригинала и перевода.","options.speech.enable":"Включить озвучивание","options.speech.enableDesc":"Показывать кнопки озвучивания на карточке перевода.","options.speech.rate":"Скорость","options.speech.rateDesc":"0,5×–2,0×, по умолчанию 1,0×.","options.speech.pitch":"Тон","options.speech.pitchDesc":"0,5–1,5, по умолчанию 1,0.","options.speech.voices":"Голоса","options.speech.provider":"Движок","options.speech.providerDesc":"Edge использует нейронные голоса Microsoft (онлайн, лучше качество). Система — встроенные голоса браузера (офлайн).","options.speech.providerEdge":"Edge (качество)","options.speech.providerWeb":"Системный","options.speech.edgeVoicesDesc":"Выберите нейронный голос Microsoft. При ошибке переключится на системный голос.","options.speech.voicesDesc":"Выберите предпочтительный голос для каждого языка. Облачные голоса (☁) обычно звучат лучше.","options.speech.auto":"Авто (лучший)","options.speech.autoWithName":"Авто — {{name}}","options.speech.test":"Тест","options.speech.noVoices":"В этом браузере не найдены голоса. Проверьте системные настройки голоса.","options.hotkeys.quickSearch":"Быстрый поиск","options.hotkeys.quickSearchDesc":"Открыть окно быстрого поиска.","options.hotkeys.paragraph":"Перевод абзаца","options.hotkeys.paragraphDesc":"Перевести абзац под курсором.","options.ai.title":"ИИ-перевод","options.ai.description":"Выберите сервис ИИ-перевода: встроенный сервис или настройте свой API-ключ.","options.ai.usingCustom":"Свой API","options.ai.usingBackend":"Встроенный ИИ","options.ai.providerLabel":"Провайдер: {{provider}}","options.ai.enable":"Сервис ИИ","options.ai.enableDesc":"При включении используется настроенный провайдер и модель.","options.ai.enableDescBackend":"Используйте встроенный сервис ИИ-перевода от SentenWord.","options.ai.enableDescCustom":"Используйте свой API-ключ и модель. Ключи хранятся только локально.","options.ai.provider":"Провайдер","options.ai.providerDesc":"Выберите провайдера.","options.ai.configWarningTitle":"ИИ не настроен","options.ai.missingKeyWarning":"API-ключ {{provider}} не указан — перевод с ИИ, разбор слов и перевод субтитров работать не будут.","options.ai.incompleteCustomWarning":"В своём API не хватает: {{fields}}. Пока не заполните, функции ИИ недоступны.","options.ai.fieldBaseUrl":"базовый URL","options.ai.fieldApiKey":"API-ключ","options.ai.fieldModel":"название модели","options.ai.freeProviderNote":"Бесплатная публичная точка доступа — API-ключ не нужен. Объяснения слов используют встроенный бэкенд.","options.ai.kind":"Тип сервиса","options.ai.kindDesc":"ИИ-модели дают толкования слов и грамматический разбор. Бесплатный перевод не требует API-ключа, но переводит только целые предложения; функции толкования переключаются на встроенный сервис.","options.ai.kindModel":"ИИ-модель","options.ai.kindPlain":"Бесплатный перевод","options.engine.title":"Текущие движки перевода","options.engine.description":"Одна и та же настройка работает по-разному в разных функциях. Здесь показано, какие сервисы вызываются на самом деле.","options.engine.page":"Перевод страницы","options.engine.selection":"Перевод выделения","options.engine.subtitle":"Субтитры YouTube","options.engine.backend":"Встроенный сервис","options.engine.fallbackPlain":"{{provider}} не может создавать словарные толкования, поэтому функция переключается на встроенный сервис.","options.engine.fallbackUnconfigured":"API-ключ не настроен, поэтому функция переключается на встроенный сервис.","options.engine.unconfigured":"API-ключ не настроен — функция не сработает.","options.engine.goToAi":"Перейти к настройкам ИИ","options.subtitle.title":"Субтитры YouTube","options.subtitle.description":"Как отображаются двуязычные субтитры и как ведёт себя воспроизведение.","options.subtitle.secondaryMode":"Второй субтитр","options.subtitle.secondaryModeDesc":"Определяет, как показывать перевод. Размойте его для самопроверки и нажмите, чтобы открыть.","options.subtitle.modeNormal":"Обычный","options.subtitle.modeBlur":"Размытый","options.subtitle.modeHide":"Скрытый","options.subtitle.autoPause":"Автопауза на субтитре","options.subtitle.autoPauseDesc":"Ставит видео на паузу в конце каждой строки субтитров — удобно для проговаривания.","options.ai.apiKey":"API-ключ","options.ai.apiKeyDesc":"Автосохранение при потере фокуса.","options.ai.model":"Модель","options.ai.openaiModelDesc":"Модель по умолчанию: gpt-4o-mini.","options.ai.openrouterModelDesc":"Пример: openai/gpt-4o-mini.","options.ai.deepseekModelDesc":"Модель по умолчанию: deepseek-chat.","options.ai.customBaseUrl":"Базовый URL API","options.ai.customBaseUrlDesc":"URL API, совместимого с OpenAI (Qwen, Zhipu, Moonshot и т.д.).","options.ai.customModelDesc":"Имя модели (qwen-turbo, glm-4 и т.д.).","options.ai.translatePrompt":"Промпт для перевода","options.ai.translatePromptDesc":"Пользовательский промпт для перевода. ИИ автоматически определяет, является ли ввод словом или отрывком.","options.ai.promptReset":"Сбросить по умолчанию","options.ai.promptVariablesHint":"Доступные переменные: {{text}}, {{context}}, {{targetLanguage}}, {{#context}}...{{/context}}","options.metrics.highlight":"Текущее выделение","options.metrics.customAI":"Пользовательский ИИ","options.metrics.enabled":"Включено","options.metrics.disabled":"Отключено","options.metrics.account":"Статус аккаунта","options.metrics.loading":"Загрузка","options.metrics.loggedIn":"Вход выполнен","options.metrics.notLoggedIn":"Не авторизован","options.metrics.syncHint":"Войдите для синхронизации облачных функций","options.metrics.syncingHint":"Синхронизация информации аккаунта","common.saving":"Сохранение","common.saveFailed":"Ошибка сохранения, попробуйте снова","common.loading":"Загрузка настроек...","common.definitionGenerating":"Определение формируется. Повторите попытку чуть позже.","common.unknownError":"Неизвестная ошибка","common.pageTranslateLoginRequired":"Пожалуйста, войдите, чтобы использовать перевод страницы.","common.trialQuotaExceededLogin":"Бесплатные попытки закончились. Пожалуйста, войдите, чтобы продолжить.","common.translationQuotaExceededUpgrade":"Квота перевода исчерпана. Обновите тариф или попробуйте позже.","common.rateLimitNotLoggedIn":"Слишком много запросов. Войдите, чтобы получить больше квоты на перевод.","common.freeQuotaExceeded":"Достигнут месячный лимит использования, сброс {{resetTime}}. Перейдите на Pro для более высоких лимитов","common.proQuotaExceeded":"Достигнут месячный лимит использования, сброс {{resetTime}}","common.quotaExceeded.title":"Месячный лимит исчерпан","common.quotaExceeded.reset":"Сброс {{resetTime}}","common.toast.loginRequiredTitle":"Требуется вход","common.toast.quotaInsufficientTitle":"Недостаточно квоты","common.toast.translationErrorTitle":"Ошибка перевода","common.toast.loginAction":"Войти","common.toast.laterAction":"Позже","common.toast.upgradeAction":"Обновить тариф","common.toast.closeAction":"Закрыть","common.toast.aiConfigTitle":"ИИ не настроен","common.toast.openSettingsAction":"Открыть настройки","common.aiConfigNotEnabled":"Сначала включите и настройте собственный ИИ в настройках.","common.aiConfigMissingKey":"Собственный ИИ ({{provider}}) включён, но API-ключ не указан. Добавьте ключ в настройках или вернитесь к встроенному сервису ИИ.","common.aiConfigIncompleteCustom":"Настройка своего API не завершена. Укажите базовый URL, API-ключ и название модели в настройках.","common.aiConfigUnsupportedProvider":"{{provider}} поддерживает только обычный перевод. Для функций ИИ выберите в настройках LLM-провайдера.","common.sessionExpiredTitle":"Сессия истекла","common.sessionExpiredDesc":"Пожалуйста, войдите снова, чтобы продолжить пользоваться всеми функциями.","common.sessionReloginAction":"Войти снова","common.preview":"Предпросмотр","common.unexpectedError":"Произошла непредвиденная ошибка","footer.copyright":"SentenWord | Умный перевод","color.amber":"Янтарный","color.green":"Зелёный","color.blue":"Синий","color.indigo":"Индиго","color.coral":"Коралловый","color.orange":"Оранжевый","color.cyan":"Голубой","color.brown":"Коричневый","color.red":"Красный","color.gold":"Золотой","color.magenta":"Пурпурный","color.darkGray":"Тёмно-серый","color.custom":"Пользовательский","color.customHighlight":"Пользовательский цвет выделения","color.customButton":"Пользовательский цвет кнопки","welcome.subtitle":"Добро пожаловать в SentenWord, давайте настроим основные параметры","welcome.nativeLanguage":"Ваш родной язык","welcome.nativeLanguageDesc":"Язык интерфейса автоматически изменится в соответствии с этой настройкой.","welcome.learningLanguage":"Язык, который хотите изучать","welcome.learningLanguageDesc":"Выберите целевой язык, который вы изучаете.","welcome.getStarted":"Начать","welcome.account":"Аккаунт","welcome.accountDesc":"Войдите, чтобы синхронизировать словарь и прогресс обучения.","welcome.login":"Войти / Зарегистрироваться","welcome.maybeLater":"Может позже","welcome.loggedInAs":"Вы вошли","welcome.next":"Далее","welcome.back":"Назад","popup.title":"SentenWord | Умный перевод","popup.settings":"Настройки","popup.quickSearch":"Быстрый поиск","popup.stopTranslate":"Остановить перевод","popup.translatePage":"Перевести страницу","popup.translationEnabled":"Перевод включён","popup.visitWebsite":"Посетить сайт","popup.wordBook":"Словарь","popup.login":"Войти","popup.loginDesc":"Войдите для синхронизации","popup.screenshot":"Распознавание скриншота","screenshot.hint":"Перетащите, чтобы выделить область · Esc — отмена","screenshot.processing":"Распознавание…","screenshot.empty":"Текст не найден","screenshot.failed":"Ошибка распознавания","screenshot.loginRequired":"Войдите, чтобы использовать распознавание скриншота","screenshot.quotaExceeded":"Месячный лимит исчерпан. Попробуйте позже или обновите тариф.","screenshot.translation":"Перевод","screenshot.close":"Закрыть","screenshot.copy":"Копировать","screenshot.copied":"Скопировано","card.title":"SentenWord | Умный перевод","card.wordBook":"Словарь","card.tabSimpleDictionary":"Краткий словарь","card.tabDictionary":"Словарь","card.tabAI":"ИИ-объяснение","card.detailedExplanation":"Подробное объяснение","card.detailedExplanationLoading":"Генерация объяснения...","card.detailedExplanationRetry":"Повторить","card.originalText":"Оригинал","card.translationText":"Перевод","card.closeDetailedExplanation":"Закрыть подробное объяснение","card.closeCard":"Закрыть карточку","card.settings":"Настройки","collection.title":"Сохранить","collection.closeModal":"Закрыть окно коллекции","collection.folder":"Коллекция","collection.loading":"Загрузка...","collection.defaultFolder":"Коллекция по умолчанию","collection.loadingHint":"Загрузка…","collection.word":"Слово *","collection.wordPlaceholder":"Введите слово","collection.partOfSpeech":"Часть речи","collection.partOfSpeechPlaceholder":"Часть речи","collection.phonetic":"Транскрипция","collection.phoneticPlaceholder":"напр. /mɪˈlɛniə/","collection.meaning":"Значение","collection.meaningPlaceholder":"Значение слова","collection.context":"Контекст *","collection.contextPlaceholder":"Введите полное предложение","collection.contextTranslation":"Перевод контекста","collection.contextTranslationPlaceholder":"Перевод предложения контекста","collection.examples":"Дополнительные примеры","collection.examplesHint":"(необязательно, по одному в строке)","collection.examplesPlaceholder":"Введите дополнительные примеры, по одному в строке","collection.saving":"Сохранение...","collection.save":"Сохранить","collection.saveSuccess":"Успешно сохранено","collection.saveToFolder":"Сохранить в","collection.saveSuccessTo":"Сохранено в «{{name}}»","collection.moveFailed":"Не удалось переместить в коллекцию","collection.saveFailed":"Не удалось сохранить","collection.notLoggedIn":"Вы не авторизованы, сохранение невозможно","collection.notLoggedInLoad":"Вы не авторизованы, загрузка коллекций невозможна","collection.loadFailed":"Не удалось загрузить коллекции","collection.wordRequired":"Введите слово/фразу","collection.contextTooLong":"Контекст не может превышать {{max}} символов","youtube.machineTranslate":"Машинный перевод","youtube.aiTranslate":"ИИ-перевод","youtube.subtitlePanel":"Панель субтитров","youtube.closePanel":"Закрыть панель субтитров","youtube.panelAriaLabel":"Вкладки панели субтитров","youtube.tabSubtitles":"Субтитры","youtube.tabSettings":"Настройки","youtube.downloadSrt":"Скачать двуязычный SRT","youtube.noSubtitles":"Нет субтитров","youtube.showBilingualSubtitle":"Показать двуязычные субтитры","youtube.showBilingualSubtitleDesc":"Переключить наложение двуязычных субтитров на видео","youtube.enableSubtitleList":"Включить список субтитров","youtube.enableSubtitleListDesc":"При отключении панель списка субтитров будет скрыта","youtube.autoScroll":"Автопрокрутка","youtube.autoScrollDesc":"Автоматически прокручивать к текущему предложению при воспроизведении","youtube.noDownloadableSubtitle":"Нет субтитров для скачивания","youtube.loadSecondaryFirst":"Загрузите вторичные субтитры перед скачиванием двуязычного SRT","youtube.exportEmpty":"Ошибка экспорта субтитров: содержимое пустое","youtube.downloadStarted":"Скачивание двуязычного SRT начато","youtube.downloadFailed":"Ошибка скачивания двуязычного SRT","youtube.subtitleTranslateFallbackFailed":"Не удалось перевести субтитры, попробуйте позже","youtube.primaryLoadFailed":"Не удалось загрузить основные субтитры","youtube.machineTranslateUnavailable":"Машинный перевод недоступен, переключено на ИИ-перевод","youtube.machineTranslateFailed":"Ошибка машинного перевода, переключено на ИИ-перевод","youtube.secondaryLoadFailed":"Не удалось загрузить вторичные субтитры","youtube.aiTranslateEnabled":"ИИ-перевод по запросу включён","youtube.fetchingMachineTranslate":"Получение субтитров машинного перевода...","youtube.subtitleContentEmpty":"Дорожка субтитров найдена, но отображаемые субтитры недоступны","youtube.noAvailableSubtitles":"Для этого видео нет доступных субтитров","youtube.trackLoadFailed":"Не удалось загрузить дорожки субтитров","youtube.btnSubtitleOn":"SentenWord Двуязычные субтитры (Вкл)","youtube.btnSubtitleOff":"SentenWord Двуязычные субтитры (Выкл)","youtube.btnPanelOn":"SentenWord Панель субтитров (Открыта)","youtube.btnPanelOff":"SentenWord Панель субтитров (Закрыта)","youtube.btnSettings":"SentenWord Настройки субтитров","youtube.menuBilingualSubtitle":"Двуязычные субтитры","youtube.menuSidebar":"Боковая панель субтитров","youtube.menuSettings":"Настройки","contextMenu.smartTranslate":"SentenWord | Умный перевод","contextMenu.translatePage":"SentenWord | Перевести страницу","contextMenu.restoreOriginal":"SentenWord | Восстановить оригинал","quickSearch.title":"Быстрый поиск","quickSearch.dictionary":"Словарь","quickSearch.ai":"ИИ","quickSearch.dictPlaceholder":"Поиск слова...","quickSearch.aiPlaceholder":"Введите слово или предложение для объяснения ИИ...","quickSearch.submit":"Поиск","quickSearch.hint":"Ctrl+Shift+F для открытия · Enter для поиска · Tab для смены режима · Escape для закрытия","subtitle.loading":"Загрузка субтитров...","subtitle.ready":"Субтитры готовы, ожидание начала речи","subtitle.notDetected":"Отображаемые субтитры не обнаружены, продолжайте воспроизведение или попробуйте другое видео","floating.translate":"Перевести","word.viewInDict":"Посмотреть в {{name}}","word.unfavorite":"Удалить из избранного","speech.playOriginal":"Озвучить оригинал","speech.playTranslation":"Озвучить перевод","word.favorite":"Добавить в избранное","ai.favoritePhrase":"Добавить фразу в избранное","ai.collapse":"Свернуть","ai.viewAll":"Показать все ({{count}})","ai.noResult":"Нет результатов перевода","ai.loading":"Загрузка...","common.expand":"Показать все","common.collapseText":"Свернуть","common.translating":"Перевод...","options.changelog.title":"Журнал изменений","update.action":"Доступна новая версия"},wd={zh:Bd,"zh-TW":Em,en:wm,ja:xm,ko:Mm,fr:Cm,de:qm,es:Rm,pt:Lm,it:Um,ru:Om},xd="zh";function jm(v,w=xd,H){let Y=(wd[w]||wd[xd])[v]||Bd[v];return H&&Object.entries(H).forEach(([_,ye])=>{Y=Y.replace(`{{${_}}}`,String(ye))}),Y}const Ma="userInfo",Gn="authToken",Nd="userId",Id=v=>typeof v=="object"&&v!==null,_d=v=>Id(v)?typeof v.token=="string"&&typeof v.email=="string"&&typeof v.userId=="string"&&typeof v.name=="string"&&typeof v.image=="string"&&(v.plan==="pro"||v.plan==="free")&&(v.extensionPlan==="free"||v.extensionPlan==="pro"||v.extensionPlan==="max"):!1,Wm=async v=>{try{return await nt.storage.local.set({[Ma]:v,[Gn]:v.token,[Nd]:v.userId}),!0}catch(w){return console.error("Failed to save user info:",w),!1}},Zm=async()=>{try{const w=(await nt.storage.local.get(Ma))[Ma];if(_d(w))return w;if(Id(w)&&typeof w.token=="string"&&typeof w.email=="string"&&typeof w.userId=="string"){const H=w.plan==="pro"?"pro":"free",f=w.extensionPlan==="max"?"max":H;return{...w,name:w.name||"",image:w.image||"",plan:H,extensionPlan:f}}return null}catch(v){return console.error("Failed to get user info:",v),null}},Xm=async()=>{try{const w=(await nt.storage.local.get(Gn))[Gn];return typeof w=="string"?w:null}catch(v){return console.error("Failed to get token:",v),null}},Fm=async()=>{try{return await nt.storage.local.remove([Ma,Gn,Nd]),!0}catch(v){return console.error("Failed to clear user info:",v),!1}},Jm=v=>{var w;if(typeof nt<"u"&&((w=nt.storage)!=null&&w.onChanged)){const H=(f,Y)=>{if(Y==="local"&&f[Ma]){const _=f[Ma].newValue;v(_d(_)?_:null)}};return nt.storage.onChanged.addListener(H),()=>nt.storage.onChanged.removeListener(H)}return()=>{}};export{Nm as B,Gm as C,_m as E,Qm as H,Im as N,Bm as R,Zm as a,nt as b,Fm as c,Wt as d,Wm as e,Jm as f,Xm as g,km as h,Hm as j,Vm as l,Ym as m,Ld as n,Km as o,fm as r,Pm as s,jm as t};
