var AN=Object.defineProperty,ON=Object.defineProperties;var DN=Object.getOwnPropertyDescriptors;var Rm=Object.getOwnPropertySymbols;var Tv=Object.prototype.hasOwnProperty,Ev=Object.prototype.propertyIsEnumerable;var yd=(t,a)=>(a=Symbol[t])?a:Symbol.for("Symbol."+t),MN=t=>{throw TypeError(t)};var Ff=(t,a,r)=>a in t?AN(t,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[a]=r,ue=(t,a)=>{for(var r in a||(a={}))Tv.call(a,r)&&Ff(t,r,a[r]);if(Rm)for(var r of Rm(a))Ev.call(a,r)&&Ff(t,r,a[r]);return t},Se=(t,a)=>ON(t,DN(a));var Dn=(t,a)=>{var r={};for(var s in t)Tv.call(t,s)&&a.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&Rm)for(var s of Rm(t))a.indexOf(s)<0&&Ev.call(t,s)&&(r[s]=t[s]);return r};var LN=(t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports);var Mn=(t,a,r)=>Ff(t,typeof a!="symbol"?a+"":a,r);var Q=(t,a,r)=>new Promise((s,i)=>{var c=h=>{try{m(r.next(h))}catch(g){i(g)}},d=h=>{try{m(r.throw(h))}catch(g){i(g)}},m=h=>h.done?s(h.value):Promise.resolve(h.value).then(c,d);m((r=r.apply(t,a)).next())}),nc=function(t,a){this[0]=t,this[1]=a},If=(t,a,r)=>{var s=(d,m,h,g)=>{try{var p=r[d](m),b=(m=p.value)instanceof nc,j=p.done;Promise.resolve(b?m[0]:m).then(_=>b?s(d==="return"?d:"next",m[1]?{done:_.done,value:_.value}:_,h,g):h({value:_,done:j})).catch(_=>s("throw",_,h,g))}catch(_){g(_)}},i=d=>c[d]=m=>new Promise((h,g)=>s(d,m,h,g)),c={};return r=r.apply(t,a),c[yd("asyncIterator")]=()=>c,i("next"),i("throw"),i("return"),c},zf=t=>{var a=t[yd("asyncIterator")],r=!1,s,i={};return a==null?(a=t[yd("iterator")](),s=c=>i[c]=d=>a[c](d)):(a=a.call(t),s=c=>i[c]=d=>{if(r){if(r=!1,c==="throw")throw d;return d}return r=!0,{done:!1,value:new nc(new Promise(m=>{var h=a[c](d);h instanceof Object||MN("Object expected"),m(h)}),1)}}),i[yd("iterator")]=()=>i,s("next"),"throw"in a?s("throw"):i.throw=c=>{throw c},"return"in a&&s("return"),i},Av=(t,a,r)=>(a=t[yd("asyncIterator")])?a.call(t):(t=t[yd("iterator")](),a={},r=(s,i)=>(i=t[s])&&(a[s]=c=>new Promise((d,m,h)=>(c=i.call(t,c),h=c.done,Promise.resolve(c.value).then(g=>d({value:g,done:h}),m)))),r("next"),r("return"),a);var aF=LN(Le=>{(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const c of i)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&s(d)}).observe(document,{childList:!0,subtree:!0});function r(i){const c={};return i.integrity&&(c.integrity=i.integrity),i.referrerPolicy&&(c.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?c.credentials="include":i.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(i){if(i.ep)return;i.ep=!0;const c=r(i);fetch(i.href,c)}})();function $_(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Bf={exports:{}},U0={};var Ov;function RN(){if(Ov)return U0;Ov=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function r(s,i,c){var d=null;if(c!==void 0&&(d=""+c),i.key!==void 0&&(d=""+i.key),"key"in i){c={};for(var m in i)m!=="key"&&(c[m]=i[m])}else c=i;return i=c.ref,{$$typeof:t,type:s,key:d,ref:i!==void 0?i:null,props:c}}return U0.Fragment=a,U0.jsx=r,U0.jsxs=r,U0}var Dv;function PN(){return Dv||(Dv=1,Bf.exports=RN()),Bf.exports}var e=PN(),Uf={exports:{}},Ca={};var Mv;function FN(){if(Mv)return Ca;Mv=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),d=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),j=Symbol.iterator;function _(F){return F===null||typeof F!="object"?null:(F=j&&F[j]||F["@@iterator"],typeof F=="function"?F:null)}var N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,C={};function D(F,M,B){this.props=F,this.context=M,this.refs=C,this.updater=B||N}D.prototype.isReactComponent={},D.prototype.setState=function(F,M){if(typeof F!="object"&&typeof F!="function"&&F!=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,F,M,"setState")},D.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function T(){}T.prototype=D.prototype;function E(F,M,B){this.props=F,this.context=M,this.refs=C,this.updater=B||N}var O=E.prototype=new T;O.constructor=E,k(O,D.prototype),O.isPureReactComponent=!0;var R=Array.isArray;function Y(){}var P={H:null,A:null,T:null,S:null},U=Object.prototype.hasOwnProperty;function J(F,M,B){var X=B.ref;return{$$typeof:t,type:F,key:M,ref:X!==void 0?X:null,props:B}}function ne(F,M){return J(F.type,M,F.props)}function ye(F){return typeof F=="object"&&F!==null&&F.$$typeof===t}function he(F){var M={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(B){return M[B]})}var ce=/\/+/g;function se(F,M){return typeof F=="object"&&F!==null&&F.key!=null?he(""+F.key):M.toString(36)}function ee(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(Y,Y):(F.status="pending",F.then(function(M){F.status==="pending"&&(F.status="fulfilled",F.value=M)},function(M){F.status==="pending"&&(F.status="rejected",F.reason=M)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function te(F,M,B,X,K){var we=typeof F;(we==="undefined"||we==="boolean")&&(F=null);var be=!1;if(F===null)be=!0;else switch(we){case"bigint":case"string":case"number":be=!0;break;case"object":switch(F.$$typeof){case t:case a:be=!0;break;case p:return be=F._init,te(be(F._payload),M,B,X,K)}}if(be)return K=K(F),be=X===""?"."+se(F,0):X,R(K)?(B="",be!=null&&(B=be.replace(ce,"$&/")+"/"),te(K,M,B,"",function(z){return z})):K!=null&&(ye(K)&&(K=ne(K,B+(K.key==null||F&&F.key===K.key?"":(""+K.key).replace(ce,"$&/")+"/")+be)),M.push(K)),1;be=0;var ke=X===""?".":X+":";if(R(F))for(var Me=0;Me>>1,ae=te[oe];if(0>>1;oei(B,I))Xi(K,B)?(te[oe]=K,te[X]=I,oe=X):(te[oe]=B,te[M]=I,oe=M);else if(Xi(K,I))te[oe]=K,te[X]=I,oe=X;else break e}}return W}function i(te,W){var I=te.sortIndex-W.sortIndex;return I!==0?I:te.id-W.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;t.unstable_now=function(){return c.now()}}else{var d=Date,m=d.now();t.unstable_now=function(){return d.now()-m}}var h=[],g=[],p=1,b=null,j=3,_=!1,N=!1,k=!1,C=!1,D=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate!="undefined"?setImmediate:null;function O(te){for(var W=r(g);W!==null;){if(W.callback===null)s(g);else if(W.startTime<=te)s(g),W.sortIndex=W.expirationTime,a(h,W);else break;W=r(g)}}function R(te){if(k=!1,O(te),!N)if(r(h)!==null)N=!0,Y||(Y=!0,he());else{var W=r(g);W!==null&&ee(R,W.startTime-te)}}var Y=!1,P=-1,U=5,J=-1;function ne(){return C?!0:!(t.unstable_now()-Jte&&ne());){var oe=b.callback;if(typeof oe=="function"){b.callback=null,j=b.priorityLevel;var ae=oe(b.expirationTime<=te);if(te=t.unstable_now(),typeof ae=="function"){b.callback=ae,O(te),W=!0;break t}b===r(h)&&s(h),O(te)}else s(h);b=r(h)}if(b!==null)W=!0;else{var F=r(g);F!==null&&ee(R,F.startTime-te),W=!1}}break e}finally{b=null,j=I,_=!1}W=void 0}}finally{W?he():Y=!1}}}var he;if(typeof E=="function")he=function(){E(ye)};else if(typeof MessageChannel!="undefined"){var ce=new MessageChannel,se=ce.port2;ce.port1.onmessage=ye,he=function(){se.postMessage(null)}}else he=function(){D(ye,0)};function ee(te,W){P=D(function(){te(t.unstable_now())},W)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(te){te.callback=null},t.unstable_forceFrameRate=function(te){0>te||125oe?(te.sortIndex=I,a(g,te),r(h)===null&&te===r(g)&&(k?(T(P),P=-1):k=!0,ee(R,I-oe))):(te.sortIndex=ae,a(h,te),N||_||(N=!0,Y||(Y=!0,he()))),te},t.unstable_shouldYield=ne,t.unstable_wrapCallback=function(te){var W=j;return function(){var I=j;j=W;try{return te.apply(this,arguments)}finally{j=I}}}})(Wf)),Wf}var Pv;function zN(){return Pv||(Pv=1,Hf.exports=IN()),Hf.exports}var Vf={exports:{}},sn={};var Fv;function BN(){if(Fv)return sn;Fv=1;var t=Oh();function a(h){var g="https://react.dev/errors/"+h;if(1ae||(n.current=oe[ae],oe[ae]=null,ae--)}function B(n,o){ae++,oe[ae]=n.current,n.current=o}var X=F(null),K=F(null),we=F(null),be=F(null);function ke(n,o){switch(B(we,o),B(K,n),B(X,null),o.nodeType){case 9:case 11:n=(n=o.documentElement)&&(n=n.namespaceURI)?Xb(n):0;break;default:if(n=o.tagName,o=o.namespaceURI)o=Xb(o),n=Kb(o,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}M(X),B(X,n)}function Me(){M(X),M(K),M(we)}function z(n){n.memoizedState!==null&&B(be,n);var o=X.current,u=Kb(o,n.type);o!==u&&(B(K,n),B(X,u))}function Ne(n){K.current===n&&(M(X),M(K)),be.current===n&&(M(be),F0._currentValue=I)}var Xe,gt;function St(n){if(Xe===void 0)try{throw Error()}catch(u){var o=u.stack.trim().match(/\n( *(at )?)/);Xe=o&&o[1]||"",gt=-1)":-1w||Ae[x]!==Ke[w]){var vt=` `+Ae[x].replace(" at new "," at ");return n.displayName&&vt.includes("")&&(vt=vt.replace("",n.displayName)),vt}while(1<=x&&0<=w);break}}}finally{Ht=!1,Error.prepareStackTrace=u}return(u=n?n.displayName||n.name:"")?St(u):""}function Te(n,o){switch(n.tag){case 26:case 27:case 5:return St(n.type);case 16:return St("Lazy");case 13:return n.child!==o&&o!==null?St("Suspense Fallback"):St("Suspense");case 19:return St("SuspenseList");case 0:case 15:return Mt(n.type,!1);case 11:return Mt(n.type.render,!1);case 1:return Mt(n.type,!0);case 31:return St("Activity");default:return""}}function Qt(n){try{var o="",u=null;do o+=Te(n,u),u=n,n=n.return;while(n);return o}catch(x){return` Error generating stack: `+x.message+` `+x.stack}}var zt=Object.prototype.hasOwnProperty,Wt=t.unstable_scheduleCallback,Vt=t.unstable_cancelCallback,va=t.unstable_shouldYield,ta=t.unstable_requestPaint,sa=t.unstable_now,ra=t.unstable_getCurrentPriorityLevel,Ye=t.unstable_ImmediatePriority,ft=t.unstable_UserBlockingPriority,$t=t.unstable_NormalPriority,na=t.unstable_LowPriority,Ze=t.unstable_IdlePriority,lt=t.log,aa=t.unstable_setDisableYieldValue,Ie=null,Nt=null;function ve(n){if(typeof lt=="function"&&aa(n),Nt&&typeof Nt.setStrictMode=="function")try{Nt.setStrictMode(Ie,n)}catch(o){}}var Oe=Math.clz32?Math.clz32:Be,ht=Math.log,et=Math.LN2;function Be(n){return n>>>=0,n===0?32:31-(ht(n)/et|0)|0}var kt=256,it=262144,xt=4194304;function Dt(n){var o=n&42;if(o!==0)return o;switch(n&-n){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 n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function Ot(n,o,u){var x=n.pendingLanes;if(x===0)return 0;var w=0,S=n.suspendedLanes,q=n.pingedLanes;n=n.warmLanes;var ge=x&134217727;return ge!==0?(x=ge&~S,x!==0?w=Dt(x):(q&=ge,q!==0?w=Dt(q):u||(u=ge&~n,u!==0&&(w=Dt(u))))):(ge=x&~S,ge!==0?w=Dt(ge):q!==0?w=Dt(q):u||(u=x&~n,u!==0&&(w=Dt(u)))),w===0?0:o!==0&&o!==w&&(o&S)===0&&(S=w&-w,u=o&-o,S>=u||S===32&&(u&4194048)!==0)?o:w}function Rt(n,o){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&o)===0}function De(n,o){switch(n){case 1:case 2:case 4:case 8:case 64:return o+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 o+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 Qe(){var n=xt;return xt<<=1,(xt&62914560)===0&&(xt=4194304),n}function fe(n){for(var o=[],u=0;31>u;u++)o.push(n);return o}function re(n,o){n.pendingLanes|=o,o!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function Ee(n,o,u,x,w,S){var q=n.pendingLanes;n.pendingLanes=u,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=u,n.entangledLanes&=u,n.errorRecoveryDisabledLanes&=u,n.shellSuspendCounter=0;var ge=n.entanglements,Ae=n.expirationTimes,Ke=n.hiddenUpdates;for(u=q&~u;0=Gi),jr=" ",Hl=!1;function Wc(n,o){switch(n){case"keyup":return tn.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wl(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Yi=!1;function mn(n,o){switch(n){case"compositionend":return Wl(o);case"keypress":return o.which!==32?null:(Hl=!0,jr);case"textInput":return n=o.data,n===jr&&Hl?null:n;default:return null}}function Zi(n,o){if(Yi)return n==="compositionend"||!rl&&Wc(n,o)?(n=Bn(),Cr=zn=Ls=null,Yi=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(o.ctrlKey||o.altKey||o.metaKey)||o.ctrlKey&&o.altKey){if(o.char&&1=o)return{node:u,offset:o-n};n=x}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=nl(u)}}function to(n,o){return n&&o?n===o?!0:n&&n.nodeType===3?!1:o&&o.nodeType===3?to(n,o.parentNode):"contains"in n?n.contains(o):n.compareDocumentPosition?!!(n.compareDocumentPosition(o)&16):!1:!1}function ji(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var o=_a(n.document);o instanceof n.HTMLIFrameElement;){try{var u=typeof o.contentWindow.location.href=="string"}catch(x){u=!1}if(u)n=o.contentWindow;else break;o=_a(n.document)}return o}function ui(n){var o=n&&n.nodeName&&n.nodeName.toLowerCase();return o&&(o==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||o==="textarea"||n.contentEditable==="true")}var Co=ws&&"documentMode"in document&&11>=document.documentMode,Vn=null,To=null,Z=null,pe=!1;function je(n,o,u){var x=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;pe||Vn==null||Vn!==_a(x)||(x=Vn,"selectionStart"in x&&ui(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),Z&&Qi(Z,x)||(Z=x,x=vm(To,"onSelect"),0>=q,w-=q,Tt=1<<32-Oe(o)+w|u<Da?(Va=da,da=null):Va=da.sibling;var er=at(Ve,da,Je[Da],jt);if(er===null){da===null&&(da=Va);break}n&&da&&er.alternate===null&&o(Ve,da),Fe=S(er,Fe,Da),Qa===null?ga=er:Qa.sibling=er,Qa=er,da=Va}if(Da===Je.length)return u(Ve,da),Ua&&ua(Ve,Da),ga;if(da===null){for(;DaDa?(Va=da,da=null):Va=da.sibling;var Nl=at(Ve,da,er.value,jt);if(Nl===null){da===null&&(da=Va);break}n&&da&&Nl.alternate===null&&o(Ve,da),Fe=S(Nl,Fe,Da),Qa===null?ga=Nl:Qa.sibling=Nl,Qa=Nl,da=Va}if(er.done)return u(Ve,da),Ua&&ua(Ve,Da),ga;if(da===null){for(;!er.done;Da++,er=Je.next())er=Et(Ve,er.value,jt),er!==null&&(Fe=S(er,Fe,Da),Qa===null?ga=er:Qa.sibling=er,Qa=er);return Ua&&ua(Ve,Da),ga}for(da=x(da);!er.done;Da++,er=Je.next())er=ut(da,Ve,Da,er.value,jt),er!==null&&(n&&er.alternate!==null&&da.delete(er.key===null?Da:er.key),Fe=S(er,Fe,Da),Qa===null?ga=er:Qa.sibling=er,Qa=er);return n&&da.forEach(function(EN){return o(Ve,EN)}),Ua&&ua(Ve,Da),ga}function br(Ve,Fe,Je,jt){if(typeof Je=="object"&&Je!==null&&Je.type===k&&Je.key===null&&(Je=Je.props.children),typeof Je=="object"&&Je!==null){switch(Je.$$typeof){case _:e:{for(var ga=Je.key;Fe!==null;){if(Fe.key===ga){if(ga=Je.type,ga===k){if(Fe.tag===7){u(Ve,Fe.sibling),jt=w(Fe,Je.props.children),jt.return=Ve,Ve=jt;break e}}else if(Fe.elementType===ga||typeof ga=="object"&&ga!==null&&ga.$$typeof===U&&Kl(ga)===Fe.type){u(Ve,Fe.sibling),jt=w(Fe,Je.props),g0(jt,Je),jt.return=Ve,Ve=jt;break e}u(Ve,Fe);break}else o(Ve,Fe);Fe=Fe.sibling}Je.type===k?(jt=Ao(Je.props.children,Ve.mode,jt,Je.key),jt.return=Ve,Ve=jt):(jt=Gl(Je.type,Je.key,Je.props,null,Ve.mode,jt),g0(jt,Je),jt.return=Ve,Ve=jt)}return q(Ve);case N:e:{for(ga=Je.key;Fe!==null;){if(Fe.key===ga)if(Fe.tag===4&&Fe.stateNode.containerInfo===Je.containerInfo&&Fe.stateNode.implementation===Je.implementation){u(Ve,Fe.sibling),jt=w(Fe,Je.children||[]),jt.return=Ve,Ve=jt;break e}else{u(Ve,Fe);break}else o(Ve,Fe);Fe=Fe.sibling}jt=l0(Je,Ve.mode,jt),jt.return=Ve,Ve=jt}return q(Ve);case U:return Je=Kl(Je),br(Ve,Fe,Je,jt)}if(ee(Je))return la(Ve,Fe,Je,jt);if(he(Je)){if(ga=he(Je),typeof ga!="function")throw Error(s(150));return Je=ga.call(Je),ba(Ve,Fe,Je,jt)}if(typeof Je.then=="function")return br(Ve,Fe,Wu(Je),jt);if(Je.$$typeof===E)return br(Ve,Fe,Bu(Ve,Je),jt);Vu(Ve,Je)}return typeof Je=="string"&&Je!==""||typeof Je=="number"||typeof Je=="bigint"?(Je=""+Je,Fe!==null&&Fe.tag===6?(u(Ve,Fe.sibling),jt=w(Fe,Je),jt.return=Ve,Ve=jt):(u(Ve,Fe),jt=Zc(Je,Ve.mode,jt),jt.return=Ve,Ve=jt),q(Ve)):u(Ve,Fe)}return function(Ve,Fe,Je,jt){try{h0=0;var ga=br(Ve,Fe,Je,jt);return td=null,ga}catch(da){if(da===ed||da===$u)throw da;var Qa=rn(29,da,null,Ve.mode);return Qa.lanes=jt,Qa.return=Ve,Qa}finally{}}}var ec=$p(!0),Hp=$p(!1),ll=!1;function mg(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function hg(n,o){n=n.updateQueue,o.updateQueue===n&&(o.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function cl(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function dl(n,o,u){var x=n.updateQueue;if(x===null)return null;if(x=x.shared,(rr&2)!==0){var w=x.pending;return w===null?o.next=o:(o.next=w.next,w.next=o),x.pending=o,o=ql(n),il(n,null,u),o}return ao(n,x,o,u),ql(n)}function f0(n,o,u){if(o=o.updateQueue,o!==null&&(o=o.shared,(u&4194048)!==0)){var x=o.lanes;x&=n.pendingLanes,u|=x,o.lanes=u,ct(n,u)}}function gg(n,o){var u=n.updateQueue,x=n.alternate;if(x!==null&&(x=x.updateQueue,u===x)){var w=null,S=null;if(u=u.firstBaseUpdate,u!==null){do{var q={lane:u.lane,tag:u.tag,payload:u.payload,callback:null,next:null};S===null?w=S=q:S=S.next=q,u=u.next}while(u!==null);S===null?w=S=o:S=S.next=o}else w=S=o;u={baseState:x.baseState,firstBaseUpdate:w,lastBaseUpdate:S,shared:x.shared,callbacks:x.callbacks},n.updateQueue=u;return}n=u.lastBaseUpdate,n===null?u.firstBaseUpdate=o:n.next=o,u.lastBaseUpdate=o}var fg=!1;function x0(){if(fg){var n=Qc;if(n!==null)throw n}}function p0(n,o,u,x){fg=!1;var w=n.updateQueue;ll=!1;var S=w.firstBaseUpdate,q=w.lastBaseUpdate,ge=w.shared.pending;if(ge!==null){w.shared.pending=null;var Ae=ge,Ke=Ae.next;Ae.next=null,q===null?S=Ke:q.next=Ke,q=Ae;var vt=n.alternate;vt!==null&&(vt=vt.updateQueue,ge=vt.lastBaseUpdate,ge!==q&&(ge===null?vt.firstBaseUpdate=Ke:ge.next=Ke,vt.lastBaseUpdate=Ae))}if(S!==null){var Et=w.baseState;q=0,vt=Ke=Ae=null,ge=S;do{var at=ge.lane&-536870913,ut=at!==ge.lane;if(ut?(Wa&at)===at:(x&at)===at){at!==0&&at===Kc&&(fg=!0),vt!==null&&(vt=vt.next={lane:0,tag:ge.tag,payload:ge.payload,callback:null,next:null});e:{var la=n,ba=ge;at=o;var br=u;switch(ba.tag){case 1:if(la=ba.payload,typeof la=="function"){Et=la.call(br,Et,at);break e}Et=la;break e;case 3:la.flags=la.flags&-65537|128;case 0:if(la=ba.payload,at=typeof la=="function"?la.call(br,Et,at):la,at==null)break e;Et=b({},Et,at);break e;case 2:ll=!0}}at=ge.callback,at!==null&&(n.flags|=64,ut&&(n.flags|=8192),ut=w.callbacks,ut===null?w.callbacks=[at]:ut.push(at))}else ut={lane:at,tag:ge.tag,payload:ge.payload,callback:ge.callback,next:null},vt===null?(Ke=vt=ut,Ae=Et):vt=vt.next=ut,q|=at;if(ge=ge.next,ge===null){if(ge=w.shared.pending,ge===null)break;ut=ge,ge=ut.next,ut.next=null,w.lastBaseUpdate=ut,w.shared.pending=null}}while(!0);vt===null&&(Ae=Et),w.baseState=Ae,w.firstBaseUpdate=Ke,w.lastBaseUpdate=vt,S===null&&(w.shared.lanes=0),fl|=q,n.lanes=q,n.memoizedState=Et}}function Wp(n,o){if(typeof n!="function")throw Error(s(191,n));n.call(o)}function Vp(n,o){var u=n.callbacks;if(u!==null)for(n.callbacks=null,n=0;nS?S:8;var q=te.T,ge={};te.T=ge,Lg(n,!1,o,u);try{var Ae=w(),Ke=te.S;if(Ke!==null&&Ke(ge,Ae),Ae!==null&&typeof Ae=="object"&&typeof Ae.then=="function"){var vt=yj(Ae,x);v0(n,o,vt,Xn(n))}else v0(n,o,x,Xn(n))}catch(Et){v0(n,o,{then:function(){},status:"rejected",reason:Et},Xn())}finally{W.p=S,q!==null&&ge.types!==null&&(q.types=ge.types),te.T=q}}function jj(){}function Dg(n,o,u,x){if(n.tag!==5)throw Error(s(476));var w=ky(n).queue;wy(n,w,o,I,u===null?jj:function(){return jy(n),u(x)})}function ky(n){var o=n.memoizedState;if(o!==null)return o;o={memoizedState:I,baseState:I,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:I},next:null};var u={};return o.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lo,lastRenderedState:u},next:null},n.memoizedState=o,n=n.alternate,n!==null&&(n.memoizedState=o),o}function jy(n){var o=ky(n);o.next===null&&(o=n.alternate.memoizedState),v0(n,o.next.queue,{},Xn())}function Mg(){return Us(F0)}function Ny(){return Xr().memoizedState}function Sy(){return Xr().memoizedState}function Nj(n){for(var o=n.return;o!==null;){switch(o.tag){case 24:case 3:var u=Xn();n=cl(u);var x=dl(o,n,u);x!==null&&(On(x,o,u),f0(x,o,u)),o={cache:lg()},n.payload=o;return}o=o.return}}function Sj(n,o,u){var x=Xn();u={lane:x,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null},tm(n)?Ty(o,u):(u=n0(n,o,u,x),u!==null&&(On(u,n,x),Ey(u,o,x)))}function Cy(n,o,u){var x=Xn();v0(n,o,u,x)}function v0(n,o,u,x){var w={lane:x,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null};if(tm(n))Ty(o,w);else{var S=n.alternate;if(n.lanes===0&&(S===null||S.lanes===0)&&(S=o.lastRenderedReducer,S!==null))try{var q=o.lastRenderedState,ge=S(q,u);if(w.hasEagerState=!0,w.eagerState=ge,ts(ge,q))return ao(n,o,w,0),wr===null&&Vl(),!1}catch(Ae){}finally{}if(u=n0(n,o,w,x),u!==null)return On(u,n,x),Ey(u,o,x),!0}return!1}function Lg(n,o,u,x){if(x={lane:2,revertLane:hf(),gesture:null,action:x,hasEagerState:!1,eagerState:null,next:null},tm(n)){if(o)throw Error(s(479))}else o=n0(n,u,x,2),o!==null&&On(o,n,2)}function tm(n){var o=n.alternate;return n===Ta||o!==null&&o===Ta}function Ty(n,o){rd=Yu=!0;var u=n.pending;u===null?o.next=o:(o.next=u.next,u.next=o),n.pending=o}function Ey(n,o,u){if((u&4194048)!==0){var x=o.lanes;x&=n.pendingLanes,u|=x,o.lanes=u,ct(n,u)}}var _0={readContext:Us,use:Xu,useCallback:$r,useContext:$r,useEffect:$r,useImperativeHandle:$r,useLayoutEffect:$r,useInsertionEffect:$r,useMemo:$r,useReducer:$r,useRef:$r,useState:$r,useDebugValue:$r,useDeferredValue:$r,useTransition:$r,useSyncExternalStore:$r,useId:$r,useHostTransitionStatus:$r,useFormState:$r,useActionState:$r,useOptimistic:$r,useMemoCache:$r,useCacheRefresh:$r};_0.useEffectEvent=$r;var Ay={readContext:Us,use:Xu,useCallback:function(n,o){return fn().memoizedState=[n,o===void 0?null:o],n},useContext:Us,useEffect:hy,useImperativeHandle:function(n,o,u){u=u!=null?u.concat([n]):null,Qu(4194308,4,py.bind(null,o,n),u)},useLayoutEffect:function(n,o){return Qu(4194308,4,n,o)},useInsertionEffect:function(n,o){Qu(4,2,n,o)},useMemo:function(n,o){var u=fn();o=o===void 0?null:o;var x=n();if(tc){ve(!0);try{n()}finally{ve(!1)}}return u.memoizedState=[x,o],x},useReducer:function(n,o,u){var x=fn();if(u!==void 0){var w=u(o);if(tc){ve(!0);try{u(o)}finally{ve(!1)}}}else w=o;return x.memoizedState=x.baseState=w,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:w},x.queue=n,n=n.dispatch=Sj.bind(null,Ta,n),[x.memoizedState,n]},useRef:function(n){var o=fn();return n={current:n},o.memoizedState=n},useState:function(n){n=Cg(n);var o=n.queue,u=Cy.bind(null,Ta,o);return o.dispatch=u,[n.memoizedState,u]},useDebugValue:Ag,useDeferredValue:function(n,o){var u=fn();return Og(u,n,o)},useTransition:function(){var n=Cg(!1);return n=wy.bind(null,Ta,n.queue,!0,!1),fn().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,o,u){var x=Ta,w=fn();if(Ua){if(u===void 0)throw Error(s(407));u=u()}else{if(u=o(),wr===null)throw Error(s(349));(Wa&127)!==0||Xp(x,o,u)}w.memoizedState=u;var S={value:u,getSnapshot:o};return w.queue=S,hy(Qp.bind(null,x,S,n),[n]),x.flags|=2048,nd(9,{destroy:void 0},Kp.bind(null,x,S,u,o),null),u},useId:function(){var n=fn(),o=wr.identifierPrefix;if(Ua){var u=Xt,x=Tt;u=(x&~(1<<32-Oe(x)-1)).toString(32)+u,o="_"+o+"R_"+u,u=Zu++,0<\/script>",S=S.removeChild(S.firstChild);break;case"select":S=typeof x.is=="string"?q.createElement("select",{is:x.is}):q.createElement("select"),x.multiple?S.multiple=!0:x.size&&(S.size=x.size);break;default:S=typeof x.is=="string"?q.createElement(w,{is:x.is}):q.createElement(w)}}S[ie]=o,S[xe]=x;e:for(q=o.child;q!==null;){if(q.tag===5||q.tag===6)S.appendChild(q.stateNode);else if(q.tag!==4&&q.tag!==27&&q.child!==null){q.child.return=q,q=q.child;continue}if(q===o)break e;for(;q.sibling===null;){if(q.return===null||q.return===o)break e;q=q.return}q.sibling.return=q.return,q=q.sibling}o.stateNode=S;e:switch(Hs(S,w,x),w){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}x&&Po(o)}}return Er(o),Yg(o,o.type,n===null?null:n.memoizedProps,o.pendingProps,u),null;case 6:if(n&&o.stateNode!=null)n.memoizedProps!==x&&Po(o);else{if(typeof x!="string"&&o.stateNode===null)throw Error(s(166));if(n=we.current,Ni(o)){if(n=o.stateNode,u=o.memoizedProps,x=null,w=Xa,w!==null)switch(w.tag){case 27:case 5:x=w.memoizedProps}n[ie]=o,n=!!(n.nodeValue===u||x!==null&&x.suppressHydrationWarning===!0||Zb(n.nodeValue,u)),n||so(o,!0)}else n=_m(n).createTextNode(x),n[ie]=o,o.stateNode=n}return Er(o),null;case 31:if(u=o.memoizedState,n===null||n.memoizedState!==null){if(x=Ni(o),u!==null){if(n===null){if(!x)throw Error(s(318));if(n=o.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(s(557));n[ie]=o}else Oo(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;Er(o),n=!1}else u=d0(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=u),n=!0;if(!n)return o.flags&256?(Yn(o),o):(Yn(o),null);if((o.flags&128)!==0)throw Error(s(558))}return Er(o),null;case 13:if(x=o.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(w=Ni(o),x!==null&&x.dehydrated!==null){if(n===null){if(!w)throw Error(s(318));if(w=o.memoizedState,w=w!==null?w.dehydrated:null,!w)throw Error(s(317));w[ie]=o}else Oo(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;Er(o),w=!1}else w=d0(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=w),w=!0;if(!w)return o.flags&256?(Yn(o),o):(Yn(o),null)}return Yn(o),(o.flags&128)!==0?(o.lanes=u,o):(u=x!==null,n=n!==null&&n.memoizedState!==null,u&&(x=o.child,w=null,x.alternate!==null&&x.alternate.memoizedState!==null&&x.alternate.memoizedState.cachePool!==null&&(w=x.alternate.memoizedState.cachePool.pool),S=null,x.memoizedState!==null&&x.memoizedState.cachePool!==null&&(S=x.memoizedState.cachePool.pool),S!==w&&(x.flags|=2048)),u!==n&&u&&(o.child.flags|=8192),im(o,o.updateQueue),Er(o),null);case 4:return Me(),n===null&&pf(o.stateNode.containerInfo),Er(o),null;case 10:return Do(o.type),Er(o),null;case 19:if(M(Jr),x=o.memoizedState,x===null)return Er(o),null;if(w=(o.flags&128)!==0,S=x.rendering,S===null)if(w)k0(x,!1);else{if(Hr!==0||n!==null&&(n.flags&128)!==0)for(n=o.child;n!==null;){if(S=Gu(n),S!==null){for(o.flags|=128,k0(x,!1),n=S.updateQueue,o.updateQueue=n,im(o,n),o.subtreeFlags=0,n=u,u=o.child;u!==null;)i0(u,n),u=u.sibling;return B(Jr,Jr.current&1|2),Ua&&ua(o,x.treeForkCount),o.child}n=n.sibling}x.tail!==null&&sa()>um&&(o.flags|=128,w=!0,k0(x,!1),o.lanes=4194304)}else{if(!w)if(n=Gu(S),n!==null){if(o.flags|=128,w=!0,n=n.updateQueue,o.updateQueue=n,im(o,n),k0(x,!0),x.tail===null&&x.tailMode==="hidden"&&!S.alternate&&!Ua)return Er(o),null}else 2*sa()-x.renderingStartTime>um&&u!==536870912&&(o.flags|=128,w=!0,k0(x,!1),o.lanes=4194304);x.isBackwards?(S.sibling=o.child,o.child=S):(n=x.last,n!==null?n.sibling=S:o.child=S,x.last=S)}return x.tail!==null?(n=x.tail,x.rendering=n,x.tail=n.sibling,x.renderingStartTime=sa(),n.sibling=null,u=Jr.current,B(Jr,w?u&1|2:u&1),Ua&&ua(o,x.treeForkCount),n):(Er(o),null);case 22:case 23:return Yn(o),pg(),x=o.memoizedState!==null,n!==null?n.memoizedState!==null!==x&&(o.flags|=8192):x&&(o.flags|=8192),x?(u&536870912)!==0&&(o.flags&128)===0&&(Er(o),o.subtreeFlags&6&&(o.flags|=8192)):Er(o),u=o.updateQueue,u!==null&&im(o,u.retryQueue),u=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(u=n.memoizedState.cachePool.pool),x=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(x=o.memoizedState.cachePool.pool),x!==u&&(o.flags|=2048),n!==null&&M(Xl),null;case 24:return u=null,n!==null&&(u=n.memoizedState.cache),o.memoizedState.cache!==u&&(o.flags|=2048),Do(rs),Er(o),null;case 25:return null;case 30:return null}throw Error(s(156,o.tag))}function Oj(n,o){switch(Ur(o),o.tag){case 1:return n=o.flags,n&65536?(o.flags=n&-65537|128,o):null;case 3:return Do(rs),Me(),n=o.flags,(n&65536)!==0&&(n&128)===0?(o.flags=n&-65537|128,o):null;case 26:case 27:case 5:return Ne(o),null;case 31:if(o.memoizedState!==null){if(Yn(o),o.alternate===null)throw Error(s(340));Oo()}return n=o.flags,n&65536?(o.flags=n&-65537|128,o):null;case 13:if(Yn(o),n=o.memoizedState,n!==null&&n.dehydrated!==null){if(o.alternate===null)throw Error(s(340));Oo()}return n=o.flags,n&65536?(o.flags=n&-65537|128,o):null;case 19:return M(Jr),null;case 4:return Me(),null;case 10:return Do(o.type),null;case 22:case 23:return Yn(o),pg(),n!==null&&M(Xl),n=o.flags,n&65536?(o.flags=n&-65537|128,o):null;case 24:return Do(rs),null;case 25:return null;default:return null}}function eb(n,o){switch(Ur(o),o.tag){case 3:Do(rs),Me();break;case 26:case 27:case 5:Ne(o);break;case 4:Me();break;case 31:o.memoizedState!==null&&Yn(o);break;case 13:Yn(o);break;case 19:M(Jr);break;case 10:Do(o.type);break;case 22:case 23:Yn(o),pg(),n!==null&&M(Xl);break;case 24:Do(rs)}}function j0(n,o){try{var u=o.updateQueue,x=u!==null?u.lastEffect:null;if(x!==null){var w=x.next;u=w;do{if((u.tag&n)===n){x=void 0;var S=u.create,q=u.inst;x=S(),q.destroy=x}u=u.next}while(u!==w)}}catch(ge){cr(o,o.return,ge)}}function hl(n,o,u){try{var x=o.updateQueue,w=x!==null?x.lastEffect:null;if(w!==null){var S=w.next;x=S;do{if((x.tag&n)===n){var q=x.inst,ge=q.destroy;if(ge!==void 0){q.destroy=void 0,w=o;var Ae=u,Ke=ge;try{Ke()}catch(vt){cr(w,Ae,vt)}}}x=x.next}while(x!==S)}}catch(vt){cr(o,o.return,vt)}}function tb(n){var o=n.updateQueue;if(o!==null){var u=n.stateNode;try{Vp(o,u)}catch(x){cr(n,n.return,x)}}}function ab(n,o,u){u.props=ac(n.type,n.memoizedProps),u.state=n.memoizedState;try{u.componentWillUnmount()}catch(x){cr(n,o,x)}}function N0(n,o){try{var u=n.ref;if(u!==null){switch(n.tag){case 26:case 27:case 5:var x=n.stateNode;break;case 30:x=n.stateNode;break;default:x=n.stateNode}typeof u=="function"?n.refCleanup=u(x):u.current=x}}catch(w){cr(n,o,w)}}function io(n,o){var u=n.ref,x=n.refCleanup;if(u!==null)if(typeof x=="function")try{x()}catch(w){cr(n,o,w)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof u=="function")try{u(null)}catch(w){cr(n,o,w)}else u.current=null}function rb(n){var o=n.type,u=n.memoizedProps,x=n.stateNode;try{e:switch(o){case"button":case"input":case"select":case"textarea":u.autoFocus&&x.focus();break e;case"img":u.src?x.src=u.src:u.srcSet&&(x.srcset=u.srcSet)}}catch(w){cr(n,n.return,w)}}function Zg(n,o,u){try{var x=n.stateNode;Qj(x,n.type,u,o),x[xe]=o}catch(w){cr(n,n.return,w)}}function sb(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&vl(n.type)||n.tag===4}function Jg(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||sb(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&vl(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Xg(n,o,u){var x=n.tag;if(x===5||x===6)n=n.stateNode,o?(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u).insertBefore(n,o):(o=u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,o.appendChild(n),u=u._reactRootContainer,u!=null||o.onclick!==null||(o.onclick=Sa));else if(x!==4&&(x===27&&vl(n.type)&&(u=n.stateNode,o=null),n=n.child,n!==null))for(Xg(n,o,u),n=n.sibling;n!==null;)Xg(n,o,u),n=n.sibling}function om(n,o,u){var x=n.tag;if(x===5||x===6)n=n.stateNode,o?u.insertBefore(n,o):u.appendChild(n);else if(x!==4&&(x===27&&vl(n.type)&&(u=n.stateNode),n=n.child,n!==null))for(om(n,o,u),n=n.sibling;n!==null;)om(n,o,u),n=n.sibling}function nb(n){var o=n.stateNode,u=n.memoizedProps;try{for(var x=n.type,w=o.attributes;w.length;)o.removeAttributeNode(w[0]);Hs(o,x,u),o[ie]=n,o[xe]=u}catch(S){cr(n,n.return,S)}}var Fo=!1,is=!1,Kg=!1,ib=typeof WeakSet=="function"?WeakSet:Set,ks=null;function Dj(n,o){if(n=n.containerInfo,vf=Tm,n=ji(n),ui(n)){if("selectionStart"in n)var u={start:n.selectionStart,end:n.selectionEnd};else e:{u=(u=n.ownerDocument)&&u.defaultView||window;var x=u.getSelection&&u.getSelection();if(x&&x.rangeCount!==0){u=x.anchorNode;var w=x.anchorOffset,S=x.focusNode;x=x.focusOffset;try{u.nodeType,S.nodeType}catch(ba){u=null;break e}var q=0,ge=-1,Ae=-1,Ke=0,vt=0,Et=n,at=null;t:for(;;){for(var ut;Et!==u||w!==0&&Et.nodeType!==3||(ge=q+w),Et!==S||x!==0&&Et.nodeType!==3||(Ae=q+x),Et.nodeType===3&&(q+=Et.nodeValue.length),(ut=Et.firstChild)!==null;)at=Et,Et=ut;for(;;){if(Et===n)break t;if(at===u&&++Ke===w&&(ge=q),at===S&&++vt===x&&(Ae=q),(ut=Et.nextSibling)!==null)break;Et=at,at=Et.parentNode}Et=ut}u=ge===-1||Ae===-1?null:{start:ge,end:Ae}}else u=null}u=u||{start:0,end:0}}else u=null;for(_f={focusedElem:n,selectionRange:u},Tm=!1,ks=o;ks!==null;)if(o=ks,n=o.child,(o.subtreeFlags&1028)!==0&&n!==null)n.return=o,ks=n;else for(;ks!==null;){switch(o=ks,S=o.alternate,n=o.flags,o.tag){case 0:if((n&4)!==0&&(n=o.updateQueue,n=n!==null?n.events:null,n!==null))for(u=0;u title"))),Hs(S,x,u),S[ie]=n,Zt(S),x=S;break e;case"link":var q=mv("link","href",w).get(x+(u.href||""));if(q){for(var ge=0;gebr&&(q=br,br=ba,ba=q);var Ve=eo(ge,ba),Fe=eo(ge,br);if(Ve&&Fe&&(ut.rangeCount!==1||ut.anchorNode!==Ve.node||ut.anchorOffset!==Ve.offset||ut.focusNode!==Fe.node||ut.focusOffset!==Fe.offset)){var Je=Et.createRange();Je.setStart(Ve.node,Ve.offset),ut.removeAllRanges(),ba>br?(ut.addRange(Je),ut.extend(Fe.node,Fe.offset)):(Je.setEnd(Fe.node,Fe.offset),ut.addRange(Je))}}}}for(Et=[],ut=ge;ut=ut.parentNode;)ut.nodeType===1&&Et.push({element:ut,left:ut.scrollLeft,top:ut.scrollTop});for(typeof ge.focus=="function"&&ge.focus(),ge=0;geu?32:u,te.T=null,u=nf,nf=null;var S=pl,q=$o;if(ys=0,dd=pl=null,$o=0,(rr&6)!==0)throw Error(s(331));var ge=rr;if(rr|=4,pb(S.current),gb(S,S.current,q,u),rr=ge,O0(0,!1),Nt&&typeof Nt.onPostCommitFiberRoot=="function")try{Nt.onPostCommitFiberRoot(Ie,S)}catch(Ae){}return!0}finally{W.p=w,te.T=x,Rb(n,o)}}function Fb(n,o,u){o=f(u,o),o=Ig(n.stateNode,o,2),n=dl(n,o,2),n!==null&&(re(n,2),oo(n))}function cr(n,o,u){if(n.tag===3)Fb(n,n,u);else for(;o!==null;){if(o.tag===3){Fb(o,n,u);break}else if(o.tag===1){var x=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(xl===null||!xl.has(x))){n=f(u,n),u=Iy(2),x=dl(o,u,2),x!==null&&(zy(u,x,o,n),re(x,2),oo(x));break}}o=o.return}}function df(n,o,u){var x=n.pingCache;if(x===null){x=n.pingCache=new Rj;var w=new Set;x.set(o,w)}else w=x.get(o),w===void 0&&(w=new Set,x.set(o,w));w.has(u)||(tf=!0,w.add(u),n=Bj.bind(null,n,o,u),o.then(n,n))}function Bj(n,o,u){var x=n.pingCache;x!==null&&x.delete(o),n.pingedLanes|=n.suspendedLanes&u,n.warmLanes&=~u,wr===n&&(Wa&u)===u&&(Hr===4||Hr===3&&(Wa&62914560)===Wa&&300>sa()-dm?(rr&2)===0&&ud(n,0):af|=u,cd===Wa&&(cd=0)),oo(n)}function Ib(n,o){o===0&&(o=Qe()),n=mi(n,o),n!==null&&(re(n,o),oo(n))}function Uj(n){var o=n.memoizedState,u=0;o!==null&&(u=o.retryLane),Ib(n,u)}function $j(n,o){var u=0;switch(n.tag){case 31:case 13:var x=n.stateNode,w=n.memoizedState;w!==null&&(u=w.retryLane);break;case 19:x=n.stateNode;break;case 22:x=n.stateNode._retryCache;break;default:throw Error(s(314))}x!==null&&x.delete(o),Ib(n,u)}function Hj(n,o){return Wt(n,o)}var pm=null,hd=null,uf=!1,ym=!1,mf=!1,bl=0;function oo(n){n!==hd&&n.next===null&&(hd===null?pm=hd=n:hd=hd.next=n),ym=!0,uf||(uf=!0,Vj())}function O0(n,o){if(!mf&&ym){mf=!0;do for(var u=!1,x=pm;x!==null;){if(n!==0){var w=x.pendingLanes;if(w===0)var S=0;else{var q=x.suspendedLanes,ge=x.pingedLanes;S=(1<<31-Oe(42|n)+1)-1,S&=w&~(q&~ge),S=S&201326741?S&201326741|1:S?S|2:0}S!==0&&(u=!0,$b(x,S))}else S=Wa,S=Ot(x,x===wr?S:0,x.cancelPendingCommit!==null||x.timeoutHandle!==-1),(S&3)===0||Rt(x,S)||(u=!0,$b(x,S));x=x.next}while(u);mf=!1}}function Wj(){zb()}function zb(){ym=uf=!1;var n=0;bl!==0&&tN()&&(n=bl);for(var o=sa(),u=null,x=pm;x!==null;){var w=x.next,S=Bb(x,o);S===0?(x.next=null,u===null?pm=w:u.next=w,w===null&&(hd=u)):(u=x,(n!==0||(S&3)!==0)&&(ym=!0)),x=w}ys!==0&&ys!==5||O0(n),bl!==0&&(bl=0)}function Bb(n,o){for(var u=n.suspendedLanes,x=n.pingedLanes,w=n.expirationTimes,S=n.pendingLanes&-62914561;0ge)break;var vt=Ae.transferSize,Et=Ae.initiatorType;vt&&Jb(Et)&&(Ae=Ae.responseEnd,q+=vt*(Ae title"):null)}function yN(n,o,u){if(u===1||o.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof o.precedence!="string"||typeof o.href!="string"||o.href==="")break;return!0;case"link":if(typeof o.rel!="string"||typeof o.href!="string"||o.href===""||o.onLoad||o.onError)break;switch(o.rel){case"stylesheet":return n=o.disabled,typeof o.precedence=="string"&&n==null;default:return!0}case"script":if(o.async&&typeof o.async!="function"&&typeof o.async!="symbol"&&!o.onLoad&&!o.onError&&o.src&&typeof o.src=="string")return!0}return!1}function gv(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function bN(n,o,u,x){if(u.type==="stylesheet"&&(typeof x.media!="string"||matchMedia(x.media).matches!==!1)&&(u.state.loading&4)===0){if(u.instance===null){var w=fd(x.href),S=o.querySelector(R0(w));if(S){o=S._p,o!==null&&typeof o=="object"&&typeof o.then=="function"&&(n.count++,n=Nm.bind(n),o.then(n,n)),u.state.loading|=4,u.instance=S,Zt(S);return}S=o.ownerDocument||o,x=dv(x),(w=xi.get(w))&&Tf(x,w),S=S.createElement("link"),Zt(S);var q=S;q._p=new Promise(function(ge,Ae){q.onload=ge,q.onerror=Ae}),Hs(S,"link",x),u.instance=S}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(u,o),(o=u.state.preload)&&(u.state.loading&3)===0&&(n.count++,u=Nm.bind(n),o.addEventListener("load",u),o.addEventListener("error",u))}}var Af=0;function vN(n,o){return n.stylesheets&&n.count===0&&Cm(n,n.stylesheets),0Af?50:800)+o);return n.unsuspend=u,function(){n.unsuspend=null,clearTimeout(x),clearTimeout(w)}}:null}function Nm(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Cm(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var Sm=null;function Cm(n,o){n.stylesheets=null,n.unsuspend!==null&&(n.count++,Sm=new Map,o.forEach(_N,n),Sm=null,Nm.call(n))}function _N(n,o){if(!(o.state.loading&4)){var u=Sm.get(n);if(u)var x=u.get(null);else{u=new Map,Sm.set(n,u);for(var w=n.querySelectorAll("link[data-precedence],style[data-precedence]"),S=0;Stypeof t=="string",H0=()=>{let t,a;const r=new Promise((s,i)=>{t=s,a=i});return r.resolve=t,r.reject=a,r},Uv=t=>t==null?"":""+t,WN=(t,a,r)=>{t.forEach(s=>{a[s]&&(r[s]=a[s])})},VN=/###/g,$v=t=>t&&t.indexOf("###")>-1?t.replace(VN,"."):t,Hv=t=>!t||ja(t),eu=(t,a,r)=>{const s=ja(a)?a.split("."):a;let i=0;for(;i{const{obj:s,k:i}=eu(t,a,Object);if(s!==void 0||a.length===1){s[i]=r;return}let c=a[a.length-1],d=a.slice(0,a.length-1),m=eu(t,d,Object);for(;m.obj===void 0&&d.length;)c=`${d[d.length-1]}.${c}`,d=d.slice(0,d.length-1),m=eu(t,d,Object),m!=null&&m.obj&&typeof m.obj[`${m.k}.${c}`]!="undefined"&&(m.obj=void 0);m.obj[`${m.k}.${c}`]=r},qN=(t,a,r,s)=>{const{obj:i,k:c}=eu(t,a,Object);i[c]=i[c]||[],i[c].push(r)},sh=(t,a)=>{const{obj:r,k:s}=eu(t,a);if(r&&Object.prototype.hasOwnProperty.call(r,s))return r[s]},GN=(t,a,r)=>{const s=sh(t,r);return s!==void 0?s:sh(a,r)},W_=(t,a,r)=>{for(const s in a)s!=="__proto__"&&s!=="constructor"&&(s in t?ja(t[s])||t[s]instanceof String||ja(a[s])||a[s]instanceof String?r&&(t[s]=a[s]):W_(t[s],a[s],r):t[s]=a[s]);return t},bd=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var YN={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ZN=t=>ja(t)?t.replace(/[&<>"'\/]/g,a=>YN[a]):t;class JN{constructor(a){this.capacity=a,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(a){const r=this.regExpMap.get(a);if(r!==void 0)return r;const s=new RegExp(a);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(a,s),this.regExpQueue.push(a),s}}const XN=[" ",",","?","!",";"],KN=new JN(20),QN=(t,a,r)=>{a=a||"",r=r||"";const s=XN.filter(d=>a.indexOf(d)<0&&r.indexOf(d)<0);if(s.length===0)return!0;const i=KN.getRegExp(`(${s.map(d=>d==="?"?"\\?":d).join("|")})`);let c=!i.test(t);if(!c){const d=t.indexOf(r);d>0&&!i.test(t.substring(0,d))&&(c=!0)}return c},yx=(t,a,r=".")=>{if(!t)return;if(t[a])return Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;const s=a.split(r);let i=t;for(let c=0;c-1&&ht==null?void 0:t.replace("_","-"),e4={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,a){var r,s;(s=(r=console==null?void 0:console[t])==null?void 0:r.apply)==null||s.call(r,console,a)}};class nh{constructor(a,r={}){this.init(a,r)}init(a,r={}){this.prefix=r.prefix||"i18next:",this.logger=a||e4,this.options=r,this.debug=r.debug}log(...a){return this.forward(a,"log","",!0)}warn(...a){return this.forward(a,"warn","",!0)}error(...a){return this.forward(a,"error","")}deprecate(...a){return this.forward(a,"warn","WARNING DEPRECATED: ",!0)}forward(a,r,s,i){return i&&!this.debug?null:(ja(a[0])&&(a[0]=`${s}${this.prefix} ${a[0]}`),this.logger[r](a))}create(a){return new nh(this.logger,ue({prefix:`${this.prefix}:${a}:`},this.options))}clone(a){return a=a||this.options,a.prefix=a.prefix||this.prefix,new nh(this.logger,a)}}var ho=new nh;class Dh{constructor(){this.observers={}}on(a,r){return a.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const i=this.observers[s].get(r)||0;this.observers[s].set(r,i+1)}),this}off(a,r){if(this.observers[a]){if(!r){delete this.observers[a];return}this.observers[a].delete(r)}}emit(a,...r){this.observers[a]&&Array.from(this.observers[a].entries()).forEach(([i,c])=>{for(let d=0;d{for(let d=0;d-1&&this.options.ns.splice(r,1)}getResource(a,r,s,i={}){var g,p;const c=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,d=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let m;a.indexOf(".")>-1?m=a.split("."):(m=[a,r],s&&(Array.isArray(s)?m.push(...s):ja(s)&&c?m.push(...s.split(c)):m.push(s)));const h=sh(this.data,m);return!h&&!r&&!s&&a.indexOf(".")>-1&&(a=m[0],r=m[1],s=m.slice(2).join(".")),h||!d||!ja(s)?h:yx((p=(g=this.data)==null?void 0:g[a])==null?void 0:p[r],s,c)}addResource(a,r,s,i,c={silent:!1}){const d=c.keySeparator!==void 0?c.keySeparator:this.options.keySeparator;let m=[a,r];s&&(m=m.concat(d?s.split(d):s)),a.indexOf(".")>-1&&(m=a.split("."),i=r,r=m[1]),this.addNamespaces(r),Wv(this.data,m,i),c.silent||this.emit("added",a,r,s,i)}addResources(a,r,s,i={silent:!1}){for(const c in s)(ja(s[c])||Array.isArray(s[c]))&&this.addResource(a,r,c,s[c],{silent:!0});i.silent||this.emit("added",a,r,s)}addResourceBundle(a,r,s,i,c,d={silent:!1,skipCopy:!1}){let m=[a,r];a.indexOf(".")>-1&&(m=a.split("."),i=s,s=r,r=m[1]),this.addNamespaces(r);let h=sh(this.data,m)||{};d.skipCopy||(s=JSON.parse(JSON.stringify(s))),i?W_(h,s,c):h=ue(ue({},h),s),Wv(this.data,m,h),d.silent||this.emit("added",a,r,s)}removeResourceBundle(a,r){this.hasResourceBundle(a,r)&&delete this.data[a][r],this.removeNamespaces(r),this.emit("removed",a,r)}hasResourceBundle(a,r){return this.getResource(a,r)!==void 0}getResourceBundle(a,r){return r||(r=this.options.defaultNS),this.getResource(a,r)}getDataByLanguage(a){return this.data[a]}hasLanguageSomeTranslations(a){const r=this.getDataByLanguage(a);return!!(r&&Object.keys(r)||[]).find(i=>r[i]&&Object.keys(r[i]).length>0)}toJSON(){return this.data}}var V_={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,a,r,s,i){return t.forEach(c=>{var d,m;a=(m=(d=this.processors[c])==null?void 0:d.process(a,r,s,i))!=null?m:a}),a}};const q_=Symbol("i18next/PATH_KEY");function t4(){const t=[],a=Object.create(null);let r;return a.get=(s,i)=>{var c;return(c=r==null?void 0:r.revoke)==null||c.call(r),i===q_?t:(t.push(i),r=Proxy.revocable(s,a),r.proxy)},Proxy.revocable(Object.create(null),a).proxy}function bx(t,a){var s;const{[q_]:r}=t(t4());return r.join((s=a==null?void 0:a.keySeparator)!=null?s:".")}const qv={},qf=t=>!ja(t)&&typeof t!="boolean"&&typeof t!="number";class ih extends Dh{constructor(a,r={}){super(),WN(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],a,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=ho.create("translator")}changeLanguage(a){a&&(this.language=a)}exists(a,r={interpolation:{}}){const s=ue({},r);if(a==null)return!1;const i=this.resolve(a,s);if((i==null?void 0:i.res)===void 0)return!1;const c=qf(i.res);return!(s.returnObjects===!1&&c)}extractFromKey(a,r){let s=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let c=r.ns||this.options.defaultNS||[];const d=s&&a.indexOf(s)>-1,m=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!QN(a,s,i);if(d&&!m){const h=a.match(this.interpolator.nestingRegexp);if(h&&h.length>0)return{key:a,namespaces:ja(c)?[c]:c};const g=a.split(s);(s!==i||s===i&&this.options.ns.indexOf(g[0])>-1)&&(c=g.shift()),a=g.join(i)}return{key:a,namespaces:ja(c)?[c]:c}}translate(a,r,s){let i=typeof r=="object"?ue({},r):r;if(typeof i!="object"&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i=="object"&&(i=ue({},i)),i||(i={}),a==null)return"";typeof a=="function"&&(a=bx(a,ue(ue({},this.options),i))),Array.isArray(a)||(a=[String(a)]);const c=i.returnDetails!==void 0?i.returnDetails:this.options.returnDetails,d=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,{key:m,namespaces:h}=this.extractFromKey(a[a.length-1],i),g=h[h.length-1];let p=i.nsSeparator!==void 0?i.nsSeparator:this.options.nsSeparator;p===void 0&&(p=":");const b=i.lng||this.language,j=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((b==null?void 0:b.toLowerCase())==="cimode")return j?c?{res:`${g}${p}${m}`,usedKey:m,exactUsedKey:m,usedLng:b,usedNS:g,usedParams:this.getUsedParamsDetails(i)}:`${g}${p}${m}`:c?{res:m,usedKey:m,exactUsedKey:m,usedLng:b,usedNS:g,usedParams:this.getUsedParamsDetails(i)}:m;const _=this.resolve(a,i);let N=_==null?void 0:_.res;const k=(_==null?void 0:_.usedKey)||m,C=(_==null?void 0:_.exactUsedKey)||m,D=["[object Number]","[object Function]","[object RegExp]"],T=i.joinArrays!==void 0?i.joinArrays:this.options.joinArrays,E=!this.i18nFormat||this.i18nFormat.handleAsObject,O=i.count!==void 0&&!ja(i.count),R=ih.hasDefaultValue(i),Y=O?this.pluralResolver.getSuffix(b,i.count,i):"",P=i.ordinal&&O?this.pluralResolver.getSuffix(b,i.count,{ordinal:!1}):"",U=O&&!i.ordinal&&i.count===0,J=U&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${Y}`]||i[`defaultValue${P}`]||i.defaultValue;let ne=N;E&&!N&&R&&(ne=J);const ye=qf(ne),he=Object.prototype.toString.apply(ne);if(E&&ne&&ye&&D.indexOf(he)<0&&!(ja(T)&&Array.isArray(ne))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const ce=this.options.returnedObjectHandler?this.options.returnedObjectHandler(k,ne,Se(ue({},i),{ns:h})):`key '${m} (${this.language})' returned an object instead of string.`;return c?(_.res=ce,_.usedParams=this.getUsedParamsDetails(i),_):ce}if(d){const ce=Array.isArray(ne),se=ce?[]:{},ee=ce?C:k;for(const te in ne)if(Object.prototype.hasOwnProperty.call(ne,te)){const W=`${ee}${d}${te}`;R&&!N?se[te]=this.translate(W,Se(ue({},i),{defaultValue:qf(J)?J[te]:void 0,joinArrays:!1,ns:h})):se[te]=this.translate(W,Se(ue({},i),{joinArrays:!1,ns:h})),se[te]===W&&(se[te]=ne[te])}N=se}}else if(E&&ja(T)&&Array.isArray(N))N=N.join(T),N&&(N=this.extendTranslation(N,a,i,s));else{let ce=!1,se=!1;!this.isValidLookup(N)&&R&&(ce=!0,N=J),this.isValidLookup(N)||(se=!0,N=m);const te=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&se?void 0:N,W=R&&J!==N&&this.options.updateMissing;if(se||ce||W){if(this.logger.log(W?"updateKey":"missingKey",b,g,m,W?J:N),d){const F=this.resolve(m,Se(ue({},i),{keySeparator:!1}));F&&F.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let I=[];const oe=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo==="fallback"&&oe&&oe[0])for(let F=0;F{var K;const X=R&&B!==N?B:te;this.options.missingKeyHandler?this.options.missingKeyHandler(F,g,M,X,W,i):(K=this.backendConnector)!=null&&K.saveMissing&&this.backendConnector.saveMissing(F,g,M,X,W,i),this.emit("missingKey",F,g,M,N)};this.options.saveMissing&&(this.options.saveMissingPlurals&&O?I.forEach(F=>{const M=this.pluralResolver.getSuffixes(F,i);U&&i[`defaultValue${this.options.pluralSeparator}zero`]&&M.indexOf(`${this.options.pluralSeparator}zero`)<0&&M.push(`${this.options.pluralSeparator}zero`),M.forEach(B=>{ae([F],m+B,i[`defaultValue${B}`]||J)})}):ae(I,m,J))}N=this.extendTranslation(N,a,i,_,s),se&&N===m&&this.options.appendNamespaceToMissingKey&&(N=`${g}${p}${m}`),(se||ce)&&this.options.parseMissingKeyHandler&&(N=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${g}${p}${m}`:m,ce?N:void 0,i))}return c?(_.res=N,_.usedParams=this.getUsedParamsDetails(i),_):N}extendTranslation(a,r,s,i,c){var h,g;if((h=this.i18nFormat)!=null&&h.parse)a=this.i18nFormat.parse(a,ue(ue({},this.options.interpolation.defaultVariables),s),s.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init(Se(ue({},s),{interpolation:ue(ue({},this.options.interpolation),s.interpolation)}));const p=ja(a)&&(((g=s==null?void 0:s.interpolation)==null?void 0:g.skipOnVariables)!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let b;if(p){const _=a.match(this.interpolator.nestingRegexp);b=_&&_.length}let j=s.replace&&!ja(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(j=ue(ue({},this.options.interpolation.defaultVariables),j)),a=this.interpolator.interpolate(a,j,s.lng||this.language||i.usedLng,s),p){const _=a.match(this.interpolator.nestingRegexp),N=_&&_.length;b(c==null?void 0:c[0])===_[0]&&!s.context?(this.logger.warn(`It seems you are nesting recursively key: ${_[0]} in key: ${r[0]}`),null):this.translate(..._,r),s)),s.interpolation&&this.interpolator.reset()}const d=s.postProcess||this.options.postProcess,m=ja(d)?[d]:d;return a!=null&&(m!=null&&m.length)&&s.applyPostProcessor!==!1&&(a=V_.handle(m,a,r,this.options&&this.options.postProcessPassResolved?ue({i18nResolved:Se(ue({},i),{usedParams:this.getUsedParamsDetails(s)})},s):s,this)),a}resolve(a,r={}){let s,i,c,d,m;return ja(a)&&(a=[a]),a.forEach(h=>{if(this.isValidLookup(s))return;const g=this.extractFromKey(h,r),p=g.key;i=p;let b=g.namespaces;this.options.fallbackNS&&(b=b.concat(this.options.fallbackNS));const j=r.count!==void 0&&!ja(r.count),_=j&&!r.ordinal&&r.count===0,N=r.context!==void 0&&(ja(r.context)||typeof r.context=="number")&&r.context!=="",k=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);b.forEach(C=>{var D,T;this.isValidLookup(s)||(m=C,!qv[`${k[0]}-${C}`]&&((D=this.utils)!=null&&D.hasLoadedNamespace)&&!((T=this.utils)!=null&&T.hasLoadedNamespace(m))&&(qv[`${k[0]}-${C}`]=!0,this.logger.warn(`key "${i}" for languages "${k.join(", ")}" won't get resolved as namespace "${m}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),k.forEach(E=>{var Y;if(this.isValidLookup(s))return;d=E;const O=[p];if((Y=this.i18nFormat)!=null&&Y.addLookupKeys)this.i18nFormat.addLookupKeys(O,p,E,C,r);else{let P;j&&(P=this.pluralResolver.getSuffix(E,r.count,r));const U=`${this.options.pluralSeparator}zero`,J=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(j&&(r.ordinal&&P.indexOf(J)===0&&O.push(p+P.replace(J,this.options.pluralSeparator)),O.push(p+P),_&&O.push(p+U)),N){const ne=`${p}${this.options.contextSeparator||"_"}${r.context}`;O.push(ne),j&&(r.ordinal&&P.indexOf(J)===0&&O.push(ne+P.replace(J,this.options.pluralSeparator)),O.push(ne+P),_&&O.push(ne+U))}}let R;for(;R=O.pop();)this.isValidLookup(s)||(c=R,s=this.getResource(E,C,R,r))}))})}),{res:s,usedKey:i,exactUsedKey:c,usedLng:d,usedNS:m}}isValidLookup(a){return a!==void 0&&!(!this.options.returnNull&&a===null)&&!(!this.options.returnEmptyString&&a==="")}getResource(a,r,s,i={}){var c;return(c=this.i18nFormat)!=null&&c.getResource?this.i18nFormat.getResource(a,r,s,i):this.resourceStore.getResource(a,r,s,i)}getUsedParamsDetails(a={}){const r=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=a.replace&&!ja(a.replace);let i=s?a.replace:a;if(s&&typeof a.count!="undefined"&&(i.count=a.count),this.options.interpolation.defaultVariables&&(i=ue(ue({},this.options.interpolation.defaultVariables),i)),!s){i=ue({},i);for(const c of r)delete i[c]}return i}static hasDefaultValue(a){const r="defaultValue";for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&r===s.substring(0,r.length)&&a[s]!==void 0)return!0;return!1}}class Gv{constructor(a){this.options=a,this.supportedLngs=this.options.supportedLngs||!1,this.logger=ho.create("languageUtils")}getScriptPartFromCode(a){if(a=uu(a),!a||a.indexOf("-")<0)return null;const r=a.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(a){if(a=uu(a),!a||a.indexOf("-")<0)return a;const r=a.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(a){if(ja(a)&&a.indexOf("-")>-1){let r;try{r=Intl.getCanonicalLocales(a)[0]}catch(s){}return r&&this.options.lowerCaseLng&&(r=r.toLowerCase()),r||(this.options.lowerCaseLng?a.toLowerCase():a)}return this.options.cleanCode||this.options.lowerCaseLng?a.toLowerCase():a}isSupportedCode(a){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(a=this.getLanguagePartFromCode(a)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(a)>-1}getBestMatchFromCodes(a){if(!a)return null;let r;return a.forEach(s=>{if(r)return;const i=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(i))&&(r=i)}),!r&&this.options.supportedLngs&&a.forEach(s=>{if(r)return;const i=this.getScriptPartFromCode(s);if(this.isSupportedCode(i))return r=i;const c=this.getLanguagePartFromCode(s);if(this.isSupportedCode(c))return r=c;r=this.options.supportedLngs.find(d=>{if(d===c)return d;if(!(d.indexOf("-")<0&&c.indexOf("-")<0)&&(d.indexOf("-")>0&&c.indexOf("-")<0&&d.substring(0,d.indexOf("-"))===c||d.indexOf(c)===0&&c.length>1))return d})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(a,r){if(!a)return[];if(typeof a=="function"&&(a=a(r)),ja(a)&&(a=[a]),Array.isArray(a))return a;if(!r)return a.default||[];let s=a[r];return s||(s=a[this.getScriptPartFromCode(r)]),s||(s=a[this.formatLanguageCode(r)]),s||(s=a[this.getLanguagePartFromCode(r)]),s||(s=a.default),s||[]}toResolveHierarchy(a,r){const s=this.getFallbackCodes((r===!1?[]:r)||this.options.fallbackLng||[],a),i=[],c=d=>{d&&(this.isSupportedCode(d)?i.push(d):this.logger.warn(`rejecting language code not found in supportedLngs: ${d}`))};return ja(a)&&(a.indexOf("-")>-1||a.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&c(this.formatLanguageCode(a)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&c(this.getScriptPartFromCode(a)),this.options.load!=="currentOnly"&&c(this.getLanguagePartFromCode(a))):ja(a)&&c(this.formatLanguageCode(a)),s.forEach(d=>{i.indexOf(d)<0&&c(this.formatLanguageCode(d))}),i}}const Yv={zero:0,one:1,two:2,few:3,many:4,other:5},Zv={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class a4{constructor(a,r={}){this.languageUtils=a,this.options=r,this.logger=ho.create("pluralResolver"),this.pluralRulesCache={}}addRule(a,r){this.rules[a]=r}clearCache(){this.pluralRulesCache={}}getRule(a,r={}){const s=uu(a==="dev"?"en":a),i=r.ordinal?"ordinal":"cardinal",c=JSON.stringify({cleanedCode:s,type:i});if(c in this.pluralRulesCache)return this.pluralRulesCache[c];let d;try{d=new Intl.PluralRules(s,{type:i})}catch(m){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Zv;if(!a.match(/-|_/))return Zv;const h=this.languageUtils.getLanguagePartFromCode(a);d=this.getRule(h,r)}return this.pluralRulesCache[c]=d,d}needsPlural(a,r={}){let s=this.getRule(a,r);return s||(s=this.getRule("dev",r)),(s==null?void 0:s.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(a,r,s={}){return this.getSuffixes(a,s).map(i=>`${r}${i}`)}getSuffixes(a,r={}){let s=this.getRule(a,r);return s||(s=this.getRule("dev",r)),s?s.resolvedOptions().pluralCategories.sort((i,c)=>Yv[i]-Yv[c]).map(i=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(a,r,s={}){const i=this.getRule(a,s);return i?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${i.select(r)}`:(this.logger.warn(`no plural rule found for: ${a}`),this.getSuffix("dev",r,s))}}const Jv=(t,a,r,s=".",i=!0)=>{let c=GN(t,a,r);return!c&&i&&ja(r)&&(c=yx(t,r,s),c===void 0&&(c=yx(a,r,s))),c},Gf=t=>t.replace(/\$/g,"$$$$");class Xv{constructor(a={}){var r;this.logger=ho.create("interpolator"),this.options=a,this.format=((r=a==null?void 0:a.interpolation)==null?void 0:r.format)||(s=>s),this.init(a)}init(a={}){a.interpolation||(a.interpolation={escapeValue:!0});const{escape:r,escapeValue:s,useRawValueToEscape:i,prefix:c,prefixEscaped:d,suffix:m,suffixEscaped:h,formatSeparator:g,unescapeSuffix:p,unescapePrefix:b,nestingPrefix:j,nestingPrefixEscaped:_,nestingSuffix:N,nestingSuffixEscaped:k,nestingOptionsSeparator:C,maxReplaces:D,alwaysFormat:T}=a.interpolation;this.escape=r!==void 0?r:ZN,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=c?bd(c):d||"{{",this.suffix=m?bd(m):h||"}}",this.formatSeparator=g||",",this.unescapePrefix=p?"":b||"-",this.unescapeSuffix=this.unescapePrefix?"":p||"",this.nestingPrefix=j?bd(j):_||bd("$t("),this.nestingSuffix=N?bd(N):k||bd(")"),this.nestingOptionsSeparator=C||",",this.maxReplaces=D||1e3,this.alwaysFormat=T!==void 0?T:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const a=(r,s)=>(r==null?void 0:r.source)===s?(r.lastIndex=0,r):new RegExp(s,"g");this.regexp=a(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=a(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=a(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(a,r,s,i){var _;let c,d,m;const h=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},g=N=>{if(N.indexOf(this.formatSeparator)<0){const T=Jv(r,h,N,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(T,void 0,s,Se(ue(ue({},i),r),{interpolationkey:N})):T}const k=N.split(this.formatSeparator),C=k.shift().trim(),D=k.join(this.formatSeparator).trim();return this.format(Jv(r,h,C,this.options.keySeparator,this.options.ignoreJSONStructure),D,s,Se(ue(ue({},i),r),{interpolationkey:C}))};this.resetRegExp();const p=(i==null?void 0:i.missingInterpolationHandler)||this.options.missingInterpolationHandler,b=((_=i==null?void 0:i.interpolation)==null?void 0:_.skipOnVariables)!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:N=>Gf(N)},{regex:this.regexp,safeValue:N=>this.escapeValue?Gf(this.escape(N)):Gf(N)}].forEach(N=>{for(m=0;c=N.regex.exec(a);){const k=c[1].trim();if(d=g(k),d===void 0)if(typeof p=="function"){const D=p(a,c,i);d=ja(D)?D:""}else if(i&&Object.prototype.hasOwnProperty.call(i,k))d="";else if(b){d=c[0];continue}else this.logger.warn(`missed to pass in variable ${k} for interpolating ${a}`),d="";else!ja(d)&&!this.useRawValueToEscape&&(d=Uv(d));const C=N.safeValue(d);if(a=a.replace(c[0],C),b?(N.regex.lastIndex+=d.length,N.regex.lastIndex-=c[0].length):N.regex.lastIndex=0,m++,m>=this.maxReplaces)break}}),a}nest(a,r,s={}){let i,c,d;const m=(h,g)=>{var k;const p=this.nestingOptionsSeparator;if(h.indexOf(p)<0)return h;const b=h.split(new RegExp(`${p}[ ]*{`));let j=`{${b[1]}`;h=b[0],j=this.interpolate(j,d);const _=j.match(/'/g),N=j.match(/"/g);(((k=_==null?void 0:_.length)!=null?k:0)%2===0&&!N||N.length%2!==0)&&(j=j.replace(/'/g,'"'));try{d=JSON.parse(j),g&&(d=ue(ue({},g),d))}catch(C){return this.logger.warn(`failed parsing options string in nesting for key ${h}`,C),`${h}${p}${j}`}return d.defaultValue&&d.defaultValue.indexOf(this.prefix)>-1&&delete d.defaultValue,h};for(;i=this.nestingRegexp.exec(a);){let h=[];d=ue({},s),d=d.replace&&!ja(d.replace)?d.replace:d,d.applyPostProcessor=!1,delete d.defaultValue;const g=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(g!==-1&&(h=i[1].slice(g).split(this.formatSeparator).map(p=>p.trim()).filter(Boolean),i[1]=i[1].slice(0,g)),c=r(m.call(this,i[1].trim(),d),d),c&&i[0]===a&&!ja(c))return c;ja(c)||(c=Uv(c)),c||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${a}`),c=""),h.length&&(c=h.reduce((p,b)=>this.format(p,b,s.lng,Se(ue({},s),{interpolationkey:i[1].trim()})),c.trim())),a=a.replace(i[0],c),this.regexp.lastIndex=0}return a}}const r4=t=>{let a=t.toLowerCase().trim();const r={};if(t.indexOf("(")>-1){const s=t.split("(");a=s[0].toLowerCase().trim();const i=s[1].substring(0,s[1].length-1);a==="currency"&&i.indexOf(":")<0?r.currency||(r.currency=i.trim()):a==="relativetime"&&i.indexOf(":")<0?r.range||(r.range=i.trim()):i.split(";").forEach(d=>{if(d){const[m,...h]=d.split(":"),g=h.join(":").trim().replace(/^'+|'+$/g,""),p=m.trim();r[p]||(r[p]=g),g==="false"&&(r[p]=!1),g==="true"&&(r[p]=!0),isNaN(g)||(r[p]=parseInt(g,10))}})}return{formatName:a,formatOptions:r}},Kv=t=>{const a={};return(r,s,i)=>{let c=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(c=Se(ue({},c),{[i.interpolationkey]:void 0}));const d=s+JSON.stringify(c);let m=a[d];return m||(m=t(uu(s),i),a[d]=m),m(r)}},s4=t=>(a,r,s)=>t(uu(r),s)(a);class n4{constructor(a={}){this.logger=ho.create("formatter"),this.options=a,this.init(a)}init(a,r={interpolation:{}}){this.formatSeparator=r.interpolation.formatSeparator||",";const s=r.cacheInBuiltFormats?Kv:s4;this.formats={number:s((i,c)=>{const d=new Intl.NumberFormat(i,ue({},c));return m=>d.format(m)}),currency:s((i,c)=>{const d=new Intl.NumberFormat(i,Se(ue({},c),{style:"currency"}));return m=>d.format(m)}),datetime:s((i,c)=>{const d=new Intl.DateTimeFormat(i,ue({},c));return m=>d.format(m)}),relativetime:s((i,c)=>{const d=new Intl.RelativeTimeFormat(i,ue({},c));return m=>d.format(m,c.range||"day")}),list:s((i,c)=>{const d=new Intl.ListFormat(i,ue({},c));return m=>d.format(m)})}}add(a,r){this.formats[a.toLowerCase().trim()]=r}addCached(a,r){this.formats[a.toLowerCase().trim()]=Kv(r)}format(a,r,s,i={}){const c=r.split(this.formatSeparator);if(c.length>1&&c[0].indexOf("(")>1&&c[0].indexOf(")")<0&&c.find(m=>m.indexOf(")")>-1)){const m=c.findIndex(h=>h.indexOf(")")>-1);c[0]=[c[0],...c.splice(1,m)].join(this.formatSeparator)}return c.reduce((m,h)=>{var b;const{formatName:g,formatOptions:p}=r4(h);if(this.formats[g]){let j=m;try{const _=((b=i==null?void 0:i.formatParams)==null?void 0:b[i.interpolationkey])||{},N=_.locale||_.lng||i.locale||i.lng||s;j=this.formats[g](m,N,ue(ue(ue({},p),i),_))}catch(_){this.logger.warn(_)}return j}else this.logger.warn(`there was no format function for ${g}`);return m},a)}}const i4=(t,a)=>{t.pending[a]!==void 0&&(delete t.pending[a],t.pendingCount--)};class o4 extends Dh{constructor(a,r,s,i={}){var c,d;super(),this.backend=a,this.store=r,this.services=s,this.languageUtils=s.languageUtils,this.options=i,this.logger=ho.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],(d=(c=this.backend)==null?void 0:c.init)==null||d.call(c,s,i.backend,i)}queueLoad(a,r,s,i){const c={},d={},m={},h={};return a.forEach(g=>{let p=!0;r.forEach(b=>{const j=`${g}|${b}`;!s.reload&&this.store.hasResourceBundle(g,b)?this.state[j]=2:this.state[j]<0||(this.state[j]===1?d[j]===void 0&&(d[j]=!0):(this.state[j]=1,p=!1,d[j]===void 0&&(d[j]=!0),c[j]===void 0&&(c[j]=!0),h[b]===void 0&&(h[b]=!0)))}),p||(m[g]=!0)}),(Object.keys(c).length||Object.keys(d).length)&&this.queue.push({pending:d,pendingCount:Object.keys(d).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(c),pending:Object.keys(d),toLoadLanguages:Object.keys(m),toLoadNamespaces:Object.keys(h)}}loaded(a,r,s){const i=a.split("|"),c=i[0],d=i[1];r&&this.emit("failedLoading",c,d,r),!r&&s&&this.store.addResourceBundle(c,d,s,void 0,void 0,{skipCopy:!0}),this.state[a]=r?-1:2,r&&s&&(this.state[a]=0);const m={};this.queue.forEach(h=>{qN(h.loaded,[c],d),i4(h,a),r&&h.errors.push(r),h.pendingCount===0&&!h.done&&(Object.keys(h.loaded).forEach(g=>{m[g]||(m[g]={});const p=h.loaded[g];p.length&&p.forEach(b=>{m[g][b]===void 0&&(m[g][b]=!0)})}),h.done=!0,h.errors.length?h.callback(h.errors):h.callback())}),this.emit("loaded",m),this.queue=this.queue.filter(h=>!h.done)}read(a,r,s,i=0,c=this.retryTimeout,d){if(!a.length)return d(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:a,ns:r,fcName:s,tried:i,wait:c,callback:d});return}this.readingCalls++;const m=(g,p)=>{if(this.readingCalls--,this.waitingReads.length>0){const b=this.waitingReads.shift();this.read(b.lng,b.ns,b.fcName,b.tried,b.wait,b.callback)}if(g&&p&&i{this.read.call(this,a,r,s,i+1,c*2,d)},c);return}d(g,p)},h=this.backend[s].bind(this.backend);if(h.length===2){try{const g=h(a,r);g&&typeof g.then=="function"?g.then(p=>m(null,p)).catch(m):m(null,g)}catch(g){m(g)}return}return h(a,r,m)}prepareLoading(a,r,s={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();ja(a)&&(a=this.languageUtils.toResolveHierarchy(a)),ja(r)&&(r=[r]);const c=this.queueLoad(a,r,s,i);if(!c.toLoad.length)return c.pending.length||i(),null;c.toLoad.forEach(d=>{this.loadOne(d)})}load(a,r,s){this.prepareLoading(a,r,{},s)}reload(a,r,s){this.prepareLoading(a,r,{reload:!0},s)}loadOne(a,r=""){const s=a.split("|"),i=s[0],c=s[1];this.read(i,c,"read",void 0,void 0,(d,m)=>{d&&this.logger.warn(`${r}loading namespace ${c} for language ${i} failed`,d),!d&&m&&this.logger.log(`${r}loaded namespace ${c} for language ${i}`,m),this.loaded(a,d,m)})}saveMissing(a,r,s,i,c,d={},m=()=>{}){var h,g,p,b,j;if((g=(h=this.services)==null?void 0:h.utils)!=null&&g.hasLoadedNamespace&&!((b=(p=this.services)==null?void 0:p.utils)!=null&&b.hasLoadedNamespace(r))){this.logger.warn(`did not save key "${s}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if((j=this.backend)!=null&&j.create){const _=Se(ue({},d),{isUpdate:c}),N=this.backend.create.bind(this.backend);if(N.length<6)try{let k;N.length===5?k=N(a,r,s,i,_):k=N(a,r,s,i),k&&typeof k.then=="function"?k.then(C=>m(null,C)).catch(m):m(null,k)}catch(k){m(k)}else N(a,r,s,i,m,_)}!a||!a[0]||this.store.addResource(a[0],r,s,i)}}}const Qv=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let a={};if(typeof t[1]=="object"&&(a=t[1]),ja(t[1])&&(a.defaultValue=t[1]),ja(t[2])&&(a.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const r=t[3]||t[2];Object.keys(r).forEach(s=>{a[s]=r[s]})}return a},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),e1=t=>{var a,r;return ja(t.ns)&&(t.ns=[t.ns]),ja(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),ja(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),((r=(a=t.supportedLngs)==null?void 0:a.indexOf)==null?void 0:r.call(a,"cimode"))<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),typeof t.initImmediate=="boolean"&&(t.initAsync=t.initImmediate),t},Pm=()=>{},l4=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(r=>{typeof t[r]=="function"&&(t[r]=t[r].bind(t))})};class tu extends Dh{constructor(a={},r){if(super(),this.options=e1(a),this.services={},this.logger=ho,this.modules={external:[]},l4(this),r&&!this.isInitialized&&!a.isClone){if(!this.options.initAsync)return this.init(a,r),this;setTimeout(()=>{this.init(a,r)},0)}}init(a={},r){this.isInitializing=!0,typeof a=="function"&&(r=a,a={}),a.defaultNS==null&&a.ns&&(ja(a.ns)?a.defaultNS=a.ns:a.ns.indexOf("translation")<0&&(a.defaultNS=a.ns[0]));const s=Qv();this.options=ue(ue(ue({},s),this.options),e1(a)),this.options.interpolation=ue(ue({},s.interpolation),this.options.interpolation),a.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=a.keySeparator),a.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=a.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=s.overloadTranslationOptionHandler);const i=g=>g?typeof g=="function"?new g:g:null;if(!this.options.isClone){this.modules.logger?ho.init(i(this.modules.logger),this.options):ho.init(null,this.options);let g;this.modules.formatter?g=this.modules.formatter:g=n4;const p=new Gv(this.options);this.store=new Vv(this.options.resources,this.options);const b=this.services;b.logger=ho,b.resourceStore=this.store,b.languageUtils=p,b.pluralResolver=new a4(p,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==s.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),g&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(b.formatter=i(g),b.formatter.init&&b.formatter.init(b,this.options),this.options.interpolation.format=b.formatter.format.bind(b.formatter)),b.interpolator=new Xv(this.options),b.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},b.backendConnector=new o4(i(this.modules.backend),b.resourceStore,b,this.options),b.backendConnector.on("*",(_,...N)=>{this.emit(_,...N)}),this.modules.languageDetector&&(b.languageDetector=i(this.modules.languageDetector),b.languageDetector.init&&b.languageDetector.init(b,this.options.detection,this.options)),this.modules.i18nFormat&&(b.i18nFormat=i(this.modules.i18nFormat),b.i18nFormat.init&&b.i18nFormat.init(this)),this.translator=new ih(this.services,this.options),this.translator.on("*",(_,...N)=>{this.emit(_,...N)}),this.modules.external.forEach(_=>{_.init&&_.init(this)})}if(this.format=this.options.interpolation.format,r||(r=Pm),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const g=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);g.length>0&&g[0]!=="dev"&&(this.options.lng=g[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(g=>{this[g]=(...p)=>this.store[g](...p)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(g=>{this[g]=(...p)=>(this.store[g](...p),this)});const m=H0(),h=()=>{const g=(p,b)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),m.resolve(b),r(p,b)};if(this.languages&&!this.isInitialized)return g(null,this.t.bind(this));this.changeLanguage(this.options.lng,g)};return this.options.resources||!this.options.initAsync?h():setTimeout(h,0),m}loadResources(a,r=Pm){var c,d;let s=r;const i=ja(a)?a:this.language;if(typeof a=="function"&&(s=a),!this.options.resources||this.options.partialBundledLanguages){if((i==null?void 0:i.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const m=[],h=g=>{if(!g||g==="cimode")return;this.services.languageUtils.toResolveHierarchy(g).forEach(b=>{b!=="cimode"&&m.indexOf(b)<0&&m.push(b)})};i?h(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(p=>h(p)),(d=(c=this.options.preload)==null?void 0:c.forEach)==null||d.call(c,g=>h(g)),this.services.backendConnector.load(m,this.options.ns,g=>{!g&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(g)})}else s(null)}reloadResources(a,r,s){const i=H0();return typeof a=="function"&&(s=a,a=void 0),typeof r=="function"&&(s=r,r=void 0),a||(a=this.languages),r||(r=this.options.ns),s||(s=Pm),this.services.backendConnector.reload(a,r,c=>{i.resolve(),s(c)}),i}use(a){if(!a)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!a.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return a.type==="backend"&&(this.modules.backend=a),(a.type==="logger"||a.log&&a.warn&&a.error)&&(this.modules.logger=a),a.type==="languageDetector"&&(this.modules.languageDetector=a),a.type==="i18nFormat"&&(this.modules.i18nFormat=a),a.type==="postProcessor"&&V_.addPostProcessor(a),a.type==="formatter"&&(this.modules.formatter=a),a.type==="3rdParty"&&this.modules.external.push(a),this}setResolvedLanguage(a){if(!(!a||!this.languages)&&!(["cimode","dev"].indexOf(a)>-1)){for(let r=0;r-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}!this.resolvedLanguage&&this.languages.indexOf(a)<0&&this.store.hasLanguageSomeTranslations(a)&&(this.resolvedLanguage=a,this.languages.unshift(a))}}changeLanguage(a,r){this.isLanguageChangingTo=a;const s=H0();this.emit("languageChanging",a);const i=m=>{this.language=m,this.languages=this.services.languageUtils.toResolveHierarchy(m),this.resolvedLanguage=void 0,this.setResolvedLanguage(m)},c=(m,h)=>{h?this.isLanguageChangingTo===a&&(i(h),this.translator.changeLanguage(h),this.isLanguageChangingTo=void 0,this.emit("languageChanged",h),this.logger.log("languageChanged",h)):this.isLanguageChangingTo=void 0,s.resolve((...g)=>this.t(...g)),r&&r(m,(...g)=>this.t(...g))},d=m=>{var p,b;!a&&!m&&this.services.languageDetector&&(m=[]);const h=ja(m)?m:m&&m[0],g=this.store.hasLanguageSomeTranslations(h)?h:this.services.languageUtils.getBestMatchFromCodes(ja(m)?[m]:m);g&&(this.language||i(g),this.translator.language||this.translator.changeLanguage(g),(b=(p=this.services.languageDetector)==null?void 0:p.cacheUserLanguage)==null||b.call(p,g)),this.loadResources(g,j=>{c(j,g)})};return!a&&this.services.languageDetector&&!this.services.languageDetector.async?d(this.services.languageDetector.detect()):!a&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(d):this.services.languageDetector.detect(d):d(a),s}getFixedT(a,r,s){const i=(c,d,...m)=>{let h;typeof d!="object"?h=this.options.overloadTranslationOptionHandler([c,d].concat(m)):h=ue({},d),h.lng=h.lng||i.lng,h.lngs=h.lngs||i.lngs,h.ns=h.ns||i.ns,h.keyPrefix!==""&&(h.keyPrefix=h.keyPrefix||s||i.keyPrefix);const g=this.options.keySeparator||".";let p;return h.keyPrefix&&Array.isArray(c)?p=c.map(b=>(typeof b=="function"&&(b=bx(b,ue(ue({},this.options),d))),`${h.keyPrefix}${g}${b}`)):(typeof c=="function"&&(c=bx(c,ue(ue({},this.options),d))),p=h.keyPrefix?`${h.keyPrefix}${g}${c}`:c),this.t(p,h)};return ja(a)?i.lng=a:i.lngs=a,i.ns=r,i.keyPrefix=s,i}t(...a){var r;return(r=this.translator)==null?void 0:r.translate(...a)}exists(...a){var r;return(r=this.translator)==null?void 0:r.exists(...a)}setDefaultNamespace(a){this.options.defaultNS=a}hasLoadedNamespace(a,r={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=r.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,c=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;const d=(m,h)=>{const g=this.services.backendConnector.state[`${m}|${h}`];return g===-1||g===0||g===2};if(r.precheck){const m=r.precheck(this,d);if(m!==void 0)return m}return!!(this.hasResourceBundle(s,a)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||d(s,a)&&(!i||d(c,a)))}loadNamespaces(a,r){const s=H0();return this.options.ns?(ja(a)&&(a=[a]),a.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{s.resolve(),r&&r(i)}),s):(r&&r(),Promise.resolve())}loadLanguages(a,r){const s=H0();ja(a)&&(a=[a]);const i=this.options.preload||[],c=a.filter(d=>i.indexOf(d)<0&&this.services.languageUtils.isSupportedCode(d));return c.length?(this.options.preload=i.concat(c),this.loadResources(d=>{s.resolve(),r&&r(d)}),s):(r&&r(),Promise.resolve())}dir(a){var i,c;if(a||(a=this.resolvedLanguage||(((i=this.languages)==null?void 0:i.length)>0?this.languages[0]:this.language)),!a)return"rtl";try{const d=new Intl.Locale(a);if(d&&d.getTextInfo){const m=d.getTextInfo();if(m&&m.direction)return m.direction}}catch(d){}const r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=((c=this.services)==null?void 0:c.languageUtils)||new Gv(Qv());return a.toLowerCase().indexOf("-latn")>1?"ltr":r.indexOf(s.getLanguagePartFromCode(a))>-1||a.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(a={},r){const s=new tu(a,r);return s.createInstance=tu.createInstance,s}cloneInstance(a={},r=Pm){const s=a.forkResourceStore;s&&delete a.forkResourceStore;const i=Se(ue(ue({},this.options),a),{isClone:!0}),c=new tu(i);if((a.debug!==void 0||a.prefix!==void 0)&&(c.logger=c.logger.clone(a)),["store","services","language"].forEach(m=>{c[m]=this[m]}),c.services=ue({},this.services),c.services.utils={hasLoadedNamespace:c.hasLoadedNamespace.bind(c)},s){const m=Object.keys(this.store.data).reduce((h,g)=>(h[g]=ue({},this.store.data[g]),h[g]=Object.keys(h[g]).reduce((p,b)=>(p[b]=ue({},h[g][b]),p),h[g]),h),{});c.store=new Vv(m,i),c.services.resourceStore=c.store}return a.interpolation&&(c.services.interpolator=new Xv(i)),c.translator=new ih(c.services,i),c.translator.on("*",(m,...h)=>{c.emit(m,...h)}),c.init(i,r),c.translator.options=i,c.translator.backendConnector.services.utils={hasLoadedNamespace:c.hasLoadedNamespace.bind(c)},c}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Ts=tu.createInstance();Ts.createInstance;Ts.dir;Ts.init;Ts.loadResources;Ts.reloadResources;Ts.use;Ts.changeLanguage;Ts.getFixedT;Ts.t;Ts.exists;Ts.setDefaultNamespace;Ts.hasLoadedNamespace;Ts.loadNamespaces;Ts.loadLanguages;const c4=(t,a,r,s)=>{var c,d,m,h;const i=[r,ue({code:a},s||{})];if((d=(c=t==null?void 0:t.services)==null?void 0:c.logger)!=null&&d.forward)return t.services.logger.forward(i,"warn","react-i18next::",!0);vc(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),(h=(m=t==null?void 0:t.services)==null?void 0:m.logger)!=null&&h.warn?t.services.logger.warn(...i):console!=null&&console.warn&&console.warn(...i)},t1={},G_=(t,a,r,s)=>{vc(r)&&t1[r]||(vc(r)&&(t1[r]=new Date),c4(t,a,r,s))},Y_=(t,a)=>()=>{if(t.isInitialized)a();else{const r=()=>{setTimeout(()=>{t.off("initialized",r)},0),a()};t.on("initialized",r)}},vx=(t,a,r)=>{t.loadNamespaces(a,Y_(t,r))},a1=(t,a,r,s)=>{if(vc(r)&&(r=[r]),t.options.preload&&t.options.preload.indexOf(a)>-1)return vx(t,r,s);r.forEach(i=>{t.options.ns.indexOf(i)<0&&t.options.ns.push(i)}),t.loadLanguages(a,Y_(t,s))},d4=(t,a,r={})=>!a.languages||!a.languages.length?(G_(a,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:a.languages}),!0):a.hasLoadedNamespace(t,{lng:r.lng,precheck:(s,i)=>{if(r.bindI18n&&r.bindI18n.indexOf("languageChanging")>-1&&s.services.backendConnector.backend&&s.isLanguageChangingTo&&!i(s.isLanguageChangingTo,t))return!1}}),vc=t=>typeof t=="string",u4=t=>typeof t=="object"&&t!==null,m4=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,h4={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},g4=t=>h4[t],f4=t=>t.replace(m4,g4);let _x={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:f4};const x4=(t={})=>{_x=ue(ue({},_x),t)},p4=()=>_x;let Z_;const y4=t=>{Z_=t},b4=()=>Z_,v4={type:"3rdParty",init(t){x4(t.options.react),y4(t)}},_4=y.createContext();class w4{constructor(){this.usedNamespaces={}}addUsedNamespaces(a){a.forEach(r=>{this.usedNamespaces[r]||(this.usedNamespaces[r]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var Yf={exports:{}},Zf={};var r1;function k4(){if(r1)return Zf;r1=1;var t=Oh();function a(b,j){return b===j&&(b!==0||1/b===1/j)||b!==b&&j!==j}var r=typeof Object.is=="function"?Object.is:a,s=t.useState,i=t.useEffect,c=t.useLayoutEffect,d=t.useDebugValue;function m(b,j){var _=j(),N=s({inst:{value:_,getSnapshot:j}}),k=N[0].inst,C=N[1];return c(function(){k.value=_,k.getSnapshot=j,h(k)&&C({inst:k})},[b,_,j]),i(function(){return h(k)&&C({inst:k}),b(function(){h(k)&&C({inst:k})})},[b]),d(_),_}function h(b){var j=b.getSnapshot;b=b.value;try{var _=j();return!r(b,_)}catch(N){return!0}}function g(b,j){return j()}var p=typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"?g:m;return Zf.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:p,Zf}var s1;function j4(){return s1||(s1=1,Yf.exports=k4()),Yf.exports}var N4=j4();const S4=(t,a)=>vc(a)?a:u4(a)&&vc(a.defaultValue)?a.defaultValue:Array.isArray(t)?t[t.length-1]:t,C4={t:S4,ready:!1},T4=()=>()=>{},ca=(t,a={})=>{var J,ne,ye;const{i18n:r}=a,{i18n:s,defaultNS:i}=y.useContext(_4)||{},c=r||s||b4();c&&!c.reportNamespaces&&(c.reportNamespaces=new w4),c||G_(c,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const d=y.useMemo(()=>{var he;return ue(ue(ue({},p4()),(he=c==null?void 0:c.options)==null?void 0:he.react),a)},[c,a]),{useSuspense:m,keyPrefix:h}=d,g=i||((J=c==null?void 0:c.options)==null?void 0:J.defaultNS),p=vc(g)?[g]:g||["translation"],b=y.useMemo(()=>p,p);(ye=(ne=c==null?void 0:c.reportNamespaces)==null?void 0:ne.addUsedNamespaces)==null||ye.call(ne,b);const j=y.useRef(0),_=y.useCallback(he=>{if(!c)return T4;const{bindI18n:ce,bindI18nStore:se}=d,ee=()=>{j.current+=1,he()};return ce&&c.on(ce,ee),se&&c.store.on(se,ee),()=>{ce&&ce.split(" ").forEach(te=>c.off(te,ee)),se&&se.split(" ").forEach(te=>c.store.off(te,ee))}},[c,d]),N=y.useRef(),k=y.useCallback(()=>{if(!c)return C4;const he=!!(c.isInitialized||c.initializedStoreOnce)&&b.every(I=>d4(I,c,d)),ce=a.lng||c.language,se=j.current,ee=N.current;if(ee&&ee.ready===he&&ee.lng===ce&&ee.keyPrefix===h&&ee.revision===se)return ee;const W={t:c.getFixedT(ce,d.nsMode==="fallback"?b:b[0],h),ready:he,lng:ce,keyPrefix:h,revision:se};return N.current=W,W},[c,b,h,d,a.lng]),[C,D]=y.useState(0),{t:T,ready:E}=N4.useSyncExternalStore(_,k,k);y.useEffect(()=>{if(c&&!E&&!m){const he=()=>D(ce=>ce+1);a.lng?a1(c,a.lng,b,he):vx(c,b,he)}},[c,a.lng,b,E,m,C]);const O=c||{},R=y.useRef(null),Y=y.useRef(),P=he=>{const ce=Object.getOwnPropertyDescriptors(he);ce.__original&&delete ce.__original;const se=Object.create(Object.getPrototypeOf(he),ce);if(!Object.prototype.hasOwnProperty.call(se,"__original"))try{Object.defineProperty(se,"__original",{value:he,writable:!1,enumerable:!1,configurable:!1})}catch(ee){}return se},U=y.useMemo(()=>{const he=O,ce=he==null?void 0:he.language;let se=he;he&&(R.current&&R.current.__original===he?Y.current!==ce?(se=P(he),R.current=se,Y.current=ce):se=R.current:(se=P(he),R.current=se,Y.current=ce));const ee=[T,se,E];return ee.t=T,ee.i18n=se,ee.ready=E,ee},[T,O,E,O.resolvedLanguage,O.language,O.languages]);if(c&&m&&!E)throw new Promise(he=>{const ce=()=>he();a.lng?a1(c,a.lng,b,ce):vx(c,b,ce)});return U},{slice:E4,forEach:A4}=[];function O4(t){return A4.call(E4.call(arguments,1),a=>{if(a)for(const r in a)t[r]===void 0&&(t[r]=a[r])}),t}function D4(t){return typeof t!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(r=>r.test(t))}const n1=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,M4=function(t,a){const s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},i=encodeURIComponent(a);let c=`${t}=${i}`;if(s.maxAge>0){const d=s.maxAge-0;if(Number.isNaN(d))throw new Error("maxAge should be a Number");c+=`; Max-Age=${Math.floor(d)}`}if(s.domain){if(!n1.test(s.domain))throw new TypeError("option domain is invalid");c+=`; Domain=${s.domain}`}if(s.path){if(!n1.test(s.path))throw new TypeError("option path is invalid");c+=`; Path=${s.path}`}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");c+=`; Expires=${s.expires.toUTCString()}`}if(s.httpOnly&&(c+="; HttpOnly"),s.secure&&(c+="; Secure"),s.sameSite)switch(typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite){case!0:c+="; SameSite=Strict";break;case"lax":c+="; SameSite=Lax";break;case"strict":c+="; SameSite=Strict";break;case"none":c+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return s.partitioned&&(c+="; Partitioned"),c},i1={create(t,a,r,s){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+r*60*1e3)),s&&(i.domain=s),document.cookie=M4(t,a,i)},read(t){const a=`${t}=`,r=document.cookie.split(";");for(let s=0;s-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const d=i.substring(1).split("&");for(let m=0;m0&&d[m].substring(0,h)===a&&(r=d[m].substring(h+1))}}return r}},P4={name:"hash",lookup(t){var i;let{lookupHash:a,lookupFromHashIndex:r}=t,s;if(typeof window!="undefined"){const{hash:c}=window.location;if(c&&c.length>2){const d=c.substring(1);if(a){const m=d.split("&");for(let h=0;h0&&m[h].substring(0,g)===a&&(s=m[h].substring(g+1))}}if(s)return s;if(!s&&r>-1){const m=c.match(/\/([a-zA-Z-]*)/g);return Array.isArray(m)?(i=m[typeof r=="number"?r:0])==null?void 0:i.replace("/",""):void 0}}}return s}};let vd=null;const o1=()=>{if(vd!==null)return vd;try{if(vd=typeof window!="undefined"&&window.localStorage!==null,!vd)return!1;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch(t){vd=!1}return vd};var F4={name:"localStorage",lookup(t){let{lookupLocalStorage:a}=t;if(a&&o1())return window.localStorage.getItem(a)||void 0},cacheUserLanguage(t,a){let{lookupLocalStorage:r}=a;r&&o1()&&window.localStorage.setItem(r,t)}};let _d=null;const l1=()=>{if(_d!==null)return _d;try{if(_d=typeof window!="undefined"&&window.sessionStorage!==null,!_d)return!1;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch(t){_d=!1}return _d};var I4={name:"sessionStorage",lookup(t){let{lookupSessionStorage:a}=t;if(a&&l1())return window.sessionStorage.getItem(a)||void 0},cacheUserLanguage(t,a){let{lookupSessionStorage:r}=a;r&&l1()&&window.sessionStorage.setItem(r,t)}},z4={name:"navigator",lookup(t){const a=[];if(typeof navigator!="undefined"){const{languages:r,userLanguage:s,language:i}=navigator;if(r)for(let c=0;c0?a:void 0}},B4={name:"htmlTag",lookup(t){let{htmlTag:a}=t,r;const s=a||(typeof document!="undefined"?document.documentElement:null);return s&&typeof s.getAttribute=="function"&&(r=s.getAttribute("lang")),r}},U4={name:"path",lookup(t){var i;let{lookupFromPathIndex:a}=t;if(typeof window=="undefined")return;const r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(r)?(i=r[typeof a=="number"?a:0])==null?void 0:i.replace("/",""):void 0}},$4={name:"subdomain",lookup(t){var i,c;let{lookupFromSubdomainIndex:a}=t;const r=typeof a=="number"?a+1:1,s=typeof window!="undefined"&&((c=(i=window.location)==null?void 0:i.hostname)==null?void 0:c.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(s)return s[r]}};let J_=!1;try{document.cookie,J_=!0}catch(t){}const X_=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];J_||X_.splice(1,1);const H4=()=>({order:X_,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t});class K_{constructor(a){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(a,r)}init(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=a,this.options=O4(r,this.options||{},H4()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=i=>i.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=s,this.addDetector(L4),this.addDetector(R4),this.addDetector(F4),this.addDetector(I4),this.addDetector(z4),this.addDetector(B4),this.addDetector(U4),this.addDetector($4),this.addDetector(P4)}addDetector(a){return this.detectors[a.name]=a,this}detect(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,r=[];return a.forEach(s=>{if(this.detectors[s]){let i=this.detectors[s].lookup(this.options);i&&typeof i=="string"&&(i=[i]),i&&(r=r.concat(i))}}),r=r.filter(s=>s!=null&&!D4(s)).map(s=>this.options.convertDetectedLanguage(s)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?r:r.length>0?r[0]:null}cacheUserLanguage(a){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(a)>-1||r.forEach(s=>{this.detectors[s]&&this.detectors[s].cacheUserLanguage(a,this.options)}))}}K_.type="languageDetector";const W4={dashboard:"Dashboard",assets:"Assets",workOrders:"Work Orders",maintenance:"Asset Maintenance",ppm:"PPM",logout:"Logout",login:"Login",email:"Email",password:"Password",submit:"Submit",cancel:"Cancel",save:"Save",saveChanges:"Save Changes",delete:"Delete",deleting:"Deleting...",edit:"Edit",create:"Create",search:"Search",filter:"Filter",export:"Export",import:"Import",loading:"Loading...",noData:"No data available",error:"Error",success:"Success",darkMode:"Dark Mode",lightMode:"Light Mode",language:"Language",english:"English",arabic:"Arabic",backToDashboard:"Back to Dashboard",back:"Back",saving:"Saving...",tryAgain:"Try Again",filters:"Filters",enterFilterName:"Enter filter name",saveFilterPreset:"Save Filter Preset",saveFilter:"Save Filter",filtering:"Filtering...",updating:"Updating...",clearFilters:"Clear filters",total:"Total",selected:"selected",rows:"rows",actions:"Actions",selectAllTitle:"Select all",deselectAllTitle:"Deselect all",typeToSearch:"Type to search...",typing:"typing...",enterFilterNameExample:"Enter filter name (e.g., 'Open High Priority')"},V4={title:"SEERA-ASM",loggedInAs:"Logged in as:",version:"Seera-ASM v1.0",inventory:"Inventory",ppmPlanner:"PPM Planner",maintenanceCalendar:"Maintenance Calendar",activeMap:"Active Map",maintenanceTeam:"Maintenance Team",procurement:"Procurement",sla:"Service Level Agreement (SLA)",support:"Support",inspection:"Inspection",deleteRequests:"Delete Requests",userProfile:"User Profile"},q4={title:"SEERA-ASM",subtitle:"Asset Management System",signIn:"Sign in to continue",emailPlaceholder:"Enter your email",passwordPlaceholder:"Enter your password",loginFailed:"Login failed. Please check your credentials.",demoLogin:"Demo Login",or:"or"},G4={title:"Dashboard",loading:"Loading dashboard...",totalAssets:"TOTAL NO. OF ASSETS",assetsDown:"Assets Down",openWorkOrders:"OPEN WORK ORDERS",workOrdersInProgress:"WORK ORDERS IN PROGRESS",completedWorkOrders:"COMPLETED WORK ORDERS",totalWorkOrders:"TOTAL WORK ORDERS",overdueWorkOrders:"OVERDUE WORK ORDERS",closedWorkOrders:"Closed Work Orders",upTime:"Up Time",downTime:"Down Time",workOrderStatus:"Work Order Status",workOrderByType:"Work Order by Type",maintenanceByAsset:"Maintenance - Asset wise Count",assigneesStatus:"Asset Maintenance Assignees Status Count",assigneesCount:"Assignees",totalTasksAssigned:"Tasks Assigned",maintenanceFrequency:"Asset Maintenance Frequency Chart",maintenanceLogs:"MAINTENANCE LOGS",assetUptime:"Asset Uptime",avgResponseTime:"Avg Response Time",maintenanceEfficiency:"Maintenance Efficiency",overdueMaintenance:"Overdue Maintenance",upDownTimeChart:"Up & Down Time Chart",ppmStatus:"PPM Status",completionRate:"Contractor Completion Rate",completionRateChartHint:"Completion % over last 7 months — hover a point for details",completionRateTooltip:"{{value}}% completion rate",viewFullReport:"View Full Report",noDataAvailable:"No data available",loadingTechnicianHours:"Loading technician hours...",loadingTechnicianWorkData:"Loading technician work data...",welcome:"Welcome,",user:"User",failedToLoad:"Failed to load dashboard data",recentRecords:"Recent Records",latestEntries:"Latest entries from your Frappe backend",quickActions:"Quick Actions",cardTotalAssets:"Total Assets",cardOpenWorkOrders:"Open Work Orders",cardInProgress:"In Progress",cardCompletedWorkOrders:"Completed Work Orders",viewUsers:"View Users",manageUserAccounts:"Manage user accounts",settings:"Settings",configurePreferences:"Configure your preferences",events:"Events",viewCalendarEvents:"View calendar events",reports:"Reports",viewAnalyticsReports:"View analytics and reports",ppmTemplateCounts:"PPM Template Counts",repairCost:"Repair Cost",dashboardFilter:"Dashboard Filter",allDepartments:"All Departments",workOrderStatusDistribution:"Work Order Status Distribution",workOrderInspectionSummary:"Work Order Inspection Summary",woRejectionSummary:"WO Rejection Summary",total:"Total",inProgress:"In Progress",completed:"Completed",totalSales:"Total Sales",average:"Average",noChartDataAvailable:"No chart data available",loadingInspectionData:"Loading inspection data...",noInspectionDataAvailable:"No inspection data available",totalRejections:"Total rejections",loadingRejectionData:"Loading rejection data...",noRejectionDataAvailable:"No rejection data available",department:"Department",allOperational:"All Operational",low:"Low",highPriority:"High Priority",allClear:"All Clear",fastResponse:"Fast Response",monitor:"Monitor",onTrack:"On Track",needsAttention:"Needs Attention",totalHours:"Total: {{value}} hours",technicianWorkingHours:"Technicians Working Hours",techniciansWorked:"Technicians Work Summary",pendingReviewWorkOrders:"Pending Review",clear:"Clear",clearFilter:"Clear Filter",label:"Label",open:"Open"},Y4={assetId:"Asset ID",assetName:"Asset Name",serialNumber:"Serial Number",company:"Company/Hospital",building:"Building",roomNumber:"Room Number",location:"Location",department:"Department",deviceStatus:"Device Status",modality:"Modality",manufacturer:"Manufacturer",supplier:"Supplier",assetCategory:"Asset Category",purchaseDate:"Purchase Date",purchaseAmount:"Purchase Amount",availableForUseDate:"Available For Use Date",createdOn:"Created On",modifiedOn:"Modified On",createdBy:"Created By",modifiedBy:"Modified By",workOrderId:"Work Order ID",workOrderType:"Type",status:"Status",priority:"Priority",description:"Description",assignedTo:"Assigned To",scheduledDate:"Scheduled Date",completedDate:"Completed Date",hospital:"Hospital",assetType:"Asset Type",siteName:"Site Name",assignedSupervisor:"Assigned Supervisor",assignedContractor:"Assigned Contractor",serialNumberShort:"Serial",departmentShort:"Dept",manufacturerShort:"Mfr",workOrderIdShort:"WO ID",assetShort:"Asset",typeShort:"Type",nameShort:"Name",pmId:"PM ID",name:"Name"},Z4={filterBy:"Filter By",createdDate:"Created Date",latestModifiedDate:"Latest Modified Date",startDate:"Start Date",endDate:"End Date",assetId:"Asset ID",hospital:"Hospital",name:"Name",serial:"Serial",status:"Status",location:"Location",dept:"Dept",modality:"Modality",mfr:"Mfr",supplier:"Supplier",workOrderId:"WO ID",asset:"Asset",type:"Type",priority:"Priority",workflowState:"Workflow State",allStatuses:"All Statuses",allStates:"All States",allTypes:"All Types",allPriorities:"All priorities",allHospitals:"All Hospitals",allModalities:"All Modalities",filterByCompany:"Filter by Company",allManufacturers:"All Manufacturers",sortBy:"Sort by",sortCreationNewest:"Creation (newest first)",sortCreationOldest:"Creation (oldest first)",sortModifiedNewest:"Modified (newest first)",sortModifiedOldest:"Modified (oldest first)",sortNameAsc:"Name (A-Z)",sortNameDesc:"Name (Z-A)",sortAssetNameAsc:"Asset Name (A-Z)",sortAssetNameDesc:"Asset Name (Z-A)",sortItemNameAsc:"Item Name (A-Z)",sortItemNameDesc:"Item Name (Z-A)",sortTeamNameAsc:"Team Name (A-Z)",sortTeamNameDesc:"Team Name (Z-A)"},J4={addNew:"Add New",searchPlaceholder:"Search...",noResults:"No results found",showing:"Showing",of:"of",results:"results",selectAll:"Select All",deselectAll:"Deselect All",selected:"selected",actions:"Actions",view:"View",edit:"Edit",delete:"Delete",duplicate:"Duplicate",export:"Export",print:"Print",filters:"Filters",clearFilters:"Clear Filters",applyFilters:"Apply Filters",columns:"Columns",exportSelected:"Export Selected",exportAllOnPage:"Export All on Page",exportAllWithFilters:"Export All with Filters",exportFormat:"Export Format",csv:"CSV",excel:"Excel",exporting:"Exporting...",exportComplete:"Export Complete",close:"Close",loading:"Loading...",refresh:"Refresh",deselectAllTitle:"Deselect all",selectAllTitle:"Select all",typeToSearch:"Type to search...",enterFilterName:"Enter filter name",enterFilterNameExample:"Enter filter name (e.g., 'Open High Priority')",allStatuses:"All Statuses",noIssuesFound:"No issues found",createFirstIssue:"Create your first issue",saveFilterPreset:"Save Filter Preset",saveFilter:"Save Filter",savedFilters:"Saved Filters",clear:"Clear",typing:"typing...",filtering:"Filtering...",noMaintenanceTeamsFound:"No maintenance teams found",createFirstTeam:"Create your first team",all:"All",tryAdjustingFilters:"Try adjusting your search or filters",getStartedCreateFirst:"Get started by creating your first PPM Planner",noMaintenanceLogsFound:"No maintenance logs found",createFirstMaintenanceLog:"Create your first maintenance log",total:"Total",noPPMSchedulesFound:"No PPM schedules found",createFirstPPMSchedule:"Create your first PPM schedule",deleteConfirmCannotUndo:"This action cannot be undone."},X4={title:"Assets",addAsset:"Add New Asset",assetDetails:"Asset Details",assetInformation:"Asset Information",newAsset:"New Asset",duplicateAsset:"Duplicate Asset",fromAsset:"From Asset",creatingFromAsset:"Creating Work Order from Asset",assetInfoPrefilled:"Asset information prefilled from",pleaseSelectWorkOrderType:"Please select a Work Order type and add any additional details",loadingAssetDetails:"Loading asset details...",pleaseEnterAssetName:"Please enter an Asset Name",pleaseSelectCategory:"Please select a Category",assetDuplicatedSuccessfully:"Asset duplicated successfully!",assetCreatedSuccessfully:"Asset created successfully!",assetUpdatedSuccessfully:"Asset updated successfully!",sourceAssetNotFound:"Source Asset Not Found",assetNotFoundMessage:"The asset you're trying to duplicate could not be found.",backToAssetsList:"Back to Assets List",backToList:"Back to assets list",createNewAsset:"Create New Asset",newAssetDetails:"New Asset Details",noAssetsFound:"No assets found",createFirstAsset:"Create your first asset",deleteConfirmTitle:"Delete Asset",deleteConfirmMessage:"Are you sure you want to delete this asset? This action cannot be undone.",noDataToExport:"No data to export",loadingPermissions:"Loading permissions...",selectAssetId:"Select Asset ID",selectHospital:"Hospital",viewDetails:"View Details",editAsset:"Edit Asset",createWorkOrder:"Create Work Order",viewLinkedWOs:"View Linked Work Orders",moreActions:"More Actions",exportAsJson:"Export as JSON",printAsset:"Print",status:{up:"Up",down:"Down"},deviceStatus:"Device Status",apiNotAvailable:"Asset API Not Available",apiNotDeployed:"The Asset API endpoint is not deployed yet.",tryCreatingNew:"Try Creating a New Asset (Demo)",listTotal:"Total: ",table:{assetName:"Asset Name",serialNo:"Serial No",company:"Company",location:"Location",status:"Status",updatedOn:"Updated on",actions:"Actions"},export:{title:"Export Assets",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected asset ",currentPage:"Current Page",currentPageCount:"Export {{count}} asset on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} asset matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "},detail:{assetInformation:"Asset Information",technicalSpecs:"Technical Specs",financialDetails:"Financial Details",assetFinanceBooks:"Asset Finance Books",addRow:"Add Row",duplicatingFrom:"Duplicating from:",noDepartmentsMapped:"No departments mapped to this building",departmentsAvailable:"{{count}} department(s) available (filtered by building)",selectDepartmentForRoom:"Select Department to enable Room Number",depreciationMethodNote:"The depreciation method is an accounting method used to allocate the cost of a tangible asset over its useful life.",calculateDepreciation:"Calculate Depreciation",noFinanceBooksYet:'No finance books added yet. Click "Add Row" to add one.',noSparePartsYet:'No spare parts added yet. Click "Add Row" to add one.',assetName:"Asset Name",category:"Category",type:"Asset Type",modality:"Modality",class:"Class",assetId:"Asset ID",deviceStatus:"Device Status",serialCode:"Serial Code",technicalDepartment:"Technical Department",manufacturer:"Manufacturer",model:"Model",totalHours:"Total Hours",downTimeHours:"Down Time (Hours)",upTimeHours:"Up Time (Hours)",placeholderAssetName:"e.g. Laptop Model X",placeholderSerialCode:"e.g. SN-12345",placeholderModelNumber:"Model number",placeholderZero:"0",placeholderDescription:"Brief description of the asset",placeholderPONumber:"PO number",selectClass:"Select class",classA:"Class A",classB:"Class B",classC:"Class C",autoGenerated:"Auto-generated",calculatedFromAvailableDate:"Calculated from Available For Use Date",calculatedTotalMinusDown:"Calculated: Total Hours - Down Time",hospital:"Hospital",siteName:"Site name",selectSite:"Select Site",building:"Building",department:"Department",roomNumber:"Room Number",location:"Location",selectStatus:"Select status",operational:"Operational",underMaintenance:"Under Maintenance",decommissioned:"Decommissioned",selectServiceAgreement:"Select Service Agreement",warranty:"Warranty",contract:"Contract",frameWork:"Frame Work",mainContractor:"Main Contractor",outOfWarranty:"Out of warranty",underDismantle:"Under Dismantle",underInstallation:"Under Installation",selectServiceCoverage:"Select Service Coverage",pmOnly:"PM Only",labour:"Labour",labourAndParts:"Labour & Parts",comprehensive:"Comprehensive",supplierVendor:"Supplier/Vendor",selectMethod:"Select Method",straightLine:"Straight Line",doubleDecliningBalance:"Double Declining Balance",writtenDownValue:"Written Down Value",manual:"Manual",recycling:"Recycling",donation:"Donation",sale:"Sale",assetDuplicatedSuccess:"Asset duplicated successfully!",assetCreatedSuccess:"Asset created successfully!",assetUpdatedSuccess:"Asset updated successfully!",failedToSave:"Failed to save asset",cannotSubmitNotSaved:"Cannot submit: Asset not saved yet",confirmSubmit:'Are you sure you want to submit this asset? Once submitted, only fields marked as "Allow on Submit" can be edited.',assetSubmittedSuccess:"Asset submitted successfully!",failedToSubmit:"Failed to submit asset",pleaseSaveFirstForPPM:"Please save the asset first to view PPM Plan",pleaseSaveFirstForHistory:"Please save the asset first to view Asset History",failedToLoadPPMPlan:"Failed to load PPM Plan. Please try again.",noPlannedMaintenance:"No planned maintenance found for this asset",noWorkOrdersFound:"No Work Orders Found",noSparePartsUsed:"No Spare Parts Used",noMaintenanceRecords:"No Maintenance Records Found",noMaintenanceTasks:"No Maintenance Tasks Found",selectBuildingFirst:"Select Building first to enable Department",coverage:"Coverage",siteContractor:"Site Contractor",contractNumber:"Contract Number",serviceAgreement:"Service Agreement",serviceCoverage:"Service Coverage",purchaseOrderNumber:"Purchase Order Number",grossPurchaseAmount:"Gross Purchase Amount",purchaseDate:"Purchase Date",installationDate:"Installation Date",availableForUseDate:"Available For Use Date",financeBook:"Finance Book",depreciationMethod:"Depreciation Method",totalDepreciations:"Total Depreciations",frequencyMonths:"Frequency (Months)",depreciationPostingDate:"Depreciation Posting Date",startDate:"Start Date",endDate:"End Date",totalAmount:"Total Amount",selectRoomFirst:"Select Room Number to enable Location",autoSetFromRoom:"Auto-set from room mapping",moreDetails:"More Details"}},K4=JSON.parse(`{"title":"Work Orders","addWorkOrder":"Add New Work Order","workOrderDetails":"Work Order Details","newWorkOrder":"New Work Order","duplicateWorkOrder":"Duplicate Work Order","createFromAsset":"Create Work Order from Asset","closeWorkOrders":"Close Work Orders","closeConfirmTitle":"Close Work Orders","closeConfirmMessage":"Are you sure you want to close the selected work order(s)?","deleteConfirmMessage":"Are you sure you want to delete this work order? This action cannot be undone.","cancelConfirmMessage":"Are you sure you want to cancel this work order? This will mark the work order as cancelled and you can then delete it if needed.","assignConfirmMessage":"Are you sure you want to assign this work order to the following technician(s)?","deleteWorkOrder":"Delete Work Order","cancelWorkOrder":"Cancel Work Order","loadingWorkOrders":"Loading work orders...","loadingDetails":"Loading work order details...","backToList":"Back to work orders list","status":{"open":"Open","work_in_progress":"Work In Progress","pending_review":"Pending Review","completed":"Completed","cancelled":"Cancelled","closed":"Closed"},"priorityNormal":"Normal","priorityUrgent":"Urgent","workflowState":{"draft":"Draft"},"priority":{"normal":"Normal","urgent":"Urgent"},"table":{"workOrderId":"Work Order ID","asset":"Asset","type":"Type","technicalReport":"Technical Report","department":"Department","workflowState":"Workflow State","priority":"Priority","noWorkOrdersFound":"No work orders found","createFirstWorkOrder":"Create your first work order"},"export":{"title":"Export Work Orders","selectData":"What to Export","selectedRows":"Selected Rows","selectedCount":"Export {{count}} selected work order ","currentPage":"Current Page","currentPageCount":"Export {{count}} work order on current page","allWithFilters":"All Records (with current filters)","allWithFiltersCount":"Export all {{count}} work order matching current filters","csvDesc":"Comma-separated values","excelDesc":"XLSX spreadsheet","columnsToExport":"Columns to Export","selectAll":"Select All","resetToDefault":"Reset to Default","columnsSelected":"{{count}} column selected","exporting":"Exporting...","exportButton":"Export","exportingSelected":"Exporting {{count}} selected row ","exportingPage":"Exporting {{count}} row from current page","exportingAll":"Exporting all {{count}} row "},"closeModal":{"title":"Close Work Orders","confirmBulkClose":"Confirm Bulk Close Operation","aboutToClose":"You are about to close {{count}} work order . This action will change their workflow state to Closed.","alreadyClosedNote":"Note: {{count}} work order{{count !== 1 ? 's are' : ' is'}} already closed and will be skipped.","selectedWorkOrders":"Selected Work Orders ({{count}})","workOrderId":"Work Order ID","currentStatus":"Current Status","workflowState":"Workflow State","alreadyClosed":"(already closed)","willClose":"Will close {{count}} work order ","allAlreadyClosed":"All selected work orders are already closed","cancel":"Cancel","close":"Close","closing":"Closing..."},"detail":{"workOrderInformation":"Work Order Information","assignments":"Assignments","statusSummary":"Status Summary","existingWorkOrders":"Existing Work Order(s):","created":"Created","proceedCreateNew":"Do you still want to proceed with creating a new Work Order?","loadingTechnicians":"Loading technicians...","feedbackBy":"Feedback By","overallSatisfaction":"Overall Satisfaction","overallRatingPreview":"Overall Rating Preview","uploading":"Uploading...","uploadOpeningFile":"Upload Opening File","uploadClosingFile":"Upload Closing File","noAttachment":"No attachment","noClosingAttachment":"No closing attachment","closingAttachment":"Closing Attachment","currentState":"Current State","loadingActions":"Loading actions...","actionResults":"Action Results:","checkingFeedback":"Checking feedback...","yourRating":"Your Rating","repairStatus":"Repair Status","priority":"Priority","lastModified":"Last Modified","documentStatus":"Document Status","loadingActivity":"Loading activity...","added":"Added:","removed":"Removed:","modified":"Modified:","items":"item(s)","rows":"row(s)","pleaseAllowPopupsServiceReport":"Please allow popups for this site to print the Service Report.","pleaseProvideAtLeastOneRating":"Please provide at least one rating","feedbackSubmittedSuccessfully":"Feedback submitted successfully!","failedToSubmitFeedback":"Failed to submit feedback","feedbackUpdatedSuccessfully":"Feedback updated successfully!","failedToUpdateFeedback":"Failed to update feedback","locationAutoSetTo":"Location auto-set to: {{location}}","noTechniciansSelected":"No technicians selected","techniciansAssignedSuccessfully":"{{count}} additional technician(s) assigned successfully","removedTechnician":"Removed {{name}}","itemAlreadyAdded":"Item \\"{{itemCode}}\\" is already added in row {{row}}. Please select a different item.","insufficientStock":"Insufficient stock for {{itemCode}}. Available: {{available}}, Required: {{required}}","pleaseEnterSerialNumberToSearch":"Please enter a serial number to search","assetFound":"Asset found: {{name}}","noAssetFoundWithSerialNumber":"No asset found with this serial number","fileSizeExceeds":"File size exceeds 10MB limit","fileUploadedSuccessfully":"File uploaded successfully","failedToUploadFile":"Failed to upload file","attachmentRemoved":"Attachment removed","failureDateSetToCurrentTime":"Failure Date set to current time","firstRespondedOnSetToCurrentTime":"First Responded On set to current time","completionDateSetToCurrentTime":"Completion Date set to current time","firstRespondedOnSetTo":"First Responded On set to {{datetime}}","completionDateSetTo":"Completion Date set to {{datetime}}","assignedSupervisorMandatory":"Assigned Supervisor is mandatory for Work Control role.","assignedEngineerMandatory":"Assigned Engineer is mandatory for Work Control role.","assignedTechnicianMandatory":"Assigned Technician is mandatory when workflow is \\"Sent to Engineer\\".","workOrderCancelledSuccessfully":"Work Order cancelled successfully!","failedToCancel":"Failed to cancel: {{error}}","workOrderDeletedSuccessfully":"Work Order deleted successfully!","failedToDelete":"Failed to delete: {{error}}","pleaseSelectWorkOrderType":"Please select a Work Order Type","workOrderUpdatedSuccessfully":"Work order updated successfully!","workOrderCreatedSuccessfully":"Work order created successfully!","workOrderCreatedFromAssetSuccessfully":"Work order created from asset successfully!","workOrderDuplicatedSuccessfully":"Work order duplicated successfully!","documentModifiedByAnotherUser":"Document was modified by another user. Refreshing...","pleaseReviewLatestChanges":"Please review the latest changes and try saving again.","failedToSaveWorkOrder":"Failed to save work order: {{error}}","technicalReportMandatoryForSupervisor":"Technical Report is mandatory when sending directly to Supervisor. Please fill in the Technical Report field before proceeding.","applyingAction":"Applying action \\"{{action}}\\"...","assignedTo":"Assigned to: {{name}}","actionCompletedSuccessfully":"Action \\"{{action}}\\" completed successfully!","documentModifiedRefreshing":"Document was modified. Refreshing...","tryActionAgainAfterReview":"Please try the action again after reviewing the latest changes.","failedToApplyAction":"Failed to apply action \\"{{action}}\\". {{error}}","editModeEnabled":"Edit mode enabled","editCancelledChangesDiscarded":"Edit cancelled - changes discarded","closingAttachmentRemoved":"Closing attachment removed","closingAttachmentUploadedSuccessfully":"Closing attachment uploaded successfully","failedToUploadClosingAttachment":"Failed to upload closing attachment","newStockItemRowAdded":"New stock item row added","stockItemRemoved":"Stock item {{item}} removed","activityLogRefreshed":"Activity log refreshed","errorLabel":"Error","backToList":"Back to work orders list","duplicateWorkOrder":"Duplicate Work Order","createFromAsset":"Create Work Order from Asset","newWorkOrder":"New Work Order","workOrderDetails":"Work Order Details","existingWorkOrderFound":"Existing Work Order Found","workOrderExistsForAsset":"A Work Order already exists for this Asset with workflow state not yet Approved or Closed.","workOrderExistsForTypeAndRoom":"A Work Order already exists for this Work Order Type and Room No with workflow state not yet Approved or Closed.","proceedWithNewWO":"Do you still want to proceed with creating a new Work Order?","proceedAnyway":"Proceed Anyway","noGoBack":"No, Go Back","yesCancel":"Yes, Cancel","cancelling":"Cancelling...","deleting":"Deleting...","selectAdditionalTechnicians":"Select Additional Technicians","searchTechnicians":"Search technicians...","techniciansSelected":"{{count}} technician(s) selected","clearAll":"Clear all","noTechniciansMatchSearch":"No technicians match your search","noTechniciansFound":"No technicians found","hospital":"Hospital","technicalDepartment":"Technical Department","woType":"WO Type","assetId":"Asset ID","assetName":"Asset Name","extensionNo":"Extension No","building":"Building","departmentName":"Department Name","roomNo":"Room No","location":"Location","manufacturer":"Manufacturer","supplier":"Supplier","assignedSupervisor":"Assigned Supervisor","assignedEngineer":"Assigned Engineer","assignedTechnician":"Assigned Technician","fromAsset":"From Asset","assetDetailsAutoPopulated":"Asset details auto-populated","selectBuildingFirst":"Select Building first to enable Department","printServiceReport":"Print Service Report","removeAttachment":"Remove attachment","removeClosingAttachment":"Remove closing attachment","setToCurrentDateTime":"Set to current date & time","selectItem":"Select Item","selectWarehouse":"Select Warehouse","autoPopulatedFromStock":"Auto-populated from stock","removeItem":"Remove item","noItemsAddedYet":"No items added yet","commentsDiscussion":"Comments & Discussion","refreshActivityLog":"Refresh activity log","supervisorsAvailableForType":"{{count}} Assigned Supervisor(s) available for this type","civilWorkCategory":"Civil Work Category","selectCivilWorkCategory":"Select Civil Work Category","selectPendingReason":"Select Pending Reason","pleaseSpecifyReason":"Please specify the reason...","selectServiceAgreement":"Select Service Agreement","selectServiceCoverage":"Select Service Coverage","describeComplaint":"Describe the nature of complaint...","describeWorkPerformed":"Describe the work performed...","enterSerialNumber":"Enter serial number","searchAssetBySerial":"Search asset by serial number","workOrder":"Work Order:","giveFeedback":"Give Feedback","editFeedback":"Edit Feedback","feedbackDetails":"Feedback Details","confirmAssignment":"Confirm Assignment","notRated":"Not rated","serviceReport":"Service Report","assetInfoPrefilled":"Asset information has been pre-filled from","linkedFromAsset":"Linked from Asset:","loadingAssetDetails":"Loading asset details...","cancelled":"Cancelled","workOrderId":"Work Order ID","pendingReason":"Pending Reason","otherReason":"Other Reason","serviceAgreementDetails":"Service Agreement Details","siteContractor":"Site Contractor","subcontractor":"Subcontractor","model":"Model","description":"Description","natureOfComplaint":"Nature of Complaint","technicalReport":"Technical Report","selectWoTypeFirstForSupervisors":"Select Work Order Type first to filter Assigned Supervisors","noSupervisorsFound":"No Assigned Supervisors found for this Work Order Type","requiredForExistingWO":"* Required for existing Work Orders","selectWoTypeFirstForEngineers":"Select Work Order Type first to filter Engineers","noEngineersFound":"No Engineers (Contractor Engineer role) found for this Work Order Type","engineersAvailable":"{{count}} Engineer(s) available","selectWoTypeFirstForTechnicians":"Select Work Order Type first to filter Technicians","noTechniciansFoundForType":"No Technicians found for this Work Order Type","techniciansAvailable":"{{count}} Technician(s) available","requiredForSentToEngineer":"* Required for \\"Sent to Engineer\\" state","autoCalculated":"(Auto-calculated)","autoSetOnRepairStart":"(Auto-set on repair start)","autoSetOnClose":"(Auto-set on close)","totalItems":"Total Items:","confirmAction":"Confirm Action","confirmActionMessage":"Are you sure you want to {{action}} this work order?","processing":"Processing...","yesAction":"Yes, {{action}}","systemManagerNote":"System Manager: Showing all valid actions for this state (conditions evaluated).","saveToSeeActions":"Save your changes to see all available actions.","availableActions":"Available Actions","allOptionsAvailable":"All Options Available","bothFilledMessage":"Both Technician and Technical Report are filled. You can now use any available workflow action above.","technicianAssigned":"Technician Assigned","assignedTechnicianLabel":"Assigned Technician:","wantToEnableSendToSupervisor":"Want to also enable \\"Send to Supervisor\\"?","fillTechnicalReportToUnlock":"Fill the \\"Technical Report\\" field to unlock this option","technicalReportFilled":"Technical Report Filled","howWasService":"How was the service for this work order?","noFeedbackYet":"No feedback has been given yet","statusInfoAfterCreation":"Status information will appear after creation","activityLog":"Activity Log","refreshActivityLogTitle":"Refresh activity log","noChangesRecorded":"No changes recorded yet","createdThisWorkOrder":"Created this Work Order","showLess":"Show Less","showAll":"Show All","entries":"entries","changedFrom":"changed from","documentUpdated":"Document updated","addItem":"Add Item","addFirstItem":"+ Add first item","item":"Item","valuationRate":"Valuation Rate","warehouse":"Warehouse","consumedQty":"Consumed Qty","availableStock":"Available Stock","totalValue":"Total Value","action":"Action","open":"Open","autoGenerated":"Auto-generated","updating":"Updating...","submitting":"Submitting...","updateFeedback":"Update Feedback","submitFeedback":"Submit Feedback","editRating":"Edit Rating","saveSelection":"Save Selection"}}`),Q4={title:"Asset Maintenance",maintenanceLogs:"Maintenance Logs",maintenanceDetails:"Maintenance Details",addMaintenance:"Add New Maintenance",listTotal:"Total: {{count}} maintenance log ",apiNotAvailable:"Maintenance API Not Available",apiNotDeployed:"The Asset Maintenance API endpoint is not deployed yet.",tryCreatingNew:"Try Creating New (Demo)",deletedSuccessfully:"Maintenance log deleted successfully!",status:{planned:"Planned",completed:"Completed",overdue:"Overdue",cancelled:"Cancelled"},maintenanceTeam:"Maintenance Team",newMaintenanceTeam:"New Maintenance Team",teamId:"Team ID",teamName:"Team Name",managerEmail:"Manager Email",managerName:"Supervisor Name",expertise:"Expertise",selectTeam:"Select Team",viewDetails:"View Details",editTeam:"Edit Team",duplicateTeam:"Duplicate Team",deleteTeam:"Delete Team",selectHospital:"Select Hospital",selectExpertise:"Select Expertise",selectManager:"Select Manager",enterTeamName:"Enter Team Name",teamInformation:"Team Information",selectUser:"Select User",selectRole:"Select Role",totalMembers:"Total Members",teamSummary:"Team Summary",addFirstMember:"Add First Member",manager:"Supervisor Email",loadingTeams:"Loading maintenance teams...",errorLoadingTeams:"Error Loading Maintenance Teams",deleteConfirmMessage:"Are you sure you want to delete this maintenance team? This action cannot be undone.",team:"Team",deleteTeamButton:"Delete Team",listTitle:"Maintenance Teams",statsTotalTeams:"Total Teams",statsManagers:"Managers",statsHospitals:"Hospitals",export:{title:"Export Maintenance Teams",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected team ",currentPage:"Current Page",currentPageCount:"Export {{count}} team on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} team matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},e3={title:"PPM",ppmDetails:"PPM Details",addPPM:"Add New PPM",periodicity:"Periodicity",dueDate:"Due Date",manageSchedules:"Manage PM Schedules",pmId:"PM ID",name:"Name",manufacturer:"Manufacturer",listTotal:"Total: {{count}} PPM schedule ",searchPlaceholder:"Search by ID, asset, company...",filterByCompany:"Filter by Company",company:"Company",asset:"Asset",assetType:"Asset Type",frequency:"Frequency",noOfPMs:"No. of PMs",totalAmount:"Total Amount",apiNotAvailable:"PPM API Not Available",apiNotDeployed:"The PPM API endpoint is not deployed yet.",tryCreatingNew:"Try Creating New (Demo)",deletedSuccessfully:"PPM schedule deleted successfully!",noSchedulesFound:"No PPM schedules found",createFirstSchedule:"Create your first PPM schedule",confirmDelete:"Confirm Delete",deleteConfirmMessage:"Are you sure you want to delete this PPM schedule? This action cannot be undone.",detail:{duplicateSchedule:"Duplicate PPM Schedule",newSchedule:"New PPM Schedule",scheduleDetails:"PPM Schedule Details",basicInformation:"Basic Information",financialInformation:"Financial Information",scheduleInformation:"Schedule Information",maintenanceTeam:"Maintenance Team",numberOfPMs:"Number of PMs",pricePerPM:"Price per PM",frequencyPlaceholder:"e.g., Monthly, Quarterly, Yearly",scheduleInfoAfterCreation:"Schedule information will appear after creation",assetName:"Asset Name",pleaseEnterAssetName:"Please enter Asset Name",duplicatedSuccessfully:"PPM schedule duplicated successfully!",createdSuccessfully:"PPM schedule created successfully!",updatedSuccessfully:"PPM schedule updated successfully!",failedToSave:"Failed to save",saveChanges:"Save Changes",loadingSchedule:"Loading PPM schedule...",backToSchedules:"Back to PPM schedules",errorLoading:"Error"}},t3={listTitle:"PPM Schedules",export:{title:"Export PPM Schedules",selectData:"Export Scope",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected schedule ",currentPage:"Current Page",currentPageCount:"Export {{count}} schedule on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} schedule matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},a3={title:"Export",whatToExport:"What to Export",selectedRows:"Selected Rows",currentPage:"Current Page",allWithFilters:"All with Filters",exportSelected:"Export {count} selected",exportPage:"Export {count} on current page",exportAll:"Export all {count}",columnsToExport:"Columns to Export",selectAll:"Select All",selectDefault:"Select Default",exporting:"Exporting...",exportingSelected:"Exporting {count} selected row(s)",exportingPage:"Exporting {count} row(s) from current page",exportingAll:"Exporting all {count} row(s)",selected:"selected",rows:"rows"},r3={title:"Items",itemDetails:"Item Details",newItem:"New Item",addItem:"Add New Item",itemId:"Item ID",itemCode:"Item Code",itemName:"Item Name",itemGroup:"Item Group",stockUOM:"Stock UOM",partDescription:"Part Description",brand:"Brand",valuationRate:"Valuation Rate",openingStock:"Opening Stock",lastCalibrationDate:"Last Calibration Date",nextCalibrationDate:"Next Calibration Date",selectItem:"Select Item",selectItemGroup:"Select Item Group",selectHospital:"Select Hospital",serialNo:"Serial No",dateIn:"Date In",watts:"Watts",volts:"Volts",type:"Type",code:"Code",viewDetails:"View Details",editItem:"Edit Item",duplicateItem:"Duplicate Item",deleteItem:"Delete Item",technicalDepartment:"Technical Department",selectTechnicalDepartment:"Select Technical Department",basicInformation:"Basic Information",inventoryDetails:"Inventory Details",stockInformation:"Stock Information",isStockItem:"Is Stock Item",isFixedAsset:"Is Fixed Asset",balanceQty:"Balance Qty",calibrationInformation:"Calibration Information",additionalInformation:"Additional Information",refreshBalanceQty:"Refresh Balance Qty",warrantyMonths:"Warranty (Months)",errorLoadingItems:"Error Loading Items",loadingItems:"Loading items...",deleteConfirmMessage:"Are you sure you want to delete this item? This action cannot be undone.",backToInventory:"Back to Inventory",loadingItem:"Loading item...",errorLoadingItem:"Error Loading Item",createNewItem:"Create a new item",itemCodeLabel:"Item Code",itemUpdatedSuccessfully:"Item updated successfully!",pleaseSaveFirst:"Please save the item first before submitting.",submittedSuccessfully:"Item submitted successfully!",failedToSave:"Failed to save",failedToSubmit:"Failed to submit",noItemsFound:"No items found",createFirstItem:"Create your first item",listTitle:"Inventory",listTotal:"Total: {{count}} item ",failedToLoadItems:"Failed to load items.",listAddItem:"Add Item",export:{title:"Export Items",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected item ",currentPage:"Current Page",currentPageCount:"Export {{count}} item on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} item matching current filters",csvDesc:"Comma-separated values",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},s3={title:"Issues",issueDetails:"Issue Details",newIssue:"New Issue",addIssue:"Add New Issue",issueId:"Issue ID",subject:"Subject",raisedBy:"Raised By",contact:"Contact",issueType:"Issue Type",openingDate:"Opening Date",resolutionDate:"Resolution Date",resolvedBy:"Resolved By",firstRespondedOn:"First Responded On",resolutionDetails:"Resolution Details",selectIssue:"Select Issue",allPriorities:"All Priorities",allCompanies:"All Companies",viewDetails:"View Details",editIssue:"Edit Issue",deleteIssue:"Delete Issue",enterSubject:"Enter issue subject",selectPriority:"Select priority",selectIssueType:"Select issue type",describeIssue:"Describe the issue in detail...",contactInformation:"Contact Information",createNewIssue:"Create a new support issue",resolution:"Resolution",describeResolution:"Describe how the issue was resolved...",selectCompany:"Select company",statusInformation:"Status Information",currentStatus:"Current Status",timeline:"Timeline",loadingIssues:"Loading issues...",errorLoadingIssues:"Error Loading Issues",deleteConfirmMessage:"Are you sure you want to delete this issue? This action cannot be undone.",deletedSuccessfully:"Issue deleted successfully!",listTitle:"Support Issues",listTotal:"Total",listSelected:"selected",statsTotalIssues:"Total Issues",statsOpen:"Open",statsResolved:"Resolved",statsClosed:"Closed",export:{title:"Export Issues",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected issue ",currentPage:"Current Page",currentPageCount:"Export {{count}} issue on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} issue matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "},status:{open:"Open",replied:"Replied",on_hold:"On Hold",resolved:"Resolved",closed:"Closed"},priority:{low:"Low",medium:"Medium",high:"High",critical:"Critical"}},n3={title:"Users",userDetails:"User Details",newUser:"New User",addUser:"Add New User",searchUsers:"Search users...",manageUsers:"Manage user accounts and permissions",noUsersFound:"No users found",tryAdjustingSearch:"Try adjusting your search terms.",noUsersAvailable:"No users available.",backToDashboard:"Back to Dashboard",refresh:"Refresh",active:"Active",inactive:"Inactive",noEmail:"No email",created:"Created"},i3={title:"Events",eventDetails:"Event Details",newEvent:"New Event",addEvent:"Add New Event",upcomingEvents:"Upcoming Events",eventsFromFrappe:"Events from your Frappe backend",noEventsFound:"No events found",noEventsScheduled:"No events are currently scheduled.",refreshEvents:"Refresh Events"},o3={previous:"Previous",next:"Next",goTo:"Go to",go:"Go",page:"Page",showingToOf:"Showing {{start}} to {{end}} of {{total}} {{label}}",showingTo:"Showing {{start}} to {{end}} {{label}}",items:"items",assets:"assets",workOrders:"work orders",issues:"issues",teams:"teams",inspections:"inspections",plans:"plans"},l3={loading:"Loading...",noResultsFound:"No results found",createNewDoctype:"Create New {{doctype}}",selectLabel:"Select {{label}}"},c3={loadingSupportPlans:"Loading support plans...",errorLoadingSupportPlans:"Error Loading Support Plans",deleteConfirmMessage:"Are you sure you want to delete this support plan? This action cannot be undone.",planId:"Plan ID",deletedSuccessfully:"Support Plan deleted successfully!",deleteSupportPlan:"Delete Support Plan",noSupportPlansFound:"No support plans found",createFirstSupportPlan:"Create your first support plan",table:{planName:"Plan Name",type:"Type",frequency:"Frequency",contractValue:"Contract Value",warrantyStatus:"Warranty Status",contractStatus:"Contract Status"},status:{active:"Active",expired:"Expired",pending:"Pending",terminated:"Terminated"},statusLabel:{warrantyPrefix:"W:",contractPrefix:"C:"},viewDetails:"View Support Plan",editSupportPlan:"Edit Support Plan",listTitle:"Support Plans",statsTotalPlans:"Total Plans",statsContracts:"Contracts",statsWarranties:"Warranties",statsActive:"Active",export:{title:"Export Support Plans",selectData:"Select Data to Export",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected plan ",currentPage:"Current Page",currentPageCount:"Export {{count}} plan on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} plan ",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row ",exportingPage:"Exporting {{count}} row from current page",exportingAll:"Exporting all {{count}} row "}},d3={title:"Inspections",loadingInspections:"Loading inspections...",errorLoadingInspections:"Error Loading Inspections",deleteConfirmMessage:"Are you sure you want to delete this inspection? This action cannot be undone.",inspectionId:"Inspection ID",deleteInspection:"Delete Inspection",deletedSuccessfully:"Inspection deleted successfully!",noInspectionsFound:"No inspections found",createFirstInspection:"Create your first inspection",type:"Inspection Type",workflowStateHeader:"Workflow State",targetDate:"Target Date",requestedBy:"Requested By",linkedWorkOrder:"Linked Work Order",savedFilters:"Saved Filters",newInspection:"New Inspection",inspectionReport:"Inspection Report",technicalDepartment:"Technical Department",filterStatus:"Status",filterWorkflow:"Workflow",filterType:"Type",filterWorkOrder:"Work Order",filterDepartment:"Department",selectWorkOrder:"Select Work Order",selectDepartment:"Select Department",stats:{draft:"Draft",pendingApproval:"Pending Approval",closed:"Closed"},status:{open:"Open",in_progress:"In Progress",pending_review:"Pending Review",closed:"Closed"},workflowState:{draft:"Draft",sent_to_work_control:"Sent to Work Control",sent_to_technician:"Sent to technician",sent_to_supervisor:"Sent to Supervisor",closed:"Closed"},typeMap:{inspection:"Inspection",safety_inspection:"Safety Inspection"},viewDetails:"View Details",editInspection:"Edit Inspection",export:{title:"Export Inspections",selectData:"Select Data to Export",extensionNo:"Extension No",department:"Department",location:"Location",assignedTechnician:"Assigned Technician",selectedRows:"Selected Rows",selectedCount:"Export {{count}} selected inspection(s)",currentPage:"Current Page",currentPageCount:"Export {{count}} inspection(s) on current page",allWithFilters:"All Records (with current filters)",allWithFiltersCount:"Export all {{count}} inspection(s) matching current filters",exportFormat:"Export Format",csv:"CSV",csvDesc:"Comma-separated values",excel:"Excel",excelDesc:"XLSX spreadsheet",columnsToExport:"Columns to Export",selectAll:"Select All",resetToDefault:"Reset to Default",columnsSelected:"{{count}} column(s) selected",exporting:"Exporting...",exportButton:"Export",exportingSelected:"Exporting {{count}} selected row(s)",exportingPage:"Exporting {{count}} row(s) from current page",exportingAll:"Exporting all {{count}} row(s)",inspectionId:"Inspection ID",inspectionType:"Inspection Type",status:"Status",workflowState:"Workflow State",inspectionDate:"Inspection Date",targetClosureDate:"Target Closure Date",requestedBy:"Requested By",technicalDepartment:"Technical Department",linkedWorkOrder:"Linked Work Order",observationNote:"Observation Note",technicalResponse:"Technical Response",createdOn:"Created On",modifiedOn:"Modified On",createdBy:"Created By"},detail:{loadingDetails:"Loading inspection details...",errorLoading:"Error Loading Inspection",backToList:"Back to Inspections",newInspection:"New Inspection",inspectionDetails:"Inspection Details",createNewRecord:"Create a new inspection record",cancelInspection:"Cancel Inspection",cancelConfirmMessage:"Are you sure you want to cancel this inspection? This will mark the inspection as cancelled and you can then delete it if needed.",noGoBack:"No, Go Back",yesCancel:"Yes, Cancel",cancelling:"Cancelling...",selectType:"Select Type",workOrderType:"Work Order Type",selectWorkOrderType:"Select Work Order Type",techniciansAvailable:"{{count}} Technician(s) available for this type",selectDepartment:"Select Department",selectLocation:"Select Location",extensionNo:"Extension No *",selectExtension:"Select Extension",inspectionDate:"Inspection Date",targetClosureDate:"Target Closure Date",cannotBeInPast:"Cannot be in the past",cannotBeEarlier:"Cannot be earlier than Inspection Date or in the past",openingAttachment:"Opening Attachment",closingAttachment:"Closing Attachment",uploading:"Uploading...",uploadFile:"Upload File",uploadClosingFile:"Upload Closing File",noAttachment:"No attachment",removeAttachment:"Remove attachment",assignmentInformation:"Assignment Information",requestedBy:"Requested By",selectUser:"Select User",technicalDepartment:"Technical Department",assignedTechnician:"Assigned Technician",selectTechnician:"Select Technician",selectWOTypeFirst:"Select Work Order Type first to filter Technicians",noTechniciansForType:"No Technicians found for this Work Order Type",notesAndResponse:"Notes & Response",observationNote:"Observation Note",placeholderObservation:"Enter observation notes...",technicalResponse:"Technical Response",placeholderTechnicalResponse:"Enter technical response...",linkedWorkOrder:"Linked Work Order",linkedCorrectiveWO:"Linked Corrective Work Order",readOnly:"Read-only",viewWorkOrder:"View Work Order",noLinkedWorkOrder:"No linked work order",workflowActions:"Workflow Actions",workflowProgress:"Workflow Progress",workControl:"Work Control",technicianStep:"Technician",supervisorStep:"Supervisor",draftStep:"Draft",closedStep:"Closed",statusInfo:"Status Info",documentStatus:"Document Status",woType:"WO Type",assignedTo:"Assigned To",submitted:"Submitted",cancelled:"Cancelled",added:"Added:",removed:"Removed:",modified:"Modified:",items:"item(s)",rows:"row(s)",activityLog:"Activity Log",activityLogRefreshed:"Activity log refreshed",refreshActivityLog:"Refresh activity log",noChangesRecorded:"No changes recorded yet",createdThisInspection:"Created this Inspection",changedFrom:"changed from",documentUpdated:"Document updated",showLess:"Show Less",showAll:"Show All",department:"Department",location:"Location",inspectionType:"Inspection Type",status:"Status",removeClosingAttachment:"Remove closing attachment",noClosingAttachment:"No closing attachment",cancelledSuccessfully:"Inspection cancelled successfully!",failedToCancel:"Failed to cancel: {{error}}",failedToSave:"Failed to save: {{error}}",failedToDelete:"Failed to delete: {{error}}",targetClosureMandatory:"Target Closure Date is mandatory to save.",attachmentMandatory:"Attachment is mandatory to save.",extensionMandatory:"Extension No is mandatory to save.",createdSuccessfully:"Inspection created successfully!",updatedSuccessfully:"Inspection updated successfully!",deletedSuccessfully:"Inspection deleted successfully!",inspectionDateInPast:"Inspection Date cannot be in the past.",targetClosureEarlier:"Target Closure Date cannot be earlier than Inspection Date.",targetClosureInPast:"Target Closure Date cannot be in the past.",fileSizeExceeds:"File size exceeds 10MB limit",fileUploadedSuccess:"File uploaded successfully",failedToUpload:"Failed to upload file",closingAttachmentRemoved:"Closing attachment removed",closingAttachmentUploadedSuccess:"Closing attachment uploaded successfully",failedToUploadClosing:"Failed to upload closing attachment",attachmentRemoved:"Attachment removed",systemManager:"System Manager",workflow:"Workflow"}},u3={title:"Active Map",loading:"Loading map data...",hospital:"Hospital",departmentWoType:"Department (Work Order Type)",selectHospital:"Select hospital",selectDepartment:"Select department",clearDepartmentHint:"Clear department to filter by hospital",clearHospitalHint:"Clear hospital to filter by department",clearFilters:"Clear Filters",legendHospital:"Hospital",legendDepartment:"Department (WO Type)",legendHasUrgent:"Has Urgent WOs",totalAssets:"Total Assets",workOrderStatus:"Work Order Status",status:"Status",count:"Count",normal:"Normal",urgent:"Urgent",open:"Open",workInProgress:"Work In Progress",pendingReview:"Pending Review",completed:"Completed",closed:"Closed",preventiveMaintenance:"Preventive Maintenance",planned:"Planned",overdue:"Overdue",viewAssets:"View Assets",viewWorkOrders:"View Work Orders",viewAllWorkOrders:"View All Work Orders",showingWorkOrdersByType:"Showing Work Orders by Type",deptWoType:"Department / Work Order Type",tooltipDept:"Dept",tooltipHospital:"Hospital",tooltipUrgent:"URGENT! ",normalWos:"Normal WOs:",urgentWos:"Urgent WOs:",closedWos:"Closed WOs:",plannedPms:"Planned PMs:",completedPms:"Completed PMs:",assets:"Assets"},m3={title:"Maintenance Calendar",viewType:"View Type",maintenanceLog:"Maintenance Log",ppmPlanner:"PPM Planner",filters:"Filters",yearlyMap:"Yearly Map",yearlyMapTitle:"View Yearly PPM Planner Map",mapShort:"Map",hospital:"Hospital",selectHospital:"Select Hospital",department:"Department",allDepartments:"All Departments",status:"Status",allStatuses:"All Statuses",planned:"Planned",completed:"Completed",overdue:"Overdue",cancelled:"Cancelled",assignedTo:"Assigned To",allTechnicians:"All Technicians",clearFilters:"Clear Filters",months:{january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},days:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},previousMonth:"Previous Month",today:"Today",nextMonth:"Next Month",loadingLogs:"Loading maintenance logs...",loadingPpm:"Loading PPM Planners...",overdueInTooltip:"(Overdue)",clickToViewDetails:"Click to view details",clickToViewPpmPlanner:"Click to view PPM Planner",ppmPlannerDefault:"PPM Planner",legendCompleted:"Completed",legendPlanned:"Planned",legendOverdue:"Overdue",legendToday:"Today",summaryPpmPlanners:"PPM Planners"},h3={common:W4,sidebar:V4,login:q4,dashboard:G4,commonFields:Y4,filters:Z4,listPages:J4,assets:X4,workOrders:K4,maintenance:Q4,ppm:e3,ppmPlanner:t3,exportModal:a3,items:r3,issues:s3,users:n3,events:i3,pagination:o3,linkField:l3,supportPlans:c3,inspections:d3,activeMap:u3,maintenanceCalendarPage:m3},g3={dashboard:"لوحة التحكم",assets:"الأصول",workOrders:"أوامر العمل",maintenance:"صيانة الأصول",ppm:"الصيانة الوقائية",logout:"تسجيل الخروج",login:"تسجيل الدخول",email:"البريد الإلكتروني",password:"كلمة المرور",submit:"إرسال",cancel:"إلغاء",save:"حفظ",saveChanges:"حفظ التغييرات",delete:"حذف",deleting:"جاري الحذف...",edit:"تعديل",create:"إنشاء",search:"بحث",filter:"تصفية",export:"تصدير",import:"استيراد",loading:"جاري التحميل...",noData:"لا توجد بيانات",error:"خطأ",success:"نجح",darkMode:"الوضع الداكن",lightMode:"الوضع الفاتح",language:"اللغة",english:"الإنجليزية",arabic:"العربية",backToDashboard:"العودة إلى لوحة التحكم",back:"رجوع",saving:"جاري الحفظ...",tryAgain:"حاول مرة أخرى",filters:"المرشحات",enterFilterName:"أدخل اسم المرشح",saveFilterPreset:"حفظ مجموعة المرشحات",saveFilter:"حفظ المرشح",filtering:"جاري التصفية...",updating:"جاري التحديث...",clearFilters:"مسح المرشحات",total:"الإجمالي",selected:"محدد",rows:"صفوف",actions:"إجراءات",selectAllTitle:"تحديد الكل",deselectAllTitle:"إلغاء تحديد الكل",typeToSearch:"اكتب للبحث...",typing:"جاري الكتابة...",enterFilterNameExample:"أدخل اسم المرشح (مثال: 'مفتوح أولوية عالية')"},f3={title:"أصول سيرا",loggedInAs:"تم تسجيل الدخول كـ:",version:"أصول سيرا نظام إدارة الأصول الإصدار 1.0",inventory:"المخزون",ppmPlanner:"مخطط الصيانة الوقائية",maintenanceCalendar:"تقويم الصيانة",activeMap:"الخريطة النشطة",maintenanceTeam:"فريق الصيانة",procurement:"المشتريات",sla:"اتفاقية مستوى الخدمة",support:"الدعم",inspection:"التفتيش",userProfile:"الملف الشخصي"},x3={title:"أصول سيرا",subtitle:"نظام إدارة الأصول",signIn:"قم بتسجيل الدخول للمتابعة",emailPlaceholder:"أدخل بريدك الإلكتروني",passwordPlaceholder:"أدخل كلمة المرور",loginFailed:"فشل تسجيل الدخول. يرجى التحقق من بيانات الاعتماد الخاصة بك.",demoLogin:"تسجيل دخول تجريبي",or:"أو"},p3={title:"لوحة التحكم",loading:"جاري تحميل لوحة التحكم...",totalAssets:"إجمالي عدد الأصول",assetsDown:"الأصول إلى أسفل",openWorkOrders:"أوامر العمل المفتوحة",workOrdersInProgress:"أوامر العمل قيد التنفيذ",completedWorkOrders:"أوامر العمل المكتملة",totalWorkOrders:"إجمالي أوامر العمل",overdueWorkOrders:"أوامر العمل المتأخرة",closedWorkOrders:"أوامر العمل المغلقة",upTime:"وقت التشغيل",downTime:"وقت التوقف",workOrderStatus:"حالة أمر العمل",workOrderByType:"أمر العمل حسب النوع",maintenanceByAsset:"الصيانة حسب الأصل",assigneesStatus:"حالة المكلفين",assigneesCount:"المكلفون",totalTasksAssigned:"المهام المعينة",maintenanceFrequency:"تكرار الصيانة",maintenanceLogs:"سجلات الصيانة",assetUptime:"وقت تشغيل الأصل",avgResponseTime:"متوسط وقت الاستجابة",maintenanceEfficiency:"كفاءة الصيانة",overdueMaintenance:"صيانة متأخرة",upDownTimeChart:"مخطط وقت التشغيل والتوقف",ppmStatus:"حالة الصيانة الوقائية",completionRate:"معدل الإكمال",completionRateChartHint:"نسبة الإكمال خلال آخر 7 أشهر — مرر المؤشر على النقطة للتفاصيل",completionRateTooltip:"{{value}}% معدل الإكمال",viewFullReport:"عرض التقرير الكامل",noDataAvailable:"لا توجد بيانات",loadingTechnicianHours:"جاري تحميل ساعات الفنيين...",loadingTechnicianWorkData:"جاري تحميل بيانات عمل الفنيين...",welcome:"مرحباً،",user:"المستخدم",failedToLoad:"فشل تحميل بيانات لوحة التحكم",recentRecords:"السجلات الأخيرة",latestEntries:"أحدث الإدخالات من النظام الخلفي",quickActions:"إجراءات سريعة",cardTotalAssets:"إجمالي الأصول",cardOpenWorkOrders:"أوامر العمل المفتوحة",cardInProgress:"قيد التنفيذ",cardCompletedWorkOrders:"أوامر العمل المكتملة",viewUsers:"عرض المستخدمين",manageUserAccounts:"إدارة حسابات المستخدمين",settings:"الإعدادات",configurePreferences:"تكوين التفضيلات",events:"الأحداث",viewCalendarEvents:"عرض أحداث التقويم",reports:"التقارير",viewAnalyticsReports:"عرض التحليلات والتقارير",ppmTemplateCounts:"عدادات قوالب الصيانة الوقائية",repairCost:"تكلفة الإصلاح",dashboardFilter:"فلتر لوحة التحكم",allDepartments:"جميع الأقسام",workOrderStatusDistribution:"توزيع حالة أوامر العمل",workOrderInspectionSummary:"ملخص تفتيش أوامر العمل",woRejectionSummary:"ملخص رفض أوامر العمل",total:"الإجمالي",inProgress:"قيد التنفيذ",completed:"مكتمل",totalSales:"إجمالي المبيعات",average:"متوسط",noChartDataAvailable:"لا توجد بيانات للمخطط",loadingInspectionData:"جاري تحميل بيانات التفتيش...",noInspectionDataAvailable:"لا توجد بيانات تفتيش",totalRejections:"إجمالي الرفض",loadingRejectionData:"جاري تحميل بيانات الرفض...",noRejectionDataAvailable:"لا توجد بيانات رفض",department:"القسم",allOperational:"جميع الأنظمة تعمل",low:"منخفض",highPriority:"أولوية عالية",allClear:"الكل واضح",fastResponse:"استجابة سريعة",monitor:"مراقبة",onTrack:"وفق الخطة",needsAttention:"يحتاج اهتمام",totalHours:"الإجمالي: {{value}} ساعة",technicianWorkingHours:"ساعات عمل الفنيين",techniciansWorked:"ملخص عمل الفنيين",pendingReviewWorkOrders:"قيد المراجعة",clear:"مسح",clearFilter:"مسح الفلتر",label:"التسمية",open:"مفتوح"},y3={assetId:"معرف الأصل",assetName:"اسم الأصل",serialNumber:"الرقم التسلسلي",company:"الشركة/المستشفى",location:"الموقع",department:"القسم",deviceStatus:"حالة الجهاز",modality:"الطريقة",manufacturer:"الشركة المصنعة",supplier:"المورد",assetCategory:"فئة الأصل",purchaseDate:"تاريخ الشراء",purchaseAmount:"مبلغ الشراء",availableForUseDate:"تاريخ التوفر للاستخدام",createdOn:"تم الإنشاء في",modifiedOn:"تم التعديل في",createdBy:"تم الإنشاء بواسطة",modifiedBy:"تم التعديل بواسطة",workOrderId:"معرف أمر العمل",workOrderType:"النوع",status:"الحالة",priority:"الأولوية",description:"الوصف",assignedTo:"مكلف إلى",scheduledDate:"التاريخ المجدول",completedDate:"تاريخ الإكمال",hospital:"المستشفى",assetType:"نوع الأصل",siteName:"اسم الموقع",assignedSupervisor:"المشرف المعين",assignedContractor:"المقاول المعين",serialNumberShort:"الرقم التسلسلي",departmentShort:"القسم",manufacturerShort:"الشركة المصنعة",workOrderIdShort:"معرف أمر العمل",assetShort:"الأصل",typeShort:"النوع",nameShort:"الاسم",pmId:"معرف الصيانة الوقائية",name:"الاسم"},b3={filterBy:"تصفية حسب",createdDate:"تاريخ الإنشاء",latestModifiedDate:"آخر تاريخ تعديل",startDate:"تاريخ البداية",endDate:"تاريخ النهاية",assetId:"معرف الأصل",hospital:"المستشفى",name:"الاسم",serial:"الرقم التسلسلي",status:"الحالة",location:"الموقع",dept:"القسم",modality:"الطريقة",mfr:"الشركة المصنعة",supplier:"المورد",workOrderId:"معرف أمر العمل",asset:"الأصل",type:"النوع",priority:"الأولوية",workflowState:"حالة سير العمل",allStatuses:"أي حالة",allStates:"جميع الحالات",allTypes:"جميع الأنواع",allPriorities:"أي أولوية",allHospitals:"جميع المستشفيات",allModalities:"جميع الطرق",filterByCompany:"تصفية حسب الشركة",allManufacturers:"جميع الشركات المصنعة",sortBy:"ترتيب حسب",sortCreationNewest:"تاريخ الإنشاء (الأحدث أولاً)",sortCreationOldest:"تاريخ الإنشاء (الأقدم أولاً)",sortModifiedNewest:"آخر تعديل (الأحدث أولاً)",sortModifiedOldest:"آخر تعديل (الأقدم أولاً)",sortNameAsc:"الاسم (أ-ي)",sortNameDesc:"الاسم (ي-أ)",sortAssetNameAsc:"اسم الأصل (أ-ي)",sortAssetNameDesc:"اسم الأصل (ي-أ)",sortItemNameAsc:"اسم العنصر (أ-ي)",sortItemNameDesc:"اسم العنصر (ي-أ)",sortTeamNameAsc:"اسم الفريق (أ-ي)",sortTeamNameDesc:"اسم الفريق (ي-أ)"},v3={addNew:"إضافة جديد",searchPlaceholder:"بحث...",noResults:"لم يتم العثور على نتائج",showing:"عرض",of:"من",results:"نتائج",selectAll:"تحديد الكل",deselectAll:"إلغاء تحديد الكل",selected:"محدد",actions:"الإجراءات",view:"عرض",edit:"تعديل",delete:"حذف",duplicate:"نسخ",export:"تصدير",print:"طباعة",filters:"المرشحات",clearFilters:"مسح المرشحات",applyFilters:"تطبيق المرشحات",columns:"الأعمدة",exportSelected:"تصدير المحدد",exportAllOnPage:"تصدير الكل في الصفحة",exportAllWithFilters:"تصدير الكل مع المرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",excel:"Excel",exporting:"جاري التصدير...",exportComplete:"اكتمل التصدير",close:"إغلاق",loading:"جاري التحميل...",refresh:"تحديث",deselectAllTitle:"إلغاء تحديد الكل",selectAllTitle:"تحديد الكل",typeToSearch:"اكتب للبحث...",enterFilterName:"أدخل اسم المرشح",enterFilterNameExample:"أدخل اسم المرشح (مثال: 'مفتوح أولوية عالية')",allStatuses:"أي حالة",savedFilters:"المرشحات المحفوظة",clear:"مسح",noIssuesFound:"لم يتم العثور على تذاكر",createFirstIssue:"أنشئ تذكرتك الأولى",saveFilterPreset:"حفظ مجموعة المرشحات",saveFilter:"حفظ المرشح",filtering:"جاري التصفية...",noMaintenanceTeamsFound:"لم يتم العثور على فرق صيانة",createFirstTeam:"أنشئ فريقك الأول",all:"الكل",tryAdjustingFilters:"حاول تعديل البحث أو المرشحات",getStartedCreateFirst:"ابدأ بإنشاء مخطط الصيانة الوقائية الأول",noMaintenanceLogsFound:"لم يتم العثور على سجلات صيانة",createFirstMaintenanceLog:"أنشئ سجل الصيانة الأول",total:"الإجمالي",noPPMSchedulesFound:"لم يتم العثور على جداول صيانة وقائية",createFirstPPMSchedule:"أنشئ جدول الصيانة الوقائية الأول",deleteConfirmCannotUndo:"لا يمكن التراجع عن هذا الإجراء."},_3={title:"الأصول",addAsset:"إضافة أصل جديد",assetDetails:"تفاصيل الأصل",assetInformation:"معلومات الأصل",newAsset:"أصل جديد",duplicateAsset:"نسخ الأصل",fromAsset:"من الأصل",creatingFromAsset:"جاري إنشاء أمر العمل من الأصل",assetInfoPrefilled:"معلومات الأصل معبأة مسبقاً من",pleaseSelectWorkOrderType:"يرجى اختيار نوع أمر العمل وإضافة أي تفاصيل",loadingAssetDetails:"جاري تحميل تفاصيل الأصل...",pleaseEnterAssetName:"يرجى إدخال اسم الأصل",pleaseSelectCategory:"يرجى اختيار الفئة",assetDuplicatedSuccessfully:"تم نسخ الأصل بنجاح!",assetCreatedSuccessfully:"تم إنشاء الأصل بنجاح!",assetUpdatedSuccessfully:"تم تحديث الأصل بنجاح!",sourceAssetNotFound:"الأصل المصدر غير موجود",assetNotFoundMessage:"لم يتم العثور على الأصل الذي تحاول نسخه.",backToAssetsList:"العودة إلى قائمة الأصول",backToList:"العودة إلى قائمة الأصول",createNewAsset:"إنشاء أصل جديد",newAssetDetails:"تفاصيل أصل جديد",noAssetsFound:"لم يتم العثور على أصول",createFirstAsset:"أنشئ أول أصل",deleteConfirmTitle:"حذف الأصل",deleteConfirmMessage:"هل أنت متأكد من حذف هذا الأصل؟ لا يمكن التراجع عن هذا الإجراء.",noDataToExport:"لا توجد بيانات للتصدير",loadingPermissions:"جاري تحميل الصلاحيات...",selectAssetId:"اختر معرف الأصل",selectHospital:"المستشفى",viewDetails:"عرض التفاصيل",editAsset:"تعديل الأصل",createWorkOrder:"إنشاء أمر عمل",viewLinkedWOs:"عرض أوامر العمل المرتبطة",moreActions:"المزيد من الإجراءات",exportAsJson:"تصدير كـ JSON",printAsset:"طباعة",deviceStatus:"حالة الجهاز",status:{up:"يعمل",down:"متوقف"},apiNotAvailable:"واجهة برمجة الأصول غير متاحة",apiNotDeployed:"نقطة نهاية واجهة برمجة الأصول غير مُنشأة بعد.",tryCreatingNew:"حاول إنشاء أصل جديد (تجريبي)",listTotal:"الإجمالي: ",table:{assetName:"اسم الأصل",serialNo:"الرقم التسلسلي",company:"الشركة",location:"الموقع",status:"الحالة",updatedOn:"آخر تحديث",actions:"إجراءات"},export:{title:"تصدير الأصول",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} أصل{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} أصل{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} أصل{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"},detail:{assetInformation:"معلومات الأصل",technicalSpecs:"المواصفات الفنية",financialDetails:"التفاصيل المالية",assetFinanceBooks:"دفاتر أصول التمويل",addRow:"إضافة صف",duplicatingFrom:"النسخ من:",noDepartmentsMapped:"لا توجد أقسام معينة لهذا المبنى",departmentsAvailable:"{{count}} قسم متاح (مُصفى حسب المبنى)",selectDepartmentForRoom:"اختر القسم لتفعيل رقم الغرفة",depreciationMethodNote:"طريقة الاستهلاك هي طريقة محاسبية لتوزيع تكلفة أصل ملموس على عمره الإنتاجي.",calculateDepreciation:"حساب الاستهلاك",noFinanceBooksYet:'لم تتم إضافة دفاتر مالية بعد. انقر "إضافة صف" للإضافة.',noSparePartsYet:'لم تتم إضافة قطع غيار بعد. انقر "إضافة صف" للإضافة.',assetName:"اسم الأصل",category:"الفئة",modality:"الطريقة",class:"الفئة",assetId:"معرف الأصل",deviceStatus:"حالة الجهاز",serialCode:"الرمز التسلسلي",technicalDepartment:"القسم الفني",manufacturer:"الشركة المصنعة",model:"الموديل",totalHours:"إجمالي الساعات",downTimeHours:"وقت التوقف (بالساعات)",upTimeHours:"وقت التشغيل (بالساعات)",placeholderAssetName:"مثال: كمبيوتر محمول موديل X",placeholderSerialCode:"مثال: SN-12345",placeholderModelNumber:"رقم الموديل",placeholderZero:"0",placeholderDescription:"وصف موجز للأصل",placeholderPONumber:"رقم أمر الشراء",selectClass:"اختر الفئة",classA:"فئة أ",classB:"فئة ب",classC:"فئة ج",autoGenerated:"يُولد تلقائياً",calculatedFromAvailableDate:"محسوب من تاريخ التوفر للاستخدام",calculatedTotalMinusDown:"محسوب: إجمالي الساعات - وقت التوقف",hospital:"المستشفى",siteName:"اسم الموقع",selectSite:"اختر الموقع",building:"المبنى",department:"القسم",roomNumber:"رقم الغرفة",location:"الموقع",selectStatus:"اختر الحالة",operational:"يعمل",underMaintenance:"قيد الصيانة",decommissioned:"مُوقف",selectServiceAgreement:"اختر اتفاقية الخدمة",warranty:"ضمان",contract:"عقد",frameWork:"إطار عمل",mainContractor:"المقاول الرئيسي",outOfWarranty:"خارج الضمان",underDismantle:"قيد التفكيك",underInstallation:"قيد التركيب",selectServiceCoverage:"اختر تغطية الخدمة",pmOnly:"صيانة وقائية فقط",labour:"عمالة",labourAndParts:"عمالة وقطع غيار",comprehensive:"شامل",supplierVendor:"المورد/البائع",selectMethod:"اختر الطريقة",straightLine:"الطريقة الخطية",doubleDecliningBalance:"الرصيد المتناقص المزدوج",writtenDownValue:"القيمة المكتوبة",manual:"يدوي",recycling:"إعادة التدوير",donation:"تبرع",sale:"بيع",assetDuplicatedSuccess:"تم نسخ الأصل بنجاح!",assetCreatedSuccess:"تم إنشاء الأصل بنجاح!",assetUpdatedSuccess:"تم تحديث الأصل بنجاح!",failedToSave:"فشل حفظ الأصل",cannotSubmitNotSaved:"لا يمكن الإرسال: الأصل غير محفوظ بعد",confirmSubmit:'هل أنت متأكد من إرسال هذا الأصل؟ بعد الإرسال، يمكن تعديل الحقول المحددة بـ "السماح عند الإرسال" فقط.',assetSubmittedSuccess:"تم إرسال الأصل بنجاح!",failedToSubmit:"فشل إرسال الأصل",pleaseSaveFirstForPPM:"يرجى حفظ الأصل أولاً لعرض خطة الصيانة الوقائية",pleaseSaveFirstForHistory:"يرجى حفظ الأصل أولاً لعرض سجل الأصل",failedToLoadPPMPlan:"فشل تحميل خطة الصيانة الوقائية. يرجى المحاولة مرة أخرى.",noPlannedMaintenance:"لم يتم العثور على صيانة مخطط لها لهذا الأصل",noWorkOrdersFound:"لم يتم العثور على أوامر عمل",noSparePartsUsed:"لم تُستخدم قطع غيار",noMaintenanceRecords:"لم يتم العثور على سجلات صيانة",noMaintenanceTasks:"لم يتم العثور على مهام صيانة",selectBuildingFirst:"اختر المبنى أولاً لتفعيل القسم",coverage:"التغطية",siteContractor:"مقاول الموقع",contractNumber:"رقم العقد",serviceAgreement:"اتفاقية الخدمة",serviceCoverage:"تغطية الخدمة",purchaseOrderNumber:"رقم أمر الشراء",grossPurchaseAmount:"مبلغ الشراء الإجمالي",purchaseDate:"تاريخ الشراء",installationDate:"تاريخ التركيب",availableForUseDate:"تاريخ التوفر للاستخدام",financeBook:"دفتر المالية",depreciationMethod:"طريقة الاستهلاك",totalDepreciations:"إجمالي الاستهلاك",frequencyMonths:"التكرار (بالأشهر)",depreciationPostingDate:"تاريخ ترحيل الاستهلاك",startDate:"تاريخ البداية",endDate:"تاريخ النهاية",totalAmount:"المبلغ الإجمالي",selectRoomFirst:"اختر رقم الغرفة لتفعيل الموقع",autoSetFromRoom:"تم التعيين تلقائياً من خريطة الغرفة",moreDetails:"تفاصيل إضافية"}},w3=JSON.parse(`{"title":"أوامر العمل","addWorkOrder":"إضافة أمر عمل جديد","workOrderDetails":"تفاصيل أمر العمل","newWorkOrder":"أمر عمل جديد","duplicateWorkOrder":"نسخ أمر العمل","createFromAsset":"إنشاء أمر عمل من الأصل","closeWorkOrders":"إغلاق أوامر العمل","closeConfirmTitle":"إغلاق أوامر العمل","closeConfirmMessage":"هل أنت متأكد من إغلاق أمر/أوامر العمل المحددة؟","deleteConfirmMessage":"هل أنت متأكد من حذف أمر العمل هذا؟ لا يمكن التراجع عن هذا الإجراء.","cancelConfirmMessage":"هل أنت متأكد من إلغاء أمر العمل هذا؟ سيتم وضع علامة ملغى ويمكنك حذفه لاحقاً إذا لزم الأمر.","assignConfirmMessage":"هل أنت متأكد من تعيين أمر العمل هذا للفني/الفنيين التاليين؟","deleteWorkOrder":"حذف أمر العمل","cancelWorkOrder":"إلغاء أمر العمل","loadingWorkOrders":"جاري تحميل أوامر العمل...","loadingDetails":"جاري تحميل تفاصيل أمر العمل...","backToList":"العودة إلى قائمة أوامر العمل","status":{"open":"مفتوح","work_in_progress":"جاري العمل","pending_review":"قيد المراجعة","completed":"مكتمل","cancelled":"ملغى","closed":"مغلق"},"priorityNormal":"عادي","priorityUrgent":"عاجل","workflowState":{"draft":"مسودة"},"priority":{"normal":"عادي","urgent":"عاجل"},"table":{"workOrderId":"معرف أمر العمل","asset":"الأصل","type":"النوع","technicalReport":"التقرير الفني","department":"القسم","workflowState":"حالة سير العمل","priority":"الأولوية","noWorkOrdersFound":"لم يتم العثور على أوامر عمل","createFirstWorkOrder":"أنشئ أول أمر عمل"},"export":{"title":"تصدير أوامر العمل","selectData":"ماذا تُصدّر","selectedRows":"الصفوف المحددة","selectedCount":"تصدير {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","currentPage":"الصفحة الحالية","currentPageCount":"تصدير {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية","allWithFilters":"جميع السجلات (مع الفلاتر الحالية)","allWithFiltersCount":"تصدير جميع {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية","csvDesc":"قيم مفصولة بفاصلة","excelDesc":"جدول XLSX","columnsToExport":"الأعمدة للتصدير","selectAll":"تحديد الكل","resetToDefault":"إعادة التعيين للافتراضي","columnsSelected":"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","exporting":"جاري التصدير...","exportButton":"تصدير","exportingSelected":"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}","exportingPage":"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية","exportingAll":"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"},"closeModal":{"title":"إغلاق أوامر العمل","confirmBulkClose":"تأكيد عملية الإغلاق الجماعي","aboutToClose":"أنت على وشك إغلاق {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}}. سيتم تغيير حالة سير العمل إلى \\"مغلق\\".","alreadyClosedNote":"ملاحظة: {{count}} أمر عمل{{count !== 1 ? ' مغلقة' : ' مغلق'}} بالفعل وسيتم تخطيها.","selectedWorkOrders":"أوامر العمل المحددة ({{count}})","workOrderId":"معرف أمر العمل","currentStatus":"الحالة الحالية","workflowState":"حالة سير العمل","alreadyClosed":"(مغلق بالفعل)","willClose":"سيتم إغلاق {{count}} أمر عمل{{count !== 1 ? 'اً' : ''}}","allAlreadyClosed":"جميع أوامر العمل المحددة مغلقة بالفعل","cancel":"إلغاء","close":"إغلاق","closing":"جاري الإغلاق..."},"detail":{"workOrderInformation":"معلومات أمر العمل","assignments":"التعيينات","statusSummary":"ملخص الحالة","existingWorkOrders":"أمر/أوامر العمل الموجودة:","created":"تاريخ الإنشاء","proceedCreateNew":"هل تريد المتابعة لإنشاء أمر عمل جديد؟","loadingTechnicians":"جاري تحميل الفنيين...","feedbackBy":"التقييم بواسطة","overallSatisfaction":"رضا إجمالي","overallRatingPreview":"معاينة التقييم الإجمالي","uploading":"جاري الرفع...","uploadOpeningFile":"رفع ملف الفتح","uploadClosingFile":"رفع ملف الإغلاق","noAttachment":"لا يوجد مرفق","noClosingAttachment":"لا يوجد مرفق إغلاق","closingAttachment":"مرفق الإغلاق","currentState":"الحالة الحالية","loadingActions":"جاري تحميل الإجراءات...","actionResults":"نتائج الإجراء:","checkingFeedback":"جاري التحقق من التقييم...","yourRating":"تقييمك","repairStatus":"حالة الإصلاح","priority":"الأولوية","lastModified":"آخر تعديل","documentStatus":"حالة المستند","loadingActivity":"جاري تحميل النشاط...","added":"تمت الإضافة:","removed":"تمت الإزالة:","modified":"تم التعديل:","items":"عنصر/عناصر","rows":"صف/صفوف","pleaseAllowPopupsServiceReport":"يرجى السماح بالنوافذ المنبثقة لهذا الموقع لطباعة تقرير الخدمة.","pleaseProvideAtLeastOneRating":"يرجى تقديم تقييم واحد على الأقل","feedbackSubmittedSuccessfully":"تم إرسال التقييم بنجاح!","failedToSubmitFeedback":"فشل إرسال التقييم","feedbackUpdatedSuccessfully":"تم تحديث التقييم بنجاح!","failedToUpdateFeedback":"فشل تحديث التقييم","locationAutoSetTo":"تم تعيين الموقع تلقائياً إلى: {{location}}","noTechniciansSelected":"لم يتم تحديد فنيين","techniciansAssignedSuccessfully":"تم تعيين {{count}} فني/فنيين إضافي بنجاح","removedTechnician":"تمت إزالة {{name}}","itemAlreadyAdded":"الصنف \\"{{itemCode}}\\" مضاف بالفعل في الصف {{row}}. يرجى اختيار صنف مختلف.","insufficientStock":"مخزون غير كافٍ لـ {{itemCode}}. المتوفر: {{available}}، المطلوب: {{required}}","pleaseEnterSerialNumberToSearch":"يرجى إدخال الرقم التسلسلي للبحث","assetFound":"تم العثور على الأصل: {{name}}","noAssetFoundWithSerialNumber":"لم يتم العثور على أصل بهذا الرقم التسلسلي","fileSizeExceeds":"حجم الملف يتجاوز حد 10 ميجابايت","fileUploadedSuccessfully":"تم رفع الملف بنجاح","failedToUploadFile":"فشل رفع الملف","attachmentRemoved":"تم إزالة المرفق","failureDateSetToCurrentTime":"تم تعيين تاريخ العطل على الوقت الحالي","firstRespondedOnSetToCurrentTime":"تم تعيين وقت أول استجابة على الوقت الحالي","completionDateSetToCurrentTime":"تم تعيين تاريخ الإكمال على الوقت الحالي","firstRespondedOnSetTo":"تم تعيين وقت أول استجابة على {{datetime}}","completionDateSetTo":"تم تعيين تاريخ الإكمال على {{datetime}}","assignedSupervisorMandatory":"المشرف المعيّن إلزامي لدور مراقبة العمل.","assignedEngineerMandatory":"المهندس المعيّن إلزامي لدور مراقبة العمل.","assignedTechnicianMandatory":"الفني المعيّن إلزامي عندما تكون الحالة \\"إرسال إلى المهندس\\".","workOrderCancelledSuccessfully":"تم إلغاء أمر العمل بنجاح!","failedToCancel":"فشل الإلغاء: {{error}}","workOrderDeletedSuccessfully":"تم حذف أمر العمل بنجاح!","failedToDelete":"فشل الحذف: {{error}}","pleaseSelectWorkOrderType":"يرجى اختيار نوع أمر العمل","workOrderUpdatedSuccessfully":"تم تحديث أمر العمل بنجاح!","workOrderCreatedSuccessfully":"تم إنشاء أمر العمل بنجاح!","workOrderCreatedFromAssetSuccessfully":"تم إنشاء أمر العمل من الأصل بنجاح!","workOrderDuplicatedSuccessfully":"تم نسخ أمر العمل بنجاح!","documentModifiedByAnotherUser":"تم تعديل المستند من قبل مستخدم آخر. جاري التحديث...","pleaseReviewLatestChanges":"يرجى مراجعة أحدث التغييرات والمحاولة مرة أخرى.","failedToSaveWorkOrder":"فشل حفظ أمر العمل: {{error}}","technicalReportMandatoryForSupervisor":"التقرير الفني إلزامي عند الإرسال مباشرة إلى المشرف. يرجى ملء حقل التقرير الفني قبل المتابعة.","applyingAction":"جاري تطبيق الإجراء \\"{{action}}\\"...","assignedTo":"معيّن إلى: {{name}}","actionCompletedSuccessfully":"تم إكمال الإجراء \\"{{action}}\\" بنجاح!","documentModifiedRefreshing":"تم تعديل المستند. جاري التحديث...","tryActionAgainAfterReview":"يرجى المحاولة مرة أخرى بعد مراجعة أحدث التغييرات.","failedToApplyAction":"فشل تطبيق الإجراء \\"{{action}}\\". {{error}}","editModeEnabled":"تم تفعيل وضع التحرير","editCancelledChangesDiscarded":"تم إلغاء التحرير - تم تجاهل التغييرات","closingAttachmentRemoved":"تم إزالة مرفق الإغلاق","closingAttachmentUploadedSuccessfully":"تم رفع مرفق الإغلاق بنجاح","failedToUploadClosingAttachment":"فشل رفع مرفق الإغلاق","newStockItemRowAdded":"تمت إضافة صف صنف جديد","stockItemRemoved":"تمت إزالة صنف المخزون {{item}}","activityLogRefreshed":"تم تحديث سجل النشاط","errorLabel":"خطأ","backToList":"العودة إلى قائمة أوامر العمل","duplicateWorkOrder":"نسخ أمر العمل","createFromAsset":"إنشاء أمر عمل من الأصل","newWorkOrder":"أمر عمل جديد","workOrderDetails":"تفاصيل أمر العمل","existingWorkOrderFound":"تم العثور على أمر عمل موجود","workOrderExistsForAsset":"يوجد أمر عمل بالفعل لهذا الأصل بحالة سير عمل غير معتمدة أو مغلقة.","workOrderExistsForTypeAndRoom":"يوجد أمر عمل بالفعل لهذا النوع ورقم الغرفة بحالة سير عمل غير معتمدة أو مغلقة.","proceedWithNewWO":"هل ما زلت تريد المتابعة بإنشاء أمر عمل جديد؟","proceedAnyway":"متابعة على أي حال","noGoBack":"لا، تراجع","yesCancel":"نعم، إلغاء","cancelling":"جاري الإلغاء...","deleting":"جاري الحذف...","selectAdditionalTechnicians":"اختر فنيين إضافيين","searchTechnicians":"البحث عن فنيين...","techniciansSelected":"{{count}} فني/فنيين محدد","clearAll":"مسح الكل","noTechniciansMatchSearch":"لا يوجد فنيون يطابقون بحثك","noTechniciansFound":"لم يتم العثور على فنيين","hospital":"المستشفى","technicalDepartment":"القسم الفني","woType":"نوع أمر العمل","assetId":"معرف الأصل","assetName":"اسم الأصل","extensionNo":"رقم الامتداد","building":"المبنى","departmentName":"اسم القسم","roomNo":"رقم الغرفة","location":"الموقع","manufacturer":"الشركة المصنعة","supplier":"المورد","assignedSupervisor":"المشرف المعيّن","assignedEngineer":"المهندس المعيّن","assignedTechnician":"الفني المعيّن","fromAsset":"من الأصل","assetDetailsAutoPopulated":"تم تعبئة تفاصيل الأصل تلقائياً","selectBuildingFirst":"اختر المبنى أولاً لتفعيل القسم","printServiceReport":"طباعة تقرير الخدمة","removeAttachment":"إزالة المرفق","removeClosingAttachment":"إزالة مرفق الإغلاق","setToCurrentDateTime":"تعيين على التاريخ والوقت الحالي","selectItem":"اختر الصنف","selectWarehouse":"اختر المستودع","autoPopulatedFromStock":"تم تعبئته تلقائياً من المخزون","removeItem":"إزالة الصنف","noItemsAddedYet":"لم تتم إضافة أصناف بعد","commentsDiscussion":"التعليقات والنقاش","refreshActivityLog":"تحديث سجل النشاط","supervisorsAvailableForType":"{{count}} مشرف/مشرفين معيّن متاح لهذا النوع","civilWorkCategory":"فئة الأعمال المدنية","selectCivilWorkCategory":"اختر فئة الأعمال المدنية","selectPendingReason":"اختر سبب الانتظار","pleaseSpecifyReason":"يرجى تحديد السبب...","selectServiceAgreement":"اختر اتفاقية الخدمة","selectServiceCoverage":"اختر تغطية الخدمة","describeComplaint":"صف طبيعة الشكوى...","describeWorkPerformed":"صف العمل المنفذ...","enterSerialNumber":"أدخل الرقم التسلسلي","searchAssetBySerial":"البحث عن الأصل بالرقم التسلسلي","workOrder":"أمر العمل:","giveFeedback":"تقديم التقييم","editFeedback":"تعديل التقييم","feedbackDetails":"تفاصيل التقييم","confirmAssignment":"تأكيد التعيين","notRated":"غير مُقيّم","serviceReport":"تقرير الخدمة","assetInfoPrefilled":"تم تعبئة معلومات الأصل تلقائياً من","linkedFromAsset":"مرتبط من الأصل:","loadingAssetDetails":"جاري تحميل تفاصيل الأصل...","cancelled":"ملغى","workOrderId":"معرف أمر العمل","pendingReason":"سبب الانتظار","otherReason":"سبب آخر","serviceAgreementDetails":"تفاصيل اتفاقية الخدمة","siteContractor":"متعاقد الموقع","subcontractor":"المقاول من الباطن","model":"الموديل","description":"الوصف","natureOfComplaint":"طبيعة الشكوى","technicalReport":"التقرير الفني","selectWoTypeFirstForSupervisors":"اختر نوع أمر العمل أولاً لتصفية المشرفين المعيّنين","noSupervisorsFound":"لم يتم العثور على مشرفين معيّنين لهذا النوع من أمر العمل","requiredForExistingWO":"* مطلوب لأوامر العمل الموجودة","selectWoTypeFirstForEngineers":"اختر نوع أمر العمل أولاً لتصفية المهندسين","noEngineersFound":"لم يتم العثور على مهندسين (دور مهندس المقاول) لهذا النوع من أمر العمل","engineersAvailable":"{{count}} مهندس/مهندسين متاح","selectWoTypeFirstForTechnicians":"اختر نوع أمر العمل أولاً لتصفية الفنيين","noTechniciansFoundForType":"لم يتم العثور على فنيين لهذا النوع من أمر العمل","techniciansAvailable":"{{count}} فني/فنيين متاح","requiredForSentToEngineer":"* مطلوب لحالة \\"إرسال إلى المهندس\\"","autoCalculated":"(محسوب تلقائياً)","autoSetOnRepairStart":"(يُعيّن عند بدء الإصلاح)","autoSetOnClose":"(يُعيّن عند الإغلاق)","totalItems":"إجمالي الأصناف:","confirmAction":"تأكيد الإجراء","confirmActionMessage":"هل أنت متأكد أنك تريد {{action}} أمر العمل هذا؟","processing":"جاري المعالجة...","yesAction":"نعم، {{action}}","systemManagerNote":"مدير النظام: عرض جميع الإجراءات الصالحة لهذه الحالة.","saveToSeeActions":"احفظ التغييرات لرؤية جميع الإجراءات المتاحة.","availableActions":"الإجراءات المتاحة","allOptionsAvailable":"جميع الخيارات متاحة","bothFilledMessage":"تم ملء الفني والتقرير الفني. يمكنك الآن استخدام أي إجراء سير عمل متاح أعلاه.","technicianAssigned":"تم تعيين الفني","assignedTechnicianLabel":"الفني المعيّن:","wantToEnableSendToSupervisor":"هل تريد أيضاً تمكين \\"إرسال إلى المشرف\\"؟","fillTechnicalReportToUnlock":"املأ حقل \\"التقرير الفني\\" لفتح هذا الخيار","technicalReportFilled":"تم ملء التقرير الفني","howWasService":"كيف كانت الخدمة لأمر العمل هذا؟","noFeedbackYet":"لم يُقدّم أي تقييم بعد","statusInfoAfterCreation":"ستظهر معلومات الحالة بعد الإنشاء","activityLog":"سجل النشاط","refreshActivityLogTitle":"تحديث سجل النشاط","noChangesRecorded":"لم يُسجّل أي تغيير بعد","createdThisWorkOrder":"أنشأ أمر العمل هذا","showLess":"عرض أقل","showAll":"عرض الكل","entries":"إدخالات","changedFrom":"تغيّر من","documentUpdated":"تم تحديث المستند","addItem":"إضافة صنف","addFirstItem":"+ إضافة الصنف الأول","item":"الصنف","valuationRate":"معدل التقييم","warehouse":"المستودع","consumedQty":"الكمية المستهلكة","availableStock":"المخزون المتاح","totalValue":"إجمالي القيمة","action":"الإجراء","open":"مفتوح","autoGenerated":"يُنشأ تلقائياً","updating":"جاري التحديث...","submitting":"جاري الإرسال...","updateFeedback":"تحديث التقييم","submitFeedback":"إرسال التقييم","editRating":"تعديل التقييم","saveSelection":"حفظ التحديد"}}`),k3={title:"صيانة الأصول",maintenanceLogs:"سجلات الصيانة",maintenanceDetails:"تفاصيل الصيانة",addMaintenance:"إضافة صيانة جديدة",listTotal:"الإجمالي: {{count}} سجل صيانة{{count !== 1 ? '' : ''}}",apiNotAvailable:"واجهة صيانة الأصول غير متاحة",apiNotDeployed:"لم يتم نشر نقطة نهاية واجهة صيانة الأصول بعد.",tryCreatingNew:"جرب الإنشاء (تجريبي)",deletedSuccessfully:"تم حذف فريق الصيانة بنجاح!",status:{planned:"مخطط",completed:"مكتمل",overdue:"متأخر",cancelled:"ملغى"},maintenanceTeam:"فريق الصيانة",newMaintenanceTeam:"فريق صيانة جديد",teamId:"معرف الفريق",teamName:"اسم الفريق",managerEmail:"بريد المشرف",managerName:"اسم المشرف",expertise:"الاختصاص",selectTeam:"اختر الفريق",viewDetails:"عرض التفاصيل",editTeam:"تعديل الفريق",duplicateTeam:"نسخ الفريق",deleteTeam:"حذف الفريق",selectHospital:"اختر المستشفى",selectExpertise:"اختر الاختصاص",selectManager:"اختر المشرف",enterTeamName:"أدخل اسم الفريق",teamInformation:"معلومات الفريق",selectUser:"اختر المستخدم",selectRole:"اختر الدور",totalMembers:"إجمالي الأعضاء",teamSummary:"ملخص الفريق",addFirstMember:"أضف العضو الأول",manager:"بريد المشرف",loadingTeams:"جاري تحميل فرق الصيانة...",errorLoadingTeams:"خطأ في تحميل فرق الصيانة",deleteConfirmMessage:"هل أنت متأكد من حذف فريق الصيانة هذا؟ لا يمكن التراجع عن هذا الإجراء.",team:"الفريق",deleteTeamButton:"حذف الفريق",listTitle:"فرق الصيانة",statsTotalTeams:"إجمالي الفرق",statsManagers:"المديرون",statsHospitals:"المستشفيات",export:{title:"تصدير فرق الصيانة",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} فريق صيانة محدد",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} فريق صيانة في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} فريق صيانة مطابق للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"}},j3={title:"الصيانة الوقائية",ppmDetails:"تفاصيل الصيانة الوقائية",addPPM:"إضافة صيانة وقائية جديدة",periodicity:"الدورية",dueDate:"تاريخ الاستحقاق",manageSchedules:"إدارة الجداول",pmId:"معرف الصيانة الوقائية",name:"الاسم",manufacturer:"الشركة المصنعة",listTotal:"الإجمالي: {{count}} جدول صيانة وقائية{{count !== 1 ? '' : ''}}",searchPlaceholder:"ابحث بالمعرف أو الأصل أو الشركة...",filterByCompany:"تصفية حسب الشركة",company:"الشركة",asset:"الأصل",assetType:"نوع الأصل",frequency:"التكرار",noOfPMs:"عدد الصيانات الوقائية",totalAmount:"المبلغ الإجمالي",apiNotAvailable:"واجهة الصيانة الوقائية غير متاحة",apiNotDeployed:"لم يتم نشر نقطة نهاية واجهة الصيانة الوقائية بعد.",tryCreatingNew:"جرب الإنشاء (تجريبي)",deletedSuccessfully:"تم حذف جدول الصيانة الوقائية بنجاح!",noSchedulesFound:"لم يتم العثور على جداول صيانة وقائية",createFirstSchedule:"أنشئ أول جدول صيانة وقائية",confirmDelete:"تأكيد الحذف",deleteConfirmMessage:"هل أنت متأكد من حذف جدول الصيانة الوقائية هذا؟ لا يمكن التراجع عن هذا الإجراء.",detail:{duplicateSchedule:"نسخ جدول الصيانة الوقائية",newSchedule:"جدول صيانة وقائية جديد",scheduleDetails:"تفاصيل جدول الصيانة الوقائية",basicInformation:"المعلومات الأساسية",financialInformation:"المعلومات المالية",scheduleInformation:"معلومات الجدول",maintenanceTeam:"فريق الصيانة",numberOfPMs:"عدد الصيانات الوقائية",pricePerPM:"السعر لكل صيانة وقائية",frequencyPlaceholder:"مثال: شهري، ربع سنوي، سنوي",scheduleInfoAfterCreation:"ستظهر معلومات الجدول بعد الإنشاء",assetName:"اسم الأصل",pleaseEnterAssetName:"يرجى إدخال اسم الأصل",duplicatedSuccessfully:"تم نسخ جدول الصيانة الوقائية بنجاح!",createdSuccessfully:"تم إنشاء جدول الصيانة الوقائية بنجاح!",updatedSuccessfully:"تم تحديث جدول الصيانة الوقائية بنجاح!",failedToSave:"فشل الحفظ",saveChanges:"حفظ التغييرات",loadingSchedule:"جاري تحميل جدول الصيانة الوقائية...",backToSchedules:"العودة إلى جداول الصيانة الوقائية",errorLoading:"خطأ"}},N3={listTitle:"جداول الصيانة الوقائية",export:{title:"تصدير جداول الصيانة الوقائية",selectData:"نطاق التصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} جدول{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} جدول{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} جدول{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"}},S3={title:"تصدير",whatToExport:"ما الذي سيتم تصديره",selectedRows:"الصفوف المحددة",currentPage:"الصفحة الحالية",allWithFilters:"الكل مع المرشحات",exportSelected:"تصدير {count} محدد",exportPage:"تصدير {count} في الصفحة الحالية",exportAll:"تصدير الكل {count}",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",selectDefault:"تحديد الافتراضي",exporting:"جاري التصدير...",exportingSelected:"جاري تصدير {count} صف(وف) محدد(ة)",exportingPage:"جاري تصدير {count} صف(وف) من الصفحة الحالية",exportingAll:"جاري تصدير جميع {count} صف(وف)",selected:"محدد",rows:"صفوف"},C3={title:"الأصناف",itemDetails:"تفاصيل الصنف",newItem:"صنف جديد",addItem:"إضافة صنف جديد",itemId:"معرف الصنف",itemCode:"كود الصنف",itemName:"اسم الصنف",itemGroup:"مجموعة الأصناف",stockUOM:"وحدة المخزون",partDescription:"وصف القطعة",brand:"العلامة التجارية",valuationRate:"معدل التقييم",openingStock:"رصيد الافتتاح",lastCalibrationDate:"تاريخ المعايرة الأخير",nextCalibrationDate:"تاريخ المعايرة القادم",selectItem:"اختر الصنف",selectItemGroup:"اختر مجموعة الأصناف",selectHospital:"اختر المستشفى",serialNo:"الرقم التسلسلي",dateIn:"تاريخ الدخول",watts:"واط",volts:"فولت",type:"النوع",code:"الرمز",viewDetails:"عرض التفاصيل",editItem:"تعديل الصنف",duplicateItem:"نسخ الصنف",deleteItem:"حذف الصنف",basicInformation:"المعلومات الأساسية",inventoryDetails:"تفاصيل المخزون",stockInformation:"معلومات المخزون",isStockItem:"صنف مخزني",isFixedAsset:"أصل ثابت",balanceQty:"الرصيد",calibrationInformation:"معلومات المعايرة",additionalInformation:"معلومات إضافية",refreshBalanceQty:"تحديث الرصيد",warrantyMonths:"الضمان (بالأشهر)",errorLoadingItems:"خطأ في تحميل الأصناف",loadingItems:"جاري تحميل الأصناف...",deleteConfirmMessage:"هل أنت متأكد من حذف هذا الصنف؟ لا يمكن التراجع عن هذا الإجراء.",backToInventory:"العودة إلى المخزون",loadingItem:"جاري تحميل الصنف...",errorLoadingItem:"خطأ في تحميل الصنف",createNewItem:"إنشاء صنف جديد",itemCodeLabel:"كود الصنف",itemUpdatedSuccessfully:"تم تحديث الصنف بنجاح!",pleaseSaveFirst:"يرجى حفظ الصنف أولاً قبل الإرسال.",submittedSuccessfully:"تم إرسال الصنف بنجاح!",failedToSave:"فشل الحفظ",failedToSubmit:"فشل الإرسال",noItemsFound:"لم يتم العثور على عناصر",createFirstItem:"أنشئ عنصرك الأول",listTitle:"المخزون",listTotal:"الإجمالي: {{count}} عنصر{{count !== 1 ? 'اً' : ''}}",failedToLoadItems:"فشل تحميل العناصر.",listAddItem:"إضافة عنصر",export:{title:"تصدير العناصر",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} عنصر{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} عنصر{{count !== 1 ? 'اً' : ''}} في الصفحة الحالية",allWithFilters:"جميع السجلات (مع الفلاتر الحالية)",allWithFiltersCount:"تصدير جميع {{count}} عنصر{{count !== 1 ? 'اً' : ''}} المطابقة للفلاتر الحالية",csvDesc:"قيم مفصولة بفاصلة",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة التعيين للافتراضي",columnsSelected:"{{count}} عمود{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} محدد{{count !== 1 ? 'ة' : ''}}",exportingPage:"جاري تصدير {{count}} صف{{count !== 1 ? 'اً' : ''}} من الصفحة الحالية",exportingAll:"جاري تصدير جميع {{count}} صف{{count !== 1 ? 'اً' : ''}}"}},T3={title:"التذاكر",issueDetails:"تفاصيل التذكرة",newIssue:"تذكرة جديدة",addIssue:"إضافة تذكرة جديدة",issueId:"معرف التذكرة",subject:"الموضوع",raisedBy:"أُبلغ بها",contact:"جهة الاتصال",issueType:"نوع التذكرة",openingDate:"تاريخ الفتح",resolutionDate:"تاريخ الحل",resolvedBy:"تم الحل بواسطة",firstRespondedOn:"أول رد في",resolutionDetails:"تفاصيل الحل",selectIssue:"اختر التذكرة",allPriorities:"أي أولوية",allCompanies:"جميع الشركات",viewDetails:"عرض التفاصيل",editIssue:"تعديل التذكرة",deleteIssue:"حذف التذكرة",enterSubject:"أدخل موضوع التذكرة",selectPriority:"اختر الأولوية",selectIssueType:"اختر نوع التذكرة",describeIssue:"صف التذكرة بالتفصيل...",contactInformation:"معلومات الاتصال",createNewIssue:"إنشاء تذكرة دعم جديدة",resolution:"الحل",describeResolution:"صف كيف تم حل التذكرة...",selectCompany:"اختر الشركة",statusInformation:"معلومات الحالة",currentStatus:"الحالة الحالية",timeline:"الجدول الزمني",loadingIssues:"جاري تحميل التذاكر...",errorLoadingIssues:"خطأ في تحميل التذاكر",deleteConfirmMessage:"هل أنت متأكد من حذف هذه التذكرة؟ لا يمكن التراجع عن هذا الإجراء.",deletedSuccessfully:"تم حذف التذكرة بنجاح!",listTitle:"تذاكر الدعم",listTotal:"الإجمالي",listSelected:"محدد",statsTotalIssues:"إجمالي التذاكر",statsOpen:"مفتوحة",statsResolved:"محلولة",statsClosed:"مغلقة",export:{title:"تصدير التذاكر",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} تذكرة محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} تذكرة في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} تذكرة مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"},status:{open:"مفتوحة",replied:"تم الرد",on_hold:"قيد الانتظار",resolved:"محلولة",closed:"مغلقة"},priority:{low:"منخفضة",medium:"متوسطة",high:"عالية",critical:"حرجة"}},E3={title:"المستخدمون",userDetails:"تفاصيل المستخدم",newUser:"مستخدم جديد",addUser:"إضافة مستخدم جديد",searchUsers:"بحث عن مستخدمين...",manageUsers:"إدارة حسابات المستخدمين والصلاحيات",noUsersFound:"لم يتم العثور على مستخدمين",tryAdjustingSearch:"حاول تعديل مصطلحات البحث.",noUsersAvailable:"لا يوجد مستخدمون متاحون.",backToDashboard:"العودة إلى لوحة التحكم",refresh:"تحديث",active:"نشط",inactive:"غير نشط",noEmail:"لا يوجد بريد إلكتروني",created:"تاريخ الإنشاء"},A3={title:"الفعاليات",eventDetails:"تفاصيل الفعالية",newEvent:"فعالية جديدة",addEvent:"إضافة فعالية",upcomingEvents:"الفعاليات القادمة",eventsFromFrappe:"فعاليات من نظام Frappe",noEventsFound:"لم يتم العثور على فعاليات",noEventsScheduled:"لا توجد فعاليات مجدولة حالياً.",refreshEvents:"تحديث الفعاليات"},O3={previous:"السابق",next:"التالي",goTo:"انتقل إلى",go:"انتقال",page:"صفحة",showingToOf:"عرض {{start}} إلى {{end}} من {{total}} {{label}}",showingTo:"عرض {{start}} إلى {{end}} {{label}}",items:"أصناف",assets:"أصول",workOrders:"أوامر عمل",issues:"تذاكر",teams:"فرق",inspections:"عمليات تفتيش",plans:"خطط"},D3={loading:"جاري التحميل...",noResultsFound:"لم يتم العثور على نتائج",createNewDoctype:"إنشاء {{doctype}} جديد",selectLabel:"اختر {{label}}"},M3={loadingSupportPlans:"جاري تحميل خطط الدعم...",errorLoadingSupportPlans:"خطأ في تحميل خطط الدعم",deleteConfirmMessage:"هل أنت متأكد من حذف خطة الدعم هذه؟ لا يمكن التراجع عن هذا الإجراء.",planId:"معرف الخطة",deletedSuccessfully:"تم حذف خطة الدعم بنجاح!",deleteSupportPlan:"حذف خطة الدعم",noSupportPlansFound:"لم يتم العثور على خطط دعم",createFirstSupportPlan:"أنشئ أول خطة دعم",table:{planName:"اسم الخطة",type:"النوع",frequency:"التكرار",contractValue:"قيمة العقد",warrantyStatus:"حالة الضمان",contractStatus:"حالة العقد"},status:{active:"نشط",expired:"منتهي",pending:"قيد الانتظار",terminated:"منتهي مبكرًا"},statusLabel:{warrantyPrefix:"ض:",contractPrefix:"ع:"},viewDetails:"عرض خطة الدعم",editSupportPlan:"تعديل خطة الدعم",listTitle:"خطط الدعم",statsTotalPlans:"إجمالي الخطط",statsContracts:"العقود",statsWarranties:"الضمانات",statsActive:"نشطة",export:{title:"تصدير خطط الدعم",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} خطة دعم محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} خطة دعم في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} خطة دعم مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف"}},L3={title:"عمليات التفتيش",loadingInspections:"جاري تحميل عمليات التفتيش...",errorLoadingInspections:"خطأ في تحميل عمليات التفتيش",deleteConfirmMessage:"هل أنت متأكد من حذف عملية التفتيش هذه؟ لا يمكن التراجع عن هذا الإجراء.",inspectionId:"معرف التفتيش",deleteInspection:"حذف التفتيش",deletedSuccessfully:"تم حذف التفتيش بنجاح!",noInspectionsFound:"لم يتم العثور على عمليات تفتيش",createFirstInspection:"أنشئ أول عملية تفتيش",type:"نوع التفتيش",workflowStateHeader:"حالة سير العمل",targetDate:"تاريخ الاستهداف",requestedBy:"طُلِبت بواسطة",linkedWorkOrder:"أمر العمل المرتبط",savedFilters:"المرشحات المحفوظة",newInspection:"تفتيش جديد",inspectionReport:"تقرير التفتيش",technicalDepartment:"القسم الفني",filterStatus:"الحالة",filterWorkflow:"سير العمل",filterType:"النوع",filterWorkOrder:"أمر العمل",filterDepartment:"القسم",selectWorkOrder:"اختر أمر العمل",selectDepartment:"اختر القسم",stats:{draft:"مسودة",pendingApproval:"بانتظار الموافقة",closed:"مغلقة"},status:{open:"مفتوحة",in_progress:"قيد التنفيذ",pending_review:"بانتظار المراجعة",closed:"مغلقة"},workflowState:{draft:"مسودة",sent_to_work_control:"مرسل إلى التحكم بالعمل",sent_to_technician:"مرسل إلى الفني",sent_to_supervisor:"مرسلة إلى المشرف",closed:"مغلقة"},typeMap:{inspection:"تفتيش",safety_inspection:"تفتيش سلامة"},viewDetails:"عرض التفاصيل",editInspection:"تعديل التفتيش",export:{title:"تصدير عمليات التفتيش",selectData:"اختر البيانات للتصدير",selectedRows:"الصفوف المحددة",selectedCount:"تصدير {{count}} عملية تفتيش محددة",currentPage:"الصفحة الحالية",currentPageCount:"تصدير {{count}} عملية تفتيش في الصفحة الحالية",allWithFilters:"جميع السجلات (مع المرشحات الحالية)",allWithFiltersCount:"تصدير كل {{count}} عملية تفتيش مطابقة للمرشحات",exportFormat:"تنسيق التصدير",csv:"CSV",csvDesc:"قيم مفصولة بفواصل",excel:"Excel",excelDesc:"جدول XLSX",columnsToExport:"الأعمدة للتصدير",selectAll:"تحديد الكل",resetToDefault:"إعادة إلى الافتراضي",columnsSelected:"{{count}} عمود محدد",exporting:"جاري التصدير...",exportButton:"تصدير",exportingSelected:"تصدير {{count}} صف محدد",exportingPage:"تصدير {{count}} صف من الصفحة الحالية",exportingAll:"تصدير كل {{count}} صف",inspectionId:"معرف التفتيش",inspectionType:"نوع التفتيش",status:"الحالة",workflowState:"حالة سير العمل",inspectionDate:"تاريخ التفتيش",targetClosureDate:"تاريخ الإغلاق المستهدف",requestedBy:"طُلِبت بواسطة",technicalDepartment:"القسم الفني",linkedWorkOrder:"أمر العمل المرتبط",observationNote:"ملاحظة الملاحظة",technicalResponse:"الرد الفني",createdOn:"تاريخ الإنشاء",modifiedOn:"تاريخ التعديل",createdBy:"أنشئ بواسطة"},detail:{loadingDetails:"جاري تحميل تفاصيل التفتيش...",errorLoading:"خطأ في تحميل التفتيش",backToList:"العودة إلى التفتيشات",newInspection:"تفتيش جديد",inspectionDetails:"تفاصيل التفتيش",createNewRecord:"إنشاء سجل تفتيش جديد",cancelInspection:"إلغاء التفتيش",cancelConfirmMessage:"هل أنت متأكد أنك تريد إلغاء هذا التفتيش؟ سيتم تمييز التفتيش كملغى ويمكنك حذفه بعد ذلك إذا لزم الأمر.",noGoBack:"لا، تراجع",yesCancel:"نعم، إلغاء",cancelling:"جاري الإلغاء...",selectType:"اختر النوع",workOrderType:"نوع أمر العمل",selectWorkOrderType:"اختر نوع أمر العمل",techniciansAvailable:"{{count}} فني/فنيين متاح لهذا النوع",selectDepartment:"اختر القسم",selectLocation:"اختر الموقع",extensionNo:"رقم الامتداد *",selectExtension:"اختر الامتداد",inspectionDate:"تاريخ التفتيش",targetClosureDate:"تاريخ الإغلاق المستهدف",cannotBeInPast:"لا يمكن أن يكون في الماضي",cannotBeEarlier:"لا يمكن أن يكون أقدم من تاريخ التفتيش أو في الماضي",openingAttachment:"مرفق الافتتاح",closingAttachment:"مرفق الإغلاق",uploading:"جاري الرفع...",uploadFile:"رفع ملف",uploadClosingFile:"رفع ملف الإغلاق",noAttachment:"لا يوجد مرفق",removeAttachment:"إزالة المرفق",assignmentInformation:"معلومات التعيين",requestedBy:"طُلِبت بواسطة",selectUser:"اختر المستخدم",technicalDepartment:"القسم الفني",assignedTechnician:"الفني المعيّن",selectTechnician:"اختر الفني",selectWOTypeFirst:"اختر نوع أمر العمل أولاً لتصفية الفنيين",noTechniciansForType:"لم يتم العثور على فنيين لهذا النوع من أمر العمل",notesAndResponse:"الملاحظات والرد",observationNote:"ملاحظة الملاحظة",placeholderObservation:"أدخل ملاحظات الملاحظة...",technicalResponse:"الرد الفني",placeholderTechnicalResponse:"أدخل الرد الفني...",linkedWorkOrder:"أمر العمل المرتبط",linkedCorrectiveWO:"أمر العمل التصحيحي المرتبط",readOnly:"للقراءة فقط",viewWorkOrder:"عرض أمر العمل",noLinkedWorkOrder:"لا يوجد أمر عمل مرتبط",workflowActions:"إجراءات سير العمل",workflowProgress:"تقدم سير العمل",workControl:"مراقبة العمل",technicianStep:"الفني",supervisorStep:"المشرف",draftStep:"مسودة",closedStep:"مغلق",statusInfo:"معلومات الحالة",documentStatus:"حالة المستند",woType:"نوع أمر العمل",assignedTo:"معيّن إلى",submitted:"مُرسل",cancelled:"ملغى",added:"مضاف:",removed:"مُزال:",modified:"مُعدّل:",items:"عنصر/عناصر",rows:"صف/صفوف",activityLog:"سجل النشاط",activityLogRefreshed:"تم تحديث سجل النشاط",refreshActivityLog:"تحديث سجل النشاط",noChangesRecorded:"لم يتم تسجيل أي تغييرات بعد",createdThisInspection:"أنشأ هذا التفتيش",changedFrom:"تم التغيير من",documentUpdated:"تم تحديث المستند",showLess:"عرض أقل",showAll:"عرض الكل",department:"القسم",location:"الموقع",inspectionType:"نوع التفتيش",status:"الحالة",removeClosingAttachment:"إزالة مرفق الإغلاق",noClosingAttachment:"لا يوجد مرفق إغلاق",cancelledSuccessfully:"تم إلغاء التفتيش بنجاح!",failedToCancel:"فشل الإلغاء: {{error}}",failedToSave:"فشل الحفظ: {{error}}",failedToDelete:"فشل الحذف: {{error}}",targetClosureMandatory:"تاريخ الإغلاق المستهدف إلزامي للحفظ.",attachmentMandatory:"المرفق إلزامي للحفظ.",extensionMandatory:"رقم الامتداد إلزامي للحفظ.",createdSuccessfully:"تم إنشاء التفتيش بنجاح!",updatedSuccessfully:"تم تحديث التفتيش بنجاح!",deletedSuccessfully:"تم حذف التفتيش بنجاح!",inspectionDateInPast:"لا يمكن أن يكون تاريخ التفتيش في الماضي.",targetClosureEarlier:"لا يمكن أن يكون تاريخ الإغلاق المستهدف أقدم من تاريخ التفتيش.",targetClosureInPast:"لا يمكن أن يكون تاريخ الإغلاق المستهدف في الماضي.",fileSizeExceeds:"حجم الملف يتجاوز حد 10 ميجابايت",fileUploadedSuccess:"تم رفع الملف بنجاح",failedToUpload:"فشل رفع الملف",closingAttachmentRemoved:"تم إزالة مرفق الإغلاق",closingAttachmentUploadedSuccess:"تم رفع مرفق الإغلاق بنجاح",failedToUploadClosing:"فشل رفع مرفق الإغلاق",attachmentRemoved:"تم إزالة المرفق",systemManager:"مدير النظام",workflow:"سير العمل"}},R3={title:"الخريطة النشطة",loading:"جاري تحميل بيانات الخريطة...",hospital:"المستشفى",departmentWoType:"القسم (نوع أمر العمل)",selectHospital:"اختر المستشفى",selectDepartment:"اختر القسم",clearDepartmentHint:"مسح القسم للتصفية حسب المستشفى",clearHospitalHint:"مسح المستشفى للتصفية حسب القسم",clearFilters:"مسح المرشحات",legendHospital:"المستشفى",legendDepartment:"القسم (نوع أمر العمل)",legendHasUrgent:"يوجد أوامر عمل عاجلة",totalAssets:"إجمالي الأصول",workOrderStatus:"حالة أمر العمل",status:"الحالة",count:"العدد",normal:"عادي",urgent:"عاجل",open:"مفتوح",workInProgress:"قيد التنفيذ",pendingReview:"بانتظار المراجعة",completed:"مكتمل",closed:"مغلق",preventiveMaintenance:"الصيانة الوقائية",planned:"مخطط",overdue:"متأخر",viewAssets:"عرض الأصول",viewWorkOrders:"عرض أوامر العمل",viewAllWorkOrders:"عرض جميع أوامر العمل",showingWorkOrdersByType:"عرض أوامر العمل حسب النوع",deptWoType:"القسم / نوع أمر العمل",tooltipDept:"قسم",tooltipHospital:"مستشفى",tooltipUrgent:"عاجل! ",normalWos:"أوامر عادية:",urgentWos:"أوامر عاجلة:",closedWos:"أوامر مغلقة:",plannedPms:"صيانة مخطط لها:",completedPms:"صيانة مكتملة:",assets:"الأصول"},P3={title:"تقويم الصيانة",viewType:"نوع العرض",maintenanceLog:"سجل الصيانة",ppmPlanner:"مخطط الصيانة الوقائية",filters:"المرشحات",yearlyMap:"الخريطة السنوية",yearlyMapTitle:"عرض خريطة مخطط الصيانة الوقائية السنوية",mapShort:"خريطة",hospital:"المستشفى",selectHospital:"اختر المستشفى",department:"القسم",allDepartments:"جميع الأقسام",status:"الحالة",allStatuses:"جميع الحالات",planned:"مخطط",completed:"مكتمل",overdue:"متأخر",cancelled:"ملغى",assignedTo:"مكلف إلى",allTechnicians:"جميع الفنيين",clearFilters:"مسح المرشحات",months:{january:"يناير",february:"فبراير",march:"مارس",april:"أبريل",may:"مايو",june:"يونيو",july:"يوليو",august:"أغسطس",september:"سبتمبر",october:"أكتوبر",november:"نوفمبر",december:"ديسمبر"},days:{sun:"الأحد",mon:"الإثنين",tue:"الثلاثاء",wed:"الأربعاء",thu:"الخميس",fri:"الجمعة",sat:"السبت"},previousMonth:"الشهر السابق",today:"اليوم",nextMonth:"الشهر التالي",loadingLogs:"جاري تحميل سجلات الصيانة...",loadingPpm:"جاري تحميل مخططات الصيانة الوقائية...",overdueInTooltip:"(متأخر)",clickToViewDetails:"انقر لعرض التفاصيل",clickToViewPpmPlanner:"انقر لعرض مخطط الصيانة الوقائية",ppmPlannerDefault:"مخطط الصيانة الوقائية",legendCompleted:"مكتمل",legendPlanned:"مخطط",legendOverdue:"متأخر",legendToday:"اليوم",summaryPpmPlanners:"مخططات الصيانة الوقائية"},F3={common:g3,sidebar:f3,login:x3,dashboard:p3,commonFields:y3,filters:b3,listPages:v3,assets:_3,workOrders:w3,maintenance:k3,ppm:j3,ppmPlanner:N3,exportModal:S3,items:C3,issues:T3,users:E3,events:A3,pagination:O3,linkField:D3,supportPlans:M3,inspections:L3,activeMap:R3,maintenanceCalendarPage:P3},ia={BASE_URL:"https://kfsh-dammam-asm.seeraarabia.com",ENDPOINTS:{USER_DETAILS:"/api/method/asset_lite.api.custom_api.get_user_details",DOCTYPE_RECORDS:"/api/method/asset_lite.api.custom_api.get_doctype_records",DASHBOARD_STATS:"/api/method/asset_lite.api.custom_api.get_dashboard_stats",DASHBOARD_NUMBER_CARDS:"/api/method/asset_lite.api.dashboard_api.get_number_cards",DASHBOARD_LIST_CHARTS:"/api/method/asset_lite.api.dashboard_api.list_dashboard_charts",DASHBOARD_CHART_DATA:"/api/method/asset_lite.api.dashboard_api.get_dashboard_chart_data",DASHBOARD_REPAIR_COST:"/api/method/asset_lite.api.dashboard_api.get_repair_cost_by_item",TECHNICIAN_WORKING_HOURS:"/api/method/asset_lite.api.dashboard_api.get_technician_working_hours",TECHNICIAN_WORK_SUMMARY:"/api/method/asset_lite.api.dashboard_api.get_technician_work_summary",KYC_DETAILS:"/api/method/asset_lite.api.custom_api.get_kyc_details",GET_ASSETS:"/api/method/asset_lite.api.asset_api.get_assets",GET_ASSET_DETAILS:"/api/method/asset_lite.api.asset_api.get_asset_details",CREATE_ASSET:"/api/method/asset_lite.api.asset_api.create_asset",UPDATE_ASSET:"/api/method/asset_lite.api.asset_api.update_asset",DELETE_ASSET:"/api/method/asset_lite.api.asset_api.delete_asset",GET_ASSET_FILTERS:"/api/method/asset_lite.api.asset_api.get_asset_filters",GET_ASSET_STATS:"/api/method/asset_lite.api.asset_api.get_asset_stats",SEARCH_ASSETS:"/api/method/asset_lite.api.asset_api.search_assets",SUBMIT_ASSET:"/api/method/asset_lite.api.asset_api.submit_asset",CANCEL_ASSET:"/api/method/asset_lite.api.asset_api.cancel_asset",GET_WORK_ORDERS:"/api/method/asset_lite.api.work_order_api.get_work_orders",GET_WORK_ORDER_DETAILS:"/api/method/asset_lite.api.work_order_api.get_work_order_details",CREATE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.create_work_order",UPDATE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.update_work_order",DELETE_WORK_ORDER:"/api/method/asset_lite.api.work_order_api.delete_work_order",UPDATE_WORK_ORDER_STATUS:"/api/method/asset_lite.api.work_order_api.update_work_order_status",GET_ASSET_MAINTENANCE_LOGS:"/api/method/asset_lite.api.asset_maintenance_api.get_asset_maintenance_logs",GET_ASSET_MAINTENANCE_LOG_DETAILS:"/api/method/asset_lite.api.asset_maintenance_api.get_asset_maintenance_log_details",CREATE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.create_asset_maintenance_log",UPDATE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.update_asset_maintenance_log",DELETE_ASSET_MAINTENANCE_LOG:"/api/method/asset_lite.api.asset_maintenance_api.delete_asset_maintenance_log",UPDATE_MAINTENANCE_STATUS:"/api/method/asset_lite.api.asset_maintenance_api.update_maintenance_status",GET_MAINTENANCE_LOGS_BY_ASSET:"/api/method/asset_lite.api.asset_maintenance_api.get_maintenance_logs_by_asset",GET_OVERDUE_MAINTENANCE_LOGS:"/api/method/asset_lite.api.asset_maintenance_api.get_overdue_maintenance_logs",GET_ASSET_MAINTENANCES:"/api/method/asset_lite.api.ppm_api.get_asset_maintenances",GET_ASSET_MAINTENANCE_DETAILS:"/api/method/asset_lite.api.ppm_api.get_asset_maintenance_details",CREATE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.create_asset_maintenance",UPDATE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.update_asset_maintenance",DELETE_ASSET_MAINTENANCE:"/api/method/asset_lite.api.ppm_api.delete_asset_maintenance",GET_MAINTENANCE_TASKS:"/api/method/asset_lite.api.ppm_api.get_maintenance_tasks",GET_SERVICE_COVERAGE:"/api/method/asset_lite.api.ppm_api.get_service_coverage",GET_MAINTENANCES_BY_ASSET:"/api/method/asset_lite.api.ppm_api.get_maintenances_by_asset",GET_ACTIVE_SERVICE_CONTRACTS:"/api/method/asset_lite.api.ppm_api.get_active_service_contracts",LOGIN:"/api/method/login",LOGOUT:"/api/method/logout",CSRF_TOKEN:"/api/method/frappe.sessions.get_csrf_token",UPLOAD_FILE:"/api/method/upload_file",GET_USER_PERMISSIONS:"/api/method/asset_lite.api.userperm_api.get_user_permissions",GET_PERMISSION_FILTERS:"/api/method/asset_lite.api.userperm_api.get_permission_filters",GET_ALLOWED_VALUES:"/api/method/asset_lite.api.userperm_api.get_allowed_values",CHECK_DOCUMENT_ACCESS:"/api/method/asset_lite.api.userperm_api.check_document_access",GET_CONFIGURED_DOCTYPES:"/api/method/asset_lite.api.userperm_api.get_configured_doctypes",GET_USER_DEFAULTS:"/api/method/asset_lite.api.userperm_api.get_user_defaults"},DEFAULT_HEADERS:{"Content-Type":"application/json",Accept:"application/json"},TIMEOUT:parseInt("60000")};class I3{constructor(){Mn(this,"baseURL");Mn(this,"endpoints");Mn(this,"defaultHeaders");Mn(this,"timeout");this.baseURL=ia.BASE_URL,this.endpoints=ia.ENDPOINTS,this.defaultHeaders=ia.DEFAULT_HEADERS,this.timeout=ia.TIMEOUT}getCSRFToken(){return Q(this,null,function*(){try{if(typeof window!="undefined"&&window.csrf_token)return window.csrf_token;if(!localStorage.getItem("user"))return null;const r=yield fetch(`${this.baseURL}${this.endpoints.CSRF_TOKEN}`,{method:"GET",headers:{Accept:"application/json"},credentials:"include"});return r.ok&&(yield r.json()).message||null}catch(a){return null}})}apiCall(s){return Q(this,arguments,function*(a,r={}){const i=`${this.baseURL}${a}`,c=ue({method:"GET",headers:ue(ue({},this.defaultHeaders),r.headers)},r),d=yield this.getCSRFToken();d&&(c.headers["X-Frappe-CSRF-Token"]=d);try{const m=new AbortController,h=setTimeout(()=>m.abort(),this.timeout),g=yield fetch(i,Se(ue({},c),{signal:m.signal}));if(clearTimeout(h),!g.ok){const b=yield g.json().catch(()=>({}));throw new mc(b.error||`HTTP error! status: ${g.status}`,g.status)}const p=yield g.json();return p.message!==void 0?p.message:p}catch(m){throw m instanceof Error?(console.error("API call failed:",m),new mc(m.message)):m}})}login(a){return Q(this,null,function*(){const r=new FormData;r.append("usr",a.email),r.append("pwd",a.password);const s=`${this.baseURL}${this.endpoints.LOGIN}`;try{const i=new AbortController,c=setTimeout(()=>i.abort(),this.timeout),d=yield fetch(s,{method:"POST",headers:{Accept:"application/json"},body:r,credentials:"include",signal:i.signal});if(clearTimeout(c),!d.ok){const h=yield d.json().catch(()=>({})),g="Invalid credentials. Please try again.";throw new mc(g,d.status)}const m=yield d.json();return typeof m.message=="string"&&m.message==="Logged In"?{message:{full_name:m.full_name,user_id:m.user||m.email,home_page:m.home_page,sid:m.sid}}:m.message&&typeof m.message=="object"?{message:m.message}:m.full_name||m.user?{message:m}:{message:m}}catch(i){throw i instanceof Error?new mc("Login failed. Please try again."):i}})}logout(){return Q(this,null,function*(){yield this.apiCall(this.endpoints.LOGOUT,{method:"POST"})})}getUserDetails(a){return Q(this,null,function*(){const r=a?`?user_id=${a}`:"";return this.apiCall(`${this.endpoints.USER_DETAILS}${r}`)})}getDoctypeRecords(a,r,s,i=20,c=0){return Q(this,null,function*(){const d=new URLSearchParams({doctype:a,limit:i.toString(),offset:c.toString()});return r&&d.append("filters",JSON.stringify(r)),s&&d.append("fields",JSON.stringify(s)),this.apiCall(`${this.endpoints.DOCTYPE_RECORDS}?${d}`)})}getDashboardStats(){return Q(this,null,function*(){return this.apiCall(this.endpoints.DASHBOARD_STATS)})}getNumberCards(){return Q(this,null,function*(){return this.apiCall(this.endpoints.DASHBOARD_NUMBER_CARDS)})}listDashboardCharts(a=!0){return Q(this,null,function*(){const r=new URLSearchParams({public_only:a?"1":"0"});return this.apiCall(`${this.endpoints.DASHBOARD_LIST_CHARTS}?${r}`)})}getDashboardChartData(a,r){return Q(this,null,function*(){const s=new URLSearchParams({chart_name:a});return r&&s.append("report_filters",JSON.stringify(r)),this.apiCall(`${this.endpoints.DASHBOARD_CHART_DATA}?${s}`)})}getKycDetails(){return Q(this,null,function*(){return this.apiCall(this.endpoints.KYC_DETAILS)})}uploadFile(a){return Q(this,null,function*(){const r=new FormData;return r.append("file",a.file),r.append("doctype",a.doctype),r.append("docname",a.docname),r.append("fieldname",a.fieldname),this.apiCall(this.endpoints.UPLOAD_FILE,{method:"POST",headers:{},body:r})})}getUserPermissions(a){return Q(this,null,function*(){const r=a?`?user=${encodeURIComponent(a)}`:"";return this.apiCall(`${this.endpoints.GET_USER_PERMISSIONS}${r}`)})}getPermissionFilters(a,r){return Q(this,null,function*(){const s=new URLSearchParams({target_doctype:a});return r&&s.append("user",r),this.apiCall(`${this.endpoints.GET_PERMISSION_FILTERS}?${s}`)})}getAllowedValues(a,r){return Q(this,null,function*(){const s=new URLSearchParams({allow_doctype:a});return r&&s.append("user",r),this.apiCall(`${this.endpoints.GET_ALLOWED_VALUES}?${s}`)})}checkDocumentAccess(a,r,s){return Q(this,null,function*(){const i=new URLSearchParams({doctype:a,docname:r});return s&&i.append("user",s),this.apiCall(`${this.endpoints.CHECK_DOCUMENT_ACCESS}?${i}`)})}getConfiguredDoctypes(){return Q(this,null,function*(){return this.apiCall(this.endpoints.GET_CONFIGURED_DOCTYPES)})}getUserDefaults(a){return Q(this,null,function*(){const r=a?`?user=${encodeURIComponent(a)}`:"";return this.apiCall(`${this.endpoints.GET_USER_DEFAULTS}${r}`)})}isAuthenticated(){return!!localStorage.getItem("frappe_session_id")}getSessionId(){return localStorage.getItem("frappe_session_id")}setSessionId(a){localStorage.setItem("frappe_session_id",a)}}class mc extends Error{constructor(r,s,i){super(r);Mn(this,"status");Mn(this,"code");this.name="ApiError",this.status=s,this.code=i}}const mt=new I3,z3=Object.freeze(Object.defineProperty({__proto__:null,ApiError:mc,default:mt},Symbol.toStringTag,{value:"Module"}));function B3(t){return Q(this,null,function*(){try{const a=yield mt.getDoctypeRecords("Translation",{language:t},["source_text","translated_text","context"],1e4,0),r={};return a.records&&a.records.length>0&&a.records.forEach(s=>{const i=s.source_text,c=s.translated_text||i;if(s.context){const d=`${s.context}.${i}`;r[d]=c}else i.includes("."),r[i]=c}),r}catch(a){return console.error("Error fetching translations from Frappe:",a),{}}})}function U3(t){const a={};return Object.keys(t).forEach(r=>{if(r.includes(".")){const s=r.split(".");let i=a;for(let c=0;c0&&Ts.addResourceBundle("en","translation",a,!0,!0);const r=yield c1("ar");Object.keys(r).length>0&&Ts.addResourceBundle("ar","translation",r,!0,!0),console.log("✓ Translations loaded from Frappe")}catch(t){console.warn("⚠ Could not load translations from Frappe, using static translations:",t)}})}Ts.on("initialized",()=>{oh()});var d1="popstate";function $3(t={}){function a(s,i){let{pathname:c,search:d,hash:m}=s.location;return wx("",{pathname:c,search:d,hash:m},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function r(s,i){return typeof i=="string"?i:mu(i)}return W3(a,r,null,t)}function Lr(t,a){if(t===!1||t===null||typeof t=="undefined")throw new Error(a)}function si(t,a){if(!t){typeof console!="undefined"&&console.warn(a);try{throw new Error(a)}catch(r){}}}function H3(){return Math.random().toString(36).substring(2,10)}function u1(t,a){return{usr:t.state,key:t.key,idx:a}}function wx(t,a,r=null,s){return Se(ue({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof a=="string"?Ud(a):a),{state:r,key:a&&a.key||s||H3()})}function mu({pathname:t="/",search:a="",hash:r=""}){return a&&a!=="?"&&(t+=a.charAt(0)==="?"?a:"?"+a),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Ud(t){let a={};if(t){let r=t.indexOf("#");r>=0&&(a.hash=t.substring(r),t=t.substring(0,r));let s=t.indexOf("?");s>=0&&(a.search=t.substring(s),t=t.substring(0,s)),t&&(a.pathname=t)}return a}function W3(t,a,r,s={}){let{window:i=document.defaultView,v5Compat:c=!1}=s,d=i.history,m="POP",h=null,g=p();g==null&&(g=0,d.replaceState(Se(ue({},d.state),{idx:g}),""));function p(){return(d.state||{idx:null}).idx}function b(){m="POP";let C=p(),D=C==null?null:C-g;g=C,h&&h({action:m,location:k.location,delta:D})}function j(C,D){m="PUSH";let T=wx(k.location,C,D);g=p()+1;let E=u1(T,g),O=k.createHref(T);try{d.pushState(E,"",O)}catch(R){if(R instanceof DOMException&&R.name==="DataCloneError")throw R;i.location.assign(O)}c&&h&&h({action:m,location:k.location,delta:1})}function _(C,D){m="REPLACE";let T=wx(k.location,C,D);g=p();let E=u1(T,g),O=k.createHref(T);d.replaceState(E,"",O),c&&h&&h({action:m,location:k.location,delta:0})}function N(C){return V3(C)}let k={get action(){return m},get location(){return t(i,d)},listen(C){if(h)throw new Error("A history only accepts one active listener");return i.addEventListener(d1,b),h=C,()=>{i.removeEventListener(d1,b),h=null}},createHref(C){return a(i,C)},createURL:N,encodeLocation(C){let D=N(C);return{pathname:D.pathname,search:D.search,hash:D.hash}},push:j,replace:_,go(C){return d.go(C)}};return k}function V3(t,a=!1){let r="http://localhost";typeof window!="undefined"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),Lr(r,"No window.location.(origin|href) available to create URL");let s=typeof t=="string"?t:mu(t);return s=s.replace(/ $/,"%20"),!a&&s.startsWith("//")&&(s=r+s),new URL(s,r)}function Q_(t,a,r="/"){return q3(t,a,r,!1)}function q3(t,a,r,s){let i=typeof a=="string"?Ud(a):a,c=Zo(i.pathname||"/",r);if(c==null)return null;let d=e2(t);G3(d);let m=null;for(let h=0;m==null&&h{let p={relativePath:g===void 0?d.path||"":g,caseSensitive:d.caseSensitive===!0,childrenIndex:m,route:d};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(s)&&h)return;Lr(p.relativePath.startsWith(s),`Absolute route path "${p.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(s.length)}let b=Vo([s,p.relativePath]),j=r.concat(p);d.children&&d.children.length>0&&(Lr(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),e2(d.children,a,j,b,h)),!(d.path==null&&!d.index)&&a.push({path:b,score:eS(b,d.index),routesMeta:j})};return t.forEach((d,m)=>{var h;if(d.path===""||!((h=d.path)!=null&&h.includes("?")))c(d,m);else for(let g of t2(d.path))c(d,m,!0,g)}),a}function t2(t){let a=t.split("/");if(a.length===0)return[];let[r,...s]=a,i=r.endsWith("?"),c=r.replace(/\?$/,"");if(s.length===0)return i?[c,""]:[c];let d=t2(s.join("/")),m=[];return m.push(...d.map(h=>h===""?c:[c,h].join("/"))),i&&m.push(...d),m.map(h=>t.startsWith("/")&&h===""?"/":h)}function G3(t){t.sort((a,r)=>a.score!==r.score?r.score-a.score:tS(a.routesMeta.map(s=>s.childrenIndex),r.routesMeta.map(s=>s.childrenIndex)))}var Y3=/^:[\w-]+$/,Z3=3,J3=2,X3=1,K3=10,Q3=-2,m1=t=>t==="*";function eS(t,a){let r=t.split("/"),s=r.length;return r.some(m1)&&(s+=Q3),a&&(s+=J3),r.filter(i=>!m1(i)).reduce((i,c)=>i+(Y3.test(c)?Z3:c===""?X3:K3),s)}function tS(t,a){return t.length===a.length&&t.slice(0,-1).every((s,i)=>s===a[i])?t[t.length-1]-a[a.length-1]:0}function aS(t,a,r=!1){let{routesMeta:s}=t,i={},c="/",d=[];for(let m=0;m{if(p==="*"){let N=m[j]||"";d=c.slice(0,c.length-N.length).replace(/(.)\/+$/,"$1")}const _=m[j];return b&&!_?g[p]=void 0:g[p]=(_||"").replace(/%2F/g,"/"),g},{}),pathname:c,pathnameBase:d,pattern:t}}function rS(t,a=!1,r=!0){si(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let s=[],i="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,m,h)=>(s.push({paramName:m,isOptional:h!=null}),h?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(s.push({paramName:"*"}),i+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?i+="\\/*$":t!==""&&t!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,a?void 0:"i"),s]}function sS(t){try{return t.split("/").map(a=>decodeURIComponent(a).replace(/\//g,"%2F")).join("/")}catch(a){return si(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${a}).`),t}}function Zo(t,a){if(a==="/")return t;if(!t.toLowerCase().startsWith(a.toLowerCase()))return null;let r=a.endsWith("/")?a.length-1:a.length,s=t.charAt(r);return s&&s!=="/"?null:t.slice(r)||"/"}var nS=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,iS=t=>nS.test(t);function oS(t,a="/"){let{pathname:r,search:s="",hash:i=""}=typeof t=="string"?Ud(t):t,c;if(r)if(iS(r))c=r;else{if(r.includes("//")){let d=r;r=r.replace(/\/\/+/g,"/"),si(!1,`Pathnames cannot have embedded double slashes - normalizing ${d} -> ${r}`)}r.startsWith("/")?c=h1(r.substring(1),"/"):c=h1(r,a)}else c=a;return{pathname:c,search:dS(s),hash:uS(i)}}function h1(t,a){let r=a.replace(/\/+$/,"").split("/");return t.split("/").forEach(i=>{i===".."?r.length>1&&r.pop():i!=="."&&r.push(i)}),r.length>1?r.join("/"):"/"}function Jf(t,a,r,s){return`Cannot include a '${t}' character in a manually specified \`to.${a}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function lS(t){return t.filter((a,r)=>r===0||a.route.path&&a.route.path.length>0)}function Bx(t){let a=lS(t);return a.map((r,s)=>s===a.length-1?r.pathname:r.pathnameBase)}function Ux(t,a,r,s=!1){let i;typeof t=="string"?i=Ud(t):(i=ue({},t),Lr(!i.pathname||!i.pathname.includes("?"),Jf("?","pathname","search",i)),Lr(!i.pathname||!i.pathname.includes("#"),Jf("#","pathname","hash",i)),Lr(!i.search||!i.search.includes("#"),Jf("#","search","hash",i)));let c=t===""||i.pathname==="",d=c?"/":i.pathname,m;if(d==null)m=r;else{let b=a.length-1;if(!s&&d.startsWith("..")){let j=d.split("/");for(;j[0]==="..";)j.shift(),b-=1;i.pathname=j.join("/")}m=b>=0?a[b]:"/"}let h=oS(i,m),g=d&&d!=="/"&&d.endsWith("/"),p=(c||d===".")&&r.endsWith("/");return!h.pathname.endsWith("/")&&(g||p)&&(h.pathname+="/"),h}var Vo=t=>t.join("/").replace(/\/\/+/g,"/"),cS=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),dS=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,uS=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function mS(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function hS(t){return t.map(a=>a.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var a2=["POST","PUT","PATCH","DELETE"];new Set(a2);var gS=["GET",...a2];new Set(gS);var $d=y.createContext(null);$d.displayName="DataRouter";var Mh=y.createContext(null);Mh.displayName="DataRouterState";y.createContext(!1);var r2=y.createContext({isTransitioning:!1});r2.displayName="ViewTransition";var fS=y.createContext(new Map);fS.displayName="Fetchers";var xS=y.createContext(null);xS.displayName="Await";var vi=y.createContext(null);vi.displayName="Navigation";var wu=y.createContext(null);wu.displayName="Location";var Ii=y.createContext({outlet:null,matches:[],isDataRoute:!1});Ii.displayName="Route";var $x=y.createContext(null);$x.displayName="RouteError";function pS(t,{relative:a}={}){Lr(Hd(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:s}=y.useContext(vi),{hash:i,pathname:c,search:d}=ku(t,{relative:a}),m=c;return r!=="/"&&(m=c==="/"?r:Vo([r,c])),s.createHref({pathname:m,search:d,hash:i})}function Hd(){return y.useContext(wu)!=null}function zi(){return Lr(Hd(),"useLocation() may be used only in the context of a component."),y.useContext(wu).location}var s2="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function n2(t){y.useContext(vi).static||y.useLayoutEffect(t)}function qa(){let{isDataRoute:t}=y.useContext(Ii);return t?AS():yS()}function yS(){Lr(Hd(),"useNavigate() may be used only in the context of a component.");let t=y.useContext($d),{basename:a,navigator:r}=y.useContext(vi),{matches:s}=y.useContext(Ii),{pathname:i}=zi(),c=JSON.stringify(Bx(s)),d=y.useRef(!1);return n2(()=>{d.current=!0}),y.useCallback((h,g={})=>{if(si(d.current,s2),!d.current)return;if(typeof h=="number"){r.go(h);return}let p=Ux(h,JSON.parse(c),i,g.relative==="path");t==null&&a!=="/"&&(p.pathname=p.pathname==="/"?a:Vo([a,p.pathname])),(g.replace?r.replace:r.push)(p,g.state,g)},[a,r,c,i,t])}y.createContext(null);function xo(){let{matches:t}=y.useContext(Ii),a=t[t.length-1];return a?a.params:{}}function ku(t,{relative:a}={}){let{matches:r}=y.useContext(Ii),{pathname:s}=zi(),i=JSON.stringify(Bx(r));return y.useMemo(()=>Ux(t,JSON.parse(i),s,a==="path"),[t,i,s,a])}function bS(t,a){return i2(t,a)}function i2(t,a,r,s,i){var T;Lr(Hd(),"useRoutes() may be used only in the context of a component.");let{navigator:c}=y.useContext(vi),{matches:d}=y.useContext(Ii),m=d[d.length-1],h=m?m.params:{},g=m?m.pathname:"/",p=m?m.pathnameBase:"/",b=m&&m.route;{let E=b&&b.path||"";o2(g,!b||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${g}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. Please change the parent to .`)}let j=zi(),_;if(a){let E=typeof a=="string"?Ud(a):a;Lr(p==="/"||((T=E.pathname)==null?void 0:T.startsWith(p)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${p}" but pathname "${E.pathname}" was given in the \`location\` prop.`),_=E}else _=j;let N=_.pathname||"/",k=N;if(p!=="/"){let E=p.replace(/^\//,"").split("/");k="/"+N.replace(/^\//,"").split("/").slice(E.length).join("/")}let C=Q_(t,{pathname:k});si(b||C!=null,`No routes matched location "${_.pathname}${_.search}${_.hash}" `),si(C==null||C[C.length-1].route.element!==void 0||C[C.length-1].route.Component!==void 0||C[C.length-1].route.lazy!==void 0,`Matched leaf route at location "${_.pathname}${_.search}${_.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let D=jS(C&&C.map(E=>Object.assign({},E,{params:Object.assign({},h,E.params),pathname:Vo([p,c.encodeLocation?c.encodeLocation(E.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?p:Vo([p,c.encodeLocation?c.encodeLocation(E.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathnameBase])})),d,r,s,i);return a&&D?y.createElement(wu.Provider,{value:{location:ue({pathname:"/",search:"",hash:"",state:null,key:"default"},_),navigationType:"POP"}},D):D}function vS(){let t=ES(),a=mS(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),r=t instanceof Error?t.stack:null,s="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:s},c={padding:"2px 4px",backgroundColor:s},d=null;return console.error("Error handled by React Router default ErrorBoundary:",t),d=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:c},"ErrorBoundary")," or"," ",y.createElement("code",{style:c},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},a),r?y.createElement("pre",{style:i},r):null,d)}var _S=y.createElement(vS,null),wS=class extends y.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,a){return a.location!==t.location||a.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:a.error,location:a.location,revalidation:t.revalidation||a.revalidation}}componentDidCatch(t,a){this.props.onError?this.props.onError(t,a):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?y.createElement(Ii.Provider,{value:this.props.routeContext},y.createElement($x.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function kS({routeContext:t,match:a,children:r}){let s=y.useContext($d);return s&&s.static&&s.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=a.route.id),y.createElement(Ii.Provider,{value:t},r)}function jS(t,a=[],r=null,s=null,i=null){if(t==null){if(!r)return null;if(r.errors)t=r.matches;else if(a.length===0&&!r.initialized&&r.matches.length>0)t=r.matches;else return null}let c=t,d=r==null?void 0:r.errors;if(d!=null){let p=c.findIndex(b=>b.route.id&&(d==null?void 0:d[b.route.id])!==void 0);Lr(p>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(d).join(",")}`),c=c.slice(0,Math.min(c.length,p+1))}let m=!1,h=-1;if(r)for(let p=0;p=0?c=c.slice(0,h+1):c=[c[0]];break}}}let g=r&&s?(p,b)=>{var j,_,N;s(p,{location:r.location,params:(N=(_=(j=r.matches)==null?void 0:j[0])==null?void 0:_.params)!=null?N:{},unstable_pattern:hS(r.matches),errorInfo:b})}:void 0;return c.reduceRight((p,b,j)=>{let _,N=!1,k=null,C=null;r&&(_=d&&b.route.id?d[b.route.id]:void 0,k=b.route.errorElement||_S,m&&(h<0&&j===0?(o2("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),N=!0,C=null):h===j&&(N=!0,C=b.route.hydrateFallbackElement||null)));let D=a.concat(c.slice(0,j+1)),T=()=>{let E;return _?E=k:N?E=C:b.route.Component?E=y.createElement(b.route.Component,null):b.route.element?E=b.route.element:E=p,y.createElement(kS,{match:b,routeContext:{outlet:p,matches:D,isDataRoute:r!=null},children:E})};return r&&(b.route.ErrorBoundary||b.route.errorElement||j===0)?y.createElement(wS,{location:r.location,revalidation:r.revalidation,component:k,error:_,children:T(),routeContext:{outlet:null,matches:D,isDataRoute:!0},onError:g}):T()},null)}function Hx(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function NS(t){let a=y.useContext($d);return Lr(a,Hx(t)),a}function SS(t){let a=y.useContext(Mh);return Lr(a,Hx(t)),a}function CS(t){let a=y.useContext(Ii);return Lr(a,Hx(t)),a}function Wx(t){let a=CS(t),r=a.matches[a.matches.length-1];return Lr(r.route.id,`${t} can only be used on routes that contain a unique "id"`),r.route.id}function TS(){return Wx("useRouteId")}function ES(){var s;let t=y.useContext($x),a=SS("useRouteError"),r=Wx("useRouteError");return t!==void 0?t:(s=a.errors)==null?void 0:s[r]}function AS(){let{router:t}=NS("useNavigate"),a=Wx("useNavigate"),r=y.useRef(!1);return n2(()=>{r.current=!0}),y.useCallback((d,...m)=>Q(null,[d,...m],function*(i,c={}){si(r.current,s2),r.current&&(typeof i=="number"?yield t.navigate(i):yield t.navigate(i,ue({fromRouteId:a},c)))}),[t,a])}var g1={};function o2(t,a,r){!a&&!g1[t]&&(g1[t]=!0,si(!1,r))}y.memo(OS);function OS({routes:t,future:a,state:r,unstable_onError:s}){return i2(t,void 0,r,s,a)}function kx({to:t,replace:a,state:r,relative:s}){Lr(Hd()," may be used only in the context of a component.");let{static:i}=y.useContext(vi);si(!i," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:c}=y.useContext(Ii),{pathname:d}=zi(),m=qa(),h=Ux(t,Bx(c),d,s==="path"),g=JSON.stringify(h);return y.useEffect(()=>{m(JSON.parse(g),{replace:a,state:r,relative:s})},[m,g,s,a,r]),null}function Ga(t){Lr(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function DS({basename:t="/",children:a=null,location:r,navigationType:s="POP",navigator:i,static:c=!1,unstable_useTransitions:d}){Lr(!Hd(),"You cannot render a inside another . You should never have more than one in your app.");let m=t.replace(/^\/*/,"/"),h=y.useMemo(()=>({basename:m,navigator:i,static:c,unstable_useTransitions:d,future:{}}),[m,i,c,d]);typeof r=="string"&&(r=Ud(r));let{pathname:g="/",search:p="",hash:b="",state:j=null,key:_="default"}=r,N=y.useMemo(()=>{let k=Zo(g,m);return k==null?null:{location:{pathname:k,search:p,hash:b,state:j,key:_},navigationType:s}},[m,g,p,b,j,_,s]);return si(N!=null,` is not able to match the URL "${g}${p}${b}" because it does not start with the basename, so the won't render anything.`),N==null?null:y.createElement(vi.Provider,{value:h},y.createElement(wu.Provider,{children:a,value:N}))}function MS({children:t,location:a}){return bS(jx(t),a)}function jx(t,a=[]){let r=[];return y.Children.forEach(t,(s,i)=>{if(!y.isValidElement(s))return;let c=[...a,i];if(s.type===y.Fragment){r.push.apply(r,jx(s.props.children,c));return}Lr(s.type===Ga,`[${typeof s.type=="string"?s.type:s.type.name}] is not a component. All component children of must be a or `),Lr(!s.props.index||!s.props.children,"An index route cannot have child routes.");let d={id:s.props.id||c.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(d.children=jx(s.props.children,c)),r.push(d)}),r}var Xm="get",Km="application/x-www-form-urlencoded";function Lh(t){return typeof HTMLElement!="undefined"&&t instanceof HTMLElement}function LS(t){return Lh(t)&&t.tagName.toLowerCase()==="button"}function RS(t){return Lh(t)&&t.tagName.toLowerCase()==="form"}function PS(t){return Lh(t)&&t.tagName.toLowerCase()==="input"}function FS(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function IS(t,a){return t.button===0&&(!a||a==="_self")&&!FS(t)}function Nx(t=""){return new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((a,r)=>{let s=t[r];return a.concat(Array.isArray(s)?s.map(i=>[r,i]):[[r,s]])},[]))}function zS(t,a){let r=Nx(t);return a&&a.forEach((s,i)=>{r.has(i)||a.getAll(i).forEach(c=>{r.append(i,c)})}),r}var Fm=null;function BS(){if(Fm===null)try{new FormData(document.createElement("form"),0),Fm=!1}catch(t){Fm=!0}return Fm}var US=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Xf(t){return t!=null&&!US.has(t)?(si(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Km}"`),null):t}function $S(t,a){let r,s,i,c,d;if(RS(t)){let m=t.getAttribute("action");s=m?Zo(m,a):null,r=t.getAttribute("method")||Xm,i=Xf(t.getAttribute("enctype"))||Km,c=new FormData(t)}else if(LS(t)||PS(t)&&(t.type==="submit"||t.type==="image")){let m=t.form;if(m==null)throw new Error('Cannot submit a