llmxray 0.4.7 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +301 -0
- package/README.fr.md +297 -0
- package/README.md +8 -0
- package/README.sr.md +297 -0
- package/README.zh-CN.md +297 -0
- package/dist/assets/{AITrainingPage-CsvXVCl4.js → AITrainingPage-DKjKWcx-.js} +1 -1
- package/dist/assets/{AnalyticsPage-vkaPSUTM.js → AnalyticsPage-jTBXre2c.js} +1 -1
- package/dist/assets/{BenchmarkPage-D0OBLy2p.js → BenchmarkPage-BVmzrGF3.js} +1 -1
- package/dist/assets/{ComparisonPage-yjlQyMSr.js → ComparisonPage-C9o6y6vj.js} +1 -1
- package/dist/assets/{CostDashboardPage--NlorE5h.js → CostDashboardPage-CHoN2eQ2.js} +1 -1
- package/dist/assets/{DashboardPage-C7HpWzo0.js → DashboardPage-CMZSfb4t.js} +1 -1
- package/dist/assets/{EmbeddingsPage-BjI-MRAa.js → EmbeddingsPage-DdbGCntf.js} +1 -1
- package/dist/assets/{FimPlaygroundPage-DFbVhKk_.js → FimPlaygroundPage-BcrmoLxo.js} +1 -1
- package/dist/assets/{GoogleCallbackPage-CtnaMbov.js → GoogleCallbackPage-C9_rQxue.js} +1 -1
- package/dist/assets/{JsonTreeNode-D4tXijI2.js → JsonTreeNode-RIieSDXb.js} +1 -1
- package/dist/assets/{ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-Cj2LskB0.js → ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-BN_k6QDr.js} +1 -1
- package/dist/assets/{ProtocolObservatoryPage-BCBMa4BZ.js → ProtocolObservatoryPage-CXoj3a1O.js} +1 -1
- package/dist/assets/{RAGPage-DhajwBAP.js → RAGPage-HwnlHxQ0.js} +1 -1
- package/dist/assets/{SessionPage-D9yVmDvL.js → SessionPage-12S3fV1c.js} +1 -1
- package/dist/assets/{SettingsPage-CMAnCevk.js → SettingsPage-B_hBcAPj.js} +1 -1
- package/dist/assets/{StatusBadge.vue_vue_type_script_setup_true_lang-n7TTYhNJ.js → StatusBadge.vue_vue_type_script_setup_true_lang-BQhKjjl9.js} +1 -1
- package/dist/assets/{StorageGauge.vue_vue_type_style_index_0_lang-BKb4VKNU.js → StorageGauge.vue_vue_type_style_index_0_lang-DOKnxhnC.js} +1 -1
- package/dist/assets/{SystemPage-D4Zziyum.js → SystemPage-BtFTvlZl.js} +2 -2
- package/dist/assets/{TabBar.vue_vue_type_script_setup_true_lang-DQpdkass.js → TabBar.vue_vue_type_script_setup_true_lang-BStny7LH.js} +1 -1
- package/dist/assets/{TokenStreamDisplay.vue_vue_type_script_setup_true_lang-Bkp4Zqzc.js → TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DMEwK9YF.js} +1 -1
- package/dist/assets/{ToolWorkshopPage-Bi-P9pPj.js → ToolWorkshopPage-BRXtDJIQ.js} +1 -1
- package/dist/assets/{agent-store-uNRCwO3m.js → agent-store-CR4CQ_VV.js} +1 -1
- package/dist/assets/{canvas-ai-db-vwusn4PB.js → canvas-ai-db-Ck_6zOgd.js} +1 -1
- package/dist/assets/{download-CE6FVTgu.js → download-CaV4vzuu.js} +1 -1
- package/dist/assets/{generate-service-CYQ8kwVP.js → generate-service-Bhf2jPuC.js} +1 -1
- package/dist/assets/{google-auth-store-Dz06BePf.js → google-auth-store-LaJFtciC.js} +1 -1
- package/dist/assets/{index-Dv-x214f.js → index-CQPzvMUz.js} +1 -1
- package/dist/assets/{index-BwnEclbR.js → index-CZ4a6rAU.js} +7 -7
- package/dist/assets/{index-FRDa6LAg.js → index-Dy_48xr0.js} +1 -1
- package/dist/assets/{info-DnW3KRin.js → info-C9qZFgvQ.js} +1 -1
- package/dist/assets/{metrics-store-BDn0738m.js → metrics-store-B4lQqH-w.js} +1 -1
- package/dist/assets/{papaparse.min-DzDO_wBU.js → papaparse.min-CfA1otDr.js} +1 -1
- package/dist/assets/{pencil-clhQxwX0.js → pencil-BcLPhQp1.js} +1 -1
- package/dist/assets/{play-4DIDJWWS.js → play-CYCSil_U.js} +1 -1
- package/dist/assets/{rag-store-Do5yRDAH.js → rag-store-BXD_zIis.js} +3 -3
- package/dist/assets/{session-store-DRoQgYmX.js → session-store-Dy1-rRkz.js} +1 -1
- package/dist/assets/{share-2-DmfX3XRE.js → share-2-D2IlHB5H.js} +1 -1
- package/dist/assets/{square-BSrc21IW.js → square-Dtyb8Nls.js} +1 -1
- package/dist/assets/{storage-store-BNeLgzhr.js → storage-store-me3LAKpj.js} +1 -1
- package/dist/assets/{stream-handler-m2cr76ko.js → stream-handler-DDNDUY1M.js} +1 -1
- package/dist/assets/{tool-workshop-store-CvrmwDRz.js → tool-workshop-store-C_CvI0_B.js} +1 -1
- package/dist/assets/{toolcall-store-EOcmOTQ4.js → toolcall-store-CUeITA8C.js} +1 -1
- package/dist/assets/{trash-2-DghOHCMp.js → trash-2-Ct6xU7VV.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-
|
|
2
|
-
(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function s(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(o){if(o.ep)return;o.ep=!0;const a=s(o);fetch(o.href,a)}})();function nl(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const $t={},Yi=[],Ms=()=>{},rb=()=>!1,ir=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),ol=t=>t.startsWith("onUpdate:"),Ee=Object.assign,rl=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},K0=Object.prototype.hasOwnProperty,Gt=(t,e)=>K0.call(t,e),At=Array.isArray,Xi=t=>Gn(t)==="[object Map]",nr=t=>Gn(t)==="[object Set]",dc=t=>Gn(t)==="[object Date]",Mt=t=>typeof t=="function",ce=t=>typeof t=="string",hs=t=>typeof t=="symbol",Kt=t=>t!==null&&typeof t=="object",ab=t=>(Kt(t)||Mt(t))&&Mt(t.then)&&Mt(t.catch),lb=Object.prototype.toString,Gn=t=>lb.call(t),H0=t=>Gn(t).slice(8,-1),cb=t=>Gn(t)==="[object Object]",or=t=>ce(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Pn=nl(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),rr=t=>{const e=Object.create(null);return(s=>e[s]||(e[s]=t(s)))},G0=/-\w/g,Ve=rr(t=>t.replace(G0,e=>e.slice(1).toUpperCase())),W0=/\B([A-Z])/g,Xs=rr(t=>t.replace(W0,"-$1").toLowerCase()),ar=rr(t=>t.charAt(0).toUpperCase()+t.slice(1)),la=rr(t=>t?`on${ar(t)}`:""),Ie=(t,e)=>!Object.is(t,e),Oo=(t,...e)=>{for(let s=0;s<t.length;s++)t[s](...e)},ub=(t,e,s,i=!1)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:s})},lr=t=>{const e=parseFloat(t);return isNaN(e)?t:e},J0=t=>{const e=ce(t)?Number(t):NaN;return isNaN(e)?t:e};let mc;const cr=()=>mc||(mc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ur(t){if(At(t)){const e={};for(let s=0;s<t.length;s++){const i=t[s],o=ce(i)?Z0(i):ur(i);if(o)for(const a in o)e[a]=o[a]}return e}else if(ce(t)||Kt(t))return t}const Q0=/;(?![^(]*\))/g,Y0=/:([^]+)/,X0=/\/\*[^]*?\*\//g;function Z0(t){const e={};return t.replace(X0,"").split(Q0).forEach(s=>{if(s){const i=s.split(Y0);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function ls(t){let e="";if(ce(t))e=t;else if(At(t))for(let s=0;s<t.length;s++){const i=ls(t[s]);i&&(e+=i+" ")}else if(Kt(t))for(const s in t)t[s]&&(e+=s+" ");return e.trim()}function Ak(t){if(!t)return null;let{class:e,style:s}=t;return e&&!ce(e)&&(t.class=ls(e)),s&&(t.style=ur(s)),t}const tm="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",em=nl(tm);function bb(t){return!!t||t===""}function sm(t,e){if(t.length!==e.length)return!1;let s=!0;for(let i=0;s&&i<t.length;i++)s=Wn(t[i],e[i]);return s}function Wn(t,e){if(t===e)return!0;let s=dc(t),i=dc(e);if(s||i)return s&&i?t.getTime()===e.getTime():!1;if(s=hs(t),i=hs(e),s||i)return t===e;if(s=At(t),i=At(e),s||i)return s&&i?sm(t,e):!1;if(s=Kt(t),i=Kt(e),s||i){if(!s||!i)return!1;const o=Object.keys(t).length,a=Object.keys(e).length;if(o!==a)return!1;for(const l in t){const b=t.hasOwnProperty(l),u=e.hasOwnProperty(l);if(b&&!u||!b&&u||!Wn(t[l],e[l]))return!1}}return String(t)===String(e)}function im(t,e){return t.findIndex(s=>Wn(s,e))}const db=t=>!!(t&&t.__v_isRef===!0),De=t=>ce(t)?t:t==null?"":At(t)||Kt(t)&&(t.toString===lb||!Mt(t.toString))?db(t)?De(t.value):JSON.stringify(t,mb,2):String(t),mb=(t,e)=>db(e)?mb(t,e.value):Xi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((s,[i,o],a)=>(s[ca(i,a)+" =>"]=o,s),{})}:nr(e)?{[`Set(${e.size})`]:[...e.values()].map(s=>ca(s))}:hs(e)?ca(e):Kt(e)&&!At(e)&&!cb(e)?String(e):e,ca=(t,e="")=>{var s;return hs(t)?`Symbol(${(s=t.description)!=null?s:e})`:t};let Be;class fb{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Be,!e&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].pause();for(e=0,s=this.effects.length;e<s;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].resume();for(e=0,s=this.effects.length;e<s;e++)this.effects[e].resume()}}run(e){if(this._active){const s=Be;try{return Be=this,e()}finally{Be=s}}}on(){++this._on===1&&(this.prevScope=Be,Be=this)}off(){this._on>0&&--this._on===0&&(Be=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s<i;s++)this.effects[s].stop();for(this.effects.length=0,s=0,i=this.cleanups.length;s<i;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,i=this.scopes.length;s<i;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function al(t){return new fb(t)}function pb(){return Be}function nm(t,e=!1){Be&&Be.cleanups.push(t)}let te;const ua=new WeakSet;class hb{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Be&&Be.active&&Be.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ua.has(this)&&(ua.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||vb(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,fc(this),yb(this);const e=te,s=fs;te=this,fs=!0;try{return this.fn()}finally{kb(this),te=e,fs=s,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ul(e);this.deps=this.depsTail=void 0,fc(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ua.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ca(this)&&this.run()}get dirty(){return Ca(this)}}let gb=0,xn,An;function vb(t,e=!1){if(t.flags|=8,e){t.next=An,An=t;return}t.next=xn,xn=t}function ll(){gb++}function cl(){if(--gb>0)return;if(An){let e=An;for(An=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;xn;){let e=xn;for(xn=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=s}}if(t)throw t}function yb(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function kb(t){let e,s=t.depsTail,i=s;for(;i;){const o=i.prevDep;i.version===-1?(i===s&&(s=o),ul(i),om(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=s}function Ca(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Sb(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Sb(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Nn)||(t.globalVersion=Nn,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Ca(t))))return;t.flags|=2;const e=t.dep,s=te,i=fs;te=t,fs=!0;try{yb(t);const o=t.fn(t._value);(e.version===0||Ie(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{te=s,fs=i,kb(t),t.flags&=-3}}function ul(t,e=!1){const{dep:s,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),s.subs===t&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let a=s.computed.deps;a;a=a.nextDep)ul(a,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function om(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let fs=!0;const Tb=[];function Js(){Tb.push(fs),fs=!1}function Qs(){const t=Tb.pop();fs=t===void 0?!0:t}function fc(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=te;te=void 0;try{e()}finally{te=s}}}let Nn=0;class rm{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class br{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!fs||te===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==te)s=this.activeLink=new rm(te,this),te.deps?(s.prevDep=te.depsTail,te.depsTail.nextDep=s,te.depsTail=s):te.deps=te.depsTail=s,_b(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=te.depsTail,s.nextDep=void 0,te.depsTail.nextDep=s,te.depsTail=s,te.deps===s&&(te.deps=i)}return s}trigger(e){this.version++,Nn++,this.notify(e)}notify(e){ll();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{cl()}}}function _b(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)_b(i)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const qo=new WeakMap,Ri=Symbol(""),Ea=Symbol(""),In=Symbol("");function Ue(t,e,s){if(fs&&te){let i=qo.get(t);i||qo.set(t,i=new Map);let o=i.get(s);o||(i.set(s,o=new br),o.map=i,o.key=s),o.track()}}function $s(t,e,s,i,o,a){const l=qo.get(t);if(!l){Nn++;return}const b=u=>{u&&u.trigger()};if(ll(),e==="clear")l.forEach(b);else{const u=At(t),f=u&&or(s);if(u&&s==="length"){const p=Number(i);l.forEach((g,y)=>{(y==="length"||y===In||!hs(y)&&y>=p)&&b(g)})}else switch((s!==void 0||l.has(void 0))&&b(l.get(s)),f&&b(l.get(In)),e){case"add":u?f&&b(l.get("length")):(b(l.get(Ri)),Xi(t)&&b(l.get(Ea)));break;case"delete":u||(b(l.get(Ri)),Xi(t)&&b(l.get(Ea)));break;case"set":Xi(t)&&b(l.get(Ri));break}}cl()}function am(t,e){const s=qo.get(t);return s&&s.get(e)}function Hi(t){const e=Bt(t);return e===t?e:(Ue(e,"iterate",In),ts(t)?e:e.map(gs))}function dr(t){return Ue(t=Bt(t),"iterate",In),t}function Es(t,e){return Ys(t)?sn(Gs(t)?gs(e):e):gs(e)}const lm={__proto__:null,[Symbol.iterator](){return ba(this,Symbol.iterator,t=>Es(this,t))},concat(...t){return Hi(this).concat(...t.map(e=>At(e)?Hi(e):e))},entries(){return ba(this,"entries",t=>(t[1]=Es(this,t[1]),t))},every(t,e){return Is(this,"every",t,e,void 0,arguments)},filter(t,e){return Is(this,"filter",t,e,s=>s.map(i=>Es(this,i)),arguments)},find(t,e){return Is(this,"find",t,e,s=>Es(this,s),arguments)},findIndex(t,e){return Is(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Is(this,"findLast",t,e,s=>Es(this,s),arguments)},findLastIndex(t,e){return Is(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Is(this,"forEach",t,e,void 0,arguments)},includes(...t){return da(this,"includes",t)},indexOf(...t){return da(this,"indexOf",t)},join(t){return Hi(this).join(t)},lastIndexOf(...t){return da(this,"lastIndexOf",t)},map(t,e){return Is(this,"map",t,e,void 0,arguments)},pop(){return gn(this,"pop")},push(...t){return gn(this,"push",t)},reduce(t,...e){return pc(this,"reduce",t,e)},reduceRight(t,...e){return pc(this,"reduceRight",t,e)},shift(){return gn(this,"shift")},some(t,e){return Is(this,"some",t,e,void 0,arguments)},splice(...t){return gn(this,"splice",t)},toReversed(){return Hi(this).toReversed()},toSorted(t){return Hi(this).toSorted(t)},toSpliced(...t){return Hi(this).toSpliced(...t)},unshift(...t){return gn(this,"unshift",t)},values(){return ba(this,"values",t=>Es(this,t))}};function ba(t,e,s){const i=dr(t),o=i[e]();return i!==t&&!ts(t)&&(o._next=o.next,o.next=()=>{const a=o._next();return a.done||(a.value=s(a.value)),a}),o}const cm=Array.prototype;function Is(t,e,s,i,o,a){const l=dr(t),b=l!==t&&!ts(t),u=l[e];if(u!==cm[e]){const g=u.apply(t,a);return b?gs(g):g}let f=s;l!==t&&(b?f=function(g,y){return s.call(this,Es(t,g),y,t)}:s.length>2&&(f=function(g,y){return s.call(this,g,y,t)}));const p=u.call(l,f,i);return b&&o?o(p):p}function pc(t,e,s,i){const o=dr(t),a=o!==t&&!ts(t);let l=s,b=!1;o!==t&&(a?(b=i.length===0,l=function(f,p,g){return b&&(b=!1,f=Es(t,f)),s.call(this,f,Es(t,p),g,t)}):s.length>3&&(l=function(f,p,g){return s.call(this,f,p,g,t)}));const u=o[e](l,...i);return b?Es(t,u):u}function da(t,e,s){const i=Bt(t);Ue(i,"iterate",In);const o=i[e](...s);return(o===-1||o===!1)&&mr(s[0])?(s[0]=Bt(s[0]),i[e](...s)):o}function gn(t,e,s=[]){Js(),ll();const i=Bt(t)[e].apply(t,s);return cl(),Qs(),i}const um=nl("__proto__,__v_isRef,__isVue"),wb=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(hs));function bm(t){hs(t)||(t=String(t));const e=Bt(this);return Ue(e,"has",t),e.hasOwnProperty(t)}class Pb{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,i){if(s==="__v_skip")return e.__v_skip;const o=this._isReadonly,a=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return a;if(s==="__v_raw")return i===(o?a?Sm:Eb:a?Cb:Ab).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const l=At(e);if(!o){let u;if(l&&(u=lm[s]))return u;if(s==="hasOwnProperty")return bm}const b=Reflect.get(e,s,le(e)?e:i);if((hs(s)?wb.has(s):um(s))||(o||Ue(e,"get",s),a))return b;if(le(b)){const u=l&&or(s)?b:b.value;return o&&Kt(u)?Ma(u):u}return Kt(b)?o?Ma(b):Jn(b):b}}class xb extends Pb{constructor(e=!1){super(!1,e)}set(e,s,i,o){let a=e[s];const l=At(e)&&or(s);if(!this._isShallow){const f=Ys(a);if(!ts(i)&&!Ys(i)&&(a=Bt(a),i=Bt(i)),!l&&le(a)&&!le(i))return f||(a.value=i),!0}const b=l?Number(s)<e.length:Gt(e,s),u=Reflect.set(e,s,i,le(e)?e:o);return e===Bt(o)&&(b?Ie(i,a)&&$s(e,"set",s,i):$s(e,"add",s,i)),u}deleteProperty(e,s){const i=Gt(e,s);e[s];const o=Reflect.deleteProperty(e,s);return o&&i&&$s(e,"delete",s,void 0),o}has(e,s){const i=Reflect.has(e,s);return(!hs(s)||!wb.has(s))&&Ue(e,"has",s),i}ownKeys(e){return Ue(e,"iterate",At(e)?"length":Ri),Reflect.ownKeys(e)}}class dm extends Pb{constructor(e=!1){super(!0,e)}set(e,s){return!0}deleteProperty(e,s){return!0}}const mm=new xb,fm=new dm,pm=new xb(!0);const ja=t=>t,Po=t=>Reflect.getPrototypeOf(t);function hm(t,e,s){return function(...i){const o=this.__v_raw,a=Bt(o),l=Xi(a),b=t==="entries"||t===Symbol.iterator&&l,u=t==="keys"&&l,f=o[t](...i),p=s?ja:e?sn:gs;return!e&&Ue(a,"iterate",u?Ea:Ri),Ee(Object.create(f),{next(){const{value:g,done:y}=f.next();return y?{value:g,done:y}:{value:b?[p(g[0]),p(g[1])]:p(g),done:y}}})}}function xo(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function gm(t,e){const s={get(o){const a=this.__v_raw,l=Bt(a),b=Bt(o);t||(Ie(o,b)&&Ue(l,"get",o),Ue(l,"get",b));const{has:u}=Po(l),f=e?ja:t?sn:gs;if(u.call(l,o))return f(a.get(o));if(u.call(l,b))return f(a.get(b));a!==l&&a.get(o)},get size(){const o=this.__v_raw;return!t&&Ue(Bt(o),"iterate",Ri),o.size},has(o){const a=this.__v_raw,l=Bt(a),b=Bt(o);return t||(Ie(o,b)&&Ue(l,"has",o),Ue(l,"has",b)),o===b?a.has(o):a.has(o)||a.has(b)},forEach(o,a){const l=this,b=l.__v_raw,u=Bt(b),f=e?ja:t?sn:gs;return!t&&Ue(u,"iterate",Ri),b.forEach((p,g)=>o.call(a,f(p),f(g),l))}};return Ee(s,t?{add:xo("add"),set:xo("set"),delete:xo("delete"),clear:xo("clear")}:{add(o){const a=Bt(this),l=Po(a),b=Bt(o),u=!e&&!ts(o)&&!Ys(o)?b:o;return l.has.call(a,u)||Ie(o,u)&&l.has.call(a,o)||Ie(b,u)&&l.has.call(a,b)||(a.add(u),$s(a,"add",u,u)),this},set(o,a){!e&&!ts(a)&&!Ys(a)&&(a=Bt(a));const l=Bt(this),{has:b,get:u}=Po(l);let f=b.call(l,o);f||(o=Bt(o),f=b.call(l,o));const p=u.call(l,o);return l.set(o,a),f?Ie(a,p)&&$s(l,"set",o,a):$s(l,"add",o,a),this},delete(o){const a=Bt(this),{has:l,get:b}=Po(a);let u=l.call(a,o);u||(o=Bt(o),u=l.call(a,o)),b&&b.call(a,o);const f=a.delete(o);return u&&$s(a,"delete",o,void 0),f},clear(){const o=Bt(this),a=o.size!==0,l=o.clear();return a&&$s(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=hm(o,t,e)}),s}function bl(t,e){const s=gm(t,e);return(i,o,a)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Gt(s,o)&&o in i?s:i,o,a)}const vm={get:bl(!1,!1)},ym={get:bl(!1,!0)},km={get:bl(!0,!1)};const Ab=new WeakMap,Cb=new WeakMap,Eb=new WeakMap,Sm=new WeakMap;function Tm(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function _m(t){return t.__v_skip||!Object.isExtensible(t)?0:Tm(H0(t))}function Jn(t){return Ys(t)?t:dl(t,!1,mm,vm,Ab)}function jb(t){return dl(t,!1,pm,ym,Cb)}function Ma(t){return dl(t,!0,fm,km,Eb)}function dl(t,e,s,i,o){if(!Kt(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const a=_m(t);if(a===0)return t;const l=o.get(t);if(l)return l;const b=new Proxy(t,a===2?i:s);return o.set(t,b),b}function Gs(t){return Ys(t)?Gs(t.__v_raw):!!(t&&t.__v_isReactive)}function Ys(t){return!!(t&&t.__v_isReadonly)}function ts(t){return!!(t&&t.__v_isShallow)}function mr(t){return t?!!t.__v_raw:!1}function Bt(t){const e=t&&t.__v_raw;return e?Bt(e):t}function ml(t){return!Gt(t,"__v_skip")&&Object.isExtensible(t)&&ub(t,"__v_skip",!0),t}const gs=t=>Kt(t)?Jn(t):t,sn=t=>Kt(t)?Ma(t):t;function le(t){return t?t.__v_isRef===!0:!1}function he(t){return Db(t,!1)}function Mb(t){return Db(t,!0)}function Db(t,e){return le(t)?t:new wm(t,e)}class wm{constructor(e,s){this.dep=new br,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:Bt(e),this._value=s?e:gs(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,i=this.__v_isShallow||ts(e)||Ys(e);e=i?e:Bt(e),Ie(e,s)&&(this._rawValue=e,this._value=i?e:gs(e),this.dep.trigger())}}function ie(t){return le(t)?t.value:t}function Ck(t){return Mt(t)?t():ie(t)}const Pm={get:(t,e,s)=>e==="__v_raw"?t:ie(Reflect.get(t,e,s)),set:(t,e,s,i)=>{const o=t[e];return le(o)&&!le(s)?(o.value=s,!0):Reflect.set(t,e,s,i)}};function Ob(t){return Gs(t)?t:new Proxy(t,Pm)}class xm{constructor(e){this.__v_isRef=!0,this._value=void 0;const s=this.dep=new br,{get:i,set:o}=e(s.track.bind(s),s.trigger.bind(s));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Am(t){return new xm(t)}function Cm(t){const e=At(t)?new Array(t.length):{};for(const s in t)e[s]=Rb(t,s);return e}class Em{constructor(e,s,i){this._object=e,this._key=s,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._raw=Bt(e);let o=!0,a=e;if(!At(e)||!or(String(s)))do o=!mr(a)||ts(a);while(o&&(a=a.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=ie(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&le(this._raw[this._key])){const s=this._object[this._key];if(le(s)){s.value=e;return}}this._object[this._key]=e}get dep(){return am(this._raw,this._key)}}class jm{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ek(t,e,s){return le(t)?t:Mt(t)?new jm(t):Kt(t)&&arguments.length>1?Rb(t,e,s):he(t)}function Rb(t,e,s){return new Em(t,e,s)}class Mm{constructor(e,s,i){this.fn=e,this.setter=s,this._value=void 0,this.dep=new br(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Nn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&te!==this)return vb(this,!0),!0}get value(){const e=this.dep.track();return Sb(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Dm(t,e,s=!1){let i,o;return Mt(t)?i=t:(i=t.get,o=t.set),new Mm(i,o,s)}const Ao={},$o=new WeakMap;let ji;function Om(t,e=!1,s=ji){if(s){let i=$o.get(s);i||$o.set(s,i=[]),i.push(t)}}function Rm(t,e,s=$t){const{immediate:i,deep:o,once:a,scheduler:l,augmentJob:b,call:u}=s,f=N=>o?N:ts(N)||o===!1||o===0?Vs(N,1):Vs(N);let p,g,y,_,z=!1,I=!1;if(le(t)?(g=()=>t.value,z=ts(t)):Gs(t)?(g=()=>f(t),z=!0):At(t)?(I=!0,z=t.some(N=>Gs(N)||ts(N)),g=()=>t.map(N=>{if(le(N))return N.value;if(Gs(N))return f(N);if(Mt(N))return u?u(N,2):N()})):Mt(t)?e?g=u?()=>u(t,2):t:g=()=>{if(y){Js();try{y()}finally{Qs()}}const N=ji;ji=p;try{return u?u(t,3,[_]):t(_)}finally{ji=N}}:g=Ms,e&&o){const N=g,X=o===!0?1/0:o;g=()=>Vs(N(),X)}const $=pb(),P=()=>{p.stop(),$&&$.active&&rl($.effects,p)};if(a&&e){const N=e;e=(...X)=>{N(...X),P()}}let x=I?new Array(t.length).fill(Ao):Ao;const G=N=>{if(!(!(p.flags&1)||!p.dirty&&!N))if(e){const X=p.run();if(o||z||(I?X.some((W,H)=>Ie(W,x[H])):Ie(X,x))){y&&y();const W=ji;ji=p;try{const H=[X,x===Ao?void 0:I&&x[0]===Ao?[]:x,_];x=X,u?u(e,3,H):e(...H)}finally{ji=W}}}else p.run()};return b&&b(G),p=new hb(g),p.scheduler=l?()=>l(G,!1):G,_=N=>Om(N,!1,p),y=p.onStop=()=>{const N=$o.get(p);if(N){if(u)u(N,4);else for(const X of N)X();$o.delete(p)}},e?i?G(!0):x=p.run():l?l(G.bind(null,!0),!0):p.run(),P.pause=p.pause.bind(p),P.resume=p.resume.bind(p),P.stop=P,P}function Vs(t,e=1/0,s){if(e<=0||!Kt(t)||t.__v_skip||(s=s||new Map,(s.get(t)||0)>=e))return t;if(s.set(t,e),e--,le(t))Vs(t.value,e,s);else if(At(t))for(let i=0;i<t.length;i++)Vs(t[i],e,s);else if(nr(t)||Xi(t))t.forEach(i=>{Vs(i,e,s)});else if(cb(t)){for(const i in t)Vs(t[i],e,s);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&Vs(t[i],e,s)}return t}function Qn(t,e,s,i){try{return i?t(...i):t()}catch(o){fr(o,e,s)}}function vs(t,e,s,i){if(Mt(t)){const o=Qn(t,e,s,i);return o&&ab(o)&&o.catch(a=>{fr(a,e,s)}),o}if(At(t)){const o=[];for(let a=0;a<t.length;a++)o.push(vs(t[a],e,s,i));return o}}function fr(t,e,s,i=!0){const o=e?e.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:l}=e&&e.appContext.config||$t;if(e){let b=e.parent;const u=e.proxy,f=`https://vuejs.org/error-reference/#runtime-${s}`;for(;b;){const p=b.ec;if(p){for(let g=0;g<p.length;g++)if(p[g](t,u,f)===!1)return}b=b.parent}if(a){Js(),Qn(a,null,10,[t,u,f]),Qs();return}}Nm(t,s,o,i,l)}function Nm(t,e,s,i=!0,o=!1){if(o)throw t;console.error(t)}const Je=[];let As=-1;const Zi=[];let bi=null,Wi=0;const Nb=Promise.resolve();let Vo=null;function pr(t){const e=Vo||Nb;return t?e.then(this?t.bind(this):t):e}function Im(t){let e=As+1,s=Je.length;for(;e<s;){const i=e+s>>>1,o=Je[i],a=Ln(o);a<t||a===t&&o.flags&2?e=i+1:s=i}return e}function fl(t){if(!(t.flags&1)){const e=Ln(t),s=Je[Je.length-1];!s||!(t.flags&2)&&e>=Ln(s)?Je.push(t):Je.splice(Im(e),0,t),t.flags|=1,Ib()}}function Ib(){Vo||(Vo=Nb.then(Fb))}function Lm(t){At(t)?Zi.push(...t):bi&&t.id===-1?bi.splice(Wi+1,0,t):t.flags&1||(Zi.push(t),t.flags|=1),Ib()}function hc(t,e,s=As+1){for(;s<Je.length;s++){const i=Je[s];if(i&&i.flags&2){if(t&&i.id!==t.uid)continue;Je.splice(s,1),s--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function Lb(t){if(Zi.length){const e=[...new Set(Zi)].sort((s,i)=>Ln(s)-Ln(i));if(Zi.length=0,bi){bi.push(...e);return}for(bi=e,Wi=0;Wi<bi.length;Wi++){const s=bi[Wi];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}bi=null,Wi=0}}const Ln=t=>t.id==null?t.flags&2?-1:1/0:t.id;function Fb(t){try{for(As=0;As<Je.length;As++){const e=Je[As];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Qn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;As<Je.length;As++){const e=Je[As];e&&(e.flags&=-2)}As=-1,Je.length=0,Lb(),Vo=null,(Je.length||Zi.length)&&Fb()}}let Le=null,zb=null;function Ko(t){const e=Le;return Le=t,zb=t&&t.type.__scopeId||null,e}function Fn(t,e=Le,s){if(!e||t._n)return t;const i=(...o)=>{i._d&&Wo(-1);const a=Ko(e);let l;try{l=t(...o)}finally{Ko(a),i._d&&Wo(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function gc(t,e){if(Le===null)return t;const s=Sr(Le),i=t.dirs||(t.dirs=[]);for(let o=0;o<e.length;o++){let[a,l,b,u=$t]=e[o];a&&(Mt(a)&&(a={mounted:a,updated:a}),a.deep&&Vs(l),i.push({dir:a,instance:s,value:l,oldValue:void 0,arg:b,modifiers:u}))}return t}function Pi(t,e,s,i){const o=t.dirs,a=e&&e.dirs;for(let l=0;l<o.length;l++){const b=o[l];a&&(b.oldValue=a[l].value);let u=b.dir[i];u&&(Js(),vs(u,s,8,[t.el,b,t,e]),Qs())}}function Ro(t,e){if($e){let s=$e.provides;const i=$e.parent&&$e.parent.provides;i===s&&(s=$e.provides=Object.create(i)),s[t]=e}}function es(t,e,s=!1){const i=pi();if(i||Ni){let o=Ni?Ni._context.provides:i?i.parent==null||i.ce?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(o&&t in o)return o[t];if(arguments.length>1)return s&&Mt(e)?e.call(i&&i.proxy):e}}function Fm(){return!!(pi()||Ni)}const zm=Symbol.for("v-scx"),Bm=()=>es(zm);function jk(t,e){return hr(t,null,e)}function Um(t,e){return hr(t,null,{flush:"sync"})}function Ws(t,e,s){return hr(t,e,s)}function hr(t,e,s=$t){const{immediate:i,deep:o,flush:a,once:l}=s,b=Ee({},s),u=e&&i||!e&&a!=="post";let f;if(Un){if(a==="sync"){const _=Bm();f=_.__watcherHandles||(_.__watcherHandles=[])}else if(!u){const _=()=>{};return _.stop=Ms,_.resume=Ms,_.pause=Ms,_}}const p=$e;b.call=(_,z,I)=>vs(_,p,z,I);let g=!1;a==="post"?b.scheduler=_=>{ze(_,p&&p.suspense)}:a!=="sync"&&(g=!0,b.scheduler=(_,z)=>{z?_():fl(_)}),b.augmentJob=_=>{e&&(_.flags|=4),g&&(_.flags|=2,p&&(_.id=p.uid,_.i=p))};const y=Rm(t,e,b);return Un&&(f?f.push(y):u&&y()),y}function qm(t,e,s){const i=this.proxy,o=ce(t)?t.includes(".")?Bb(i,t):()=>i[t]:t.bind(i,i);let a;Mt(e)?a=e:(a=e.handler,s=e);const l=Zn(this),b=hr(o,a.bind(i),s);return l(),b}function Bb(t,e){const s=e.split(".");return()=>{let i=t;for(let o=0;o<s.length&&i;o++)i=i[s[o]];return i}}const Ub=Symbol("_vte"),qb=t=>t.__isTeleport,Cn=t=>t&&(t.disabled||t.disabled===""),vc=t=>t&&(t.defer||t.defer===""),yc=t=>typeof SVGElement<"u"&&t instanceof SVGElement,kc=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Da=(t,e)=>{const s=t&&t.to;return ce(s)?e?e(s):null:s},$b={name:"Teleport",__isTeleport:!0,process(t,e,s,i,o,a,l,b,u,f){const{mc:p,pc:g,pbc:y,o:{insert:_,querySelector:z,createText:I,createComment:$}}=f,P=Cn(e.props);let{shapeFlag:x,children:G,dynamicChildren:N}=e;if(t==null){const X=e.el=I(""),W=e.anchor=I("");_(X,s,i),_(W,s,i);const H=(st,yt)=>{x&16&&p(G,st,yt,o,a,l,b,u)},rt=()=>{const st=e.target=Da(e.props,z),yt=Oa(st,e,I,_);st&&(l!=="svg"&&yc(st)?l="svg":l!=="mathml"&&kc(st)&&(l="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(st),P||(H(st,yt),No(e,!1)))};P&&(H(s,W),No(e,!0)),vc(e.props)?(e.el.__isMounted=!1,ze(()=>{rt(),delete e.el.__isMounted},a)):rt()}else{if(vc(e.props)&&t.el.__isMounted===!1){ze(()=>{$b.process(t,e,s,i,o,a,l,b,u,f)},a);return}e.el=t.el,e.targetStart=t.targetStart;const X=e.anchor=t.anchor,W=e.target=t.target,H=e.targetAnchor=t.targetAnchor,rt=Cn(t.props),st=rt?s:W,yt=rt?X:H;if(l==="svg"||yc(W)?l="svg":(l==="mathml"||kc(W))&&(l="mathml"),N?(y(t.dynamicChildren,N,st,o,a,l,b),kl(t,e,!0)):u||g(t,e,st,yt,o,a,l,b,!1),P)rt?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Co(e,s,X,f,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const Pt=e.target=Da(e.props,z);Pt&&Co(e,Pt,null,f,0)}else rt&&Co(e,W,H,f,1);No(e,P)}},remove(t,e,s,{um:i,o:{remove:o}},a){const{shapeFlag:l,children:b,anchor:u,targetStart:f,targetAnchor:p,target:g,props:y}=t;if(g&&(o(f),o(p)),a&&o(u),l&16){const _=a||!Cn(y);for(let z=0;z<b.length;z++){const I=b[z];i(I,e,s,_,!!I.dynamicChildren)}}},move:Co,hydrate:$m};function Co(t,e,s,{o:{insert:i},m:o},a=2){a===0&&i(t.targetAnchor,e,s);const{el:l,anchor:b,shapeFlag:u,children:f,props:p}=t,g=a===2;if(g&&i(l,e,s),(!g||Cn(p))&&u&16)for(let y=0;y<f.length;y++)o(f[y],e,s,2);g&&i(b,e,s)}function $m(t,e,s,i,o,a,{o:{nextSibling:l,parentNode:b,querySelector:u,insert:f,createText:p}},g){function y($,P){let x=P;for(;x;){if(x&&x.nodeType===8){if(x.data==="teleport start anchor")e.targetStart=x;else if(x.data==="teleport anchor"){e.targetAnchor=x,$._lpa=e.targetAnchor&&l(e.targetAnchor);break}}x=l(x)}}function _($,P){P.anchor=g(l($),P,b($),s,i,o,a)}const z=e.target=Da(e.props,u),I=Cn(e.props);if(z){const $=z._lpa||z.firstChild;e.shapeFlag&16&&(I?(_(t,e),y(z,$),e.targetAnchor||Oa(z,e,p,f,b(t)===z?t:null)):(e.anchor=l(t),y(z,$),e.targetAnchor||Oa(z,e,p,f),g($&&l($),e,z,s,i,o,a))),No(e,I)}else I&&e.shapeFlag&16&&(_(t,e),e.targetStart=t,e.targetAnchor=l(t));return e.anchor&&l(e.anchor)}const Vm=$b;function No(t,e){const s=t.ctx;if(s&&s.ut){let i,o;for(e?(i=t.el,o=t.anchor):(i=t.targetStart,o=t.targetAnchor);i&&i!==o;)i.nodeType===1&&i.setAttribute("data-v-owner",s.uid),i=i.nextSibling;s.ut()}}function Oa(t,e,s,i,o=null){const a=e.targetStart=s(""),l=e.targetAnchor=s("");return a[Ub]=l,t&&(i(a,t,o),i(l,t,o)),l}const Cs=Symbol("_leaveCb"),vn=Symbol("_enterCb");function Km(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Yn(()=>{t.isMounted=!0}),pl(()=>{t.isUnmounting=!0}),t}const ns=[Function,Array],Vb={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ns,onEnter:ns,onAfterEnter:ns,onEnterCancelled:ns,onBeforeLeave:ns,onLeave:ns,onAfterLeave:ns,onLeaveCancelled:ns,onBeforeAppear:ns,onAppear:ns,onAfterAppear:ns,onAppearCancelled:ns},Kb=t=>{const e=t.subTree;return e.component?Kb(e.component):e},Hm={name:"BaseTransition",props:Vb,setup(t,{slots:e}){const s=pi(),i=Km();return()=>{const o=e.default&&Wb(e.default(),!0);if(!o||!o.length)return;const a=Hb(o),l=Bt(t),{mode:b}=l;if(i.isLeaving)return ma(a);const u=Sc(a);if(!u)return ma(a);let f=Ra(u,l,i,s,g=>f=g);u.type!==qe&&zn(u,f);let p=s.subTree&&Sc(s.subTree);if(p&&p.type!==qe&&!Mi(p,u)&&Kb(s).type!==qe){let g=Ra(p,l,i,s);if(zn(p,g),b==="out-in"&&u.type!==qe)return i.isLeaving=!0,g.afterLeave=()=>{i.isLeaving=!1,s.job.flags&8||s.update(),delete g.afterLeave,p=void 0},ma(a);b==="in-out"&&u.type!==qe?g.delayLeave=(y,_,z)=>{const I=Gb(i,p);I[String(p.key)]=p,y[Cs]=()=>{_(),y[Cs]=void 0,delete f.delayedLeave,p=void 0},f.delayedLeave=()=>{z(),delete f.delayedLeave,p=void 0}}:p=void 0}else p&&(p=void 0);return a}}};function Hb(t){let e=t[0];if(t.length>1){for(const s of t)if(s.type!==qe){e=s;break}}return e}const Gm=Hm;function Gb(t,e){const{leavingVNodes:s}=t;let i=s.get(e.type);return i||(i=Object.create(null),s.set(e.type,i)),i}function Ra(t,e,s,i,o){const{appear:a,mode:l,persisted:b=!1,onBeforeEnter:u,onEnter:f,onAfterEnter:p,onEnterCancelled:g,onBeforeLeave:y,onLeave:_,onAfterLeave:z,onLeaveCancelled:I,onBeforeAppear:$,onAppear:P,onAfterAppear:x,onAppearCancelled:G}=e,N=String(t.key),X=Gb(s,t),W=(st,yt)=>{st&&vs(st,i,9,yt)},H=(st,yt)=>{const Pt=yt[1];W(st,yt),At(st)?st.every(lt=>lt.length<=1)&&Pt():st.length<=1&&Pt()},rt={mode:l,persisted:b,beforeEnter(st){let yt=u;if(!s.isMounted)if(a)yt=$||u;else return;st[Cs]&&st[Cs](!0);const Pt=X[N];Pt&&Mi(t,Pt)&&Pt.el[Cs]&&Pt.el[Cs](),W(yt,[st])},enter(st){if(X[N]===t)return;let yt=f,Pt=p,lt=g;if(!s.isMounted)if(a)yt=P||f,Pt=x||p,lt=G||g;else return;let Ct=!1;st[vn]=ue=>{Ct||(Ct=!0,ue?W(lt,[st]):W(Pt,[st]),rt.delayedLeave&&rt.delayedLeave(),st[vn]=void 0)};const Yt=st[vn].bind(null,!1);yt?H(yt,[st,Yt]):Yt()},leave(st,yt){const Pt=String(t.key);if(st[vn]&&st[vn](!0),s.isUnmounting)return yt();W(y,[st]);let lt=!1;st[Cs]=Yt=>{lt||(lt=!0,yt(),Yt?W(I,[st]):W(z,[st]),st[Cs]=void 0,X[Pt]===t&&delete X[Pt])};const Ct=st[Cs].bind(null,!1);X[Pt]=t,_?H(_,[st,Ct]):Ct()},clone(st){const yt=Ra(st,e,s,i,o);return o&&o(yt),yt}};return rt}function ma(t){if(gr(t))return t=mi(t),t.children=null,t}function Sc(t){if(!gr(t))return qb(t.type)&&t.children?Hb(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:s}=t;if(s){if(e&16)return s[0];if(e&32&&Mt(s.default))return s.default()}}function zn(t,e){t.shapeFlag&6&&t.component?(t.transition=e,zn(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Wb(t,e=!1,s){let i=[],o=0;for(let a=0;a<t.length;a++){let l=t[a];const b=s==null?l.key:String(s)+String(l.key!=null?l.key:a);l.type===ke?(l.patchFlag&128&&o++,i=i.concat(Wb(l.children,e,b))):(e||l.type!==qe)&&i.push(b!=null?mi(l,{key:b}):l)}if(o>1)for(let a=0;a<i.length;a++)i[a].patchFlag=-2;return i}function Os(t,e){return Mt(t)?Ee({name:t.name},e,{setup:t}):t}function Jb(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Tc(t,e){let s;return!!((s=Object.getOwnPropertyDescriptor(t,e))&&!s.configurable)}const Ho=new WeakMap;function En(t,e,s,i,o=!1){if(At(t)){t.forEach((I,$)=>En(I,e&&(At(e)?e[$]:e),s,i,o));return}if(tn(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&En(t,e,s,i.component.subTree);return}const a=i.shapeFlag&4?Sr(i.component):i.el,l=o?null:a,{i:b,r:u}=t,f=e&&e.r,p=b.refs===$t?b.refs={}:b.refs,g=b.setupState,y=Bt(g),_=g===$t?rb:I=>Tc(p,I)?!1:Gt(y,I),z=(I,$)=>!($&&Tc(p,$));if(f!=null&&f!==u){if(_c(e),ce(f))p[f]=null,_(f)&&(g[f]=null);else if(le(f)){const I=e;z(f,I.k)&&(f.value=null),I.k&&(p[I.k]=null)}}if(Mt(u))Qn(u,b,12,[l,p]);else{const I=ce(u),$=le(u);if(I||$){const P=()=>{if(t.f){const x=I?_(u)?g[u]:p[u]:z()||!t.k?u.value:p[t.k];if(o)At(x)&&rl(x,a);else if(At(x))x.includes(a)||x.push(a);else if(I)p[u]=[a],_(u)&&(g[u]=p[u]);else{const G=[a];z(u,t.k)&&(u.value=G),t.k&&(p[t.k]=G)}}else I?(p[u]=l,_(u)&&(g[u]=l)):$&&(z(u,t.k)&&(u.value=l),t.k&&(p[t.k]=l))};if(l){const x=()=>{P(),Ho.delete(t)};x.id=-1,Ho.set(t,x),ze(x,s)}else _c(t),P()}}}function _c(t){const e=Ho.get(t);e&&(e.flags|=8,Ho.delete(t))}cr().requestIdleCallback;cr().cancelIdleCallback;const tn=t=>!!t.type.__asyncLoader,gr=t=>t.type.__isKeepAlive;function Wm(t,e){Qb(t,"a",e)}function Jm(t,e){Qb(t,"da",e)}function Qb(t,e,s=$e){const i=t.__wdc||(t.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(vr(e,i,s),s){let o=s.parent;for(;o&&o.parent;)gr(o.parent.vnode)&&Qm(i,e,s,o),o=o.parent}}function Qm(t,e,s,i){const o=vr(e,t,i,!0);hl(()=>{rl(i[e],o)},s)}function vr(t,e,s=$e,i=!1){if(s){const o=s[t]||(s[t]=[]),a=e.__weh||(e.__weh=(...l)=>{Js();const b=Zn(s),u=vs(e,s,t,l);return b(),Qs(),u});return i?o.unshift(a):o.push(a),a}}const Zs=t=>(e,s=$e)=>{(!Un||t==="sp")&&vr(t,(...i)=>e(...i),s)},Ym=Zs("bm"),Yn=Zs("m"),Xm=Zs("bu"),Zm=Zs("u"),pl=Zs("bum"),hl=Zs("um"),tf=Zs("sp"),ef=Zs("rtg"),sf=Zs("rtc");function nf(t,e=$e){vr("ec",t,e)}const Yb="components";function yr(t,e){return td(Yb,t,!0,e)||t}const Xb=Symbol.for("v-ndc");function Zb(t){return ce(t)?td(Yb,t,!1)||t:t||Xb}function td(t,e,s=!0,i=!1){const o=Le||$e;if(o){const a=o.type;{const b=Bf(a,!1);if(b&&(b===e||b===Ve(e)||b===ar(Ve(e))))return a}const l=wc(o[t]||a[t],e)||wc(o.appContext[t],e);return!l&&i?a:l}}function wc(t,e){return t&&(t[e]||t[Ve(e)]||t[ar(Ve(e))])}function gl(t,e,s,i){let o;const a=s&&s[i],l=At(t);if(l||ce(t)){const b=l&&Gs(t);let u=!1,f=!1;b&&(u=!ts(t),f=Ys(t),t=dr(t)),o=new Array(t.length);for(let p=0,g=t.length;p<g;p++)o[p]=e(u?f?sn(gs(t[p])):gs(t[p]):t[p],p,void 0,a&&a[p])}else if(typeof t=="number"){o=new Array(t);for(let b=0;b<t;b++)o[b]=e(b+1,b,void 0,a&&a[b])}else if(Kt(t))if(t[Symbol.iterator])o=Array.from(t,(b,u)=>e(b,u,void 0,a&&a[u]));else{const b=Object.keys(t);o=new Array(b.length);for(let u=0,f=b.length;u<f;u++){const p=b[u];o[u]=e(t[p],p,u,a&&a[u])}}else o=[];return s&&(s[i]=o),o}function Mk(t,e,s={},i,o){if(Le.ce||Le.parent&&tn(Le.parent)&&Le.parent.ce){const f=Object.keys(s).length>0;return e!=="default"&&(s.name=e),me(),ps(ke,null,[oe("slot",s,i&&i())],f?-2:64)}let a=t[e];a&&a._c&&(a._d=!1),me();const l=a&&ed(a(s)),b=s.key||l&&l.key,u=ps(ke,{key:(b&&!hs(b)?b:`_${e}`)+(!l&&i?"_fb":"")},l||(i?i():[]),l&&t._===1?64:-2);return u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),a&&a._c&&(a._d=!0),u}function ed(t){return t.some(e=>Bn(e)?!(e.type===qe||e.type===ke&&!ed(e.children)):!0)?t:null}const Na=t=>t?_d(t)?Sr(t):Na(t.parent):null,jn=Ee(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Na(t.parent),$root:t=>Na(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>nd(t),$forceUpdate:t=>t.f||(t.f=()=>{fl(t.update)}),$nextTick:t=>t.n||(t.n=pr.bind(t.proxy)),$watch:t=>qm.bind(t)}),fa=(t,e)=>t!==$t&&!t.__isScriptSetup&&Gt(t,e),of={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:i,data:o,props:a,accessCache:l,type:b,appContext:u}=t;if(e[0]!=="$"){const y=l[e];if(y!==void 0)switch(y){case 1:return i[e];case 2:return o[e];case 4:return s[e];case 3:return a[e]}else{if(fa(i,e))return l[e]=1,i[e];if(o!==$t&&Gt(o,e))return l[e]=2,o[e];if(Gt(a,e))return l[e]=3,a[e];if(s!==$t&&Gt(s,e))return l[e]=4,s[e];Ia&&(l[e]=0)}}const f=jn[e];let p,g;if(f)return e==="$attrs"&&Ue(t.attrs,"get",""),f(t);if((p=b.__cssModules)&&(p=p[e]))return p;if(s!==$t&&Gt(s,e))return l[e]=4,s[e];if(g=u.config.globalProperties,Gt(g,e))return g[e]},set({_:t},e,s){const{data:i,setupState:o,ctx:a}=t;return fa(o,e)?(o[e]=s,!0):i!==$t&&Gt(i,e)?(i[e]=s,!0):Gt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(a[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:i,appContext:o,props:a,type:l}},b){let u;return!!(s[b]||t!==$t&&b[0]!=="$"&&Gt(t,b)||fa(e,b)||Gt(a,b)||Gt(i,b)||Gt(jn,b)||Gt(o.config.globalProperties,b)||(u=l.__cssModules)&&u[b])},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:Gt(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function Dk(){return sd().slots}function Ok(){return sd().attrs}function sd(t){const e=pi();return e.setupContext||(e.setupContext=Pd(e))}function Pc(t){return At(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}function Rk(t,e){const s={};for(const i in t)e.includes(i)||Object.defineProperty(s,i,{enumerable:!0,get:()=>t[i]});return s}let Ia=!0;function rf(t){const e=nd(t),s=t.proxy,i=t.ctx;Ia=!1,e.beforeCreate&&xc(e.beforeCreate,t,"bc");const{data:o,computed:a,methods:l,watch:b,provide:u,inject:f,created:p,beforeMount:g,mounted:y,beforeUpdate:_,updated:z,activated:I,deactivated:$,beforeDestroy:P,beforeUnmount:x,destroyed:G,unmounted:N,render:X,renderTracked:W,renderTriggered:H,errorCaptured:rt,serverPrefetch:st,expose:yt,inheritAttrs:Pt,components:lt,directives:Ct,filters:Yt}=e;if(f&&af(f,i,null),l)for(const jt in l){const Dt=l[jt];Mt(Dt)&&(i[jt]=Dt.bind(s))}if(o){const jt=o.call(s,s);Kt(jt)&&(t.data=Jn(jt))}if(Ia=!0,a)for(const jt in a){const Dt=a[jt],Xt=Mt(Dt)?Dt.bind(s,s):Mt(Dt.get)?Dt.get.bind(s,s):Ms,be=!Mt(Dt)&&Mt(Dt.set)?Dt.set.bind(s):Ms,Pe=ne({get:Xt,set:be});Object.defineProperty(i,jt,{enumerable:!0,configurable:!0,get:()=>Pe.value,set:Jt=>Pe.value=Jt})}if(b)for(const jt in b)id(b[jt],i,s,jt);if(u){const jt=Mt(u)?u.call(s):u;Reflect.ownKeys(jt).forEach(Dt=>{Ro(Dt,jt[Dt])})}p&&xc(p,t,"c");function It(jt,Dt){At(Dt)?Dt.forEach(Xt=>jt(Xt.bind(s))):Dt&&jt(Dt.bind(s))}if(It(Ym,g),It(Yn,y),It(Xm,_),It(Zm,z),It(Wm,I),It(Jm,$),It(nf,rt),It(sf,W),It(ef,H),It(pl,x),It(hl,N),It(tf,st),At(yt))if(yt.length){const jt=t.exposed||(t.exposed={});yt.forEach(Dt=>{Object.defineProperty(jt,Dt,{get:()=>s[Dt],set:Xt=>s[Dt]=Xt,enumerable:!0})})}else t.exposed||(t.exposed={});X&&t.render===Ms&&(t.render=X),Pt!=null&&(t.inheritAttrs=Pt),lt&&(t.components=lt),Ct&&(t.directives=Ct),st&&Jb(t)}function af(t,e,s=Ms){At(t)&&(t=La(t));for(const i in t){const o=t[i];let a;Kt(o)?"default"in o?a=es(o.from||i,o.default,!0):a=es(o.from||i):a=es(o),le(a)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):e[i]=a}}function xc(t,e,s){vs(At(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,s)}function id(t,e,s,i){let o=i.includes(".")?Bb(s,i):()=>s[i];if(ce(t)){const a=e[t];Mt(a)&&Ws(o,a)}else if(Mt(t))Ws(o,t.bind(s));else if(Kt(t))if(At(t))t.forEach(a=>id(a,e,s,i));else{const a=Mt(t.handler)?t.handler.bind(s):e[t.handler];Mt(a)&&Ws(o,a,t)}}function nd(t){const e=t.type,{mixins:s,extends:i}=e,{mixins:o,optionsCache:a,config:{optionMergeStrategies:l}}=t.appContext,b=a.get(e);let u;return b?u=b:!o.length&&!s&&!i?u=e:(u={},o.length&&o.forEach(f=>Go(u,f,l,!0)),Go(u,e,l)),Kt(e)&&a.set(e,u),u}function Go(t,e,s,i=!1){const{mixins:o,extends:a}=e;a&&Go(t,a,s,!0),o&&o.forEach(l=>Go(t,l,s,!0));for(const l in e)if(!(i&&l==="expose")){const b=lf[l]||s&&s[l];t[l]=b?b(t[l],e[l]):e[l]}return t}const lf={data:Ac,props:Cc,emits:Cc,methods:wn,computed:wn,beforeCreate:He,created:He,beforeMount:He,mounted:He,beforeUpdate:He,updated:He,beforeDestroy:He,beforeUnmount:He,destroyed:He,unmounted:He,activated:He,deactivated:He,errorCaptured:He,serverPrefetch:He,components:wn,directives:wn,watch:uf,provide:Ac,inject:cf};function Ac(t,e){return e?t?function(){return Ee(Mt(t)?t.call(this,this):t,Mt(e)?e.call(this,this):e)}:e:t}function cf(t,e){return wn(La(t),La(e))}function La(t){if(At(t)){const e={};for(let s=0;s<t.length;s++)e[t[s]]=t[s];return e}return t}function He(t,e){return t?[...new Set([].concat(t,e))]:e}function wn(t,e){return t?Ee(Object.create(null),t,e):e}function Cc(t,e){return t?At(t)&&At(e)?[...new Set([...t,...e])]:Ee(Object.create(null),Pc(t),Pc(e??{})):e}function uf(t,e){if(!t)return e;if(!e)return t;const s=Ee(Object.create(null),t);for(const i in e)s[i]=He(t[i],e[i]);return s}function od(){return{app:null,config:{isNativeTag:rb,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let bf=0;function df(t,e){return function(i,o=null){Mt(i)||(i=Ee({},i)),o!=null&&!Kt(o)&&(o=null);const a=od(),l=new WeakSet,b=[];let u=!1;const f=a.app={_uid:bf++,_component:i,_props:o,_container:null,_context:a,_instance:null,version:qf,get config(){return a.config},set config(p){},use(p,...g){return l.has(p)||(p&&Mt(p.install)?(l.add(p),p.install(f,...g)):Mt(p)&&(l.add(p),p(f,...g))),f},mixin(p){return a.mixins.includes(p)||a.mixins.push(p),f},component(p,g){return g?(a.components[p]=g,f):a.components[p]},directive(p,g){return g?(a.directives[p]=g,f):a.directives[p]},mount(p,g,y){if(!u){const _=f._ceVNode||oe(i,o);return _.appContext=a,y===!0?y="svg":y===!1&&(y=void 0),t(_,p,y),u=!0,f._container=p,p.__vue_app__=f,Sr(_.component)}},onUnmount(p){b.push(p)},unmount(){u&&(vs(b,f._instance,16),t(null,f._container),delete f._container.__vue_app__)},provide(p,g){return a.provides[p]=g,f},runWithContext(p){const g=Ni;Ni=f;try{return p()}finally{Ni=g}}};return f}}let Ni=null;function Nk(t,e,s=$t){const i=pi(),o=Ve(e),a=Xs(e),l=rd(t,o),b=Am((u,f)=>{let p,g=$t,y;return Um(()=>{const _=t[o];Ie(p,_)&&(p=_,f())}),{get(){return u(),s.get?s.get(p):p},set(_){const z=s.set?s.set(_):_;if(!Ie(z,p)&&!(g!==$t&&Ie(_,g)))return;const I=i.vnode.props;I&&(e in I||o in I||a in I)&&(`onUpdate:${e}`in I||`onUpdate:${o}`in I||`onUpdate:${a}`in I)||(p=_,f()),i.emit(`update:${e}`,z),Ie(_,z)&&Ie(_,g)&&!Ie(z,y)&&f(),g=_,y=z}}});return b[Symbol.iterator]=()=>{let u=0;return{next(){return u<2?{value:u++?l||$t:b,done:!1}:{done:!0}}}},b}const rd=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ve(e)}Modifiers`]||t[`${Xs(e)}Modifiers`];function mf(t,e,...s){if(t.isUnmounted)return;const i=t.vnode.props||$t;let o=s;const a=e.startsWith("update:"),l=a&&rd(i,e.slice(7));l&&(l.trim&&(o=s.map(p=>ce(p)?p.trim():p)),l.number&&(o=s.map(lr)));let b,u=i[b=la(e)]||i[b=la(Ve(e))];!u&&a&&(u=i[b=la(Xs(e))]),u&&vs(u,t,6,o);const f=i[b+"Once"];if(f){if(!t.emitted)t.emitted={};else if(t.emitted[b])return;t.emitted[b]=!0,vs(f,t,6,o)}}const ff=new WeakMap;function ad(t,e,s=!1){const i=s?ff:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const a=t.emits;let l={},b=!1;if(!Mt(t)){const u=f=>{const p=ad(f,e,!0);p&&(b=!0,Ee(l,p))};!s&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}return!a&&!b?(Kt(t)&&i.set(t,null),null):(At(a)?a.forEach(u=>l[u]=null):Ee(l,a),Kt(t)&&i.set(t,l),l)}function kr(t,e){return!t||!ir(e)?!1:(e=e.slice(2).replace(/Once$/,""),Gt(t,e[0].toLowerCase()+e.slice(1))||Gt(t,Xs(e))||Gt(t,e))}function Ec(t){const{type:e,vnode:s,proxy:i,withProxy:o,propsOptions:[a],slots:l,attrs:b,emit:u,render:f,renderCache:p,props:g,data:y,setupState:_,ctx:z,inheritAttrs:I}=t,$=Ko(t);let P,x;try{if(s.shapeFlag&4){const N=o||i,X=N;P=js(f.call(X,N,p,g,_,y,z)),x=b}else{const N=e;P=js(N.length>1?N(g,{attrs:b,slots:l,emit:u}):N(g,null)),x=e.props?b:pf(b)}}catch(N){Mn.length=0,fr(N,t,1),P=oe(qe)}let G=P;if(x&&I!==!1){const N=Object.keys(x),{shapeFlag:X}=G;N.length&&X&7&&(a&&N.some(ol)&&(x=hf(x,a)),G=mi(G,x,!1,!0))}return s.dirs&&(G=mi(G,null,!1,!0),G.dirs=G.dirs?G.dirs.concat(s.dirs):s.dirs),s.transition&&zn(G,s.transition),P=G,Ko($),P}const pf=t=>{let e;for(const s in t)(s==="class"||s==="style"||ir(s))&&((e||(e={}))[s]=t[s]);return e},hf=(t,e)=>{const s={};for(const i in t)(!ol(i)||!(i.slice(9)in e))&&(s[i]=t[i]);return s};function gf(t,e,s){const{props:i,children:o,component:a}=t,{props:l,children:b,patchFlag:u}=e,f=a.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return i?jc(i,l,f):!!l;if(u&8){const p=e.dynamicProps;for(let g=0;g<p.length;g++){const y=p[g];if(ld(l,i,y)&&!kr(f,y))return!0}}}else return(o||b)&&(!b||!b.$stable)?!0:i===l?!1:i?l?jc(i,l,f):!0:!!l;return!1}function jc(t,e,s){const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!0;for(let o=0;o<i.length;o++){const a=i[o];if(ld(e,t,a)&&!kr(s,a))return!0}return!1}function ld(t,e,s){const i=t[s],o=e[s];return s==="style"&&Kt(i)&&Kt(o)?!Wn(i,o):i!==o}function vf({vnode:t,parent:e},s){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===t&&(i.el=t.el),i===t)(t=e.vnode).el=s,e=e.parent;else break}}const cd={},ud=()=>Object.create(cd),bd=t=>Object.getPrototypeOf(t)===cd;function yf(t,e,s,i=!1){const o={},a=ud();t.propsDefaults=Object.create(null),dd(t,e,o,a);for(const l in t.propsOptions[0])l in o||(o[l]=void 0);s?t.props=i?o:jb(o):t.type.props?t.props=o:t.props=a,t.attrs=a}function kf(t,e,s,i){const{props:o,attrs:a,vnode:{patchFlag:l}}=t,b=Bt(o),[u]=t.propsOptions;let f=!1;if((i||l>0)&&!(l&16)){if(l&8){const p=t.vnode.dynamicProps;for(let g=0;g<p.length;g++){let y=p[g];if(kr(t.emitsOptions,y))continue;const _=e[y];if(u)if(Gt(a,y))_!==a[y]&&(a[y]=_,f=!0);else{const z=Ve(y);o[z]=Fa(u,b,z,_,t,!1)}else _!==a[y]&&(a[y]=_,f=!0)}}}else{dd(t,e,o,a)&&(f=!0);let p;for(const g in b)(!e||!Gt(e,g)&&((p=Xs(g))===g||!Gt(e,p)))&&(u?s&&(s[g]!==void 0||s[p]!==void 0)&&(o[g]=Fa(u,b,g,void 0,t,!0)):delete o[g]);if(a!==b)for(const g in a)(!e||!Gt(e,g))&&(delete a[g],f=!0)}f&&$s(t.attrs,"set","")}function dd(t,e,s,i){const[o,a]=t.propsOptions;let l=!1,b;if(e)for(let u in e){if(Pn(u))continue;const f=e[u];let p;o&&Gt(o,p=Ve(u))?!a||!a.includes(p)?s[p]=f:(b||(b={}))[p]=f:kr(t.emitsOptions,u)||(!(u in i)||f!==i[u])&&(i[u]=f,l=!0)}if(a){const u=Bt(s),f=b||$t;for(let p=0;p<a.length;p++){const g=a[p];s[g]=Fa(o,u,g,f[g],t,!Gt(f,g))}}return l}function Fa(t,e,s,i,o,a){const l=t[s];if(l!=null){const b=Gt(l,"default");if(b&&i===void 0){const u=l.default;if(l.type!==Function&&!l.skipFactory&&Mt(u)){const{propsDefaults:f}=o;if(s in f)i=f[s];else{const p=Zn(o);i=f[s]=u.call(null,e),p()}}else i=u;o.ce&&o.ce._setProp(s,i)}l[0]&&(a&&!b?i=!1:l[1]&&(i===""||i===Xs(s))&&(i=!0))}return i}const Sf=new WeakMap;function md(t,e,s=!1){const i=s?Sf:e.propsCache,o=i.get(t);if(o)return o;const a=t.props,l={},b=[];let u=!1;if(!Mt(t)){const p=g=>{u=!0;const[y,_]=md(g,e,!0);Ee(l,y),_&&b.push(..._)};!s&&e.mixins.length&&e.mixins.forEach(p),t.extends&&p(t.extends),t.mixins&&t.mixins.forEach(p)}if(!a&&!u)return Kt(t)&&i.set(t,Yi),Yi;if(At(a))for(let p=0;p<a.length;p++){const g=Ve(a[p]);Mc(g)&&(l[g]=$t)}else if(a)for(const p in a){const g=Ve(p);if(Mc(g)){const y=a[p],_=l[g]=At(y)||Mt(y)?{type:y}:Ee({},y),z=_.type;let I=!1,$=!0;if(At(z))for(let P=0;P<z.length;++P){const x=z[P],G=Mt(x)&&x.name;if(G==="Boolean"){I=!0;break}else G==="String"&&($=!1)}else I=Mt(z)&&z.name==="Boolean";_[0]=I,_[1]=$,(I||Gt(_,"default"))&&b.push(g)}}const f=[l,b];return Kt(t)&&i.set(t,f),f}function Mc(t){return t[0]!=="$"&&!Pn(t)}const vl=t=>t==="_"||t==="_ctx"||t==="$stable",yl=t=>At(t)?t.map(js):[js(t)],Tf=(t,e,s)=>{if(e._n)return e;const i=Fn((...o)=>yl(e(...o)),s);return i._c=!1,i},fd=(t,e,s)=>{const i=t._ctx;for(const o in t){if(vl(o))continue;const a=t[o];if(Mt(a))e[o]=Tf(o,a,i);else if(a!=null){const l=yl(a);e[o]=()=>l}}},pd=(t,e)=>{const s=yl(e);t.slots.default=()=>s},hd=(t,e,s)=>{for(const i in e)(s||!vl(i))&&(t[i]=e[i])},_f=(t,e,s)=>{const i=t.slots=ud();if(t.vnode.shapeFlag&32){const o=e._;o?(hd(i,e,s),s&&ub(i,"_",o,!0)):fd(e,i)}else e&&pd(t,e)},wf=(t,e,s)=>{const{vnode:i,slots:o}=t;let a=!0,l=$t;if(i.shapeFlag&32){const b=e._;b?s&&b===1?a=!1:hd(o,e,s):(a=!e.$stable,fd(e,o)),l=e}else e&&(pd(t,e),l={default:1});if(a)for(const b in o)!vl(b)&&l[b]==null&&delete o[b]},ze=Ef;function Pf(t){return xf(t)}function xf(t,e){const s=cr();s.__VUE__=!0;const{insert:i,remove:o,patchProp:a,createElement:l,createText:b,createComment:u,setText:f,setElementText:p,parentNode:g,nextSibling:y,setScopeId:_=Ms,insertStaticContent:z}=t,I=(S,A,B,Y=null,it=null,et=null,T=void 0,w=null,L=!!A.dynamicChildren)=>{if(S===A)return;S&&!Mi(S,A)&&(Y=tt(S),Jt(S,it,et,!0),S=null),A.patchFlag===-2&&(L=!1,A.dynamicChildren=null);const{type:V,ref:pt,shapeFlag:nt}=A;switch(V){case Xn:$(S,A,B,Y);break;case qe:P(S,A,B,Y);break;case Io:S==null&&x(A,B,Y,T);break;case ke:lt(S,A,B,Y,it,et,T,w,L);break;default:nt&1?X(S,A,B,Y,it,et,T,w,L):nt&6?Ct(S,A,B,Y,it,et,T,w,L):(nt&64||nt&128)&&V.process(S,A,B,Y,it,et,T,w,L,ot)}pt!=null&&it?En(pt,S&&S.ref,et,A||S,!A):pt==null&&S&&S.ref!=null&&En(S.ref,null,et,S,!0)},$=(S,A,B,Y)=>{if(S==null)i(A.el=b(A.children),B,Y);else{const it=A.el=S.el;A.children!==S.children&&f(it,A.children)}},P=(S,A,B,Y)=>{S==null?i(A.el=u(A.children||""),B,Y):A.el=S.el},x=(S,A,B,Y)=>{[S.el,S.anchor]=z(S.children,A,B,Y,S.el,S.anchor)},G=({el:S,anchor:A},B,Y)=>{let it;for(;S&&S!==A;)it=y(S),i(S,B,Y),S=it;i(A,B,Y)},N=({el:S,anchor:A})=>{let B;for(;S&&S!==A;)B=y(S),o(S),S=B;o(A)},X=(S,A,B,Y,it,et,T,w,L)=>{if(A.type==="svg"?T="svg":A.type==="math"&&(T="mathml"),S==null)W(A,B,Y,it,et,T,w,L);else{const V=S.el&&S.el._isVueCE?S.el:null;try{V&&V._beginPatch(),st(S,A,it,et,T,w,L)}finally{V&&V._endPatch()}}},W=(S,A,B,Y,it,et,T,w)=>{let L,V;const{props:pt,shapeFlag:nt,transition:F,dirs:Q}=S;if(L=S.el=l(S.type,et,pt&&pt.is,pt),nt&8?p(L,S.children):nt&16&&rt(S.children,L,null,Y,it,pa(S,et),T,w),Q&&Pi(S,null,Y,"created"),H(L,S,S.scopeId,T,Y),pt){for(const wt in pt)wt!=="value"&&!Pn(wt)&&a(L,wt,null,pt[wt],et,Y);"value"in pt&&a(L,"value",null,pt.value,et),(V=pt.onVnodeBeforeMount)&&Ps(V,Y,S)}Q&&Pi(S,null,Y,"beforeMount");const ft=Af(it,F);ft&&F.beforeEnter(L),i(L,A,B),((V=pt&&pt.onVnodeMounted)||ft||Q)&&ze(()=>{V&&Ps(V,Y,S),ft&&F.enter(L),Q&&Pi(S,null,Y,"mounted")},it)},H=(S,A,B,Y,it)=>{if(B&&_(S,B),Y)for(let et=0;et<Y.length;et++)_(S,Y[et]);if(it){let et=it.subTree;if(A===et||yd(et.type)&&(et.ssContent===A||et.ssFallback===A)){const T=it.vnode;H(S,T,T.scopeId,T.slotScopeIds,it.parent)}}},rt=(S,A,B,Y,it,et,T,w,L=0)=>{for(let V=L;V<S.length;V++){const pt=S[V]=w?qs(S[V]):js(S[V]);I(null,pt,A,B,Y,it,et,T,w)}},st=(S,A,B,Y,it,et,T)=>{const w=A.el=S.el;let{patchFlag:L,dynamicChildren:V,dirs:pt}=A;L|=S.patchFlag&16;const nt=S.props||$t,F=A.props||$t;let Q;if(B&&xi(B,!1),(Q=F.onVnodeBeforeUpdate)&&Ps(Q,B,A,S),pt&&Pi(A,S,B,"beforeUpdate"),B&&xi(B,!0),(nt.innerHTML&&F.innerHTML==null||nt.textContent&&F.textContent==null)&&p(w,""),V?yt(S.dynamicChildren,V,w,B,Y,pa(A,it),et):T||Dt(S,A,w,null,B,Y,pa(A,it),et,!1),L>0){if(L&16)Pt(w,nt,F,B,it);else if(L&2&&nt.class!==F.class&&a(w,"class",null,F.class,it),L&4&&a(w,"style",nt.style,F.style,it),L&8){const ft=A.dynamicProps;for(let wt=0;wt<ft.length;wt++){const Rt=ft[wt],ee=nt[Rt],se=F[Rt];(se!==ee||Rt==="value")&&a(w,Rt,ee,se,it,B)}}L&1&&S.children!==A.children&&p(w,A.children)}else!T&&V==null&&Pt(w,nt,F,B,it);((Q=F.onVnodeUpdated)||pt)&&ze(()=>{Q&&Ps(Q,B,A,S),pt&&Pi(A,S,B,"updated")},Y)},yt=(S,A,B,Y,it,et,T)=>{for(let w=0;w<A.length;w++){const L=S[w],V=A[w],pt=L.el&&(L.type===ke||!Mi(L,V)||L.shapeFlag&198)?g(L.el):B;I(L,V,pt,null,Y,it,et,T,!0)}},Pt=(S,A,B,Y,it)=>{if(A!==B){if(A!==$t)for(const et in A)!Pn(et)&&!(et in B)&&a(S,et,A[et],null,it,Y);for(const et in B){if(Pn(et))continue;const T=B[et],w=A[et];T!==w&&et!=="value"&&a(S,et,w,T,it,Y)}"value"in B&&a(S,"value",A.value,B.value,it)}},lt=(S,A,B,Y,it,et,T,w,L)=>{const V=A.el=S?S.el:b(""),pt=A.anchor=S?S.anchor:b("");let{patchFlag:nt,dynamicChildren:F,slotScopeIds:Q}=A;Q&&(w=w?w.concat(Q):Q),S==null?(i(V,B,Y),i(pt,B,Y),rt(A.children||[],B,pt,it,et,T,w,L)):nt>0&&nt&64&&F&&S.dynamicChildren&&S.dynamicChildren.length===F.length?(yt(S.dynamicChildren,F,B,it,et,T,w),(A.key!=null||it&&A===it.subTree)&&kl(S,A,!0)):Dt(S,A,B,pt,it,et,T,w,L)},Ct=(S,A,B,Y,it,et,T,w,L)=>{A.slotScopeIds=w,S==null?A.shapeFlag&512?it.ctx.activate(A,B,Y,T,L):Yt(A,B,Y,it,et,T,L):ue(S,A,L)},Yt=(S,A,B,Y,it,et,T)=>{const w=S.component=If(S,Y,it);if(gr(S)&&(w.ctx.renderer=ot),Lf(w,!1,T),w.asyncDep){if(it&&it.registerDep(w,It,T),!S.el){const L=w.subTree=oe(qe);P(null,L,A,B),S.placeholder=L.el}}else It(w,S,A,B,it,et,T)},ue=(S,A,B)=>{const Y=A.component=S.component;if(gf(S,A,B))if(Y.asyncDep&&!Y.asyncResolved){jt(Y,A,B);return}else Y.next=A,Y.update();else A.el=S.el,Y.vnode=A},It=(S,A,B,Y,it,et,T)=>{const w=()=>{if(S.isMounted){let{next:nt,bu:F,u:Q,parent:ft,vnode:wt}=S;{const xe=gd(S);if(xe){nt&&(nt.el=wt.el,jt(S,nt,T)),xe.asyncDep.then(()=>{ze(()=>{S.isUnmounted||V()},it)});return}}let Rt=nt,ee;xi(S,!1),nt?(nt.el=wt.el,jt(S,nt,T)):nt=wt,F&&Oo(F),(ee=nt.props&&nt.props.onVnodeBeforeUpdate)&&Ps(ee,ft,nt,wt),xi(S,!0);const se=Ec(S),Ne=S.subTree;S.subTree=se,I(Ne,se,g(Ne.el),tt(Ne),S,it,et),nt.el=se.el,Rt===null&&vf(S,se.el),Q&&ze(Q,it),(ee=nt.props&&nt.props.onVnodeUpdated)&&ze(()=>Ps(ee,ft,nt,wt),it)}else{let nt;const{el:F,props:Q}=A,{bm:ft,m:wt,parent:Rt,root:ee,type:se}=S,Ne=tn(A);xi(S,!1),ft&&Oo(ft),!Ne&&(nt=Q&&Q.onVnodeBeforeMount)&&Ps(nt,Rt,A),xi(S,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(se,S.parent?S.parent.type:void 0);const xe=S.subTree=Ec(S);I(null,xe,B,Y,S,it,et),A.el=xe.el}if(wt&&ze(wt,it),!Ne&&(nt=Q&&Q.onVnodeMounted)){const xe=A;ze(()=>Ps(nt,Rt,xe),it)}(A.shapeFlag&256||Rt&&tn(Rt.vnode)&&Rt.vnode.shapeFlag&256)&&S.a&&ze(S.a,it),S.isMounted=!0,A=B=Y=null}};S.scope.on();const L=S.effect=new hb(w);S.scope.off();const V=S.update=L.run.bind(L),pt=S.job=L.runIfDirty.bind(L);pt.i=S,pt.id=S.uid,L.scheduler=()=>fl(pt),xi(S,!0),V()},jt=(S,A,B)=>{A.component=S;const Y=S.vnode.props;S.vnode=A,S.next=null,kf(S,A.props,Y,B),wf(S,A.children,B),Js(),hc(S),Qs()},Dt=(S,A,B,Y,it,et,T,w,L=!1)=>{const V=S&&S.children,pt=S?S.shapeFlag:0,nt=A.children,{patchFlag:F,shapeFlag:Q}=A;if(F>0){if(F&128){be(V,nt,B,Y,it,et,T,w,L);return}else if(F&256){Xt(V,nt,B,Y,it,et,T,w,L);return}}Q&8?(pt&16&&Se(V,it,et),nt!==V&&p(B,nt)):pt&16?Q&16?be(V,nt,B,Y,it,et,T,w,L):Se(V,it,et,!0):(pt&8&&p(B,""),Q&16&&rt(nt,B,Y,it,et,T,w,L))},Xt=(S,A,B,Y,it,et,T,w,L)=>{S=S||Yi,A=A||Yi;const V=S.length,pt=A.length,nt=Math.min(V,pt);let F;for(F=0;F<nt;F++){const Q=A[F]=L?qs(A[F]):js(A[F]);I(S[F],Q,B,null,it,et,T,w,L)}V>pt?Se(S,it,et,!0,!1,nt):rt(A,B,Y,it,et,T,w,L,nt)},be=(S,A,B,Y,it,et,T,w,L)=>{let V=0;const pt=A.length;let nt=S.length-1,F=pt-1;for(;V<=nt&&V<=F;){const Q=S[V],ft=A[V]=L?qs(A[V]):js(A[V]);if(Mi(Q,ft))I(Q,ft,B,null,it,et,T,w,L);else break;V++}for(;V<=nt&&V<=F;){const Q=S[nt],ft=A[F]=L?qs(A[F]):js(A[F]);if(Mi(Q,ft))I(Q,ft,B,null,it,et,T,w,L);else break;nt--,F--}if(V>nt){if(V<=F){const Q=F+1,ft=Q<pt?A[Q].el:Y;for(;V<=F;)I(null,A[V]=L?qs(A[V]):js(A[V]),B,ft,it,et,T,w,L),V++}}else if(V>F)for(;V<=nt;)Jt(S[V],it,et,!0),V++;else{const Q=V,ft=V,wt=new Map;for(V=ft;V<=F;V++){const ge=A[V]=L?qs(A[V]):js(A[V]);ge.key!=null&&wt.set(ge.key,V)}let Rt,ee=0;const se=F-ft+1;let Ne=!1,xe=0;const Ss=new Array(se);for(V=0;V<se;V++)Ss[V]=0;for(V=Q;V<=nt;V++){const ge=S[V];if(ee>=se){Jt(ge,it,et,!0);continue}let kt;if(ge.key!=null)kt=wt.get(ge.key);else for(Rt=ft;Rt<=F;Rt++)if(Ss[Rt-ft]===0&&Mi(ge,A[Rt])){kt=Rt;break}kt===void 0?Jt(ge,it,et,!0):(Ss[kt-ft]=V+1,kt>=xe?xe=kt:Ne=!0,I(ge,A[kt],B,null,it,et,T,w,L),ee++)}const Ii=Ne?Cf(Ss):Yi;for(Rt=Ii.length-1,V=se-1;V>=0;V--){const ge=ft+V,kt=A[ge],ti=A[ge+1],Ts=ge+1<pt?ti.el||vd(ti):Y;Ss[V]===0?I(null,kt,B,Ts,it,et,T,w,L):Ne&&(Rt<0||V!==Ii[Rt]?Pe(kt,B,Ts,2):Rt--)}}},Pe=(S,A,B,Y,it=null)=>{const{el:et,type:T,transition:w,children:L,shapeFlag:V}=S;if(V&6){Pe(S.component.subTree,A,B,Y);return}if(V&128){S.suspense.move(A,B,Y);return}if(V&64){T.move(S,A,B,ot);return}if(T===ke){i(et,A,B);for(let nt=0;nt<L.length;nt++)Pe(L[nt],A,B,Y);i(S.anchor,A,B);return}if(T===Io){G(S,A,B);return}if(Y!==2&&V&1&&w)if(Y===0)w.beforeEnter(et),i(et,A,B),ze(()=>w.enter(et),it);else{const{leave:nt,delayLeave:F,afterLeave:Q}=w,ft=()=>{S.ctx.isUnmounted?o(et):i(et,A,B)},wt=()=>{et._isLeaving&&et[Cs](!0),nt(et,()=>{ft(),Q&&Q()})};F?F(et,ft,wt):wt()}else i(et,A,B)},Jt=(S,A,B,Y=!1,it=!1)=>{const{type:et,props:T,ref:w,children:L,dynamicChildren:V,shapeFlag:pt,patchFlag:nt,dirs:F,cacheIndex:Q}=S;if(nt===-2&&(it=!1),w!=null&&(Js(),En(w,null,B,S,!0),Qs()),Q!=null&&(A.renderCache[Q]=void 0),pt&256){A.ctx.deactivate(S);return}const ft=pt&1&&F,wt=!tn(S);let Rt;if(wt&&(Rt=T&&T.onVnodeBeforeUnmount)&&Ps(Rt,A,S),pt&6)Ye(S.component,B,Y);else{if(pt&128){S.suspense.unmount(B,Y);return}ft&&Pi(S,null,A,"beforeUnmount"),pt&64?S.type.remove(S,A,B,ot,Y):V&&!V.hasOnce&&(et!==ke||nt>0&&nt&64)?Se(V,A,B,!1,!0):(et===ke&&nt&384||!it&&pt&16)&&Se(L,A,B),Y&&ss(S)}(wt&&(Rt=T&&T.onVnodeUnmounted)||ft)&&ze(()=>{Rt&&Ps(Rt,A,S),ft&&Pi(S,null,A,"unmounted")},B)},ss=S=>{const{type:A,el:B,anchor:Y,transition:it}=S;if(A===ke){Re(B,Y);return}if(A===Io){N(S);return}const et=()=>{o(B),it&&!it.persisted&&it.afterLeave&&it.afterLeave()};if(S.shapeFlag&1&&it&&!it.persisted){const{leave:T,delayLeave:w}=it,L=()=>T(B,et);w?w(S.el,et,L):L()}else et()},Re=(S,A)=>{let B;for(;S!==A;)B=y(S),o(S),S=B;o(A)},Ye=(S,A,B)=>{const{bum:Y,scope:it,job:et,subTree:T,um:w,m:L,a:V}=S;Dc(L),Dc(V),Y&&Oo(Y),it.stop(),et&&(et.flags|=8,Jt(T,S,A,B)),w&&ze(w,A),ze(()=>{S.isUnmounted=!0},A)},Se=(S,A,B,Y=!1,it=!1,et=0)=>{for(let T=et;T<S.length;T++)Jt(S[T],A,B,Y,it)},tt=S=>{if(S.shapeFlag&6)return tt(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const A=y(S.anchor||S.el),B=A&&A[Ub];return B?y(B):A};let gt=!1;const mt=(S,A,B)=>{let Y;S==null?A._vnode&&(Jt(A._vnode,null,null,!0),Y=A._vnode.component):I(A._vnode||null,S,A,null,null,null,B),A._vnode=S,gt||(gt=!0,hc(Y),Lb(),gt=!1)},ot={p:I,um:Jt,m:Pe,r:ss,mt:Yt,mc:rt,pc:Dt,pbc:yt,n:tt,o:t};return{render:mt,hydrate:void 0,createApp:df(mt)}}function pa({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function xi({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Af(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function kl(t,e,s=!1){const i=t.children,o=e.children;if(At(i)&&At(o))for(let a=0;a<i.length;a++){const l=i[a];let b=o[a];b.shapeFlag&1&&!b.dynamicChildren&&((b.patchFlag<=0||b.patchFlag===32)&&(b=o[a]=qs(o[a]),b.el=l.el),!s&&b.patchFlag!==-2&&kl(l,b)),b.type===Xn&&(b.patchFlag===-1&&(b=o[a]=qs(b)),b.el=l.el),b.type===qe&&!b.el&&(b.el=l.el)}}function Cf(t){const e=t.slice(),s=[0];let i,o,a,l,b;const u=t.length;for(i=0;i<u;i++){const f=t[i];if(f!==0){if(o=s[s.length-1],t[o]<f){e[i]=o,s.push(i);continue}for(a=0,l=s.length-1;a<l;)b=a+l>>1,t[s[b]]<f?a=b+1:l=b;f<t[s[a]]&&(a>0&&(e[i]=s[a-1]),s[a]=i)}}for(a=s.length,l=s[a-1];a-- >0;)s[a]=l,l=e[l];return s}function gd(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:gd(e)}function Dc(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}function vd(t){if(t.placeholder)return t.placeholder;const e=t.component;return e?vd(e.subTree):null}const yd=t=>t.__isSuspense;function Ef(t,e){e&&e.pendingBranch?At(t)?e.effects.push(...t):e.effects.push(t):Lm(t)}const ke=Symbol.for("v-fgt"),Xn=Symbol.for("v-txt"),qe=Symbol.for("v-cmt"),Io=Symbol.for("v-stc"),Mn=[];let Qe=null;function me(t=!1){Mn.push(Qe=t?null:[])}function jf(){Mn.pop(),Qe=Mn[Mn.length-1]||null}let nn=1;function Wo(t,e=!1){nn+=t,t<0&&Qe&&e&&(Qe.hasOnce=!0)}function kd(t){return t.dynamicChildren=nn>0?Qe||Yi:null,jf(),nn>0&&Qe&&Qe.push(t),t}function rs(t,e,s,i,o,a){return kd(Et(t,e,s,i,o,a,!0))}function ps(t,e,s,i,o){return kd(oe(t,e,s,i,o,!0))}function Bn(t){return t?t.__v_isVNode===!0:!1}function Mi(t,e){return t.type===e.type&&t.key===e.key}const Sd=({key:t})=>t??null,Lo=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?ce(t)||le(t)||Mt(t)?{i:Le,r:t,k:e,f:!!s}:t:null);function Et(t,e=null,s=null,i=0,o=null,a=t===ke?0:1,l=!1,b=!1){const u={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Sd(e),ref:e&&Lo(e),scopeId:zb,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Le};return b?(Sl(u,s),a&128&&t.normalize(u)):s&&(u.shapeFlag|=ce(s)?8:16),nn>0&&!l&&Qe&&(u.patchFlag>0||a&6)&&u.patchFlag!==32&&Qe.push(u),u}const oe=Mf;function Mf(t,e=null,s=null,i=0,o=null,a=!1){if((!t||t===Xb)&&(t=qe),Bn(t)){const b=mi(t,e,!0);return s&&Sl(b,s),nn>0&&!a&&Qe&&(b.shapeFlag&6?Qe[Qe.indexOf(t)]=b:Qe.push(b)),b.patchFlag=-2,b}if(Uf(t)&&(t=t.__vccOpts),e){e=Df(e);let{class:b,style:u}=e;b&&!ce(b)&&(e.class=ls(b)),Kt(u)&&(mr(u)&&!At(u)&&(u=Ee({},u)),e.style=ur(u))}const l=ce(t)?1:yd(t)?128:qb(t)?64:Kt(t)?4:Mt(t)?2:0;return Et(t,e,s,i,o,l,a,!0)}function Df(t){return t?mr(t)||bd(t)?Ee({},t):t:null}function mi(t,e,s=!1,i=!1){const{props:o,ref:a,patchFlag:l,children:b,transition:u}=t,f=e?Of(o||{},e):o,p={__v_isVNode:!0,__v_skip:!0,type:t.type,props:f,key:f&&Sd(f),ref:e&&e.ref?s&&a?At(a)?a.concat(Lo(e)):[a,Lo(e)]:Lo(e):a,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:b,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==ke?l===-1?16:l|16:l,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:u,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&mi(t.ssContent),ssFallback:t.ssFallback&&mi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return u&&i&&zn(p,u.clone(p)),p}function Dn(t=" ",e=0){return oe(Xn,null,t,e)}function Ik(t,e){const s=oe(Io,null,t);return s.staticCount=e,s}function Td(t="",e=!1){return e?(me(),ps(qe,null,t)):oe(qe,null,t)}function js(t){return t==null||typeof t=="boolean"?oe(qe):At(t)?oe(ke,null,t.slice()):Bn(t)?qs(t):oe(Xn,null,String(t))}function qs(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:mi(t)}function Sl(t,e){let s=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(At(e))s=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),Sl(t,o()),o._c&&(o._d=!0));return}else{s=32;const o=e._;!o&&!bd(e)?e._ctx=Le:o===3&&Le&&(Le.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Mt(e)?(e={default:e,_ctx:Le},s=32):(e=String(e),i&64?(s=16,e=[Dn(e)]):s=8);t.children=e,t.shapeFlag|=s}function Of(...t){const e={};for(let s=0;s<t.length;s++){const i=t[s];for(const o in i)if(o==="class")e.class!==i.class&&(e.class=ls([e.class,i.class]));else if(o==="style")e.style=ur([e.style,i.style]);else if(ir(o)){const a=e[o],l=i[o];l&&a!==l&&!(At(a)&&a.includes(l))&&(e[o]=a?[].concat(a,l):l)}else o!==""&&(e[o]=i[o])}return e}function Ps(t,e,s,i=null){vs(t,e,7,[s,i])}const Rf=od();let Nf=0;function If(t,e,s){const i=t.type,o=(e?e.appContext:t.appContext)||Rf,a={uid:Nf++,vnode:t,type:i,parent:e,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new fb(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(o.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:md(i,o),emitsOptions:ad(i,o),emit:null,emitted:null,propsDefaults:$t,inheritAttrs:i.inheritAttrs,ctx:$t,data:$t,props:$t,attrs:$t,slots:$t,refs:$t,setupState:$t,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=e?e.root:a,a.emit=mf.bind(null,a),t.ce&&t.ce(a),a}let $e=null;const pi=()=>$e||Le;let Jo,za;{const t=cr(),e=(s,i)=>{let o;return(o=t[s])||(o=t[s]=[]),o.push(i),a=>{o.length>1?o.forEach(l=>l(a)):o[0](a)}};Jo=e("__VUE_INSTANCE_SETTERS__",s=>$e=s),za=e("__VUE_SSR_SETTERS__",s=>Un=s)}const Zn=t=>{const e=$e;return Jo(t),t.scope.on(),()=>{t.scope.off(),Jo(e)}},Oc=()=>{$e&&$e.scope.off(),Jo(null)};function _d(t){return t.vnode.shapeFlag&4}let Un=!1;function Lf(t,e=!1,s=!1){e&&za(e);const{props:i,children:o}=t.vnode,a=_d(t);yf(t,i,a,e),_f(t,o,s||e);const l=a?Ff(t,e):void 0;return e&&za(!1),l}function Ff(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,of);const{setup:i}=s;if(i){Js();const o=t.setupContext=i.length>1?Pd(t):null,a=Zn(t),l=Qn(i,t,0,[t.props,o]),b=ab(l);if(Qs(),a(),(b||t.sp)&&!tn(t)&&Jb(t),b){if(l.then(Oc,Oc),e)return l.then(u=>{Rc(t,u)}).catch(u=>{fr(u,t,0)});t.asyncDep=l}else Rc(t,l)}else wd(t)}function Rc(t,e,s){Mt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Kt(e)&&(t.setupState=Ob(e)),wd(t)}function wd(t,e,s){const i=t.type;t.render||(t.render=i.render||Ms);{const o=Zn(t);Js();try{rf(t)}finally{Qs(),o()}}}const zf={get(t,e){return Ue(t,"get",""),t[e]}};function Pd(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,zf),slots:t.slots,emit:t.emit,expose:e}}function Sr(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Ob(ml(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in jn)return jn[s](t)},has(e,s){return s in e||s in jn}})):t.proxy}function Bf(t,e=!0){return Mt(t)?t.displayName||t.name:t.name||e&&t.__name}function Uf(t){return Mt(t)&&"__vccOpts"in t}const ne=(t,e)=>Dm(t,e,Un);function fi(t,e,s){try{Wo(-1);const i=arguments.length;return i===2?Kt(e)&&!At(e)?Bn(e)?oe(t,null,[e]):oe(t,e):oe(t,null,e):(i>3?s=Array.prototype.slice.call(arguments,2):i===3&&Bn(s)&&(s=[s]),oe(t,e,s))}finally{Wo(1)}}function Lk(t,e){const s=t.memo;if(s.length!=e.length)return!1;for(let i=0;i<s.length;i++)if(Ie(s[i],e[i]))return!1;return nn>0&&Qe&&Qe.push(t),!0}const qf="3.5.30";let Ba;const Nc=typeof window<"u"&&window.trustedTypes;if(Nc)try{Ba=Nc.createPolicy("vue",{createHTML:t=>t})}catch{}const xd=Ba?t=>Ba.createHTML(t):t=>t,$f="http://www.w3.org/2000/svg",Vf="http://www.w3.org/1998/Math/MathML",Bs=typeof document<"u"?document:null,Ic=Bs&&Bs.createElement("template"),Kf={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,i)=>{const o=e==="svg"?Bs.createElementNS($f,t):e==="mathml"?Bs.createElementNS(Vf,t):s?Bs.createElement(t,{is:s}):Bs.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>Bs.createTextNode(t),createComment:t=>Bs.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Bs.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,i,o,a){const l=s?s.previousSibling:e.lastChild;if(o&&(o===a||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),s),!(o===a||!(o=o.nextSibling)););else{Ic.innerHTML=xd(i==="svg"?`<svg>${t}</svg>`:i==="mathml"?`<math>${t}</math>`:t);const b=Ic.content;if(i==="svg"||i==="mathml"){const u=b.firstChild;for(;u.firstChild;)b.appendChild(u.firstChild);b.removeChild(u)}e.insertBefore(b,s)}return[l?l.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},ai="transition",yn="animation",qn=Symbol("_vtc"),Ad={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Hf=Ee({},Vb,Ad),Gf=t=>(t.displayName="Transition",t.props=Hf,t),Wf=Gf((t,{slots:e})=>fi(Gm,Jf(t),e)),Ai=(t,e=[])=>{At(t)?t.forEach(s=>s(...e)):t&&t(...e)},Lc=t=>t?At(t)?t.some(e=>e.length>1):t.length>1:!1;function Jf(t){const e={};for(const lt in t)lt in Ad||(e[lt]=t[lt]);if(t.css===!1)return e;const{name:s="v",type:i,duration:o,enterFromClass:a=`${s}-enter-from`,enterActiveClass:l=`${s}-enter-active`,enterToClass:b=`${s}-enter-to`,appearFromClass:u=a,appearActiveClass:f=l,appearToClass:p=b,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:y=`${s}-leave-active`,leaveToClass:_=`${s}-leave-to`}=t,z=Qf(o),I=z&&z[0],$=z&&z[1],{onBeforeEnter:P,onEnter:x,onEnterCancelled:G,onLeave:N,onLeaveCancelled:X,onBeforeAppear:W=P,onAppear:H=x,onAppearCancelled:rt=G}=e,st=(lt,Ct,Yt,ue)=>{lt._enterCancelled=ue,Ci(lt,Ct?p:b),Ci(lt,Ct?f:l),Yt&&Yt()},yt=(lt,Ct)=>{lt._isLeaving=!1,Ci(lt,g),Ci(lt,_),Ci(lt,y),Ct&&Ct()},Pt=lt=>(Ct,Yt)=>{const ue=lt?H:x,It=()=>st(Ct,lt,Yt);Ai(ue,[Ct,It]),Fc(()=>{Ci(Ct,lt?u:a),Ls(Ct,lt?p:b),Lc(ue)||zc(Ct,i,I,It)})};return Ee(e,{onBeforeEnter(lt){Ai(P,[lt]),Ls(lt,a),Ls(lt,l)},onBeforeAppear(lt){Ai(W,[lt]),Ls(lt,u),Ls(lt,f)},onEnter:Pt(!1),onAppear:Pt(!0),onLeave(lt,Ct){lt._isLeaving=!0;const Yt=()=>yt(lt,Ct);Ls(lt,g),lt._enterCancelled?(Ls(lt,y),qc(lt)):(qc(lt),Ls(lt,y)),Fc(()=>{lt._isLeaving&&(Ci(lt,g),Ls(lt,_),Lc(N)||zc(lt,i,$,Yt))}),Ai(N,[lt,Yt])},onEnterCancelled(lt){st(lt,!1,void 0,!0),Ai(G,[lt])},onAppearCancelled(lt){st(lt,!0,void 0,!0),Ai(rt,[lt])},onLeaveCancelled(lt){yt(lt),Ai(X,[lt])}})}function Qf(t){if(t==null)return null;if(Kt(t))return[ha(t.enter),ha(t.leave)];{const e=ha(t);return[e,e]}}function ha(t){return J0(t)}function Ls(t,e){e.split(/\s+/).forEach(s=>s&&t.classList.add(s)),(t[qn]||(t[qn]=new Set)).add(e)}function Ci(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const s=t[qn];s&&(s.delete(e),s.size||(t[qn]=void 0))}function Fc(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let Yf=0;function zc(t,e,s,i){const o=t._endId=++Yf,a=()=>{o===t._endId&&i()};if(s!=null)return setTimeout(a,s);const{type:l,timeout:b,propCount:u}=Xf(t,e);if(!l)return i();const f=l+"end";let p=0;const g=()=>{t.removeEventListener(f,y),a()},y=_=>{_.target===t&&++p>=u&&g()};setTimeout(()=>{p<u&&g()},b+1),t.addEventListener(f,y)}function Xf(t,e){const s=window.getComputedStyle(t),i=z=>(s[z]||"").split(", "),o=i(`${ai}Delay`),a=i(`${ai}Duration`),l=Bc(o,a),b=i(`${yn}Delay`),u=i(`${yn}Duration`),f=Bc(b,u);let p=null,g=0,y=0;e===ai?l>0&&(p=ai,g=l,y=a.length):e===yn?f>0&&(p=yn,g=f,y=u.length):(g=Math.max(l,f),p=g>0?l>f?ai:yn:null,y=p?p===ai?a.length:u.length:0);const _=p===ai&&/\b(?:transform|all)(?:,|$)/.test(i(`${ai}Property`).toString());return{type:p,timeout:g,propCount:y,hasTransform:_}}function Bc(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max(...e.map((s,i)=>Uc(s)+Uc(t[i])))}function Uc(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function qc(t){return(t?t.ownerDocument:document).body.offsetHeight}function Zf(t,e,s){const i=t[qn];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const Qo=Symbol("_vod"),Cd=Symbol("_vsh"),Fk={name:"show",beforeMount(t,{value:e},{transition:s}){t[Qo]=t.style.display==="none"?"":t.style.display,s&&e?s.beforeEnter(t):kn(t,e)},mounted(t,{value:e},{transition:s}){s&&e&&s.enter(t)},updated(t,{value:e,oldValue:s},{transition:i}){!e!=!s&&(i?e?(i.beforeEnter(t),kn(t,!0),i.enter(t)):i.leave(t,()=>{kn(t,!1)}):kn(t,e))},beforeUnmount(t,{value:e}){kn(t,e)}};function kn(t,e){t.style.display=e?t[Qo]:"none",t[Cd]=!e}const tp=Symbol(""),ep=/(?:^|;)\s*display\s*:/;function sp(t,e,s){const i=t.style,o=ce(s);let a=!1;if(s&&!o){if(e)if(ce(e))for(const l of e.split(";")){const b=l.slice(0,l.indexOf(":")).trim();s[b]==null&&Fo(i,b,"")}else for(const l in e)s[l]==null&&Fo(i,l,"");for(const l in s)l==="display"&&(a=!0),Fo(i,l,s[l])}else if(o){if(e!==s){const l=i[tp];l&&(s+=";"+l),i.cssText=s,a=ep.test(s)}}else e&&t.removeAttribute("style");Qo in t&&(t[Qo]=a?i.display:"",t[Cd]&&(i.display="none"))}const $c=/\s*!important$/;function Fo(t,e,s){if(At(s))s.forEach(i=>Fo(t,e,i));else if(s==null&&(s=""),e.startsWith("--"))t.setProperty(e,s);else{const i=ip(t,e);$c.test(s)?t.setProperty(Xs(i),s.replace($c,""),"important"):t[i]=s}}const Vc=["Webkit","Moz","ms"],ga={};function ip(t,e){const s=ga[e];if(s)return s;let i=Ve(e);if(i!=="filter"&&i in t)return ga[e]=i;i=ar(i);for(let o=0;o<Vc.length;o++){const a=Vc[o]+i;if(a in t)return ga[e]=a}return e}const Kc="http://www.w3.org/1999/xlink";function Hc(t,e,s,i,o,a=em(e)){i&&e.startsWith("xlink:")?s==null?t.removeAttributeNS(Kc,e.slice(6,e.length)):t.setAttributeNS(Kc,e,s):s==null||a&&!bb(s)?t.removeAttribute(e):t.setAttribute(e,a?"":hs(s)?String(s):s)}function Gc(t,e,s,i,o){if(e==="innerHTML"||e==="textContent"){s!=null&&(t[e]=e==="innerHTML"?xd(s):s);return}const a=t.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){const b=a==="OPTION"?t.getAttribute("value")||"":t.value,u=s==null?t.type==="checkbox"?"on":"":String(s);(b!==u||!("_value"in t))&&(t.value=u),s==null&&t.removeAttribute(e),t._value=s;return}let l=!1;if(s===""||s==null){const b=typeof t[e];b==="boolean"?s=bb(s):s==null&&b==="string"?(s="",l=!0):b==="number"&&(s=0,l=!0)}try{t[e]=s}catch{}l&&t.removeAttribute(o||e)}function Di(t,e,s,i){t.addEventListener(e,s,i)}function np(t,e,s,i){t.removeEventListener(e,s,i)}const Wc=Symbol("_vei");function op(t,e,s,i,o=null){const a=t[Wc]||(t[Wc]={}),l=a[e];if(i&&l)l.value=i;else{const[b,u]=rp(e);if(i){const f=a[e]=cp(i,o);Di(t,b,f,u)}else l&&(np(t,b,l,u),a[e]=void 0)}}const Jc=/(?:Once|Passive|Capture)$/;function rp(t){let e;if(Jc.test(t)){e={};let i;for(;i=t.match(Jc);)t=t.slice(0,t.length-i[0].length),e[i[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):Xs(t.slice(2)),e]}let va=0;const ap=Promise.resolve(),lp=()=>va||(ap.then(()=>va=0),va=Date.now());function cp(t,e){const s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;vs(up(i,s.value),e,5,[i])};return s.value=t,s.attached=lp(),s}function up(t,e){if(At(e)){const s=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{s.call(t),t._stopped=!0},e.map(i=>o=>!o._stopped&&i&&i(o))}else return e}const Qc=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,bp=(t,e,s,i,o,a)=>{const l=o==="svg";e==="class"?Zf(t,i,l):e==="style"?sp(t,s,i):ir(e)?ol(e)||op(t,e,s,i,a):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):dp(t,e,i,l))?(Gc(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Hc(t,e,i,l,a,e!=="value")):t._isVueCE&&(mp(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!ce(i)))?Gc(t,Ve(e),i,a,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Hc(t,e,i,l))};function dp(t,e,s,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Qc(e)&&Mt(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Qc(e)&&ce(s)?!1:e in t}function mp(t,e){const s=t._def.props;if(!s)return!1;const i=Ve(e);return Array.isArray(s)?s.some(o=>Ve(o)===i):Object.keys(s).some(o=>Ve(o)===i)}const Yo=t=>{const e=t.props["onUpdate:modelValue"]||!1;return At(e)?s=>Oo(e,s):e};function fp(t){t.target.composing=!0}function Yc(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const en=Symbol("_assign");function Xc(t,e,s){return e&&(t=t.trim()),s&&(t=lr(t)),t}const Zc={created(t,{modifiers:{lazy:e,trim:s,number:i}},o){t[en]=Yo(o);const a=i||o.props&&o.props.type==="number";Di(t,e?"change":"input",l=>{l.target.composing||t[en](Xc(t.value,s,a))}),(s||a)&&Di(t,"change",()=>{t.value=Xc(t.value,s,a)}),e||(Di(t,"compositionstart",fp),Di(t,"compositionend",Yc),Di(t,"change",Yc))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:s,modifiers:{lazy:i,trim:o,number:a}},l){if(t[en]=Yo(l),t.composing)return;const b=(a||t.type==="number")&&!/^0\d/.test(t.value)?lr(t.value):t.value,u=e??"";b!==u&&(document.activeElement===t&&t.type!=="range"&&(i&&e===s||o&&t.value.trim()===u)||(t.value=u))}},zk={deep:!0,created(t,{value:e,modifiers:{number:s}},i){const o=nr(e);Di(t,"change",()=>{const a=Array.prototype.filter.call(t.options,l=>l.selected).map(l=>s?lr(Xo(l)):Xo(l));t[en](t.multiple?o?new Set(a):a:a[0]),t._assigning=!0,pr(()=>{t._assigning=!1})}),t[en]=Yo(i)},mounted(t,{value:e}){tu(t,e)},beforeUpdate(t,e,s){t[en]=Yo(s)},updated(t,{value:e}){t._assigning||tu(t,e)}};function tu(t,e){const s=t.multiple,i=At(e);if(!(s&&!i&&!nr(e))){for(let o=0,a=t.options.length;o<a;o++){const l=t.options[o],b=Xo(l);if(s)if(i){const u=typeof b;u==="string"||u==="number"?l.selected=e.some(f=>String(f)===String(b)):l.selected=im(e,b)>-1}else l.selected=e.has(b);else if(Wn(Xo(l),e)){t.selectedIndex!==o&&(t.selectedIndex=o);return}}!s&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function Xo(t){return"_value"in t?t._value:t.value}const pp=["ctrl","shift","alt","meta"],hp={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>pp.some(s=>t[`${s}Key`]&&!e.includes(s))},Ed=(t,e)=>{if(!t)return t;const s=t._withMods||(t._withMods={}),i=e.join(".");return s[i]||(s[i]=((o,...a)=>{for(let l=0;l<e.length;l++){const b=hp[e[l]];if(b&&b(o,e))return}return t(o,...a)}))},gp={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Bk=(t,e)=>{const s=t._withKeys||(t._withKeys={}),i=e.join(".");return s[i]||(s[i]=(o=>{if(!("key"in o))return;const a=Xs(o.key);if(e.some(l=>l===a||gp[l]===a))return t(o)}))},vp=Ee({patchProp:bp},Kf);let eu;function yp(){return eu||(eu=Pf(vp))}const kp=((...t)=>{const e=yp().createApp(...t),{mount:s}=e;return e.mount=i=>{const o=Tp(i);if(!o)return;const a=e._component;!Mt(a)&&!a.render&&!a.template&&(a.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=s(o,!1,Sp(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},e});function Sp(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Tp(t){return ce(t)?document.querySelector(t):t}let jd;const Tr=t=>jd=t,Md=Symbol();function Ua(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var On;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(On||(On={}));function _p(){const t=al(!0),e=t.run(()=>he({}));let s=[],i=[];const o=ml({install(a){Tr(o),o._a=a,a.provide(Md,o),a.config.globalProperties.$pinia=o,i.forEach(l=>s.push(l)),i=[]},use(a){return this._a?s.push(a):i.push(a),this},_p:s,_a:null,_e:t,_s:new Map,state:e});return o}const Dd=()=>{};function su(t,e,s,i=Dd){t.add(e);const o=()=>{t.delete(e)&&i()};return!s&&pb()&&nm(o),o}function Gi(t,...e){t.forEach(s=>{s(...e)})}const wp=t=>t(),iu=Symbol(),ya=Symbol();function qa(t,e){t instanceof Map&&e instanceof Map?e.forEach((s,i)=>t.set(i,s)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const s in e){if(!e.hasOwnProperty(s))continue;const i=e[s],o=t[s];Ua(o)&&Ua(i)&&t.hasOwnProperty(s)&&!le(i)&&!Gs(i)?t[s]=qa(o,i):t[s]=i}return t}const Pp=Symbol();function xp(t){return!Ua(t)||!Object.prototype.hasOwnProperty.call(t,Pp)}const{assign:ui}=Object;function Ap(t){return!!(le(t)&&t.effect)}function Cp(t,e,s,i){const{state:o,actions:a,getters:l}=e,b=s.state.value[t];let u;function f(){b||(s.state.value[t]=o?o():{});const p=Cm(s.state.value[t]);return ui(p,a,Object.keys(l||{}).reduce((g,y)=>(g[y]=ml(ne(()=>{Tr(s);const _=s._s.get(t);return l[y].call(_,_)})),g),{}))}return u=Od(t,f,e,s,i,!0),u}function Od(t,e,s={},i,o,a){let l;const b=ui({actions:{}},s),u={deep:!0};let f,p,g=new Set,y=new Set,_;const z=i.state.value[t];!a&&!z&&(i.state.value[t]={});let I;function $(rt){let st;f=p=!1,typeof rt=="function"?(rt(i.state.value[t]),st={type:On.patchFunction,storeId:t,events:_}):(qa(i.state.value[t],rt),st={type:On.patchObject,payload:rt,storeId:t,events:_});const yt=I=Symbol();pr().then(()=>{I===yt&&(f=!0)}),p=!0,Gi(g,st,i.state.value[t])}const P=a?function(){const{state:st}=s,yt=st?st():{};this.$patch(Pt=>{ui(Pt,yt)})}:Dd;function x(){l.stop(),g.clear(),y.clear(),i._s.delete(t)}const G=(rt,st="")=>{if(iu in rt)return rt[ya]=st,rt;const yt=function(){Tr(i);const Pt=Array.from(arguments),lt=new Set,Ct=new Set;function Yt(jt){lt.add(jt)}function ue(jt){Ct.add(jt)}Gi(y,{args:Pt,name:yt[ya],store:X,after:Yt,onError:ue});let It;try{It=rt.apply(this&&this.$id===t?this:X,Pt)}catch(jt){throw Gi(Ct,jt),jt}return It instanceof Promise?It.then(jt=>(Gi(lt,jt),jt)).catch(jt=>(Gi(Ct,jt),Promise.reject(jt))):(Gi(lt,It),It)};return yt[iu]=!0,yt[ya]=st,yt},N={_p:i,$id:t,$onAction:su.bind(null,y),$patch:$,$reset:P,$subscribe(rt,st={}){const yt=su(g,rt,st.detached,()=>Pt()),Pt=l.run(()=>Ws(()=>i.state.value[t],lt=>{(st.flush==="sync"?p:f)&&rt({storeId:t,type:On.direct,events:_},lt)},ui({},u,st)));return yt},$dispose:x},X=Jn(N);i._s.set(t,X);const H=(i._a&&i._a.runWithContext||wp)(()=>i._e.run(()=>(l=al()).run(()=>e({action:G}))));for(const rt in H){const st=H[rt];if(le(st)&&!Ap(st)||Gs(st))a||(z&&xp(st)&&(le(st)?st.value=z[rt]:qa(st,z[rt])),i.state.value[t][rt]=st);else if(typeof st=="function"){const yt=G(st,rt);H[rt]=yt,b.actions[rt]=st}}return ui(X,H),ui(Bt(X),H),Object.defineProperty(X,"$state",{get:()=>i.state.value[t],set:rt=>{$(st=>{ui(st,rt)})}}),i._p.forEach(rt=>{ui(X,l.run(()=>rt({store:X,app:i._a,pinia:i,options:b})))}),z&&a&&s.hydrate&&s.hydrate(X.$state,z),f=!0,p=!0,X}function _r(t,e,s){let i;const o=typeof e=="function";i=o?s:e;function a(l,b){const u=Fm();return l=l||(u?es(Md,null):null),l&&Tr(l),l=jd,l._s.has(t)||(o?Od(t,e,i,l):Cp(t,i,l)),l._s.get(t)}return a.$id=t,a}const Ep="modulepreload",jp=function(t){return"/"+t},nu={},Ke=function(e,s,i){let o=Promise.resolve();if(s&&s.length>0){let u=function(f){return Promise.all(f.map(p=>Promise.resolve(p).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),b=l?.nonce||l?.getAttribute("nonce");o=u(s.map(f=>{if(f=jp(f),f in nu)return;nu[f]=!0;const p=f.endsWith(".css"),g=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${g}`))return;const y=document.createElement("link");if(y.rel=p?"stylesheet":Ep,p||(y.as="script"),y.crossOrigin="",y.href=f,b&&y.setAttribute("nonce",b),document.head.appendChild(y),p)return new Promise((_,z)=>{y.addEventListener("load",_),y.addEventListener("error",()=>z(new Error(`Unable to preload CSS for ${f}`)))})}))}function a(l){const b=new Event("vite:preloadError",{cancelable:!0});if(b.payload=l,window.dispatchEvent(b),!b.defaultPrevented)throw l}return o.then(l=>{for(const b of l||[])b.status==="rejected"&&a(b.reason);return e().catch(a)})};const Ji=typeof document<"u";function Rd(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}function Mp(t){return t.__esModule||t[Symbol.toStringTag]==="Module"||t.default&&Rd(t.default)}const Ht=Object.assign;function ka(t,e){const s={};for(const i in e){const o=e[i];s[i]=ys(o)?o.map(t):t(o)}return s}const Rn=()=>{},ys=Array.isArray;function ou(t,e){const s={};for(const i in t)s[i]=i in e?e[i]:t[i];return s}let ye=(function(t){return t[t.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",t[t.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",t[t.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",t[t.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",t[t.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",t})({});const Nd=Symbol("");ye.MATCHER_NOT_FOUND+"",ye.NAVIGATION_GUARD_REDIRECT+"",ye.NAVIGATION_ABORTED+"",ye.NAVIGATION_CANCELLED+"",ye.NAVIGATION_DUPLICATED+"";function on(t,e){return Ht(new Error,{type:t,[Nd]:!0},e)}function Fs(t,e){return t instanceof Error&&Nd in t&&(e==null||!!(t.type&e))}const Dp=["params","query","hash"];function Op(t){if(typeof t=="string")return t;if(t.path!=null)return t.path;const e={};for(const s of Dp)s in t&&(e[s]=t[s]);return JSON.stringify(e,null,2)}const Rp=Symbol(""),ru=Symbol(""),wr=Symbol(""),Tl=Symbol(""),$a=Symbol("");function Uk(){return es(wr)}function _l(t){return es(Tl)}const Id=/#/g,Np=/&/g,Ip=/\//g,Lp=/=/g,Fp=/\?/g,Ld=/\+/g,zp=/%5B/g,Bp=/%5D/g,Fd=/%5E/g,Up=/%60/g,zd=/%7B/g,qp=/%7C/g,Bd=/%7D/g,$p=/%20/g;function wl(t){return t==null?"":encodeURI(""+t).replace(qp,"|").replace(zp,"[").replace(Bp,"]")}function Vp(t){return wl(t).replace(zd,"{").replace(Bd,"}").replace(Fd,"^")}function Va(t){return wl(t).replace(Ld,"%2B").replace($p,"+").replace(Id,"%23").replace(Np,"%26").replace(Up,"`").replace(zd,"{").replace(Bd,"}").replace(Fd,"^")}function Kp(t){return Va(t).replace(Lp,"%3D")}function Hp(t){return wl(t).replace(Id,"%23").replace(Fp,"%3F")}function Gp(t){return Hp(t).replace(Ip,"%2F")}function $n(t){if(t==null)return null;try{return decodeURIComponent(""+t)}catch{}return""+t}const Wp=/\/$/,Jp=t=>t.replace(Wp,"");function Sa(t,e,s="/"){let i,o={},a="",l="";const b=e.indexOf("#");let u=e.indexOf("?");return u=b>=0&&u>b?-1:u,u>=0&&(i=e.slice(0,u),a=e.slice(u,b>0?b:e.length),o=t(a.slice(1))),b>=0&&(i=i||e.slice(0,b),l=e.slice(b,e.length)),i=Zp(i??e,s),{fullPath:i+a+l,path:i,query:o,hash:$n(l)}}function Qp(t,e){const s=e.query?t(e.query):"";return e.path+(s&&"?")+s+(e.hash||"")}function au(t,e){return!e||!t.toLowerCase().startsWith(e.toLowerCase())?t:t.slice(e.length)||"/"}function Yp(t,e,s){const i=e.matched.length-1,o=s.matched.length-1;return i>-1&&i===o&&rn(e.matched[i],s.matched[o])&&Ud(e.params,s.params)&&t(e.query)===t(s.query)&&e.hash===s.hash}function rn(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function Ud(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var s in t)if(!Xp(t[s],e[s]))return!1;return!0}function Xp(t,e){return ys(t)?lu(t,e):ys(e)?lu(e,t):(t&&t.valueOf())===(e&&e.valueOf())}function lu(t,e){return ys(e)?t.length===e.length&&t.every((s,i)=>s===e[i]):t.length===1&&t[0]===e}function Zp(t,e){if(t.startsWith("/"))return t;if(!t)return e;const s=e.split("/"),i=t.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let a=s.length-1,l,b;for(l=0;l<i.length;l++)if(b=i[l],b!==".")if(b==="..")a>1&&a--;else break;return s.slice(0,a).join("/")+"/"+i.slice(l).join("/")}const li={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ka=(function(t){return t.pop="pop",t.push="push",t})({}),Ta=(function(t){return t.back="back",t.forward="forward",t.unknown="",t})({});function t3(t){if(!t)if(Ji){const e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),Jp(t)}const e3=/^[^#]+#/;function s3(t,e){return t.replace(e3,"#")+e}function i3(t,e){const s=document.documentElement.getBoundingClientRect(),i=t.getBoundingClientRect();return{behavior:e.behavior,left:i.left-s.left-(e.left||0),top:i.top-s.top-(e.top||0)}}const Pr=()=>({left:window.scrollX,top:window.scrollY});function n3(t){let e;if("el"in t){const s=t.el,i=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?i?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;e=i3(o,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function cu(t,e){return(history.state?history.state.position-e:-1)+t}const Ha=new Map;function o3(t,e){Ha.set(t,e)}function r3(t){const e=Ha.get(t);return Ha.delete(t),e}function a3(t){return typeof t=="string"||t&&typeof t=="object"}function qd(t){return typeof t=="string"||typeof t=="symbol"}function l3(t){const e={};if(t===""||t==="?")return e;const s=(t[0]==="?"?t.slice(1):t).split("&");for(let i=0;i<s.length;++i){const o=s[i].replace(Ld," "),a=o.indexOf("="),l=$n(a<0?o:o.slice(0,a)),b=a<0?null:$n(o.slice(a+1));if(l in e){let u=e[l];ys(u)||(u=e[l]=[u]),u.push(b)}else e[l]=b}return e}function uu(t){let e="";for(let s in t){const i=t[s];if(s=Kp(s),i==null){i!==void 0&&(e+=(e.length?"&":"")+s);continue}(ys(i)?i.map(o=>o&&Va(o)):[i&&Va(i)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+s,o!=null&&(e+="="+o))})}return e}function c3(t){const e={};for(const s in t){const i=t[s];i!==void 0&&(e[s]=ys(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return e}function Sn(){let t=[];function e(i){return t.push(i),()=>{const o=t.indexOf(i);o>-1&&t.splice(o,1)}}function s(){t=[]}return{add:e,list:()=>t.slice(),reset:s}}function di(t,e,s,i,o,a=l=>l()){const l=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((b,u)=>{const f=y=>{y===!1?u(on(ye.NAVIGATION_ABORTED,{from:s,to:e})):y instanceof Error?u(y):a3(y)?u(on(ye.NAVIGATION_GUARD_REDIRECT,{from:e,to:y})):(l&&i.enterCallbacks[o]===l&&typeof y=="function"&&l.push(y),b())},p=a(()=>t.call(i&&i.instances[o],e,s,f));let g=Promise.resolve(p);t.length<3&&(g=g.then(f)),g.catch(y=>u(y))})}function _a(t,e,s,i,o=a=>a()){const a=[];for(const l of t)for(const b in l.components){let u=l.components[b];if(!(e!=="beforeRouteEnter"&&!l.instances[b]))if(Rd(u)){const f=(u.__vccOpts||u)[e];f&&a.push(di(f,s,i,l,b,o))}else{let f=u();a.push(()=>f.then(p=>{if(!p)throw new Error(`Couldn't resolve component "${b}" at "${l.path}"`);const g=Mp(p)?p.default:p;l.mods[b]=p,l.components[b]=g;const y=(g.__vccOpts||g)[e];return y&&di(y,s,i,l,b,o)()}))}}return a}function u3(t,e){const s=[],i=[],o=[],a=Math.max(e.matched.length,t.matched.length);for(let l=0;l<a;l++){const b=e.matched[l];b&&(t.matched.find(f=>rn(f,b))?i.push(b):s.push(b));const u=t.matched[l];u&&(e.matched.find(f=>rn(f,u))||o.push(u))}return[s,i,o]}let b3=()=>location.protocol+"//"+location.host;function $d(t,e){const{pathname:s,search:i,hash:o}=e,a=t.indexOf("#");if(a>-1){let l=o.includes(t.slice(a))?t.slice(a).length:1,b=o.slice(l);return b[0]!=="/"&&(b="/"+b),au(b,"")}return au(s,t)+i+o}function d3(t,e,s,i){let o=[],a=[],l=null;const b=({state:y})=>{const _=$d(t,location),z=s.value,I=e.value;let $=0;if(y){if(s.value=_,e.value=y,l&&l===z){l=null;return}$=I?y.position-I.position:0}else i(_);o.forEach(P=>{P(s.value,z,{delta:$,type:Ka.pop,direction:$?$>0?Ta.forward:Ta.back:Ta.unknown})})};function u(){l=s.value}function f(y){o.push(y);const _=()=>{const z=o.indexOf(y);z>-1&&o.splice(z,1)};return a.push(_),_}function p(){if(document.visibilityState==="hidden"){const{history:y}=window;if(!y.state)return;y.replaceState(Ht({},y.state,{scroll:Pr()}),"")}}function g(){for(const y of a)y();a=[],window.removeEventListener("popstate",b),window.removeEventListener("pagehide",p),document.removeEventListener("visibilitychange",p)}return window.addEventListener("popstate",b),window.addEventListener("pagehide",p),document.addEventListener("visibilitychange",p),{pauseListeners:u,listen:f,destroy:g}}function bu(t,e,s,i=!1,o=!1){return{back:t,current:e,forward:s,replaced:i,position:window.history.length,scroll:o?Pr():null}}function m3(t){const{history:e,location:s}=window,i={value:$d(t,s)},o={value:e.state};o.value||a(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(u,f,p){const g=t.indexOf("#"),y=g>-1?(s.host&&document.querySelector("base")?t:t.slice(g))+u:b3()+t+u;try{e[p?"replaceState":"pushState"](f,"",y),o.value=f}catch(_){console.error(_),s[p?"replace":"assign"](y)}}function l(u,f){a(u,Ht({},e.state,bu(o.value.back,u,o.value.forward,!0),f,{position:o.value.position}),!0),i.value=u}function b(u,f){const p=Ht({},o.value,e.state,{forward:u,scroll:Pr()});a(p.current,p,!0),a(u,Ht({},bu(i.value,u,null),{position:p.position+1},f),!1),i.value=u}return{location:i,state:o,push:b,replace:l}}function f3(t){t=t3(t);const e=m3(t),s=d3(t,e.state,e.location,e.replace);function i(a,l=!0){l||s.pauseListeners(),history.go(a)}const o=Ht({location:"",base:t,go:i,createHref:s3.bind(null,t)},e,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>e.state.value}),o}let Oi=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.Group=2]="Group",t})({});var Ae=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.ParamRegExp=2]="ParamRegExp",t[t.ParamRegExpEnd=3]="ParamRegExpEnd",t[t.EscapeNext=4]="EscapeNext",t})(Ae||{});const p3={type:Oi.Static,value:""},h3=/[a-zA-Z0-9_]/;function g3(t){if(!t)return[[]];if(t==="/")return[[p3]];if(!t.startsWith("/"))throw new Error(`Invalid path "${t}"`);function e(_){throw new Error(`ERR (${s})/"${f}": ${_}`)}let s=Ae.Static,i=s;const o=[];let a;function l(){a&&o.push(a),a=[]}let b=0,u,f="",p="";function g(){f&&(s===Ae.Static?a.push({type:Oi.Static,value:f}):s===Ae.Param||s===Ae.ParamRegExp||s===Ae.ParamRegExpEnd?(a.length>1&&(u==="*"||u==="+")&&e(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Oi.Param,value:f,regexp:p,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):e("Invalid state to consume buffer"),f="")}function y(){f+=u}for(;b<t.length;){if(u=t[b++],u==="\\"&&s!==Ae.ParamRegExp){i=s,s=Ae.EscapeNext;continue}switch(s){case Ae.Static:u==="/"?(f&&g(),l()):u===":"?(g(),s=Ae.Param):y();break;case Ae.EscapeNext:y(),s=i;break;case Ae.Param:u==="("?s=Ae.ParamRegExp:h3.test(u)?y():(g(),s=Ae.Static,u!=="*"&&u!=="?"&&u!=="+"&&b--);break;case Ae.ParamRegExp:u===")"?p[p.length-1]=="\\"?p=p.slice(0,-1)+u:s=Ae.ParamRegExpEnd:p+=u;break;case Ae.ParamRegExpEnd:g(),s=Ae.Static,u!=="*"&&u!=="?"&&u!=="+"&&b--,p="";break;default:e("Unknown state");break}}return s===Ae.ParamRegExp&&e(`Unfinished custom RegExp for param "${f}"`),g(),l(),o}const du="[^/]+?",v3={sensitive:!1,strict:!1,start:!0,end:!0};var We=(function(t){return t[t._multiplier=10]="_multiplier",t[t.Root=90]="Root",t[t.Segment=40]="Segment",t[t.SubSegment=30]="SubSegment",t[t.Static=40]="Static",t[t.Dynamic=20]="Dynamic",t[t.BonusCustomRegExp=10]="BonusCustomRegExp",t[t.BonusWildcard=-50]="BonusWildcard",t[t.BonusRepeatable=-20]="BonusRepeatable",t[t.BonusOptional=-8]="BonusOptional",t[t.BonusStrict=.7000000000000001]="BonusStrict",t[t.BonusCaseSensitive=.25]="BonusCaseSensitive",t})(We||{});const y3=/[.+*?^${}()[\]/\\]/g;function k3(t,e){const s=Ht({},v3,e),i=[];let o=s.start?"^":"";const a=[];for(const f of t){const p=f.length?[]:[We.Root];s.strict&&!f.length&&(o+="/");for(let g=0;g<f.length;g++){const y=f[g];let _=We.Segment+(s.sensitive?We.BonusCaseSensitive:0);if(y.type===Oi.Static)g||(o+="/"),o+=y.value.replace(y3,"\\$&"),_+=We.Static;else if(y.type===Oi.Param){const{value:z,repeatable:I,optional:$,regexp:P}=y;a.push({name:z,repeatable:I,optional:$});const x=P||du;if(x!==du){_+=We.BonusCustomRegExp;try{new RegExp(`(${x})`)}catch(N){throw new Error(`Invalid custom RegExp for param "${z}" (${x}): `+N.message)}}let G=I?`((?:${x})(?:/(?:${x}))*)`:`(${x})`;g||(G=$&&f.length<2?`(?:/${G})`:"/"+G),$&&(G+="?"),o+=G,_+=We.Dynamic,$&&(_+=We.BonusOptional),I&&(_+=We.BonusRepeatable),x===".*"&&(_+=We.BonusWildcard)}p.push(_)}i.push(p)}if(s.strict&&s.end){const f=i.length-1;i[f][i[f].length-1]+=We.BonusStrict}s.strict||(o+="/?"),s.end?o+="$":s.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const l=new RegExp(o,s.sensitive?"":"i");function b(f){const p=f.match(l),g={};if(!p)return null;for(let y=1;y<p.length;y++){const _=p[y]||"",z=a[y-1];g[z.name]=_&&z.repeatable?_.split("/"):_}return g}function u(f){let p="",g=!1;for(const y of t){(!g||!p.endsWith("/"))&&(p+="/"),g=!1;for(const _ of y)if(_.type===Oi.Static)p+=_.value;else if(_.type===Oi.Param){const{value:z,repeatable:I,optional:$}=_,P=z in f?f[z]:"";if(ys(P)&&!I)throw new Error(`Provided param "${z}" is an array but it is not repeatable (* or + modifiers)`);const x=ys(P)?P.join("/"):P;if(!x)if($)y.length<2&&(p.endsWith("/")?p=p.slice(0,-1):g=!0);else throw new Error(`Missing required param "${z}"`);p+=x}}return p||"/"}return{re:l,score:i,keys:a,parse:b,stringify:u}}function S3(t,e){let s=0;for(;s<t.length&&s<e.length;){const i=e[s]-t[s];if(i)return i;s++}return t.length<e.length?t.length===1&&t[0]===We.Static+We.Segment?-1:1:t.length>e.length?e.length===1&&e[0]===We.Static+We.Segment?1:-1:0}function Vd(t,e){let s=0;const i=t.score,o=e.score;for(;s<i.length&&s<o.length;){const a=S3(i[s],o[s]);if(a)return a;s++}if(Math.abs(o.length-i.length)===1){if(mu(i))return 1;if(mu(o))return-1}return o.length-i.length}function mu(t){const e=t[t.length-1];return t.length>0&&e[e.length-1]<0}const T3={strict:!1,end:!0,sensitive:!1};function _3(t,e,s){const i=k3(g3(t.path),s),o=Ht(i,{record:t,parent:e,children:[],alias:[]});return e&&!o.record.aliasOf==!e.record.aliasOf&&e.children.push(o),o}function w3(t,e){const s=[],i=new Map;e=ou(T3,e);function o(g){return i.get(g)}function a(g,y,_){const z=!_,I=pu(g);I.aliasOf=_&&_.record;const $=ou(e,g),P=[I];if("alias"in g){const N=typeof g.alias=="string"?[g.alias]:g.alias;for(const X of N)P.push(pu(Ht({},I,{components:_?_.record.components:I.components,path:X,aliasOf:_?_.record:I})))}let x,G;for(const N of P){const{path:X}=N;if(y&&X[0]!=="/"){const W=y.record.path,H=W[W.length-1]==="/"?"":"/";N.path=y.record.path+(X&&H+X)}if(x=_3(N,y,$),_?_.alias.push(x):(G=G||x,G!==x&&G.alias.push(x),z&&g.name&&!hu(x)&&l(g.name)),Kd(x)&&u(x),I.children){const W=I.children;for(let H=0;H<W.length;H++)a(W[H],x,_&&_.children[H])}_=_||x}return G?()=>{l(G)}:Rn}function l(g){if(qd(g)){const y=i.get(g);y&&(i.delete(g),s.splice(s.indexOf(y),1),y.children.forEach(l),y.alias.forEach(l))}else{const y=s.indexOf(g);y>-1&&(s.splice(y,1),g.record.name&&i.delete(g.record.name),g.children.forEach(l),g.alias.forEach(l))}}function b(){return s}function u(g){const y=A3(g,s);s.splice(y,0,g),g.record.name&&!hu(g)&&i.set(g.record.name,g)}function f(g,y){let _,z={},I,$;if("name"in g&&g.name){if(_=i.get(g.name),!_)throw on(ye.MATCHER_NOT_FOUND,{location:g});$=_.record.name,z=Ht(fu(y.params,_.keys.filter(G=>!G.optional).concat(_.parent?_.parent.keys.filter(G=>G.optional):[]).map(G=>G.name)),g.params&&fu(g.params,_.keys.map(G=>G.name))),I=_.stringify(z)}else if(g.path!=null)I=g.path,_=s.find(G=>G.re.test(I)),_&&(z=_.parse(I),$=_.record.name);else{if(_=y.name?i.get(y.name):s.find(G=>G.re.test(y.path)),!_)throw on(ye.MATCHER_NOT_FOUND,{location:g,currentLocation:y});$=_.record.name,z=Ht({},y.params,g.params),I=_.stringify(z)}const P=[];let x=_;for(;x;)P.unshift(x.record),x=x.parent;return{name:$,path:I,params:z,matched:P,meta:x3(P)}}t.forEach(g=>a(g));function p(){s.length=0,i.clear()}return{addRoute:a,resolve:f,removeRoute:l,clearRoutes:p,getRoutes:b,getRecordMatcher:o}}function fu(t,e){const s={};for(const i of e)i in t&&(s[i]=t[i]);return s}function pu(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:P3(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function P3(t){const e={},s=t.props||!1;if("component"in t)e.default=s;else for(const i in t.components)e[i]=typeof s=="object"?s[i]:s;return e}function hu(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function x3(t){return t.reduce((e,s)=>Ht(e,s.meta),{})}function A3(t,e){let s=0,i=e.length;for(;s!==i;){const a=s+i>>1;Vd(t,e[a])<0?i=a:s=a+1}const o=C3(t);return o&&(i=e.lastIndexOf(o,i-1)),i}function C3(t){let e=t;for(;e=e.parent;)if(Kd(e)&&Vd(t,e)===0)return e}function Kd({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function gu(t){const e=es(wr),s=es(Tl),i=ne(()=>{const u=ie(t.to);return e.resolve(u)}),o=ne(()=>{const{matched:u}=i.value,{length:f}=u,p=u[f-1],g=s.matched;if(!p||!g.length)return-1;const y=g.findIndex(rn.bind(null,p));if(y>-1)return y;const _=vu(u[f-2]);return f>1&&vu(p)===_&&g[g.length-1].path!==_?g.findIndex(rn.bind(null,u[f-2])):y}),a=ne(()=>o.value>-1&&O3(s.params,i.value.params)),l=ne(()=>o.value>-1&&o.value===s.matched.length-1&&Ud(s.params,i.value.params));function b(u={}){if(D3(u)){const f=e[ie(t.replace)?"replace":"push"](ie(t.to)).catch(Rn);return t.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:i,href:ne(()=>i.value.href),isActive:a,isExactActive:l,navigate:b}}function E3(t){return t.length===1?t[0]:t}const j3=Os({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:gu,setup(t,{slots:e}){const s=Jn(gu(t)),{options:i}=es(wr),o=ne(()=>({[yu(t.activeClass,i.linkActiveClass,"router-link-active")]:s.isActive,[yu(t.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{const a=e.default&&E3(e.default(s));return t.custom?a:fi("a",{"aria-current":s.isExactActive?t.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},a)}}}),M3=j3;function D3(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){const e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function O3(t,e){for(const s in e){const i=e[s],o=t[s];if(typeof i=="string"){if(i!==o)return!1}else if(!ys(o)||o.length!==i.length||i.some((a,l)=>a.valueOf()!==o[l].valueOf()))return!1}return!0}function vu(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const yu=(t,e,s)=>t??e??s,R3=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:s}){const i=es($a),o=ne(()=>t.route||i.value),a=es(ru,0),l=ne(()=>{let f=ie(a);const{matched:p}=o.value;let g;for(;(g=p[f])&&!g.components;)f++;return f}),b=ne(()=>o.value.matched[l.value]);Ro(ru,ne(()=>l.value+1)),Ro(Rp,b),Ro($a,o);const u=he();return Ws(()=>[u.value,b.value,t.name],([f,p,g],[y,_,z])=>{p&&(p.instances[g]=f,_&&_!==p&&f&&f===y&&(p.leaveGuards.size||(p.leaveGuards=_.leaveGuards),p.updateGuards.size||(p.updateGuards=_.updateGuards))),f&&p&&(!_||!rn(p,_)||!y)&&(p.enterCallbacks[g]||[]).forEach(I=>I(f))},{flush:"post"}),()=>{const f=o.value,p=t.name,g=b.value,y=g&&g.components[p];if(!y)return ku(s.default,{Component:y,route:f});const _=g.props[p],z=_?_===!0?f.params:typeof _=="function"?_(f):_:null,$=fi(y,Ht({},z,e,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(g.instances[p]=null)},ref:u}));return ku(s.default,{Component:$,route:f})||$}}});function ku(t,e){if(!t)return null;const s=t(e);return s.length===1?s[0]:s}const N3=R3;function I3(t){const e=w3(t.routes,t),s=t.parseQuery||l3,i=t.stringifyQuery||uu,o=t.history,a=Sn(),l=Sn(),b=Sn(),u=Mb(li);let f=li;Ji&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const p=ka.bind(null,tt=>""+tt),g=ka.bind(null,Gp),y=ka.bind(null,$n);function _(tt,gt){let mt,ot;return qd(tt)?(mt=e.getRecordMatcher(tt),ot=gt):ot=tt,e.addRoute(ot,mt)}function z(tt){const gt=e.getRecordMatcher(tt);gt&&e.removeRoute(gt)}function I(){return e.getRoutes().map(tt=>tt.record)}function $(tt){return!!e.getRecordMatcher(tt)}function P(tt,gt){if(gt=Ht({},gt||u.value),typeof tt=="string"){const B=Sa(s,tt,gt.path),Y=e.resolve({path:B.path},gt),it=o.createHref(B.fullPath);return Ht(B,Y,{params:y(Y.params),hash:$n(B.hash),redirectedFrom:void 0,href:it})}let mt;if(tt.path!=null)mt=Ht({},tt,{path:Sa(s,tt.path,gt.path).path});else{const B=Ht({},tt.params);for(const Y in B)B[Y]==null&&delete B[Y];mt=Ht({},tt,{params:g(B)}),gt.params=g(gt.params)}const ot=e.resolve(mt,gt),Ot=tt.hash||"";ot.params=p(y(ot.params));const S=Qp(i,Ht({},tt,{hash:Vp(Ot),path:ot.path})),A=o.createHref(S);return Ht({fullPath:S,hash:Ot,query:i===uu?c3(tt.query):tt.query||{}},ot,{redirectedFrom:void 0,href:A})}function x(tt){return typeof tt=="string"?Sa(s,tt,u.value.path):Ht({},tt)}function G(tt,gt){if(f!==tt)return on(ye.NAVIGATION_CANCELLED,{from:gt,to:tt})}function N(tt){return H(tt)}function X(tt){return N(Ht(x(tt),{replace:!0}))}function W(tt,gt){const mt=tt.matched[tt.matched.length-1];if(mt&&mt.redirect){const{redirect:ot}=mt;let Ot=typeof ot=="function"?ot(tt,gt):ot;return typeof Ot=="string"&&(Ot=Ot.includes("?")||Ot.includes("#")?Ot=x(Ot):{path:Ot},Ot.params={}),Ht({query:tt.query,hash:tt.hash,params:Ot.path!=null?{}:tt.params},Ot)}}function H(tt,gt){const mt=f=P(tt),ot=u.value,Ot=tt.state,S=tt.force,A=tt.replace===!0,B=W(mt,ot);if(B)return H(Ht(x(B),{state:typeof B=="object"?Ht({},Ot,B.state):Ot,force:S,replace:A}),gt||mt);const Y=mt;Y.redirectedFrom=gt;let it;return!S&&Yp(i,ot,mt)&&(it=on(ye.NAVIGATION_DUPLICATED,{to:Y,from:ot}),Pe(ot,ot,!0,!1)),(it?Promise.resolve(it):yt(Y,ot)).catch(et=>Fs(et)?Fs(et,ye.NAVIGATION_GUARD_REDIRECT)?et:be(et):Dt(et,Y,ot)).then(et=>{if(et){if(Fs(et,ye.NAVIGATION_GUARD_REDIRECT))return H(Ht({replace:A},x(et.to),{state:typeof et.to=="object"?Ht({},Ot,et.to.state):Ot,force:S}),gt||Y)}else et=lt(Y,ot,!0,A,Ot);return Pt(Y,ot,et),et})}function rt(tt,gt){const mt=G(tt,gt);return mt?Promise.reject(mt):Promise.resolve()}function st(tt){const gt=Re.values().next().value;return gt&&typeof gt.runWithContext=="function"?gt.runWithContext(tt):tt()}function yt(tt,gt){let mt;const[ot,Ot,S]=u3(tt,gt);mt=_a(ot.reverse(),"beforeRouteLeave",tt,gt);for(const B of ot)B.leaveGuards.forEach(Y=>{mt.push(di(Y,tt,gt))});const A=rt.bind(null,tt,gt);return mt.push(A),Se(mt).then(()=>{mt=[];for(const B of a.list())mt.push(di(B,tt,gt));return mt.push(A),Se(mt)}).then(()=>{mt=_a(Ot,"beforeRouteUpdate",tt,gt);for(const B of Ot)B.updateGuards.forEach(Y=>{mt.push(di(Y,tt,gt))});return mt.push(A),Se(mt)}).then(()=>{mt=[];for(const B of S)if(B.beforeEnter)if(ys(B.beforeEnter))for(const Y of B.beforeEnter)mt.push(di(Y,tt,gt));else mt.push(di(B.beforeEnter,tt,gt));return mt.push(A),Se(mt)}).then(()=>(tt.matched.forEach(B=>B.enterCallbacks={}),mt=_a(S,"beforeRouteEnter",tt,gt,st),mt.push(A),Se(mt))).then(()=>{mt=[];for(const B of l.list())mt.push(di(B,tt,gt));return mt.push(A),Se(mt)}).catch(B=>Fs(B,ye.NAVIGATION_CANCELLED)?B:Promise.reject(B))}function Pt(tt,gt,mt){b.list().forEach(ot=>st(()=>ot(tt,gt,mt)))}function lt(tt,gt,mt,ot,Ot){const S=G(tt,gt);if(S)return S;const A=gt===li,B=Ji?history.state:{};mt&&(ot||A?o.replace(tt.fullPath,Ht({scroll:A&&B&&B.scroll},Ot)):o.push(tt.fullPath,Ot)),u.value=tt,Pe(tt,gt,mt,A),be()}let Ct;function Yt(){Ct||(Ct=o.listen((tt,gt,mt)=>{if(!Ye.listening)return;const ot=P(tt),Ot=W(ot,Ye.currentRoute.value);if(Ot){H(Ht(Ot,{replace:!0,force:!0}),ot).catch(Rn);return}f=ot;const S=u.value;Ji&&o3(cu(S.fullPath,mt.delta),Pr()),yt(ot,S).catch(A=>Fs(A,ye.NAVIGATION_ABORTED|ye.NAVIGATION_CANCELLED)?A:Fs(A,ye.NAVIGATION_GUARD_REDIRECT)?(H(Ht(x(A.to),{force:!0}),ot).then(B=>{Fs(B,ye.NAVIGATION_ABORTED|ye.NAVIGATION_DUPLICATED)&&!mt.delta&&mt.type===Ka.pop&&o.go(-1,!1)}).catch(Rn),Promise.reject()):(mt.delta&&o.go(-mt.delta,!1),Dt(A,ot,S))).then(A=>{A=A||lt(ot,S,!1),A&&(mt.delta&&!Fs(A,ye.NAVIGATION_CANCELLED)?o.go(-mt.delta,!1):mt.type===Ka.pop&&Fs(A,ye.NAVIGATION_ABORTED|ye.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),Pt(ot,S,A)}).catch(Rn)}))}let ue=Sn(),It=Sn(),jt;function Dt(tt,gt,mt){be(tt);const ot=It.list();return ot.length?ot.forEach(Ot=>Ot(tt,gt,mt)):console.error(tt),Promise.reject(tt)}function Xt(){return jt&&u.value!==li?Promise.resolve():new Promise((tt,gt)=>{ue.add([tt,gt])})}function be(tt){return jt||(jt=!tt,Yt(),ue.list().forEach(([gt,mt])=>tt?mt(tt):gt()),ue.reset()),tt}function Pe(tt,gt,mt,ot){const{scrollBehavior:Ot}=t;if(!Ji||!Ot)return Promise.resolve();const S=!mt&&r3(cu(tt.fullPath,0))||(ot||!mt)&&history.state&&history.state.scroll||null;return pr().then(()=>Ot(tt,gt,S)).then(A=>A&&n3(A)).catch(A=>Dt(A,tt,gt))}const Jt=tt=>o.go(tt);let ss;const Re=new Set,Ye={currentRoute:u,listening:!0,addRoute:_,removeRoute:z,clearRoutes:e.clearRoutes,hasRoute:$,getRoutes:I,resolve:P,options:t,push:N,replace:X,go:Jt,back:()=>Jt(-1),forward:()=>Jt(1),beforeEach:a.add,beforeResolve:l.add,afterEach:b.add,onError:It.add,isReady:Xt,install(tt){tt.component("RouterLink",M3),tt.component("RouterView",N3),tt.config.globalProperties.$router=Ye,Object.defineProperty(tt.config.globalProperties,"$route",{enumerable:!0,get:()=>ie(u)}),Ji&&!ss&&u.value===li&&(ss=!0,N(o.location).catch(ot=>{}));const gt={};for(const ot in li)Object.defineProperty(gt,ot,{get:()=>u.value[ot],enumerable:!0});tt.provide(wr,Ye),tt.provide(Tl,jb(gt)),tt.provide($a,u);const mt=tt.unmount;Re.add(tt),tt.unmount=function(){Re.delete(tt),Re.size<1&&(f=li,Ct&&Ct(),Ct=null,u.value=li,ss=!1,jt=!1),mt()}}};function Se(tt){return tt.reduce((gt,mt)=>gt.then(()=>st(mt)),Promise.resolve())}return Ye}function L3(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const Zo=typeof window<"u",hi=(t,e=!1)=>e?Symbol.for(t):Symbol(t),F3=(t,e,s)=>z3({l:t,k:e,s}),z3=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),we=t=>typeof t=="number"&&isFinite(t),B3=t=>xl(t)==="[object Date]",tr=t=>xl(t)==="[object RegExp]",xr=t=>zt(t)&&Object.keys(t).length===0,Oe=Object.assign,U3=Object.create,Qt=(t=null)=>U3(t);let Su;const Pl=()=>Su||(Su=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Qt());function Tu(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function _u(t){return t.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function q3(t){return t=t.replace(/(\w+)\s*=\s*"([^"]*)"/g,(i,o,a)=>`${o}="${_u(a)}"`),t=t.replace(/(\w+)\s*=\s*'([^']*)'/g,(i,o,a)=>`${o}='${_u(a)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(t)&&(t=t.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(i=>{t=t.replace(i,"$1javascript:")}),t}const $3=Object.prototype.hasOwnProperty;function ms(t,e){return $3.call(t,e)}const Ce=Array.isArray,fe=t=>typeof t=="function",_t=t=>typeof t=="string",pe=t=>typeof t=="boolean",Vt=t=>t!==null&&typeof t=="object",V3=t=>Vt(t)&&fe(t.then)&&fe(t.catch),Hd=Object.prototype.toString,xl=t=>Hd.call(t),zt=t=>xl(t)==="[object Object]",K3=t=>t==null?"":Ce(t)||zt(t)&&t.toString===Hd?JSON.stringify(t,null,2):String(t);function Al(t,e=""){return t.reduce((s,i,o)=>o===0?s+i:s+e+i,"")}const Eo=t=>!Vt(t)||Ce(t);function zo(t,e){if(Eo(t)||Eo(e))throw new Error("Invalid value");const s=[{src:t,des:e}];for(;s.length;){const{src:i,des:o}=s.pop();Object.keys(i).forEach(a=>{a!=="__proto__"&&(Vt(i[a])&&!Vt(o[a])&&(o[a]=Array.isArray(i[a])?[]:Qt()),Eo(o[a])||Eo(i[a])?o[a]=i[a]:s.push({src:i[a],des:o[a]}))})}}function H3(t,e,s){return{line:t,column:e,offset:s}}function Ga(t,e,s){return{start:t,end:e}}const Wt={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},G3=17;function Ar(t,e,s={}){const{domain:i,messages:o,args:a}=s,l=t,b=new SyntaxError(String(l));return b.code=t,e&&(b.location=e),b.domain=i,b}function W3(t){throw t}const zs=" ",J3="\r",Ge=`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-CMZSfb4t.js","assets/metrics-store-B4lQqH-w.js","assets/format-BqVZ9rwM.js","assets/session-store-Dy1-rRkz.js","assets/generate-service-Bhf2jPuC.js","assets/StatusBadge.vue_vue_type_script_setup_true_lang-BQhKjjl9.js","assets/agent-store-CR4CQ_VV.js","assets/stream-handler-DDNDUY1M.js","assets/toolcall-store-CUeITA8C.js","assets/tool-workshop-store-C_CvI0_B.js","assets/rag-store-BXD_zIis.js","assets/vector-db-ChAzHl5A.js","assets/message-memory-db-C3Ifhs2B.js","assets/ModelCapabilityIcons.vue_vue_type_script_setup_true_lang-BN_k6QDr.js","assets/pencil-BcLPhQp1.js","assets/download-CaV4vzuu.js","assets/SessionPage-12S3fV1c.js","assets/download-WPaeALA4.js","assets/TabBar.vue_vue_type_script_setup_true_lang-BStny7LH.js","assets/TokenStreamDisplay.vue_vue_type_script_setup_true_lang-DMEwK9YF.js","assets/index-Dy_48xr0.js","assets/info-C9qZFgvQ.js","assets/JsonTreeNode-RIieSDXb.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/JsonTreeNode-o8On9YD6.css","assets/ComparisonPage-C9o6y6vj.js","assets/base-CrPFMexR.js","assets/share-2-D2IlHB5H.js","assets/EmbeddingsPage-DdbGCntf.js","assets/storage-store-me3LAKpj.js","assets/StorageGauge.vue_vue_type_style_index_0_lang-DOKnxhnC.js","assets/StorageGauge-DN4vJnrl.css","assets/EmbeddingsPage-DtEKy4qg.css","assets/RAGPage-HwnlHxQ0.js","assets/BenchmarkPage-BVmzrGF3.js","assets/benchmark-db-D8D5Wf9h.js","assets/trash-2-Ct6xU7VV.js","assets/square-Dtyb8Nls.js","assets/ToolWorkshopPage-BRXtDJIQ.js","assets/canvas-ai-db-Ck_6zOgd.js","assets/ToolWorkshopPage-Duf-VZbs.css","assets/FimPlaygroundPage-BcrmoLxo.js","assets/play-CYCSil_U.js","assets/ProtocolObservatoryPage-CXoj3a1O.js","assets/AITrainingPage-DKjKWcx-.js","assets/CostDashboardPage-CHoN2eQ2.js","assets/AnalyticsPage-jTBXre2c.js","assets/SystemPage-BtFTvlZl.js","assets/SettingsPage-B_hBcAPj.js","assets/google-auth-store-LaJFtciC.js","assets/google-auth-CfEcVMA7.js","assets/GoogleCallbackPage-C9_rQxue.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function s(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(o){if(o.ep)return;o.ep=!0;const a=s(o);fetch(o.href,a)}})();function nl(t){const e=Object.create(null);for(const s of t.split(","))e[s]=1;return s=>s in e}const $t={},Yi=[],Ms=()=>{},rb=()=>!1,ir=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),ol=t=>t.startsWith("onUpdate:"),Ee=Object.assign,rl=(t,e)=>{const s=t.indexOf(e);s>-1&&t.splice(s,1)},K0=Object.prototype.hasOwnProperty,Gt=(t,e)=>K0.call(t,e),At=Array.isArray,Xi=t=>Gn(t)==="[object Map]",nr=t=>Gn(t)==="[object Set]",dc=t=>Gn(t)==="[object Date]",Mt=t=>typeof t=="function",ce=t=>typeof t=="string",hs=t=>typeof t=="symbol",Kt=t=>t!==null&&typeof t=="object",ab=t=>(Kt(t)||Mt(t))&&Mt(t.then)&&Mt(t.catch),lb=Object.prototype.toString,Gn=t=>lb.call(t),H0=t=>Gn(t).slice(8,-1),cb=t=>Gn(t)==="[object Object]",or=t=>ce(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Pn=nl(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),rr=t=>{const e=Object.create(null);return(s=>e[s]||(e[s]=t(s)))},G0=/-\w/g,Ve=rr(t=>t.replace(G0,e=>e.slice(1).toUpperCase())),W0=/\B([A-Z])/g,Xs=rr(t=>t.replace(W0,"-$1").toLowerCase()),ar=rr(t=>t.charAt(0).toUpperCase()+t.slice(1)),la=rr(t=>t?`on${ar(t)}`:""),Ie=(t,e)=>!Object.is(t,e),Oo=(t,...e)=>{for(let s=0;s<t.length;s++)t[s](...e)},ub=(t,e,s,i=!1)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:s})},lr=t=>{const e=parseFloat(t);return isNaN(e)?t:e},J0=t=>{const e=ce(t)?Number(t):NaN;return isNaN(e)?t:e};let mc;const cr=()=>mc||(mc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ur(t){if(At(t)){const e={};for(let s=0;s<t.length;s++){const i=t[s],o=ce(i)?Z0(i):ur(i);if(o)for(const a in o)e[a]=o[a]}return e}else if(ce(t)||Kt(t))return t}const Q0=/;(?![^(]*\))/g,Y0=/:([^]+)/,X0=/\/\*[^]*?\*\//g;function Z0(t){const e={};return t.replace(X0,"").split(Q0).forEach(s=>{if(s){const i=s.split(Y0);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function ls(t){let e="";if(ce(t))e=t;else if(At(t))for(let s=0;s<t.length;s++){const i=ls(t[s]);i&&(e+=i+" ")}else if(Kt(t))for(const s in t)t[s]&&(e+=s+" ");return e.trim()}function Mk(t){if(!t)return null;let{class:e,style:s}=t;return e&&!ce(e)&&(t.class=ls(e)),s&&(t.style=ur(s)),t}const tm="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",em=nl(tm);function bb(t){return!!t||t===""}function sm(t,e){if(t.length!==e.length)return!1;let s=!0;for(let i=0;s&&i<t.length;i++)s=Wn(t[i],e[i]);return s}function Wn(t,e){if(t===e)return!0;let s=dc(t),i=dc(e);if(s||i)return s&&i?t.getTime()===e.getTime():!1;if(s=hs(t),i=hs(e),s||i)return t===e;if(s=At(t),i=At(e),s||i)return s&&i?sm(t,e):!1;if(s=Kt(t),i=Kt(e),s||i){if(!s||!i)return!1;const o=Object.keys(t).length,a=Object.keys(e).length;if(o!==a)return!1;for(const l in t){const b=t.hasOwnProperty(l),u=e.hasOwnProperty(l);if(b&&!u||!b&&u||!Wn(t[l],e[l]))return!1}}return String(t)===String(e)}function im(t,e){return t.findIndex(s=>Wn(s,e))}const db=t=>!!(t&&t.__v_isRef===!0),De=t=>ce(t)?t:t==null?"":At(t)||Kt(t)&&(t.toString===lb||!Mt(t.toString))?db(t)?De(t.value):JSON.stringify(t,mb,2):String(t),mb=(t,e)=>db(e)?mb(t,e.value):Xi(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((s,[i,o],a)=>(s[ca(i,a)+" =>"]=o,s),{})}:nr(e)?{[`Set(${e.size})`]:[...e.values()].map(s=>ca(s))}:hs(e)?ca(e):Kt(e)&&!At(e)&&!cb(e)?String(e):e,ca=(t,e="")=>{var s;return hs(t)?`Symbol(${(s=t.description)!=null?s:e})`:t};let Be;class fb{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Be,!e&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].pause();for(e=0,s=this.effects.length;e<s;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,s;if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].resume();for(e=0,s=this.effects.length;e<s;e++)this.effects[e].resume()}}run(e){if(this._active){const s=Be;try{return Be=this,e()}finally{Be=s}}}on(){++this._on===1&&(this.prevScope=Be,Be=this)}off(){this._on>0&&--this._on===0&&(Be=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let s,i;for(s=0,i=this.effects.length;s<i;s++)this.effects[s].stop();for(this.effects.length=0,s=0,i=this.cleanups.length;s<i;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,i=this.scopes.length;s<i;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function al(t){return new fb(t)}function pb(){return Be}function nm(t,e=!1){Be&&Be.cleanups.push(t)}let te;const ua=new WeakSet;class hb{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Be&&Be.active&&Be.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,ua.has(this)&&(ua.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||vb(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,fc(this),yb(this);const e=te,s=fs;te=this,fs=!0;try{return this.fn()}finally{kb(this),te=e,fs=s,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ul(e);this.deps=this.depsTail=void 0,fc(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?ua.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Ca(this)&&this.run()}get dirty(){return Ca(this)}}let gb=0,xn,An;function vb(t,e=!1){if(t.flags|=8,e){t.next=An,An=t;return}t.next=xn,xn=t}function ll(){gb++}function cl(){if(--gb>0)return;if(An){let e=An;for(An=void 0;e;){const s=e.next;e.next=void 0,e.flags&=-9,e=s}}let t;for(;xn;){let e=xn;for(xn=void 0;e;){const s=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=s}}if(t)throw t}function yb(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function kb(t){let e,s=t.depsTail,i=s;for(;i;){const o=i.prevDep;i.version===-1?(i===s&&(s=o),ul(i),om(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=s}function Ca(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Sb(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Sb(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Nn)||(t.globalVersion=Nn,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Ca(t))))return;t.flags|=2;const e=t.dep,s=te,i=fs;te=t,fs=!0;try{yb(t);const o=t.fn(t._value);(e.version===0||Ie(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{te=s,fs=i,kb(t),t.flags&=-3}}function ul(t,e=!1){const{dep:s,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),s.subs===t&&(s.subs=i,!i&&s.computed)){s.computed.flags&=-5;for(let a=s.computed.deps;a;a=a.nextDep)ul(a,!0)}!e&&!--s.sc&&s.map&&s.map.delete(s.key)}function om(t){const{prevDep:e,nextDep:s}=t;e&&(e.nextDep=s,t.prevDep=void 0),s&&(s.prevDep=e,t.nextDep=void 0)}let fs=!0;const Tb=[];function Js(){Tb.push(fs),fs=!1}function Qs(){const t=Tb.pop();fs=t===void 0?!0:t}function fc(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const s=te;te=void 0;try{e()}finally{te=s}}}let Nn=0;class rm{constructor(e,s){this.sub=e,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class br{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!te||!fs||te===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==te)s=this.activeLink=new rm(te,this),te.deps?(s.prevDep=te.depsTail,te.depsTail.nextDep=s,te.depsTail=s):te.deps=te.depsTail=s,_b(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const i=s.nextDep;i.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=i),s.prevDep=te.depsTail,s.nextDep=void 0,te.depsTail.nextDep=s,te.depsTail=s,te.deps===s&&(te.deps=i)}return s}trigger(e){this.version++,Nn++,this.notify(e)}notify(e){ll();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{cl()}}}function _b(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)_b(i)}const s=t.dep.subs;s!==t&&(t.prevSub=s,s&&(s.nextSub=t)),t.dep.subs=t}}const qo=new WeakMap,Ri=Symbol(""),Ea=Symbol(""),In=Symbol("");function Ue(t,e,s){if(fs&&te){let i=qo.get(t);i||qo.set(t,i=new Map);let o=i.get(s);o||(i.set(s,o=new br),o.map=i,o.key=s),o.track()}}function $s(t,e,s,i,o,a){const l=qo.get(t);if(!l){Nn++;return}const b=u=>{u&&u.trigger()};if(ll(),e==="clear")l.forEach(b);else{const u=At(t),f=u&&or(s);if(u&&s==="length"){const p=Number(i);l.forEach((g,y)=>{(y==="length"||y===In||!hs(y)&&y>=p)&&b(g)})}else switch((s!==void 0||l.has(void 0))&&b(l.get(s)),f&&b(l.get(In)),e){case"add":u?f&&b(l.get("length")):(b(l.get(Ri)),Xi(t)&&b(l.get(Ea)));break;case"delete":u||(b(l.get(Ri)),Xi(t)&&b(l.get(Ea)));break;case"set":Xi(t)&&b(l.get(Ri));break}}cl()}function am(t,e){const s=qo.get(t);return s&&s.get(e)}function Hi(t){const e=Bt(t);return e===t?e:(Ue(e,"iterate",In),ts(t)?e:e.map(gs))}function dr(t){return Ue(t=Bt(t),"iterate",In),t}function Es(t,e){return Ys(t)?sn(Gs(t)?gs(e):e):gs(e)}const lm={__proto__:null,[Symbol.iterator](){return ba(this,Symbol.iterator,t=>Es(this,t))},concat(...t){return Hi(this).concat(...t.map(e=>At(e)?Hi(e):e))},entries(){return ba(this,"entries",t=>(t[1]=Es(this,t[1]),t))},every(t,e){return Is(this,"every",t,e,void 0,arguments)},filter(t,e){return Is(this,"filter",t,e,s=>s.map(i=>Es(this,i)),arguments)},find(t,e){return Is(this,"find",t,e,s=>Es(this,s),arguments)},findIndex(t,e){return Is(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Is(this,"findLast",t,e,s=>Es(this,s),arguments)},findLastIndex(t,e){return Is(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Is(this,"forEach",t,e,void 0,arguments)},includes(...t){return da(this,"includes",t)},indexOf(...t){return da(this,"indexOf",t)},join(t){return Hi(this).join(t)},lastIndexOf(...t){return da(this,"lastIndexOf",t)},map(t,e){return Is(this,"map",t,e,void 0,arguments)},pop(){return gn(this,"pop")},push(...t){return gn(this,"push",t)},reduce(t,...e){return pc(this,"reduce",t,e)},reduceRight(t,...e){return pc(this,"reduceRight",t,e)},shift(){return gn(this,"shift")},some(t,e){return Is(this,"some",t,e,void 0,arguments)},splice(...t){return gn(this,"splice",t)},toReversed(){return Hi(this).toReversed()},toSorted(t){return Hi(this).toSorted(t)},toSpliced(...t){return Hi(this).toSpliced(...t)},unshift(...t){return gn(this,"unshift",t)},values(){return ba(this,"values",t=>Es(this,t))}};function ba(t,e,s){const i=dr(t),o=i[e]();return i!==t&&!ts(t)&&(o._next=o.next,o.next=()=>{const a=o._next();return a.done||(a.value=s(a.value)),a}),o}const cm=Array.prototype;function Is(t,e,s,i,o,a){const l=dr(t),b=l!==t&&!ts(t),u=l[e];if(u!==cm[e]){const g=u.apply(t,a);return b?gs(g):g}let f=s;l!==t&&(b?f=function(g,y){return s.call(this,Es(t,g),y,t)}:s.length>2&&(f=function(g,y){return s.call(this,g,y,t)}));const p=u.call(l,f,i);return b&&o?o(p):p}function pc(t,e,s,i){const o=dr(t),a=o!==t&&!ts(t);let l=s,b=!1;o!==t&&(a?(b=i.length===0,l=function(f,p,g){return b&&(b=!1,f=Es(t,f)),s.call(this,f,Es(t,p),g,t)}):s.length>3&&(l=function(f,p,g){return s.call(this,f,p,g,t)}));const u=o[e](l,...i);return b?Es(t,u):u}function da(t,e,s){const i=Bt(t);Ue(i,"iterate",In);const o=i[e](...s);return(o===-1||o===!1)&&mr(s[0])?(s[0]=Bt(s[0]),i[e](...s)):o}function gn(t,e,s=[]){Js(),ll();const i=Bt(t)[e].apply(t,s);return cl(),Qs(),i}const um=nl("__proto__,__v_isRef,__isVue"),wb=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(hs));function bm(t){hs(t)||(t=String(t));const e=Bt(this);return Ue(e,"has",t),e.hasOwnProperty(t)}class Pb{constructor(e=!1,s=!1){this._isReadonly=e,this._isShallow=s}get(e,s,i){if(s==="__v_skip")return e.__v_skip;const o=this._isReadonly,a=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return a;if(s==="__v_raw")return i===(o?a?Sm:Eb:a?Cb:Ab).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const l=At(e);if(!o){let u;if(l&&(u=lm[s]))return u;if(s==="hasOwnProperty")return bm}const b=Reflect.get(e,s,le(e)?e:i);if((hs(s)?wb.has(s):um(s))||(o||Ue(e,"get",s),a))return b;if(le(b)){const u=l&&or(s)?b:b.value;return o&&Kt(u)?Ma(u):u}return Kt(b)?o?Ma(b):Jn(b):b}}class xb extends Pb{constructor(e=!1){super(!1,e)}set(e,s,i,o){let a=e[s];const l=At(e)&&or(s);if(!this._isShallow){const f=Ys(a);if(!ts(i)&&!Ys(i)&&(a=Bt(a),i=Bt(i)),!l&&le(a)&&!le(i))return f||(a.value=i),!0}const b=l?Number(s)<e.length:Gt(e,s),u=Reflect.set(e,s,i,le(e)?e:o);return e===Bt(o)&&(b?Ie(i,a)&&$s(e,"set",s,i):$s(e,"add",s,i)),u}deleteProperty(e,s){const i=Gt(e,s);e[s];const o=Reflect.deleteProperty(e,s);return o&&i&&$s(e,"delete",s,void 0),o}has(e,s){const i=Reflect.has(e,s);return(!hs(s)||!wb.has(s))&&Ue(e,"has",s),i}ownKeys(e){return Ue(e,"iterate",At(e)?"length":Ri),Reflect.ownKeys(e)}}class dm extends Pb{constructor(e=!1){super(!0,e)}set(e,s){return!0}deleteProperty(e,s){return!0}}const mm=new xb,fm=new dm,pm=new xb(!0);const ja=t=>t,Po=t=>Reflect.getPrototypeOf(t);function hm(t,e,s){return function(...i){const o=this.__v_raw,a=Bt(o),l=Xi(a),b=t==="entries"||t===Symbol.iterator&&l,u=t==="keys"&&l,f=o[t](...i),p=s?ja:e?sn:gs;return!e&&Ue(a,"iterate",u?Ea:Ri),Ee(Object.create(f),{next(){const{value:g,done:y}=f.next();return y?{value:g,done:y}:{value:b?[p(g[0]),p(g[1])]:p(g),done:y}}})}}function xo(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function gm(t,e){const s={get(o){const a=this.__v_raw,l=Bt(a),b=Bt(o);t||(Ie(o,b)&&Ue(l,"get",o),Ue(l,"get",b));const{has:u}=Po(l),f=e?ja:t?sn:gs;if(u.call(l,o))return f(a.get(o));if(u.call(l,b))return f(a.get(b));a!==l&&a.get(o)},get size(){const o=this.__v_raw;return!t&&Ue(Bt(o),"iterate",Ri),o.size},has(o){const a=this.__v_raw,l=Bt(a),b=Bt(o);return t||(Ie(o,b)&&Ue(l,"has",o),Ue(l,"has",b)),o===b?a.has(o):a.has(o)||a.has(b)},forEach(o,a){const l=this,b=l.__v_raw,u=Bt(b),f=e?ja:t?sn:gs;return!t&&Ue(u,"iterate",Ri),b.forEach((p,g)=>o.call(a,f(p),f(g),l))}};return Ee(s,t?{add:xo("add"),set:xo("set"),delete:xo("delete"),clear:xo("clear")}:{add(o){const a=Bt(this),l=Po(a),b=Bt(o),u=!e&&!ts(o)&&!Ys(o)?b:o;return l.has.call(a,u)||Ie(o,u)&&l.has.call(a,o)||Ie(b,u)&&l.has.call(a,b)||(a.add(u),$s(a,"add",u,u)),this},set(o,a){!e&&!ts(a)&&!Ys(a)&&(a=Bt(a));const l=Bt(this),{has:b,get:u}=Po(l);let f=b.call(l,o);f||(o=Bt(o),f=b.call(l,o));const p=u.call(l,o);return l.set(o,a),f?Ie(a,p)&&$s(l,"set",o,a):$s(l,"add",o,a),this},delete(o){const a=Bt(this),{has:l,get:b}=Po(a);let u=l.call(a,o);u||(o=Bt(o),u=l.call(a,o)),b&&b.call(a,o);const f=a.delete(o);return u&&$s(a,"delete",o,void 0),f},clear(){const o=Bt(this),a=o.size!==0,l=o.clear();return a&&$s(o,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=hm(o,t,e)}),s}function bl(t,e){const s=gm(t,e);return(i,o,a)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Gt(s,o)&&o in i?s:i,o,a)}const vm={get:bl(!1,!1)},ym={get:bl(!1,!0)},km={get:bl(!0,!1)};const Ab=new WeakMap,Cb=new WeakMap,Eb=new WeakMap,Sm=new WeakMap;function Tm(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function _m(t){return t.__v_skip||!Object.isExtensible(t)?0:Tm(H0(t))}function Jn(t){return Ys(t)?t:dl(t,!1,mm,vm,Ab)}function jb(t){return dl(t,!1,pm,ym,Cb)}function Ma(t){return dl(t,!0,fm,km,Eb)}function dl(t,e,s,i,o){if(!Kt(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const a=_m(t);if(a===0)return t;const l=o.get(t);if(l)return l;const b=new Proxy(t,a===2?i:s);return o.set(t,b),b}function Gs(t){return Ys(t)?Gs(t.__v_raw):!!(t&&t.__v_isReactive)}function Ys(t){return!!(t&&t.__v_isReadonly)}function ts(t){return!!(t&&t.__v_isShallow)}function mr(t){return t?!!t.__v_raw:!1}function Bt(t){const e=t&&t.__v_raw;return e?Bt(e):t}function ml(t){return!Gt(t,"__v_skip")&&Object.isExtensible(t)&&ub(t,"__v_skip",!0),t}const gs=t=>Kt(t)?Jn(t):t,sn=t=>Kt(t)?Ma(t):t;function le(t){return t?t.__v_isRef===!0:!1}function he(t){return Db(t,!1)}function Mb(t){return Db(t,!0)}function Db(t,e){return le(t)?t:new wm(t,e)}class wm{constructor(e,s){this.dep=new br,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?e:Bt(e),this._value=s?e:gs(e),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(e){const s=this._rawValue,i=this.__v_isShallow||ts(e)||Ys(e);e=i?e:Bt(e),Ie(e,s)&&(this._rawValue=e,this._value=i?e:gs(e),this.dep.trigger())}}function ie(t){return le(t)?t.value:t}function Dk(t){return Mt(t)?t():ie(t)}const Pm={get:(t,e,s)=>e==="__v_raw"?t:ie(Reflect.get(t,e,s)),set:(t,e,s,i)=>{const o=t[e];return le(o)&&!le(s)?(o.value=s,!0):Reflect.set(t,e,s,i)}};function Ob(t){return Gs(t)?t:new Proxy(t,Pm)}class xm{constructor(e){this.__v_isRef=!0,this._value=void 0;const s=this.dep=new br,{get:i,set:o}=e(s.track.bind(s),s.trigger.bind(s));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Am(t){return new xm(t)}function Cm(t){const e=At(t)?new Array(t.length):{};for(const s in t)e[s]=Rb(t,s);return e}class Em{constructor(e,s,i){this._object=e,this._key=s,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._raw=Bt(e);let o=!0,a=e;if(!At(e)||!or(String(s)))do o=!mr(a)||ts(a);while(o&&(a=a.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=ie(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&le(this._raw[this._key])){const s=this._object[this._key];if(le(s)){s.value=e;return}}this._object[this._key]=e}get dep(){return am(this._raw,this._key)}}class jm{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Ok(t,e,s){return le(t)?t:Mt(t)?new jm(t):Kt(t)&&arguments.length>1?Rb(t,e,s):he(t)}function Rb(t,e,s){return new Em(t,e,s)}class Mm{constructor(e,s,i){this.fn=e,this.setter=s,this._value=void 0,this.dep=new br(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Nn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&te!==this)return vb(this,!0),!0}get value(){const e=this.dep.track();return Sb(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Dm(t,e,s=!1){let i,o;return Mt(t)?i=t:(i=t.get,o=t.set),new Mm(i,o,s)}const Ao={},$o=new WeakMap;let ji;function Om(t,e=!1,s=ji){if(s){let i=$o.get(s);i||$o.set(s,i=[]),i.push(t)}}function Rm(t,e,s=$t){const{immediate:i,deep:o,once:a,scheduler:l,augmentJob:b,call:u}=s,f=N=>o?N:ts(N)||o===!1||o===0?Vs(N,1):Vs(N);let p,g,y,_,z=!1,I=!1;if(le(t)?(g=()=>t.value,z=ts(t)):Gs(t)?(g=()=>f(t),z=!0):At(t)?(I=!0,z=t.some(N=>Gs(N)||ts(N)),g=()=>t.map(N=>{if(le(N))return N.value;if(Gs(N))return f(N);if(Mt(N))return u?u(N,2):N()})):Mt(t)?e?g=u?()=>u(t,2):t:g=()=>{if(y){Js();try{y()}finally{Qs()}}const N=ji;ji=p;try{return u?u(t,3,[_]):t(_)}finally{ji=N}}:g=Ms,e&&o){const N=g,X=o===!0?1/0:o;g=()=>Vs(N(),X)}const $=pb(),P=()=>{p.stop(),$&&$.active&&rl($.effects,p)};if(a&&e){const N=e;e=(...X)=>{N(...X),P()}}let x=I?new Array(t.length).fill(Ao):Ao;const G=N=>{if(!(!(p.flags&1)||!p.dirty&&!N))if(e){const X=p.run();if(o||z||(I?X.some((W,H)=>Ie(W,x[H])):Ie(X,x))){y&&y();const W=ji;ji=p;try{const H=[X,x===Ao?void 0:I&&x[0]===Ao?[]:x,_];x=X,u?u(e,3,H):e(...H)}finally{ji=W}}}else p.run()};return b&&b(G),p=new hb(g),p.scheduler=l?()=>l(G,!1):G,_=N=>Om(N,!1,p),y=p.onStop=()=>{const N=$o.get(p);if(N){if(u)u(N,4);else for(const X of N)X();$o.delete(p)}},e?i?G(!0):x=p.run():l?l(G.bind(null,!0),!0):p.run(),P.pause=p.pause.bind(p),P.resume=p.resume.bind(p),P.stop=P,P}function Vs(t,e=1/0,s){if(e<=0||!Kt(t)||t.__v_skip||(s=s||new Map,(s.get(t)||0)>=e))return t;if(s.set(t,e),e--,le(t))Vs(t.value,e,s);else if(At(t))for(let i=0;i<t.length;i++)Vs(t[i],e,s);else if(nr(t)||Xi(t))t.forEach(i=>{Vs(i,e,s)});else if(cb(t)){for(const i in t)Vs(t[i],e,s);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&Vs(t[i],e,s)}return t}function Qn(t,e,s,i){try{return i?t(...i):t()}catch(o){fr(o,e,s)}}function vs(t,e,s,i){if(Mt(t)){const o=Qn(t,e,s,i);return o&&ab(o)&&o.catch(a=>{fr(a,e,s)}),o}if(At(t)){const o=[];for(let a=0;a<t.length;a++)o.push(vs(t[a],e,s,i));return o}}function fr(t,e,s,i=!0){const o=e?e.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:l}=e&&e.appContext.config||$t;if(e){let b=e.parent;const u=e.proxy,f=`https://vuejs.org/error-reference/#runtime-${s}`;for(;b;){const p=b.ec;if(p){for(let g=0;g<p.length;g++)if(p[g](t,u,f)===!1)return}b=b.parent}if(a){Js(),Qn(a,null,10,[t,u,f]),Qs();return}}Nm(t,s,o,i,l)}function Nm(t,e,s,i=!0,o=!1){if(o)throw t;console.error(t)}const Je=[];let As=-1;const Zi=[];let bi=null,Wi=0;const Nb=Promise.resolve();let Vo=null;function pr(t){const e=Vo||Nb;return t?e.then(this?t.bind(this):t):e}function Im(t){let e=As+1,s=Je.length;for(;e<s;){const i=e+s>>>1,o=Je[i],a=Ln(o);a<t||a===t&&o.flags&2?e=i+1:s=i}return e}function fl(t){if(!(t.flags&1)){const e=Ln(t),s=Je[Je.length-1];!s||!(t.flags&2)&&e>=Ln(s)?Je.push(t):Je.splice(Im(e),0,t),t.flags|=1,Ib()}}function Ib(){Vo||(Vo=Nb.then(Fb))}function Lm(t){At(t)?Zi.push(...t):bi&&t.id===-1?bi.splice(Wi+1,0,t):t.flags&1||(Zi.push(t),t.flags|=1),Ib()}function hc(t,e,s=As+1){for(;s<Je.length;s++){const i=Je[s];if(i&&i.flags&2){if(t&&i.id!==t.uid)continue;Je.splice(s,1),s--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function Lb(t){if(Zi.length){const e=[...new Set(Zi)].sort((s,i)=>Ln(s)-Ln(i));if(Zi.length=0,bi){bi.push(...e);return}for(bi=e,Wi=0;Wi<bi.length;Wi++){const s=bi[Wi];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}bi=null,Wi=0}}const Ln=t=>t.id==null?t.flags&2?-1:1/0:t.id;function Fb(t){try{for(As=0;As<Je.length;As++){const e=Je[As];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),Qn(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;As<Je.length;As++){const e=Je[As];e&&(e.flags&=-2)}As=-1,Je.length=0,Lb(),Vo=null,(Je.length||Zi.length)&&Fb()}}let Le=null,zb=null;function Ko(t){const e=Le;return Le=t,zb=t&&t.type.__scopeId||null,e}function Fn(t,e=Le,s){if(!e||t._n)return t;const i=(...o)=>{i._d&&Wo(-1);const a=Ko(e);let l;try{l=t(...o)}finally{Ko(a),i._d&&Wo(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function gc(t,e){if(Le===null)return t;const s=Sr(Le),i=t.dirs||(t.dirs=[]);for(let o=0;o<e.length;o++){let[a,l,b,u=$t]=e[o];a&&(Mt(a)&&(a={mounted:a,updated:a}),a.deep&&Vs(l),i.push({dir:a,instance:s,value:l,oldValue:void 0,arg:b,modifiers:u}))}return t}function Pi(t,e,s,i){const o=t.dirs,a=e&&e.dirs;for(let l=0;l<o.length;l++){const b=o[l];a&&(b.oldValue=a[l].value);let u=b.dir[i];u&&(Js(),vs(u,s,8,[t.el,b,t,e]),Qs())}}function Ro(t,e){if($e){let s=$e.provides;const i=$e.parent&&$e.parent.provides;i===s&&(s=$e.provides=Object.create(i)),s[t]=e}}function es(t,e,s=!1){const i=pi();if(i||Ni){let o=Ni?Ni._context.provides:i?i.parent==null||i.ce?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(o&&t in o)return o[t];if(arguments.length>1)return s&&Mt(e)?e.call(i&&i.proxy):e}}function Fm(){return!!(pi()||Ni)}const zm=Symbol.for("v-scx"),Bm=()=>es(zm);function Rk(t,e){return hr(t,null,e)}function Um(t,e){return hr(t,null,{flush:"sync"})}function Ws(t,e,s){return hr(t,e,s)}function hr(t,e,s=$t){const{immediate:i,deep:o,flush:a,once:l}=s,b=Ee({},s),u=e&&i||!e&&a!=="post";let f;if(Un){if(a==="sync"){const _=Bm();f=_.__watcherHandles||(_.__watcherHandles=[])}else if(!u){const _=()=>{};return _.stop=Ms,_.resume=Ms,_.pause=Ms,_}}const p=$e;b.call=(_,z,I)=>vs(_,p,z,I);let g=!1;a==="post"?b.scheduler=_=>{ze(_,p&&p.suspense)}:a!=="sync"&&(g=!0,b.scheduler=(_,z)=>{z?_():fl(_)}),b.augmentJob=_=>{e&&(_.flags|=4),g&&(_.flags|=2,p&&(_.id=p.uid,_.i=p))};const y=Rm(t,e,b);return Un&&(f?f.push(y):u&&y()),y}function qm(t,e,s){const i=this.proxy,o=ce(t)?t.includes(".")?Bb(i,t):()=>i[t]:t.bind(i,i);let a;Mt(e)?a=e:(a=e.handler,s=e);const l=Zn(this),b=hr(o,a.bind(i),s);return l(),b}function Bb(t,e){const s=e.split(".");return()=>{let i=t;for(let o=0;o<s.length&&i;o++)i=i[s[o]];return i}}const Ub=Symbol("_vte"),qb=t=>t.__isTeleport,Cn=t=>t&&(t.disabled||t.disabled===""),vc=t=>t&&(t.defer||t.defer===""),yc=t=>typeof SVGElement<"u"&&t instanceof SVGElement,kc=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Da=(t,e)=>{const s=t&&t.to;return ce(s)?e?e(s):null:s},$b={name:"Teleport",__isTeleport:!0,process(t,e,s,i,o,a,l,b,u,f){const{mc:p,pc:g,pbc:y,o:{insert:_,querySelector:z,createText:I,createComment:$}}=f,P=Cn(e.props);let{shapeFlag:x,children:G,dynamicChildren:N}=e;if(t==null){const X=e.el=I(""),W=e.anchor=I("");_(X,s,i),_(W,s,i);const H=(st,yt)=>{x&16&&p(G,st,yt,o,a,l,b,u)},rt=()=>{const st=e.target=Da(e.props,z),yt=Oa(st,e,I,_);st&&(l!=="svg"&&yc(st)?l="svg":l!=="mathml"&&kc(st)&&(l="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(st),P||(H(st,yt),No(e,!1)))};P&&(H(s,W),No(e,!0)),vc(e.props)?(e.el.__isMounted=!1,ze(()=>{rt(),delete e.el.__isMounted},a)):rt()}else{if(vc(e.props)&&t.el.__isMounted===!1){ze(()=>{$b.process(t,e,s,i,o,a,l,b,u,f)},a);return}e.el=t.el,e.targetStart=t.targetStart;const X=e.anchor=t.anchor,W=e.target=t.target,H=e.targetAnchor=t.targetAnchor,rt=Cn(t.props),st=rt?s:W,yt=rt?X:H;if(l==="svg"||yc(W)?l="svg":(l==="mathml"||kc(W))&&(l="mathml"),N?(y(t.dynamicChildren,N,st,o,a,l,b),kl(t,e,!0)):u||g(t,e,st,yt,o,a,l,b,!1),P)rt?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Co(e,s,X,f,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const Pt=e.target=Da(e.props,z);Pt&&Co(e,Pt,null,f,0)}else rt&&Co(e,W,H,f,1);No(e,P)}},remove(t,e,s,{um:i,o:{remove:o}},a){const{shapeFlag:l,children:b,anchor:u,targetStart:f,targetAnchor:p,target:g,props:y}=t;if(g&&(o(f),o(p)),a&&o(u),l&16){const _=a||!Cn(y);for(let z=0;z<b.length;z++){const I=b[z];i(I,e,s,_,!!I.dynamicChildren)}}},move:Co,hydrate:$m};function Co(t,e,s,{o:{insert:i},m:o},a=2){a===0&&i(t.targetAnchor,e,s);const{el:l,anchor:b,shapeFlag:u,children:f,props:p}=t,g=a===2;if(g&&i(l,e,s),(!g||Cn(p))&&u&16)for(let y=0;y<f.length;y++)o(f[y],e,s,2);g&&i(b,e,s)}function $m(t,e,s,i,o,a,{o:{nextSibling:l,parentNode:b,querySelector:u,insert:f,createText:p}},g){function y($,P){let x=P;for(;x;){if(x&&x.nodeType===8){if(x.data==="teleport start anchor")e.targetStart=x;else if(x.data==="teleport anchor"){e.targetAnchor=x,$._lpa=e.targetAnchor&&l(e.targetAnchor);break}}x=l(x)}}function _($,P){P.anchor=g(l($),P,b($),s,i,o,a)}const z=e.target=Da(e.props,u),I=Cn(e.props);if(z){const $=z._lpa||z.firstChild;e.shapeFlag&16&&(I?(_(t,e),y(z,$),e.targetAnchor||Oa(z,e,p,f,b(t)===z?t:null)):(e.anchor=l(t),y(z,$),e.targetAnchor||Oa(z,e,p,f),g($&&l($),e,z,s,i,o,a))),No(e,I)}else I&&e.shapeFlag&16&&(_(t,e),e.targetStart=t,e.targetAnchor=l(t));return e.anchor&&l(e.anchor)}const Vm=$b;function No(t,e){const s=t.ctx;if(s&&s.ut){let i,o;for(e?(i=t.el,o=t.anchor):(i=t.targetStart,o=t.targetAnchor);i&&i!==o;)i.nodeType===1&&i.setAttribute("data-v-owner",s.uid),i=i.nextSibling;s.ut()}}function Oa(t,e,s,i,o=null){const a=e.targetStart=s(""),l=e.targetAnchor=s("");return a[Ub]=l,t&&(i(a,t,o),i(l,t,o)),l}const Cs=Symbol("_leaveCb"),vn=Symbol("_enterCb");function Km(){const t={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Yn(()=>{t.isMounted=!0}),pl(()=>{t.isUnmounting=!0}),t}const ns=[Function,Array],Vb={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ns,onEnter:ns,onAfterEnter:ns,onEnterCancelled:ns,onBeforeLeave:ns,onLeave:ns,onAfterLeave:ns,onLeaveCancelled:ns,onBeforeAppear:ns,onAppear:ns,onAfterAppear:ns,onAppearCancelled:ns},Kb=t=>{const e=t.subTree;return e.component?Kb(e.component):e},Hm={name:"BaseTransition",props:Vb,setup(t,{slots:e}){const s=pi(),i=Km();return()=>{const o=e.default&&Wb(e.default(),!0);if(!o||!o.length)return;const a=Hb(o),l=Bt(t),{mode:b}=l;if(i.isLeaving)return ma(a);const u=Sc(a);if(!u)return ma(a);let f=Ra(u,l,i,s,g=>f=g);u.type!==qe&&zn(u,f);let p=s.subTree&&Sc(s.subTree);if(p&&p.type!==qe&&!Mi(p,u)&&Kb(s).type!==qe){let g=Ra(p,l,i,s);if(zn(p,g),b==="out-in"&&u.type!==qe)return i.isLeaving=!0,g.afterLeave=()=>{i.isLeaving=!1,s.job.flags&8||s.update(),delete g.afterLeave,p=void 0},ma(a);b==="in-out"&&u.type!==qe?g.delayLeave=(y,_,z)=>{const I=Gb(i,p);I[String(p.key)]=p,y[Cs]=()=>{_(),y[Cs]=void 0,delete f.delayedLeave,p=void 0},f.delayedLeave=()=>{z(),delete f.delayedLeave,p=void 0}}:p=void 0}else p&&(p=void 0);return a}}};function Hb(t){let e=t[0];if(t.length>1){for(const s of t)if(s.type!==qe){e=s;break}}return e}const Gm=Hm;function Gb(t,e){const{leavingVNodes:s}=t;let i=s.get(e.type);return i||(i=Object.create(null),s.set(e.type,i)),i}function Ra(t,e,s,i,o){const{appear:a,mode:l,persisted:b=!1,onBeforeEnter:u,onEnter:f,onAfterEnter:p,onEnterCancelled:g,onBeforeLeave:y,onLeave:_,onAfterLeave:z,onLeaveCancelled:I,onBeforeAppear:$,onAppear:P,onAfterAppear:x,onAppearCancelled:G}=e,N=String(t.key),X=Gb(s,t),W=(st,yt)=>{st&&vs(st,i,9,yt)},H=(st,yt)=>{const Pt=yt[1];W(st,yt),At(st)?st.every(lt=>lt.length<=1)&&Pt():st.length<=1&&Pt()},rt={mode:l,persisted:b,beforeEnter(st){let yt=u;if(!s.isMounted)if(a)yt=$||u;else return;st[Cs]&&st[Cs](!0);const Pt=X[N];Pt&&Mi(t,Pt)&&Pt.el[Cs]&&Pt.el[Cs](),W(yt,[st])},enter(st){if(X[N]===t)return;let yt=f,Pt=p,lt=g;if(!s.isMounted)if(a)yt=P||f,Pt=x||p,lt=G||g;else return;let Ct=!1;st[vn]=ue=>{Ct||(Ct=!0,ue?W(lt,[st]):W(Pt,[st]),rt.delayedLeave&&rt.delayedLeave(),st[vn]=void 0)};const Yt=st[vn].bind(null,!1);yt?H(yt,[st,Yt]):Yt()},leave(st,yt){const Pt=String(t.key);if(st[vn]&&st[vn](!0),s.isUnmounting)return yt();W(y,[st]);let lt=!1;st[Cs]=Yt=>{lt||(lt=!0,yt(),Yt?W(I,[st]):W(z,[st]),st[Cs]=void 0,X[Pt]===t&&delete X[Pt])};const Ct=st[Cs].bind(null,!1);X[Pt]=t,_?H(_,[st,Ct]):Ct()},clone(st){const yt=Ra(st,e,s,i,o);return o&&o(yt),yt}};return rt}function ma(t){if(gr(t))return t=mi(t),t.children=null,t}function Sc(t){if(!gr(t))return qb(t.type)&&t.children?Hb(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:s}=t;if(s){if(e&16)return s[0];if(e&32&&Mt(s.default))return s.default()}}function zn(t,e){t.shapeFlag&6&&t.component?(t.transition=e,zn(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function Wb(t,e=!1,s){let i=[],o=0;for(let a=0;a<t.length;a++){let l=t[a];const b=s==null?l.key:String(s)+String(l.key!=null?l.key:a);l.type===ke?(l.patchFlag&128&&o++,i=i.concat(Wb(l.children,e,b))):(e||l.type!==qe)&&i.push(b!=null?mi(l,{key:b}):l)}if(o>1)for(let a=0;a<i.length;a++)i[a].patchFlag=-2;return i}function Os(t,e){return Mt(t)?Ee({name:t.name},e,{setup:t}):t}function Jb(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function Tc(t,e){let s;return!!((s=Object.getOwnPropertyDescriptor(t,e))&&!s.configurable)}const Ho=new WeakMap;function En(t,e,s,i,o=!1){if(At(t)){t.forEach((I,$)=>En(I,e&&(At(e)?e[$]:e),s,i,o));return}if(tn(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&En(t,e,s,i.component.subTree);return}const a=i.shapeFlag&4?Sr(i.component):i.el,l=o?null:a,{i:b,r:u}=t,f=e&&e.r,p=b.refs===$t?b.refs={}:b.refs,g=b.setupState,y=Bt(g),_=g===$t?rb:I=>Tc(p,I)?!1:Gt(y,I),z=(I,$)=>!($&&Tc(p,$));if(f!=null&&f!==u){if(_c(e),ce(f))p[f]=null,_(f)&&(g[f]=null);else if(le(f)){const I=e;z(f,I.k)&&(f.value=null),I.k&&(p[I.k]=null)}}if(Mt(u))Qn(u,b,12,[l,p]);else{const I=ce(u),$=le(u);if(I||$){const P=()=>{if(t.f){const x=I?_(u)?g[u]:p[u]:z()||!t.k?u.value:p[t.k];if(o)At(x)&&rl(x,a);else if(At(x))x.includes(a)||x.push(a);else if(I)p[u]=[a],_(u)&&(g[u]=p[u]);else{const G=[a];z(u,t.k)&&(u.value=G),t.k&&(p[t.k]=G)}}else I?(p[u]=l,_(u)&&(g[u]=l)):$&&(z(u,t.k)&&(u.value=l),t.k&&(p[t.k]=l))};if(l){const x=()=>{P(),Ho.delete(t)};x.id=-1,Ho.set(t,x),ze(x,s)}else _c(t),P()}}}function _c(t){const e=Ho.get(t);e&&(e.flags|=8,Ho.delete(t))}cr().requestIdleCallback;cr().cancelIdleCallback;const tn=t=>!!t.type.__asyncLoader,gr=t=>t.type.__isKeepAlive;function Wm(t,e){Qb(t,"a",e)}function Jm(t,e){Qb(t,"da",e)}function Qb(t,e,s=$e){const i=t.__wdc||(t.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(vr(e,i,s),s){let o=s.parent;for(;o&&o.parent;)gr(o.parent.vnode)&&Qm(i,e,s,o),o=o.parent}}function Qm(t,e,s,i){const o=vr(e,t,i,!0);hl(()=>{rl(i[e],o)},s)}function vr(t,e,s=$e,i=!1){if(s){const o=s[t]||(s[t]=[]),a=e.__weh||(e.__weh=(...l)=>{Js();const b=Zn(s),u=vs(e,s,t,l);return b(),Qs(),u});return i?o.unshift(a):o.push(a),a}}const Zs=t=>(e,s=$e)=>{(!Un||t==="sp")&&vr(t,(...i)=>e(...i),s)},Ym=Zs("bm"),Yn=Zs("m"),Xm=Zs("bu"),Zm=Zs("u"),pl=Zs("bum"),hl=Zs("um"),tf=Zs("sp"),ef=Zs("rtg"),sf=Zs("rtc");function nf(t,e=$e){vr("ec",t,e)}const Yb="components";function yr(t,e){return td(Yb,t,!0,e)||t}const Xb=Symbol.for("v-ndc");function Zb(t){return ce(t)?td(Yb,t,!1)||t:t||Xb}function td(t,e,s=!0,i=!1){const o=Le||$e;if(o){const a=o.type;{const b=Bf(a,!1);if(b&&(b===e||b===Ve(e)||b===ar(Ve(e))))return a}const l=wc(o[t]||a[t],e)||wc(o.appContext[t],e);return!l&&i?a:l}}function wc(t,e){return t&&(t[e]||t[Ve(e)]||t[ar(Ve(e))])}function gl(t,e,s,i){let o;const a=s&&s[i],l=At(t);if(l||ce(t)){const b=l&&Gs(t);let u=!1,f=!1;b&&(u=!ts(t),f=Ys(t),t=dr(t)),o=new Array(t.length);for(let p=0,g=t.length;p<g;p++)o[p]=e(u?f?sn(gs(t[p])):gs(t[p]):t[p],p,void 0,a&&a[p])}else if(typeof t=="number"){o=new Array(t);for(let b=0;b<t;b++)o[b]=e(b+1,b,void 0,a&&a[b])}else if(Kt(t))if(t[Symbol.iterator])o=Array.from(t,(b,u)=>e(b,u,void 0,a&&a[u]));else{const b=Object.keys(t);o=new Array(b.length);for(let u=0,f=b.length;u<f;u++){const p=b[u];o[u]=e(t[p],p,u,a&&a[u])}}else o=[];return s&&(s[i]=o),o}function Nk(t,e,s={},i,o){if(Le.ce||Le.parent&&tn(Le.parent)&&Le.parent.ce){const f=Object.keys(s).length>0;return e!=="default"&&(s.name=e),me(),ps(ke,null,[oe("slot",s,i&&i())],f?-2:64)}let a=t[e];a&&a._c&&(a._d=!1),me();const l=a&&ed(a(s)),b=s.key||l&&l.key,u=ps(ke,{key:(b&&!hs(b)?b:`_${e}`)+(!l&&i?"_fb":"")},l||(i?i():[]),l&&t._===1?64:-2);return u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),a&&a._c&&(a._d=!0),u}function ed(t){return t.some(e=>Bn(e)?!(e.type===qe||e.type===ke&&!ed(e.children)):!0)?t:null}const Na=t=>t?_d(t)?Sr(t):Na(t.parent):null,jn=Ee(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Na(t.parent),$root:t=>Na(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>nd(t),$forceUpdate:t=>t.f||(t.f=()=>{fl(t.update)}),$nextTick:t=>t.n||(t.n=pr.bind(t.proxy)),$watch:t=>qm.bind(t)}),fa=(t,e)=>t!==$t&&!t.__isScriptSetup&&Gt(t,e),of={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:s,setupState:i,data:o,props:a,accessCache:l,type:b,appContext:u}=t;if(e[0]!=="$"){const y=l[e];if(y!==void 0)switch(y){case 1:return i[e];case 2:return o[e];case 4:return s[e];case 3:return a[e]}else{if(fa(i,e))return l[e]=1,i[e];if(o!==$t&&Gt(o,e))return l[e]=2,o[e];if(Gt(a,e))return l[e]=3,a[e];if(s!==$t&&Gt(s,e))return l[e]=4,s[e];Ia&&(l[e]=0)}}const f=jn[e];let p,g;if(f)return e==="$attrs"&&Ue(t.attrs,"get",""),f(t);if((p=b.__cssModules)&&(p=p[e]))return p;if(s!==$t&&Gt(s,e))return l[e]=4,s[e];if(g=u.config.globalProperties,Gt(g,e))return g[e]},set({_:t},e,s){const{data:i,setupState:o,ctx:a}=t;return fa(o,e)?(o[e]=s,!0):i!==$t&&Gt(i,e)?(i[e]=s,!0):Gt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(a[e]=s,!0)},has({_:{data:t,setupState:e,accessCache:s,ctx:i,appContext:o,props:a,type:l}},b){let u;return!!(s[b]||t!==$t&&b[0]!=="$"&&Gt(t,b)||fa(e,b)||Gt(a,b)||Gt(i,b)||Gt(jn,b)||Gt(o.config.globalProperties,b)||(u=l.__cssModules)&&u[b])},defineProperty(t,e,s){return s.get!=null?t._.accessCache[e]=0:Gt(s,"value")&&this.set(t,e,s.value,null),Reflect.defineProperty(t,e,s)}};function Ik(){return sd().slots}function Lk(){return sd().attrs}function sd(t){const e=pi();return e.setupContext||(e.setupContext=Pd(e))}function Pc(t){return At(t)?t.reduce((e,s)=>(e[s]=null,e),{}):t}function Fk(t,e){const s={};for(const i in t)e.includes(i)||Object.defineProperty(s,i,{enumerable:!0,get:()=>t[i]});return s}let Ia=!0;function rf(t){const e=nd(t),s=t.proxy,i=t.ctx;Ia=!1,e.beforeCreate&&xc(e.beforeCreate,t,"bc");const{data:o,computed:a,methods:l,watch:b,provide:u,inject:f,created:p,beforeMount:g,mounted:y,beforeUpdate:_,updated:z,activated:I,deactivated:$,beforeDestroy:P,beforeUnmount:x,destroyed:G,unmounted:N,render:X,renderTracked:W,renderTriggered:H,errorCaptured:rt,serverPrefetch:st,expose:yt,inheritAttrs:Pt,components:lt,directives:Ct,filters:Yt}=e;if(f&&af(f,i,null),l)for(const jt in l){const Dt=l[jt];Mt(Dt)&&(i[jt]=Dt.bind(s))}if(o){const jt=o.call(s,s);Kt(jt)&&(t.data=Jn(jt))}if(Ia=!0,a)for(const jt in a){const Dt=a[jt],Xt=Mt(Dt)?Dt.bind(s,s):Mt(Dt.get)?Dt.get.bind(s,s):Ms,be=!Mt(Dt)&&Mt(Dt.set)?Dt.set.bind(s):Ms,Pe=ne({get:Xt,set:be});Object.defineProperty(i,jt,{enumerable:!0,configurable:!0,get:()=>Pe.value,set:Jt=>Pe.value=Jt})}if(b)for(const jt in b)id(b[jt],i,s,jt);if(u){const jt=Mt(u)?u.call(s):u;Reflect.ownKeys(jt).forEach(Dt=>{Ro(Dt,jt[Dt])})}p&&xc(p,t,"c");function It(jt,Dt){At(Dt)?Dt.forEach(Xt=>jt(Xt.bind(s))):Dt&&jt(Dt.bind(s))}if(It(Ym,g),It(Yn,y),It(Xm,_),It(Zm,z),It(Wm,I),It(Jm,$),It(nf,rt),It(sf,W),It(ef,H),It(pl,x),It(hl,N),It(tf,st),At(yt))if(yt.length){const jt=t.exposed||(t.exposed={});yt.forEach(Dt=>{Object.defineProperty(jt,Dt,{get:()=>s[Dt],set:Xt=>s[Dt]=Xt,enumerable:!0})})}else t.exposed||(t.exposed={});X&&t.render===Ms&&(t.render=X),Pt!=null&&(t.inheritAttrs=Pt),lt&&(t.components=lt),Ct&&(t.directives=Ct),st&&Jb(t)}function af(t,e,s=Ms){At(t)&&(t=La(t));for(const i in t){const o=t[i];let a;Kt(o)?"default"in o?a=es(o.from||i,o.default,!0):a=es(o.from||i):a=es(o),le(a)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):e[i]=a}}function xc(t,e,s){vs(At(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,s)}function id(t,e,s,i){let o=i.includes(".")?Bb(s,i):()=>s[i];if(ce(t)){const a=e[t];Mt(a)&&Ws(o,a)}else if(Mt(t))Ws(o,t.bind(s));else if(Kt(t))if(At(t))t.forEach(a=>id(a,e,s,i));else{const a=Mt(t.handler)?t.handler.bind(s):e[t.handler];Mt(a)&&Ws(o,a,t)}}function nd(t){const e=t.type,{mixins:s,extends:i}=e,{mixins:o,optionsCache:a,config:{optionMergeStrategies:l}}=t.appContext,b=a.get(e);let u;return b?u=b:!o.length&&!s&&!i?u=e:(u={},o.length&&o.forEach(f=>Go(u,f,l,!0)),Go(u,e,l)),Kt(e)&&a.set(e,u),u}function Go(t,e,s,i=!1){const{mixins:o,extends:a}=e;a&&Go(t,a,s,!0),o&&o.forEach(l=>Go(t,l,s,!0));for(const l in e)if(!(i&&l==="expose")){const b=lf[l]||s&&s[l];t[l]=b?b(t[l],e[l]):e[l]}return t}const lf={data:Ac,props:Cc,emits:Cc,methods:wn,computed:wn,beforeCreate:He,created:He,beforeMount:He,mounted:He,beforeUpdate:He,updated:He,beforeDestroy:He,beforeUnmount:He,destroyed:He,unmounted:He,activated:He,deactivated:He,errorCaptured:He,serverPrefetch:He,components:wn,directives:wn,watch:uf,provide:Ac,inject:cf};function Ac(t,e){return e?t?function(){return Ee(Mt(t)?t.call(this,this):t,Mt(e)?e.call(this,this):e)}:e:t}function cf(t,e){return wn(La(t),La(e))}function La(t){if(At(t)){const e={};for(let s=0;s<t.length;s++)e[t[s]]=t[s];return e}return t}function He(t,e){return t?[...new Set([].concat(t,e))]:e}function wn(t,e){return t?Ee(Object.create(null),t,e):e}function Cc(t,e){return t?At(t)&&At(e)?[...new Set([...t,...e])]:Ee(Object.create(null),Pc(t),Pc(e??{})):e}function uf(t,e){if(!t)return e;if(!e)return t;const s=Ee(Object.create(null),t);for(const i in e)s[i]=He(t[i],e[i]);return s}function od(){return{app:null,config:{isNativeTag:rb,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let bf=0;function df(t,e){return function(i,o=null){Mt(i)||(i=Ee({},i)),o!=null&&!Kt(o)&&(o=null);const a=od(),l=new WeakSet,b=[];let u=!1;const f=a.app={_uid:bf++,_component:i,_props:o,_container:null,_context:a,_instance:null,version:qf,get config(){return a.config},set config(p){},use(p,...g){return l.has(p)||(p&&Mt(p.install)?(l.add(p),p.install(f,...g)):Mt(p)&&(l.add(p),p(f,...g))),f},mixin(p){return a.mixins.includes(p)||a.mixins.push(p),f},component(p,g){return g?(a.components[p]=g,f):a.components[p]},directive(p,g){return g?(a.directives[p]=g,f):a.directives[p]},mount(p,g,y){if(!u){const _=f._ceVNode||oe(i,o);return _.appContext=a,y===!0?y="svg":y===!1&&(y=void 0),t(_,p,y),u=!0,f._container=p,p.__vue_app__=f,Sr(_.component)}},onUnmount(p){b.push(p)},unmount(){u&&(vs(b,f._instance,16),t(null,f._container),delete f._container.__vue_app__)},provide(p,g){return a.provides[p]=g,f},runWithContext(p){const g=Ni;Ni=f;try{return p()}finally{Ni=g}}};return f}}let Ni=null;function zk(t,e,s=$t){const i=pi(),o=Ve(e),a=Xs(e),l=rd(t,o),b=Am((u,f)=>{let p,g=$t,y;return Um(()=>{const _=t[o];Ie(p,_)&&(p=_,f())}),{get(){return u(),s.get?s.get(p):p},set(_){const z=s.set?s.set(_):_;if(!Ie(z,p)&&!(g!==$t&&Ie(_,g)))return;const I=i.vnode.props;I&&(e in I||o in I||a in I)&&(`onUpdate:${e}`in I||`onUpdate:${o}`in I||`onUpdate:${a}`in I)||(p=_,f()),i.emit(`update:${e}`,z),Ie(_,z)&&Ie(_,g)&&!Ie(z,y)&&f(),g=_,y=z}}});return b[Symbol.iterator]=()=>{let u=0;return{next(){return u<2?{value:u++?l||$t:b,done:!1}:{done:!0}}}},b}const rd=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ve(e)}Modifiers`]||t[`${Xs(e)}Modifiers`];function mf(t,e,...s){if(t.isUnmounted)return;const i=t.vnode.props||$t;let o=s;const a=e.startsWith("update:"),l=a&&rd(i,e.slice(7));l&&(l.trim&&(o=s.map(p=>ce(p)?p.trim():p)),l.number&&(o=s.map(lr)));let b,u=i[b=la(e)]||i[b=la(Ve(e))];!u&&a&&(u=i[b=la(Xs(e))]),u&&vs(u,t,6,o);const f=i[b+"Once"];if(f){if(!t.emitted)t.emitted={};else if(t.emitted[b])return;t.emitted[b]=!0,vs(f,t,6,o)}}const ff=new WeakMap;function ad(t,e,s=!1){const i=s?ff:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const a=t.emits;let l={},b=!1;if(!Mt(t)){const u=f=>{const p=ad(f,e,!0);p&&(b=!0,Ee(l,p))};!s&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}return!a&&!b?(Kt(t)&&i.set(t,null),null):(At(a)?a.forEach(u=>l[u]=null):Ee(l,a),Kt(t)&&i.set(t,l),l)}function kr(t,e){return!t||!ir(e)?!1:(e=e.slice(2).replace(/Once$/,""),Gt(t,e[0].toLowerCase()+e.slice(1))||Gt(t,Xs(e))||Gt(t,e))}function Ec(t){const{type:e,vnode:s,proxy:i,withProxy:o,propsOptions:[a],slots:l,attrs:b,emit:u,render:f,renderCache:p,props:g,data:y,setupState:_,ctx:z,inheritAttrs:I}=t,$=Ko(t);let P,x;try{if(s.shapeFlag&4){const N=o||i,X=N;P=js(f.call(X,N,p,g,_,y,z)),x=b}else{const N=e;P=js(N.length>1?N(g,{attrs:b,slots:l,emit:u}):N(g,null)),x=e.props?b:pf(b)}}catch(N){Mn.length=0,fr(N,t,1),P=oe(qe)}let G=P;if(x&&I!==!1){const N=Object.keys(x),{shapeFlag:X}=G;N.length&&X&7&&(a&&N.some(ol)&&(x=hf(x,a)),G=mi(G,x,!1,!0))}return s.dirs&&(G=mi(G,null,!1,!0),G.dirs=G.dirs?G.dirs.concat(s.dirs):s.dirs),s.transition&&zn(G,s.transition),P=G,Ko($),P}const pf=t=>{let e;for(const s in t)(s==="class"||s==="style"||ir(s))&&((e||(e={}))[s]=t[s]);return e},hf=(t,e)=>{const s={};for(const i in t)(!ol(i)||!(i.slice(9)in e))&&(s[i]=t[i]);return s};function gf(t,e,s){const{props:i,children:o,component:a}=t,{props:l,children:b,patchFlag:u}=e,f=a.emitsOptions;if(e.dirs||e.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return i?jc(i,l,f):!!l;if(u&8){const p=e.dynamicProps;for(let g=0;g<p.length;g++){const y=p[g];if(ld(l,i,y)&&!kr(f,y))return!0}}}else return(o||b)&&(!b||!b.$stable)?!0:i===l?!1:i?l?jc(i,l,f):!0:!!l;return!1}function jc(t,e,s){const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!0;for(let o=0;o<i.length;o++){const a=i[o];if(ld(e,t,a)&&!kr(s,a))return!0}return!1}function ld(t,e,s){const i=t[s],o=e[s];return s==="style"&&Kt(i)&&Kt(o)?!Wn(i,o):i!==o}function vf({vnode:t,parent:e},s){for(;e;){const i=e.subTree;if(i.suspense&&i.suspense.activeBranch===t&&(i.el=t.el),i===t)(t=e.vnode).el=s,e=e.parent;else break}}const cd={},ud=()=>Object.create(cd),bd=t=>Object.getPrototypeOf(t)===cd;function yf(t,e,s,i=!1){const o={},a=ud();t.propsDefaults=Object.create(null),dd(t,e,o,a);for(const l in t.propsOptions[0])l in o||(o[l]=void 0);s?t.props=i?o:jb(o):t.type.props?t.props=o:t.props=a,t.attrs=a}function kf(t,e,s,i){const{props:o,attrs:a,vnode:{patchFlag:l}}=t,b=Bt(o),[u]=t.propsOptions;let f=!1;if((i||l>0)&&!(l&16)){if(l&8){const p=t.vnode.dynamicProps;for(let g=0;g<p.length;g++){let y=p[g];if(kr(t.emitsOptions,y))continue;const _=e[y];if(u)if(Gt(a,y))_!==a[y]&&(a[y]=_,f=!0);else{const z=Ve(y);o[z]=Fa(u,b,z,_,t,!1)}else _!==a[y]&&(a[y]=_,f=!0)}}}else{dd(t,e,o,a)&&(f=!0);let p;for(const g in b)(!e||!Gt(e,g)&&((p=Xs(g))===g||!Gt(e,p)))&&(u?s&&(s[g]!==void 0||s[p]!==void 0)&&(o[g]=Fa(u,b,g,void 0,t,!0)):delete o[g]);if(a!==b)for(const g in a)(!e||!Gt(e,g))&&(delete a[g],f=!0)}f&&$s(t.attrs,"set","")}function dd(t,e,s,i){const[o,a]=t.propsOptions;let l=!1,b;if(e)for(let u in e){if(Pn(u))continue;const f=e[u];let p;o&&Gt(o,p=Ve(u))?!a||!a.includes(p)?s[p]=f:(b||(b={}))[p]=f:kr(t.emitsOptions,u)||(!(u in i)||f!==i[u])&&(i[u]=f,l=!0)}if(a){const u=Bt(s),f=b||$t;for(let p=0;p<a.length;p++){const g=a[p];s[g]=Fa(o,u,g,f[g],t,!Gt(f,g))}}return l}function Fa(t,e,s,i,o,a){const l=t[s];if(l!=null){const b=Gt(l,"default");if(b&&i===void 0){const u=l.default;if(l.type!==Function&&!l.skipFactory&&Mt(u)){const{propsDefaults:f}=o;if(s in f)i=f[s];else{const p=Zn(o);i=f[s]=u.call(null,e),p()}}else i=u;o.ce&&o.ce._setProp(s,i)}l[0]&&(a&&!b?i=!1:l[1]&&(i===""||i===Xs(s))&&(i=!0))}return i}const Sf=new WeakMap;function md(t,e,s=!1){const i=s?Sf:e.propsCache,o=i.get(t);if(o)return o;const a=t.props,l={},b=[];let u=!1;if(!Mt(t)){const p=g=>{u=!0;const[y,_]=md(g,e,!0);Ee(l,y),_&&b.push(..._)};!s&&e.mixins.length&&e.mixins.forEach(p),t.extends&&p(t.extends),t.mixins&&t.mixins.forEach(p)}if(!a&&!u)return Kt(t)&&i.set(t,Yi),Yi;if(At(a))for(let p=0;p<a.length;p++){const g=Ve(a[p]);Mc(g)&&(l[g]=$t)}else if(a)for(const p in a){const g=Ve(p);if(Mc(g)){const y=a[p],_=l[g]=At(y)||Mt(y)?{type:y}:Ee({},y),z=_.type;let I=!1,$=!0;if(At(z))for(let P=0;P<z.length;++P){const x=z[P],G=Mt(x)&&x.name;if(G==="Boolean"){I=!0;break}else G==="String"&&($=!1)}else I=Mt(z)&&z.name==="Boolean";_[0]=I,_[1]=$,(I||Gt(_,"default"))&&b.push(g)}}const f=[l,b];return Kt(t)&&i.set(t,f),f}function Mc(t){return t[0]!=="$"&&!Pn(t)}const vl=t=>t==="_"||t==="_ctx"||t==="$stable",yl=t=>At(t)?t.map(js):[js(t)],Tf=(t,e,s)=>{if(e._n)return e;const i=Fn((...o)=>yl(e(...o)),s);return i._c=!1,i},fd=(t,e,s)=>{const i=t._ctx;for(const o in t){if(vl(o))continue;const a=t[o];if(Mt(a))e[o]=Tf(o,a,i);else if(a!=null){const l=yl(a);e[o]=()=>l}}},pd=(t,e)=>{const s=yl(e);t.slots.default=()=>s},hd=(t,e,s)=>{for(const i in e)(s||!vl(i))&&(t[i]=e[i])},_f=(t,e,s)=>{const i=t.slots=ud();if(t.vnode.shapeFlag&32){const o=e._;o?(hd(i,e,s),s&&ub(i,"_",o,!0)):fd(e,i)}else e&&pd(t,e)},wf=(t,e,s)=>{const{vnode:i,slots:o}=t;let a=!0,l=$t;if(i.shapeFlag&32){const b=e._;b?s&&b===1?a=!1:hd(o,e,s):(a=!e.$stable,fd(e,o)),l=e}else e&&(pd(t,e),l={default:1});if(a)for(const b in o)!vl(b)&&l[b]==null&&delete o[b]},ze=Ef;function Pf(t){return xf(t)}function xf(t,e){const s=cr();s.__VUE__=!0;const{insert:i,remove:o,patchProp:a,createElement:l,createText:b,createComment:u,setText:f,setElementText:p,parentNode:g,nextSibling:y,setScopeId:_=Ms,insertStaticContent:z}=t,I=(S,A,B,Y=null,it=null,et=null,T=void 0,w=null,L=!!A.dynamicChildren)=>{if(S===A)return;S&&!Mi(S,A)&&(Y=tt(S),Jt(S,it,et,!0),S=null),A.patchFlag===-2&&(L=!1,A.dynamicChildren=null);const{type:V,ref:pt,shapeFlag:nt}=A;switch(V){case Xn:$(S,A,B,Y);break;case qe:P(S,A,B,Y);break;case Io:S==null&&x(A,B,Y,T);break;case ke:lt(S,A,B,Y,it,et,T,w,L);break;default:nt&1?X(S,A,B,Y,it,et,T,w,L):nt&6?Ct(S,A,B,Y,it,et,T,w,L):(nt&64||nt&128)&&V.process(S,A,B,Y,it,et,T,w,L,ot)}pt!=null&&it?En(pt,S&&S.ref,et,A||S,!A):pt==null&&S&&S.ref!=null&&En(S.ref,null,et,S,!0)},$=(S,A,B,Y)=>{if(S==null)i(A.el=b(A.children),B,Y);else{const it=A.el=S.el;A.children!==S.children&&f(it,A.children)}},P=(S,A,B,Y)=>{S==null?i(A.el=u(A.children||""),B,Y):A.el=S.el},x=(S,A,B,Y)=>{[S.el,S.anchor]=z(S.children,A,B,Y,S.el,S.anchor)},G=({el:S,anchor:A},B,Y)=>{let it;for(;S&&S!==A;)it=y(S),i(S,B,Y),S=it;i(A,B,Y)},N=({el:S,anchor:A})=>{let B;for(;S&&S!==A;)B=y(S),o(S),S=B;o(A)},X=(S,A,B,Y,it,et,T,w,L)=>{if(A.type==="svg"?T="svg":A.type==="math"&&(T="mathml"),S==null)W(A,B,Y,it,et,T,w,L);else{const V=S.el&&S.el._isVueCE?S.el:null;try{V&&V._beginPatch(),st(S,A,it,et,T,w,L)}finally{V&&V._endPatch()}}},W=(S,A,B,Y,it,et,T,w)=>{let L,V;const{props:pt,shapeFlag:nt,transition:F,dirs:Q}=S;if(L=S.el=l(S.type,et,pt&&pt.is,pt),nt&8?p(L,S.children):nt&16&&rt(S.children,L,null,Y,it,pa(S,et),T,w),Q&&Pi(S,null,Y,"created"),H(L,S,S.scopeId,T,Y),pt){for(const wt in pt)wt!=="value"&&!Pn(wt)&&a(L,wt,null,pt[wt],et,Y);"value"in pt&&a(L,"value",null,pt.value,et),(V=pt.onVnodeBeforeMount)&&Ps(V,Y,S)}Q&&Pi(S,null,Y,"beforeMount");const ft=Af(it,F);ft&&F.beforeEnter(L),i(L,A,B),((V=pt&&pt.onVnodeMounted)||ft||Q)&&ze(()=>{V&&Ps(V,Y,S),ft&&F.enter(L),Q&&Pi(S,null,Y,"mounted")},it)},H=(S,A,B,Y,it)=>{if(B&&_(S,B),Y)for(let et=0;et<Y.length;et++)_(S,Y[et]);if(it){let et=it.subTree;if(A===et||yd(et.type)&&(et.ssContent===A||et.ssFallback===A)){const T=it.vnode;H(S,T,T.scopeId,T.slotScopeIds,it.parent)}}},rt=(S,A,B,Y,it,et,T,w,L=0)=>{for(let V=L;V<S.length;V++){const pt=S[V]=w?qs(S[V]):js(S[V]);I(null,pt,A,B,Y,it,et,T,w)}},st=(S,A,B,Y,it,et,T)=>{const w=A.el=S.el;let{patchFlag:L,dynamicChildren:V,dirs:pt}=A;L|=S.patchFlag&16;const nt=S.props||$t,F=A.props||$t;let Q;if(B&&xi(B,!1),(Q=F.onVnodeBeforeUpdate)&&Ps(Q,B,A,S),pt&&Pi(A,S,B,"beforeUpdate"),B&&xi(B,!0),(nt.innerHTML&&F.innerHTML==null||nt.textContent&&F.textContent==null)&&p(w,""),V?yt(S.dynamicChildren,V,w,B,Y,pa(A,it),et):T||Dt(S,A,w,null,B,Y,pa(A,it),et,!1),L>0){if(L&16)Pt(w,nt,F,B,it);else if(L&2&&nt.class!==F.class&&a(w,"class",null,F.class,it),L&4&&a(w,"style",nt.style,F.style,it),L&8){const ft=A.dynamicProps;for(let wt=0;wt<ft.length;wt++){const Rt=ft[wt],ee=nt[Rt],se=F[Rt];(se!==ee||Rt==="value")&&a(w,Rt,ee,se,it,B)}}L&1&&S.children!==A.children&&p(w,A.children)}else!T&&V==null&&Pt(w,nt,F,B,it);((Q=F.onVnodeUpdated)||pt)&&ze(()=>{Q&&Ps(Q,B,A,S),pt&&Pi(A,S,B,"updated")},Y)},yt=(S,A,B,Y,it,et,T)=>{for(let w=0;w<A.length;w++){const L=S[w],V=A[w],pt=L.el&&(L.type===ke||!Mi(L,V)||L.shapeFlag&198)?g(L.el):B;I(L,V,pt,null,Y,it,et,T,!0)}},Pt=(S,A,B,Y,it)=>{if(A!==B){if(A!==$t)for(const et in A)!Pn(et)&&!(et in B)&&a(S,et,A[et],null,it,Y);for(const et in B){if(Pn(et))continue;const T=B[et],w=A[et];T!==w&&et!=="value"&&a(S,et,w,T,it,Y)}"value"in B&&a(S,"value",A.value,B.value,it)}},lt=(S,A,B,Y,it,et,T,w,L)=>{const V=A.el=S?S.el:b(""),pt=A.anchor=S?S.anchor:b("");let{patchFlag:nt,dynamicChildren:F,slotScopeIds:Q}=A;Q&&(w=w?w.concat(Q):Q),S==null?(i(V,B,Y),i(pt,B,Y),rt(A.children||[],B,pt,it,et,T,w,L)):nt>0&&nt&64&&F&&S.dynamicChildren&&S.dynamicChildren.length===F.length?(yt(S.dynamicChildren,F,B,it,et,T,w),(A.key!=null||it&&A===it.subTree)&&kl(S,A,!0)):Dt(S,A,B,pt,it,et,T,w,L)},Ct=(S,A,B,Y,it,et,T,w,L)=>{A.slotScopeIds=w,S==null?A.shapeFlag&512?it.ctx.activate(A,B,Y,T,L):Yt(A,B,Y,it,et,T,L):ue(S,A,L)},Yt=(S,A,B,Y,it,et,T)=>{const w=S.component=If(S,Y,it);if(gr(S)&&(w.ctx.renderer=ot),Lf(w,!1,T),w.asyncDep){if(it&&it.registerDep(w,It,T),!S.el){const L=w.subTree=oe(qe);P(null,L,A,B),S.placeholder=L.el}}else It(w,S,A,B,it,et,T)},ue=(S,A,B)=>{const Y=A.component=S.component;if(gf(S,A,B))if(Y.asyncDep&&!Y.asyncResolved){jt(Y,A,B);return}else Y.next=A,Y.update();else A.el=S.el,Y.vnode=A},It=(S,A,B,Y,it,et,T)=>{const w=()=>{if(S.isMounted){let{next:nt,bu:F,u:Q,parent:ft,vnode:wt}=S;{const xe=gd(S);if(xe){nt&&(nt.el=wt.el,jt(S,nt,T)),xe.asyncDep.then(()=>{ze(()=>{S.isUnmounted||V()},it)});return}}let Rt=nt,ee;xi(S,!1),nt?(nt.el=wt.el,jt(S,nt,T)):nt=wt,F&&Oo(F),(ee=nt.props&&nt.props.onVnodeBeforeUpdate)&&Ps(ee,ft,nt,wt),xi(S,!0);const se=Ec(S),Ne=S.subTree;S.subTree=se,I(Ne,se,g(Ne.el),tt(Ne),S,it,et),nt.el=se.el,Rt===null&&vf(S,se.el),Q&&ze(Q,it),(ee=nt.props&&nt.props.onVnodeUpdated)&&ze(()=>Ps(ee,ft,nt,wt),it)}else{let nt;const{el:F,props:Q}=A,{bm:ft,m:wt,parent:Rt,root:ee,type:se}=S,Ne=tn(A);xi(S,!1),ft&&Oo(ft),!Ne&&(nt=Q&&Q.onVnodeBeforeMount)&&Ps(nt,Rt,A),xi(S,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(se,S.parent?S.parent.type:void 0);const xe=S.subTree=Ec(S);I(null,xe,B,Y,S,it,et),A.el=xe.el}if(wt&&ze(wt,it),!Ne&&(nt=Q&&Q.onVnodeMounted)){const xe=A;ze(()=>Ps(nt,Rt,xe),it)}(A.shapeFlag&256||Rt&&tn(Rt.vnode)&&Rt.vnode.shapeFlag&256)&&S.a&&ze(S.a,it),S.isMounted=!0,A=B=Y=null}};S.scope.on();const L=S.effect=new hb(w);S.scope.off();const V=S.update=L.run.bind(L),pt=S.job=L.runIfDirty.bind(L);pt.i=S,pt.id=S.uid,L.scheduler=()=>fl(pt),xi(S,!0),V()},jt=(S,A,B)=>{A.component=S;const Y=S.vnode.props;S.vnode=A,S.next=null,kf(S,A.props,Y,B),wf(S,A.children,B),Js(),hc(S),Qs()},Dt=(S,A,B,Y,it,et,T,w,L=!1)=>{const V=S&&S.children,pt=S?S.shapeFlag:0,nt=A.children,{patchFlag:F,shapeFlag:Q}=A;if(F>0){if(F&128){be(V,nt,B,Y,it,et,T,w,L);return}else if(F&256){Xt(V,nt,B,Y,it,et,T,w,L);return}}Q&8?(pt&16&&Se(V,it,et),nt!==V&&p(B,nt)):pt&16?Q&16?be(V,nt,B,Y,it,et,T,w,L):Se(V,it,et,!0):(pt&8&&p(B,""),Q&16&&rt(nt,B,Y,it,et,T,w,L))},Xt=(S,A,B,Y,it,et,T,w,L)=>{S=S||Yi,A=A||Yi;const V=S.length,pt=A.length,nt=Math.min(V,pt);let F;for(F=0;F<nt;F++){const Q=A[F]=L?qs(A[F]):js(A[F]);I(S[F],Q,B,null,it,et,T,w,L)}V>pt?Se(S,it,et,!0,!1,nt):rt(A,B,Y,it,et,T,w,L,nt)},be=(S,A,B,Y,it,et,T,w,L)=>{let V=0;const pt=A.length;let nt=S.length-1,F=pt-1;for(;V<=nt&&V<=F;){const Q=S[V],ft=A[V]=L?qs(A[V]):js(A[V]);if(Mi(Q,ft))I(Q,ft,B,null,it,et,T,w,L);else break;V++}for(;V<=nt&&V<=F;){const Q=S[nt],ft=A[F]=L?qs(A[F]):js(A[F]);if(Mi(Q,ft))I(Q,ft,B,null,it,et,T,w,L);else break;nt--,F--}if(V>nt){if(V<=F){const Q=F+1,ft=Q<pt?A[Q].el:Y;for(;V<=F;)I(null,A[V]=L?qs(A[V]):js(A[V]),B,ft,it,et,T,w,L),V++}}else if(V>F)for(;V<=nt;)Jt(S[V],it,et,!0),V++;else{const Q=V,ft=V,wt=new Map;for(V=ft;V<=F;V++){const ge=A[V]=L?qs(A[V]):js(A[V]);ge.key!=null&&wt.set(ge.key,V)}let Rt,ee=0;const se=F-ft+1;let Ne=!1,xe=0;const Ss=new Array(se);for(V=0;V<se;V++)Ss[V]=0;for(V=Q;V<=nt;V++){const ge=S[V];if(ee>=se){Jt(ge,it,et,!0);continue}let kt;if(ge.key!=null)kt=wt.get(ge.key);else for(Rt=ft;Rt<=F;Rt++)if(Ss[Rt-ft]===0&&Mi(ge,A[Rt])){kt=Rt;break}kt===void 0?Jt(ge,it,et,!0):(Ss[kt-ft]=V+1,kt>=xe?xe=kt:Ne=!0,I(ge,A[kt],B,null,it,et,T,w,L),ee++)}const Ii=Ne?Cf(Ss):Yi;for(Rt=Ii.length-1,V=se-1;V>=0;V--){const ge=ft+V,kt=A[ge],ti=A[ge+1],Ts=ge+1<pt?ti.el||vd(ti):Y;Ss[V]===0?I(null,kt,B,Ts,it,et,T,w,L):Ne&&(Rt<0||V!==Ii[Rt]?Pe(kt,B,Ts,2):Rt--)}}},Pe=(S,A,B,Y,it=null)=>{const{el:et,type:T,transition:w,children:L,shapeFlag:V}=S;if(V&6){Pe(S.component.subTree,A,B,Y);return}if(V&128){S.suspense.move(A,B,Y);return}if(V&64){T.move(S,A,B,ot);return}if(T===ke){i(et,A,B);for(let nt=0;nt<L.length;nt++)Pe(L[nt],A,B,Y);i(S.anchor,A,B);return}if(T===Io){G(S,A,B);return}if(Y!==2&&V&1&&w)if(Y===0)w.beforeEnter(et),i(et,A,B),ze(()=>w.enter(et),it);else{const{leave:nt,delayLeave:F,afterLeave:Q}=w,ft=()=>{S.ctx.isUnmounted?o(et):i(et,A,B)},wt=()=>{et._isLeaving&&et[Cs](!0),nt(et,()=>{ft(),Q&&Q()})};F?F(et,ft,wt):wt()}else i(et,A,B)},Jt=(S,A,B,Y=!1,it=!1)=>{const{type:et,props:T,ref:w,children:L,dynamicChildren:V,shapeFlag:pt,patchFlag:nt,dirs:F,cacheIndex:Q}=S;if(nt===-2&&(it=!1),w!=null&&(Js(),En(w,null,B,S,!0),Qs()),Q!=null&&(A.renderCache[Q]=void 0),pt&256){A.ctx.deactivate(S);return}const ft=pt&1&&F,wt=!tn(S);let Rt;if(wt&&(Rt=T&&T.onVnodeBeforeUnmount)&&Ps(Rt,A,S),pt&6)Ye(S.component,B,Y);else{if(pt&128){S.suspense.unmount(B,Y);return}ft&&Pi(S,null,A,"beforeUnmount"),pt&64?S.type.remove(S,A,B,ot,Y):V&&!V.hasOnce&&(et!==ke||nt>0&&nt&64)?Se(V,A,B,!1,!0):(et===ke&&nt&384||!it&&pt&16)&&Se(L,A,B),Y&&ss(S)}(wt&&(Rt=T&&T.onVnodeUnmounted)||ft)&&ze(()=>{Rt&&Ps(Rt,A,S),ft&&Pi(S,null,A,"unmounted")},B)},ss=S=>{const{type:A,el:B,anchor:Y,transition:it}=S;if(A===ke){Re(B,Y);return}if(A===Io){N(S);return}const et=()=>{o(B),it&&!it.persisted&&it.afterLeave&&it.afterLeave()};if(S.shapeFlag&1&&it&&!it.persisted){const{leave:T,delayLeave:w}=it,L=()=>T(B,et);w?w(S.el,et,L):L()}else et()},Re=(S,A)=>{let B;for(;S!==A;)B=y(S),o(S),S=B;o(A)},Ye=(S,A,B)=>{const{bum:Y,scope:it,job:et,subTree:T,um:w,m:L,a:V}=S;Dc(L),Dc(V),Y&&Oo(Y),it.stop(),et&&(et.flags|=8,Jt(T,S,A,B)),w&&ze(w,A),ze(()=>{S.isUnmounted=!0},A)},Se=(S,A,B,Y=!1,it=!1,et=0)=>{for(let T=et;T<S.length;T++)Jt(S[T],A,B,Y,it)},tt=S=>{if(S.shapeFlag&6)return tt(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const A=y(S.anchor||S.el),B=A&&A[Ub];return B?y(B):A};let gt=!1;const mt=(S,A,B)=>{let Y;S==null?A._vnode&&(Jt(A._vnode,null,null,!0),Y=A._vnode.component):I(A._vnode||null,S,A,null,null,null,B),A._vnode=S,gt||(gt=!0,hc(Y),Lb(),gt=!1)},ot={p:I,um:Jt,m:Pe,r:ss,mt:Yt,mc:rt,pc:Dt,pbc:yt,n:tt,o:t};return{render:mt,hydrate:void 0,createApp:df(mt)}}function pa({type:t,props:e},s){return s==="svg"&&t==="foreignObject"||s==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:s}function xi({effect:t,job:e},s){s?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function Af(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function kl(t,e,s=!1){const i=t.children,o=e.children;if(At(i)&&At(o))for(let a=0;a<i.length;a++){const l=i[a];let b=o[a];b.shapeFlag&1&&!b.dynamicChildren&&((b.patchFlag<=0||b.patchFlag===32)&&(b=o[a]=qs(o[a]),b.el=l.el),!s&&b.patchFlag!==-2&&kl(l,b)),b.type===Xn&&(b.patchFlag===-1&&(b=o[a]=qs(b)),b.el=l.el),b.type===qe&&!b.el&&(b.el=l.el)}}function Cf(t){const e=t.slice(),s=[0];let i,o,a,l,b;const u=t.length;for(i=0;i<u;i++){const f=t[i];if(f!==0){if(o=s[s.length-1],t[o]<f){e[i]=o,s.push(i);continue}for(a=0,l=s.length-1;a<l;)b=a+l>>1,t[s[b]]<f?a=b+1:l=b;f<t[s[a]]&&(a>0&&(e[i]=s[a-1]),s[a]=i)}}for(a=s.length,l=s[a-1];a-- >0;)s[a]=l,l=e[l];return s}function gd(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:gd(e)}function Dc(t){if(t)for(let e=0;e<t.length;e++)t[e].flags|=8}function vd(t){if(t.placeholder)return t.placeholder;const e=t.component;return e?vd(e.subTree):null}const yd=t=>t.__isSuspense;function Ef(t,e){e&&e.pendingBranch?At(t)?e.effects.push(...t):e.effects.push(t):Lm(t)}const ke=Symbol.for("v-fgt"),Xn=Symbol.for("v-txt"),qe=Symbol.for("v-cmt"),Io=Symbol.for("v-stc"),Mn=[];let Qe=null;function me(t=!1){Mn.push(Qe=t?null:[])}function jf(){Mn.pop(),Qe=Mn[Mn.length-1]||null}let nn=1;function Wo(t,e=!1){nn+=t,t<0&&Qe&&e&&(Qe.hasOnce=!0)}function kd(t){return t.dynamicChildren=nn>0?Qe||Yi:null,jf(),nn>0&&Qe&&Qe.push(t),t}function rs(t,e,s,i,o,a){return kd(Et(t,e,s,i,o,a,!0))}function ps(t,e,s,i,o){return kd(oe(t,e,s,i,o,!0))}function Bn(t){return t?t.__v_isVNode===!0:!1}function Mi(t,e){return t.type===e.type&&t.key===e.key}const Sd=({key:t})=>t??null,Lo=({ref:t,ref_key:e,ref_for:s})=>(typeof t=="number"&&(t=""+t),t!=null?ce(t)||le(t)||Mt(t)?{i:Le,r:t,k:e,f:!!s}:t:null);function Et(t,e=null,s=null,i=0,o=null,a=t===ke?0:1,l=!1,b=!1){const u={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Sd(e),ref:e&&Lo(e),scopeId:zb,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Le};return b?(Sl(u,s),a&128&&t.normalize(u)):s&&(u.shapeFlag|=ce(s)?8:16),nn>0&&!l&&Qe&&(u.patchFlag>0||a&6)&&u.patchFlag!==32&&Qe.push(u),u}const oe=Mf;function Mf(t,e=null,s=null,i=0,o=null,a=!1){if((!t||t===Xb)&&(t=qe),Bn(t)){const b=mi(t,e,!0);return s&&Sl(b,s),nn>0&&!a&&Qe&&(b.shapeFlag&6?Qe[Qe.indexOf(t)]=b:Qe.push(b)),b.patchFlag=-2,b}if(Uf(t)&&(t=t.__vccOpts),e){e=Df(e);let{class:b,style:u}=e;b&&!ce(b)&&(e.class=ls(b)),Kt(u)&&(mr(u)&&!At(u)&&(u=Ee({},u)),e.style=ur(u))}const l=ce(t)?1:yd(t)?128:qb(t)?64:Kt(t)?4:Mt(t)?2:0;return Et(t,e,s,i,o,l,a,!0)}function Df(t){return t?mr(t)||bd(t)?Ee({},t):t:null}function mi(t,e,s=!1,i=!1){const{props:o,ref:a,patchFlag:l,children:b,transition:u}=t,f=e?Of(o||{},e):o,p={__v_isVNode:!0,__v_skip:!0,type:t.type,props:f,key:f&&Sd(f),ref:e&&e.ref?s&&a?At(a)?a.concat(Lo(e)):[a,Lo(e)]:Lo(e):a,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:b,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==ke?l===-1?16:l|16:l,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:u,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&mi(t.ssContent),ssFallback:t.ssFallback&&mi(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return u&&i&&zn(p,u.clone(p)),p}function Dn(t=" ",e=0){return oe(Xn,null,t,e)}function Bk(t,e){const s=oe(Io,null,t);return s.staticCount=e,s}function Td(t="",e=!1){return e?(me(),ps(qe,null,t)):oe(qe,null,t)}function js(t){return t==null||typeof t=="boolean"?oe(qe):At(t)?oe(ke,null,t.slice()):Bn(t)?qs(t):oe(Xn,null,String(t))}function qs(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:mi(t)}function Sl(t,e){let s=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(At(e))s=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),Sl(t,o()),o._c&&(o._d=!0));return}else{s=32;const o=e._;!o&&!bd(e)?e._ctx=Le:o===3&&Le&&(Le.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Mt(e)?(e={default:e,_ctx:Le},s=32):(e=String(e),i&64?(s=16,e=[Dn(e)]):s=8);t.children=e,t.shapeFlag|=s}function Of(...t){const e={};for(let s=0;s<t.length;s++){const i=t[s];for(const o in i)if(o==="class")e.class!==i.class&&(e.class=ls([e.class,i.class]));else if(o==="style")e.style=ur([e.style,i.style]);else if(ir(o)){const a=e[o],l=i[o];l&&a!==l&&!(At(a)&&a.includes(l))&&(e[o]=a?[].concat(a,l):l)}else o!==""&&(e[o]=i[o])}return e}function Ps(t,e,s,i=null){vs(t,e,7,[s,i])}const Rf=od();let Nf=0;function If(t,e,s){const i=t.type,o=(e?e.appContext:t.appContext)||Rf,a={uid:Nf++,vnode:t,type:i,parent:e,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new fb(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(o.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:md(i,o),emitsOptions:ad(i,o),emit:null,emitted:null,propsDefaults:$t,inheritAttrs:i.inheritAttrs,ctx:$t,data:$t,props:$t,attrs:$t,slots:$t,refs:$t,setupState:$t,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=e?e.root:a,a.emit=mf.bind(null,a),t.ce&&t.ce(a),a}let $e=null;const pi=()=>$e||Le;let Jo,za;{const t=cr(),e=(s,i)=>{let o;return(o=t[s])||(o=t[s]=[]),o.push(i),a=>{o.length>1?o.forEach(l=>l(a)):o[0](a)}};Jo=e("__VUE_INSTANCE_SETTERS__",s=>$e=s),za=e("__VUE_SSR_SETTERS__",s=>Un=s)}const Zn=t=>{const e=$e;return Jo(t),t.scope.on(),()=>{t.scope.off(),Jo(e)}},Oc=()=>{$e&&$e.scope.off(),Jo(null)};function _d(t){return t.vnode.shapeFlag&4}let Un=!1;function Lf(t,e=!1,s=!1){e&&za(e);const{props:i,children:o}=t.vnode,a=_d(t);yf(t,i,a,e),_f(t,o,s||e);const l=a?Ff(t,e):void 0;return e&&za(!1),l}function Ff(t,e){const s=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,of);const{setup:i}=s;if(i){Js();const o=t.setupContext=i.length>1?Pd(t):null,a=Zn(t),l=Qn(i,t,0,[t.props,o]),b=ab(l);if(Qs(),a(),(b||t.sp)&&!tn(t)&&Jb(t),b){if(l.then(Oc,Oc),e)return l.then(u=>{Rc(t,u)}).catch(u=>{fr(u,t,0)});t.asyncDep=l}else Rc(t,l)}else wd(t)}function Rc(t,e,s){Mt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Kt(e)&&(t.setupState=Ob(e)),wd(t)}function wd(t,e,s){const i=t.type;t.render||(t.render=i.render||Ms);{const o=Zn(t);Js();try{rf(t)}finally{Qs(),o()}}}const zf={get(t,e){return Ue(t,"get",""),t[e]}};function Pd(t){const e=s=>{t.exposed=s||{}};return{attrs:new Proxy(t.attrs,zf),slots:t.slots,emit:t.emit,expose:e}}function Sr(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Ob(ml(t.exposed)),{get(e,s){if(s in e)return e[s];if(s in jn)return jn[s](t)},has(e,s){return s in e||s in jn}})):t.proxy}function Bf(t,e=!0){return Mt(t)?t.displayName||t.name:t.name||e&&t.__name}function Uf(t){return Mt(t)&&"__vccOpts"in t}const ne=(t,e)=>Dm(t,e,Un);function fi(t,e,s){try{Wo(-1);const i=arguments.length;return i===2?Kt(e)&&!At(e)?Bn(e)?oe(t,null,[e]):oe(t,e):oe(t,null,e):(i>3?s=Array.prototype.slice.call(arguments,2):i===3&&Bn(s)&&(s=[s]),oe(t,e,s))}finally{Wo(1)}}function Uk(t,e){const s=t.memo;if(s.length!=e.length)return!1;for(let i=0;i<s.length;i++)if(Ie(s[i],e[i]))return!1;return nn>0&&Qe&&Qe.push(t),!0}const qf="3.5.30";let Ba;const Nc=typeof window<"u"&&window.trustedTypes;if(Nc)try{Ba=Nc.createPolicy("vue",{createHTML:t=>t})}catch{}const xd=Ba?t=>Ba.createHTML(t):t=>t,$f="http://www.w3.org/2000/svg",Vf="http://www.w3.org/1998/Math/MathML",Bs=typeof document<"u"?document:null,Ic=Bs&&Bs.createElement("template"),Kf={insert:(t,e,s)=>{e.insertBefore(t,s||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,s,i)=>{const o=e==="svg"?Bs.createElementNS($f,t):e==="mathml"?Bs.createElementNS(Vf,t):s?Bs.createElement(t,{is:s}):Bs.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>Bs.createTextNode(t),createComment:t=>Bs.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Bs.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,s,i,o,a){const l=s?s.previousSibling:e.lastChild;if(o&&(o===a||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),s),!(o===a||!(o=o.nextSibling)););else{Ic.innerHTML=xd(i==="svg"?`<svg>${t}</svg>`:i==="mathml"?`<math>${t}</math>`:t);const b=Ic.content;if(i==="svg"||i==="mathml"){const u=b.firstChild;for(;u.firstChild;)b.appendChild(u.firstChild);b.removeChild(u)}e.insertBefore(b,s)}return[l?l.nextSibling:e.firstChild,s?s.previousSibling:e.lastChild]}},ai="transition",yn="animation",qn=Symbol("_vtc"),Ad={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Hf=Ee({},Vb,Ad),Gf=t=>(t.displayName="Transition",t.props=Hf,t),Wf=Gf((t,{slots:e})=>fi(Gm,Jf(t),e)),Ai=(t,e=[])=>{At(t)?t.forEach(s=>s(...e)):t&&t(...e)},Lc=t=>t?At(t)?t.some(e=>e.length>1):t.length>1:!1;function Jf(t){const e={};for(const lt in t)lt in Ad||(e[lt]=t[lt]);if(t.css===!1)return e;const{name:s="v",type:i,duration:o,enterFromClass:a=`${s}-enter-from`,enterActiveClass:l=`${s}-enter-active`,enterToClass:b=`${s}-enter-to`,appearFromClass:u=a,appearActiveClass:f=l,appearToClass:p=b,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:y=`${s}-leave-active`,leaveToClass:_=`${s}-leave-to`}=t,z=Qf(o),I=z&&z[0],$=z&&z[1],{onBeforeEnter:P,onEnter:x,onEnterCancelled:G,onLeave:N,onLeaveCancelled:X,onBeforeAppear:W=P,onAppear:H=x,onAppearCancelled:rt=G}=e,st=(lt,Ct,Yt,ue)=>{lt._enterCancelled=ue,Ci(lt,Ct?p:b),Ci(lt,Ct?f:l),Yt&&Yt()},yt=(lt,Ct)=>{lt._isLeaving=!1,Ci(lt,g),Ci(lt,_),Ci(lt,y),Ct&&Ct()},Pt=lt=>(Ct,Yt)=>{const ue=lt?H:x,It=()=>st(Ct,lt,Yt);Ai(ue,[Ct,It]),Fc(()=>{Ci(Ct,lt?u:a),Ls(Ct,lt?p:b),Lc(ue)||zc(Ct,i,I,It)})};return Ee(e,{onBeforeEnter(lt){Ai(P,[lt]),Ls(lt,a),Ls(lt,l)},onBeforeAppear(lt){Ai(W,[lt]),Ls(lt,u),Ls(lt,f)},onEnter:Pt(!1),onAppear:Pt(!0),onLeave(lt,Ct){lt._isLeaving=!0;const Yt=()=>yt(lt,Ct);Ls(lt,g),lt._enterCancelled?(Ls(lt,y),qc(lt)):(qc(lt),Ls(lt,y)),Fc(()=>{lt._isLeaving&&(Ci(lt,g),Ls(lt,_),Lc(N)||zc(lt,i,$,Yt))}),Ai(N,[lt,Yt])},onEnterCancelled(lt){st(lt,!1,void 0,!0),Ai(G,[lt])},onAppearCancelled(lt){st(lt,!0,void 0,!0),Ai(rt,[lt])},onLeaveCancelled(lt){yt(lt),Ai(X,[lt])}})}function Qf(t){if(t==null)return null;if(Kt(t))return[ha(t.enter),ha(t.leave)];{const e=ha(t);return[e,e]}}function ha(t){return J0(t)}function Ls(t,e){e.split(/\s+/).forEach(s=>s&&t.classList.add(s)),(t[qn]||(t[qn]=new Set)).add(e)}function Ci(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const s=t[qn];s&&(s.delete(e),s.size||(t[qn]=void 0))}function Fc(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let Yf=0;function zc(t,e,s,i){const o=t._endId=++Yf,a=()=>{o===t._endId&&i()};if(s!=null)return setTimeout(a,s);const{type:l,timeout:b,propCount:u}=Xf(t,e);if(!l)return i();const f=l+"end";let p=0;const g=()=>{t.removeEventListener(f,y),a()},y=_=>{_.target===t&&++p>=u&&g()};setTimeout(()=>{p<u&&g()},b+1),t.addEventListener(f,y)}function Xf(t,e){const s=window.getComputedStyle(t),i=z=>(s[z]||"").split(", "),o=i(`${ai}Delay`),a=i(`${ai}Duration`),l=Bc(o,a),b=i(`${yn}Delay`),u=i(`${yn}Duration`),f=Bc(b,u);let p=null,g=0,y=0;e===ai?l>0&&(p=ai,g=l,y=a.length):e===yn?f>0&&(p=yn,g=f,y=u.length):(g=Math.max(l,f),p=g>0?l>f?ai:yn:null,y=p?p===ai?a.length:u.length:0);const _=p===ai&&/\b(?:transform|all)(?:,|$)/.test(i(`${ai}Property`).toString());return{type:p,timeout:g,propCount:y,hasTransform:_}}function Bc(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max(...e.map((s,i)=>Uc(s)+Uc(t[i])))}function Uc(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function qc(t){return(t?t.ownerDocument:document).body.offsetHeight}function Zf(t,e,s){const i=t[qn];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):s?t.setAttribute("class",e):t.className=e}const Qo=Symbol("_vod"),Cd=Symbol("_vsh"),qk={name:"show",beforeMount(t,{value:e},{transition:s}){t[Qo]=t.style.display==="none"?"":t.style.display,s&&e?s.beforeEnter(t):kn(t,e)},mounted(t,{value:e},{transition:s}){s&&e&&s.enter(t)},updated(t,{value:e,oldValue:s},{transition:i}){!e!=!s&&(i?e?(i.beforeEnter(t),kn(t,!0),i.enter(t)):i.leave(t,()=>{kn(t,!1)}):kn(t,e))},beforeUnmount(t,{value:e}){kn(t,e)}};function kn(t,e){t.style.display=e?t[Qo]:"none",t[Cd]=!e}const tp=Symbol(""),ep=/(?:^|;)\s*display\s*:/;function sp(t,e,s){const i=t.style,o=ce(s);let a=!1;if(s&&!o){if(e)if(ce(e))for(const l of e.split(";")){const b=l.slice(0,l.indexOf(":")).trim();s[b]==null&&Fo(i,b,"")}else for(const l in e)s[l]==null&&Fo(i,l,"");for(const l in s)l==="display"&&(a=!0),Fo(i,l,s[l])}else if(o){if(e!==s){const l=i[tp];l&&(s+=";"+l),i.cssText=s,a=ep.test(s)}}else e&&t.removeAttribute("style");Qo in t&&(t[Qo]=a?i.display:"",t[Cd]&&(i.display="none"))}const $c=/\s*!important$/;function Fo(t,e,s){if(At(s))s.forEach(i=>Fo(t,e,i));else if(s==null&&(s=""),e.startsWith("--"))t.setProperty(e,s);else{const i=ip(t,e);$c.test(s)?t.setProperty(Xs(i),s.replace($c,""),"important"):t[i]=s}}const Vc=["Webkit","Moz","ms"],ga={};function ip(t,e){const s=ga[e];if(s)return s;let i=Ve(e);if(i!=="filter"&&i in t)return ga[e]=i;i=ar(i);for(let o=0;o<Vc.length;o++){const a=Vc[o]+i;if(a in t)return ga[e]=a}return e}const Kc="http://www.w3.org/1999/xlink";function Hc(t,e,s,i,o,a=em(e)){i&&e.startsWith("xlink:")?s==null?t.removeAttributeNS(Kc,e.slice(6,e.length)):t.setAttributeNS(Kc,e,s):s==null||a&&!bb(s)?t.removeAttribute(e):t.setAttribute(e,a?"":hs(s)?String(s):s)}function Gc(t,e,s,i,o){if(e==="innerHTML"||e==="textContent"){s!=null&&(t[e]=e==="innerHTML"?xd(s):s);return}const a=t.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){const b=a==="OPTION"?t.getAttribute("value")||"":t.value,u=s==null?t.type==="checkbox"?"on":"":String(s);(b!==u||!("_value"in t))&&(t.value=u),s==null&&t.removeAttribute(e),t._value=s;return}let l=!1;if(s===""||s==null){const b=typeof t[e];b==="boolean"?s=bb(s):s==null&&b==="string"?(s="",l=!0):b==="number"&&(s=0,l=!0)}try{t[e]=s}catch{}l&&t.removeAttribute(o||e)}function Di(t,e,s,i){t.addEventListener(e,s,i)}function np(t,e,s,i){t.removeEventListener(e,s,i)}const Wc=Symbol("_vei");function op(t,e,s,i,o=null){const a=t[Wc]||(t[Wc]={}),l=a[e];if(i&&l)l.value=i;else{const[b,u]=rp(e);if(i){const f=a[e]=cp(i,o);Di(t,b,f,u)}else l&&(np(t,b,l,u),a[e]=void 0)}}const Jc=/(?:Once|Passive|Capture)$/;function rp(t){let e;if(Jc.test(t)){e={};let i;for(;i=t.match(Jc);)t=t.slice(0,t.length-i[0].length),e[i[0].toLowerCase()]=!0}return[t[2]===":"?t.slice(3):Xs(t.slice(2)),e]}let va=0;const ap=Promise.resolve(),lp=()=>va||(ap.then(()=>va=0),va=Date.now());function cp(t,e){const s=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=s.attached)return;vs(up(i,s.value),e,5,[i])};return s.value=t,s.attached=lp(),s}function up(t,e){if(At(e)){const s=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{s.call(t),t._stopped=!0},e.map(i=>o=>!o._stopped&&i&&i(o))}else return e}const Qc=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,bp=(t,e,s,i,o,a)=>{const l=o==="svg";e==="class"?Zf(t,i,l):e==="style"?sp(t,s,i):ir(e)?ol(e)||op(t,e,s,i,a):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):dp(t,e,i,l))?(Gc(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&Hc(t,e,i,l,a,e!=="value")):t._isVueCE&&(mp(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!ce(i)))?Gc(t,Ve(e),i,a,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),Hc(t,e,i,l))};function dp(t,e,s,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Qc(e)&&Mt(s));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Qc(e)&&ce(s)?!1:e in t}function mp(t,e){const s=t._def.props;if(!s)return!1;const i=Ve(e);return Array.isArray(s)?s.some(o=>Ve(o)===i):Object.keys(s).some(o=>Ve(o)===i)}const Yo=t=>{const e=t.props["onUpdate:modelValue"]||!1;return At(e)?s=>Oo(e,s):e};function fp(t){t.target.composing=!0}function Yc(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const en=Symbol("_assign");function Xc(t,e,s){return e&&(t=t.trim()),s&&(t=lr(t)),t}const Zc={created(t,{modifiers:{lazy:e,trim:s,number:i}},o){t[en]=Yo(o);const a=i||o.props&&o.props.type==="number";Di(t,e?"change":"input",l=>{l.target.composing||t[en](Xc(t.value,s,a))}),(s||a)&&Di(t,"change",()=>{t.value=Xc(t.value,s,a)}),e||(Di(t,"compositionstart",fp),Di(t,"compositionend",Yc),Di(t,"change",Yc))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:s,modifiers:{lazy:i,trim:o,number:a}},l){if(t[en]=Yo(l),t.composing)return;const b=(a||t.type==="number")&&!/^0\d/.test(t.value)?lr(t.value):t.value,u=e??"";b!==u&&(document.activeElement===t&&t.type!=="range"&&(i&&e===s||o&&t.value.trim()===u)||(t.value=u))}},$k={deep:!0,created(t,{value:e,modifiers:{number:s}},i){const o=nr(e);Di(t,"change",()=>{const a=Array.prototype.filter.call(t.options,l=>l.selected).map(l=>s?lr(Xo(l)):Xo(l));t[en](t.multiple?o?new Set(a):a:a[0]),t._assigning=!0,pr(()=>{t._assigning=!1})}),t[en]=Yo(i)},mounted(t,{value:e}){tu(t,e)},beforeUpdate(t,e,s){t[en]=Yo(s)},updated(t,{value:e}){t._assigning||tu(t,e)}};function tu(t,e){const s=t.multiple,i=At(e);if(!(s&&!i&&!nr(e))){for(let o=0,a=t.options.length;o<a;o++){const l=t.options[o],b=Xo(l);if(s)if(i){const u=typeof b;u==="string"||u==="number"?l.selected=e.some(f=>String(f)===String(b)):l.selected=im(e,b)>-1}else l.selected=e.has(b);else if(Wn(Xo(l),e)){t.selectedIndex!==o&&(t.selectedIndex=o);return}}!s&&t.selectedIndex!==-1&&(t.selectedIndex=-1)}}function Xo(t){return"_value"in t?t._value:t.value}const pp=["ctrl","shift","alt","meta"],hp={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>pp.some(s=>t[`${s}Key`]&&!e.includes(s))},Ed=(t,e)=>{if(!t)return t;const s=t._withMods||(t._withMods={}),i=e.join(".");return s[i]||(s[i]=((o,...a)=>{for(let l=0;l<e.length;l++){const b=hp[e[l]];if(b&&b(o,e))return}return t(o,...a)}))},gp={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Vk=(t,e)=>{const s=t._withKeys||(t._withKeys={}),i=e.join(".");return s[i]||(s[i]=(o=>{if(!("key"in o))return;const a=Xs(o.key);if(e.some(l=>l===a||gp[l]===a))return t(o)}))},vp=Ee({patchProp:bp},Kf);let eu;function yp(){return eu||(eu=Pf(vp))}const kp=((...t)=>{const e=yp().createApp(...t),{mount:s}=e;return e.mount=i=>{const o=Tp(i);if(!o)return;const a=e._component;!Mt(a)&&!a.render&&!a.template&&(a.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const l=s(o,!1,Sp(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),l},e});function Sp(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function Tp(t){return ce(t)?document.querySelector(t):t}let jd;const Tr=t=>jd=t,Md=Symbol();function Ua(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var On;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(On||(On={}));function _p(){const t=al(!0),e=t.run(()=>he({}));let s=[],i=[];const o=ml({install(a){Tr(o),o._a=a,a.provide(Md,o),a.config.globalProperties.$pinia=o,i.forEach(l=>s.push(l)),i=[]},use(a){return this._a?s.push(a):i.push(a),this},_p:s,_a:null,_e:t,_s:new Map,state:e});return o}const Dd=()=>{};function su(t,e,s,i=Dd){t.add(e);const o=()=>{t.delete(e)&&i()};return!s&&pb()&&nm(o),o}function Gi(t,...e){t.forEach(s=>{s(...e)})}const wp=t=>t(),iu=Symbol(),ya=Symbol();function qa(t,e){t instanceof Map&&e instanceof Map?e.forEach((s,i)=>t.set(i,s)):t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const s in e){if(!e.hasOwnProperty(s))continue;const i=e[s],o=t[s];Ua(o)&&Ua(i)&&t.hasOwnProperty(s)&&!le(i)&&!Gs(i)?t[s]=qa(o,i):t[s]=i}return t}const Pp=Symbol();function xp(t){return!Ua(t)||!Object.prototype.hasOwnProperty.call(t,Pp)}const{assign:ui}=Object;function Ap(t){return!!(le(t)&&t.effect)}function Cp(t,e,s,i){const{state:o,actions:a,getters:l}=e,b=s.state.value[t];let u;function f(){b||(s.state.value[t]=o?o():{});const p=Cm(s.state.value[t]);return ui(p,a,Object.keys(l||{}).reduce((g,y)=>(g[y]=ml(ne(()=>{Tr(s);const _=s._s.get(t);return l[y].call(_,_)})),g),{}))}return u=Od(t,f,e,s,i,!0),u}function Od(t,e,s={},i,o,a){let l;const b=ui({actions:{}},s),u={deep:!0};let f,p,g=new Set,y=new Set,_;const z=i.state.value[t];!a&&!z&&(i.state.value[t]={});let I;function $(rt){let st;f=p=!1,typeof rt=="function"?(rt(i.state.value[t]),st={type:On.patchFunction,storeId:t,events:_}):(qa(i.state.value[t],rt),st={type:On.patchObject,payload:rt,storeId:t,events:_});const yt=I=Symbol();pr().then(()=>{I===yt&&(f=!0)}),p=!0,Gi(g,st,i.state.value[t])}const P=a?function(){const{state:st}=s,yt=st?st():{};this.$patch(Pt=>{ui(Pt,yt)})}:Dd;function x(){l.stop(),g.clear(),y.clear(),i._s.delete(t)}const G=(rt,st="")=>{if(iu in rt)return rt[ya]=st,rt;const yt=function(){Tr(i);const Pt=Array.from(arguments),lt=new Set,Ct=new Set;function Yt(jt){lt.add(jt)}function ue(jt){Ct.add(jt)}Gi(y,{args:Pt,name:yt[ya],store:X,after:Yt,onError:ue});let It;try{It=rt.apply(this&&this.$id===t?this:X,Pt)}catch(jt){throw Gi(Ct,jt),jt}return It instanceof Promise?It.then(jt=>(Gi(lt,jt),jt)).catch(jt=>(Gi(Ct,jt),Promise.reject(jt))):(Gi(lt,It),It)};return yt[iu]=!0,yt[ya]=st,yt},N={_p:i,$id:t,$onAction:su.bind(null,y),$patch:$,$reset:P,$subscribe(rt,st={}){const yt=su(g,rt,st.detached,()=>Pt()),Pt=l.run(()=>Ws(()=>i.state.value[t],lt=>{(st.flush==="sync"?p:f)&&rt({storeId:t,type:On.direct,events:_},lt)},ui({},u,st)));return yt},$dispose:x},X=Jn(N);i._s.set(t,X);const H=(i._a&&i._a.runWithContext||wp)(()=>i._e.run(()=>(l=al()).run(()=>e({action:G}))));for(const rt in H){const st=H[rt];if(le(st)&&!Ap(st)||Gs(st))a||(z&&xp(st)&&(le(st)?st.value=z[rt]:qa(st,z[rt])),i.state.value[t][rt]=st);else if(typeof st=="function"){const yt=G(st,rt);H[rt]=yt,b.actions[rt]=st}}return ui(X,H),ui(Bt(X),H),Object.defineProperty(X,"$state",{get:()=>i.state.value[t],set:rt=>{$(st=>{ui(st,rt)})}}),i._p.forEach(rt=>{ui(X,l.run(()=>rt({store:X,app:i._a,pinia:i,options:b})))}),z&&a&&s.hydrate&&s.hydrate(X.$state,z),f=!0,p=!0,X}function _r(t,e,s){let i;const o=typeof e=="function";i=o?s:e;function a(l,b){const u=Fm();return l=l||(u?es(Md,null):null),l&&Tr(l),l=jd,l._s.has(t)||(o?Od(t,e,i,l):Cp(t,i,l)),l._s.get(t)}return a.$id=t,a}const Ep="modulepreload",jp=function(t){return"/"+t},nu={},Ke=function(e,s,i){let o=Promise.resolve();if(s&&s.length>0){let u=function(f){return Promise.all(f.map(p=>Promise.resolve(p).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),b=l?.nonce||l?.getAttribute("nonce");o=u(s.map(f=>{if(f=jp(f),f in nu)return;nu[f]=!0;const p=f.endsWith(".css"),g=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${g}`))return;const y=document.createElement("link");if(y.rel=p?"stylesheet":Ep,p||(y.as="script"),y.crossOrigin="",y.href=f,b&&y.setAttribute("nonce",b),document.head.appendChild(y),p)return new Promise((_,z)=>{y.addEventListener("load",_),y.addEventListener("error",()=>z(new Error(`Unable to preload CSS for ${f}`)))})}))}function a(l){const b=new Event("vite:preloadError",{cancelable:!0});if(b.payload=l,window.dispatchEvent(b),!b.defaultPrevented)throw l}return o.then(l=>{for(const b of l||[])b.status==="rejected"&&a(b.reason);return e().catch(a)})};const Ji=typeof document<"u";function Rd(t){return typeof t=="object"||"displayName"in t||"props"in t||"__vccOpts"in t}function Mp(t){return t.__esModule||t[Symbol.toStringTag]==="Module"||t.default&&Rd(t.default)}const Ht=Object.assign;function ka(t,e){const s={};for(const i in e){const o=e[i];s[i]=ys(o)?o.map(t):t(o)}return s}const Rn=()=>{},ys=Array.isArray;function ou(t,e){const s={};for(const i in t)s[i]=i in e?e[i]:t[i];return s}let ye=(function(t){return t[t.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",t[t.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",t[t.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",t[t.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",t[t.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",t})({});const Nd=Symbol("");ye.MATCHER_NOT_FOUND+"",ye.NAVIGATION_GUARD_REDIRECT+"",ye.NAVIGATION_ABORTED+"",ye.NAVIGATION_CANCELLED+"",ye.NAVIGATION_DUPLICATED+"";function on(t,e){return Ht(new Error,{type:t,[Nd]:!0},e)}function Fs(t,e){return t instanceof Error&&Nd in t&&(e==null||!!(t.type&e))}const Dp=["params","query","hash"];function Op(t){if(typeof t=="string")return t;if(t.path!=null)return t.path;const e={};for(const s of Dp)s in t&&(e[s]=t[s]);return JSON.stringify(e,null,2)}const Rp=Symbol(""),ru=Symbol(""),wr=Symbol(""),Tl=Symbol(""),$a=Symbol("");function Kk(){return es(wr)}function _l(t){return es(Tl)}const Id=/#/g,Np=/&/g,Ip=/\//g,Lp=/=/g,Fp=/\?/g,Ld=/\+/g,zp=/%5B/g,Bp=/%5D/g,Fd=/%5E/g,Up=/%60/g,zd=/%7B/g,qp=/%7C/g,Bd=/%7D/g,$p=/%20/g;function wl(t){return t==null?"":encodeURI(""+t).replace(qp,"|").replace(zp,"[").replace(Bp,"]")}function Vp(t){return wl(t).replace(zd,"{").replace(Bd,"}").replace(Fd,"^")}function Va(t){return wl(t).replace(Ld,"%2B").replace($p,"+").replace(Id,"%23").replace(Np,"%26").replace(Up,"`").replace(zd,"{").replace(Bd,"}").replace(Fd,"^")}function Kp(t){return Va(t).replace(Lp,"%3D")}function Hp(t){return wl(t).replace(Id,"%23").replace(Fp,"%3F")}function Gp(t){return Hp(t).replace(Ip,"%2F")}function $n(t){if(t==null)return null;try{return decodeURIComponent(""+t)}catch{}return""+t}const Wp=/\/$/,Jp=t=>t.replace(Wp,"");function Sa(t,e,s="/"){let i,o={},a="",l="";const b=e.indexOf("#");let u=e.indexOf("?");return u=b>=0&&u>b?-1:u,u>=0&&(i=e.slice(0,u),a=e.slice(u,b>0?b:e.length),o=t(a.slice(1))),b>=0&&(i=i||e.slice(0,b),l=e.slice(b,e.length)),i=Zp(i??e,s),{fullPath:i+a+l,path:i,query:o,hash:$n(l)}}function Qp(t,e){const s=e.query?t(e.query):"";return e.path+(s&&"?")+s+(e.hash||"")}function au(t,e){return!e||!t.toLowerCase().startsWith(e.toLowerCase())?t:t.slice(e.length)||"/"}function Yp(t,e,s){const i=e.matched.length-1,o=s.matched.length-1;return i>-1&&i===o&&rn(e.matched[i],s.matched[o])&&Ud(e.params,s.params)&&t(e.query)===t(s.query)&&e.hash===s.hash}function rn(t,e){return(t.aliasOf||t)===(e.aliasOf||e)}function Ud(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var s in t)if(!Xp(t[s],e[s]))return!1;return!0}function Xp(t,e){return ys(t)?lu(t,e):ys(e)?lu(e,t):(t&&t.valueOf())===(e&&e.valueOf())}function lu(t,e){return ys(e)?t.length===e.length&&t.every((s,i)=>s===e[i]):t.length===1&&t[0]===e}function Zp(t,e){if(t.startsWith("/"))return t;if(!t)return e;const s=e.split("/"),i=t.split("/"),o=i[i.length-1];(o===".."||o===".")&&i.push("");let a=s.length-1,l,b;for(l=0;l<i.length;l++)if(b=i[l],b!==".")if(b==="..")a>1&&a--;else break;return s.slice(0,a).join("/")+"/"+i.slice(l).join("/")}const li={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ka=(function(t){return t.pop="pop",t.push="push",t})({}),Ta=(function(t){return t.back="back",t.forward="forward",t.unknown="",t})({});function t3(t){if(!t)if(Ji){const e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^\w+:\/\/[^\/]+/,"")}else t="/";return t[0]!=="/"&&t[0]!=="#"&&(t="/"+t),Jp(t)}const e3=/^[^#]+#/;function s3(t,e){return t.replace(e3,"#")+e}function i3(t,e){const s=document.documentElement.getBoundingClientRect(),i=t.getBoundingClientRect();return{behavior:e.behavior,left:i.left-s.left-(e.left||0),top:i.top-s.top-(e.top||0)}}const Pr=()=>({left:window.scrollX,top:window.scrollY});function n3(t){let e;if("el"in t){const s=t.el,i=typeof s=="string"&&s.startsWith("#"),o=typeof s=="string"?i?document.getElementById(s.slice(1)):document.querySelector(s):s;if(!o)return;e=i3(o,t)}else e=t;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function cu(t,e){return(history.state?history.state.position-e:-1)+t}const Ha=new Map;function o3(t,e){Ha.set(t,e)}function r3(t){const e=Ha.get(t);return Ha.delete(t),e}function a3(t){return typeof t=="string"||t&&typeof t=="object"}function qd(t){return typeof t=="string"||typeof t=="symbol"}function l3(t){const e={};if(t===""||t==="?")return e;const s=(t[0]==="?"?t.slice(1):t).split("&");for(let i=0;i<s.length;++i){const o=s[i].replace(Ld," "),a=o.indexOf("="),l=$n(a<0?o:o.slice(0,a)),b=a<0?null:$n(o.slice(a+1));if(l in e){let u=e[l];ys(u)||(u=e[l]=[u]),u.push(b)}else e[l]=b}return e}function uu(t){let e="";for(let s in t){const i=t[s];if(s=Kp(s),i==null){i!==void 0&&(e+=(e.length?"&":"")+s);continue}(ys(i)?i.map(o=>o&&Va(o)):[i&&Va(i)]).forEach(o=>{o!==void 0&&(e+=(e.length?"&":"")+s,o!=null&&(e+="="+o))})}return e}function c3(t){const e={};for(const s in t){const i=t[s];i!==void 0&&(e[s]=ys(i)?i.map(o=>o==null?null:""+o):i==null?i:""+i)}return e}function Sn(){let t=[];function e(i){return t.push(i),()=>{const o=t.indexOf(i);o>-1&&t.splice(o,1)}}function s(){t=[]}return{add:e,list:()=>t.slice(),reset:s}}function di(t,e,s,i,o,a=l=>l()){const l=i&&(i.enterCallbacks[o]=i.enterCallbacks[o]||[]);return()=>new Promise((b,u)=>{const f=y=>{y===!1?u(on(ye.NAVIGATION_ABORTED,{from:s,to:e})):y instanceof Error?u(y):a3(y)?u(on(ye.NAVIGATION_GUARD_REDIRECT,{from:e,to:y})):(l&&i.enterCallbacks[o]===l&&typeof y=="function"&&l.push(y),b())},p=a(()=>t.call(i&&i.instances[o],e,s,f));let g=Promise.resolve(p);t.length<3&&(g=g.then(f)),g.catch(y=>u(y))})}function _a(t,e,s,i,o=a=>a()){const a=[];for(const l of t)for(const b in l.components){let u=l.components[b];if(!(e!=="beforeRouteEnter"&&!l.instances[b]))if(Rd(u)){const f=(u.__vccOpts||u)[e];f&&a.push(di(f,s,i,l,b,o))}else{let f=u();a.push(()=>f.then(p=>{if(!p)throw new Error(`Couldn't resolve component "${b}" at "${l.path}"`);const g=Mp(p)?p.default:p;l.mods[b]=p,l.components[b]=g;const y=(g.__vccOpts||g)[e];return y&&di(y,s,i,l,b,o)()}))}}return a}function u3(t,e){const s=[],i=[],o=[],a=Math.max(e.matched.length,t.matched.length);for(let l=0;l<a;l++){const b=e.matched[l];b&&(t.matched.find(f=>rn(f,b))?i.push(b):s.push(b));const u=t.matched[l];u&&(e.matched.find(f=>rn(f,u))||o.push(u))}return[s,i,o]}let b3=()=>location.protocol+"//"+location.host;function $d(t,e){const{pathname:s,search:i,hash:o}=e,a=t.indexOf("#");if(a>-1){let l=o.includes(t.slice(a))?t.slice(a).length:1,b=o.slice(l);return b[0]!=="/"&&(b="/"+b),au(b,"")}return au(s,t)+i+o}function d3(t,e,s,i){let o=[],a=[],l=null;const b=({state:y})=>{const _=$d(t,location),z=s.value,I=e.value;let $=0;if(y){if(s.value=_,e.value=y,l&&l===z){l=null;return}$=I?y.position-I.position:0}else i(_);o.forEach(P=>{P(s.value,z,{delta:$,type:Ka.pop,direction:$?$>0?Ta.forward:Ta.back:Ta.unknown})})};function u(){l=s.value}function f(y){o.push(y);const _=()=>{const z=o.indexOf(y);z>-1&&o.splice(z,1)};return a.push(_),_}function p(){if(document.visibilityState==="hidden"){const{history:y}=window;if(!y.state)return;y.replaceState(Ht({},y.state,{scroll:Pr()}),"")}}function g(){for(const y of a)y();a=[],window.removeEventListener("popstate",b),window.removeEventListener("pagehide",p),document.removeEventListener("visibilitychange",p)}return window.addEventListener("popstate",b),window.addEventListener("pagehide",p),document.addEventListener("visibilitychange",p),{pauseListeners:u,listen:f,destroy:g}}function bu(t,e,s,i=!1,o=!1){return{back:t,current:e,forward:s,replaced:i,position:window.history.length,scroll:o?Pr():null}}function m3(t){const{history:e,location:s}=window,i={value:$d(t,s)},o={value:e.state};o.value||a(i.value,{back:null,current:i.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(u,f,p){const g=t.indexOf("#"),y=g>-1?(s.host&&document.querySelector("base")?t:t.slice(g))+u:b3()+t+u;try{e[p?"replaceState":"pushState"](f,"",y),o.value=f}catch(_){console.error(_),s[p?"replace":"assign"](y)}}function l(u,f){a(u,Ht({},e.state,bu(o.value.back,u,o.value.forward,!0),f,{position:o.value.position}),!0),i.value=u}function b(u,f){const p=Ht({},o.value,e.state,{forward:u,scroll:Pr()});a(p.current,p,!0),a(u,Ht({},bu(i.value,u,null),{position:p.position+1},f),!1),i.value=u}return{location:i,state:o,push:b,replace:l}}function f3(t){t=t3(t);const e=m3(t),s=d3(t,e.state,e.location,e.replace);function i(a,l=!0){l||s.pauseListeners(),history.go(a)}const o=Ht({location:"",base:t,go:i,createHref:s3.bind(null,t)},e,s);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>e.state.value}),o}let Oi=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.Group=2]="Group",t})({});var Ae=(function(t){return t[t.Static=0]="Static",t[t.Param=1]="Param",t[t.ParamRegExp=2]="ParamRegExp",t[t.ParamRegExpEnd=3]="ParamRegExpEnd",t[t.EscapeNext=4]="EscapeNext",t})(Ae||{});const p3={type:Oi.Static,value:""},h3=/[a-zA-Z0-9_]/;function g3(t){if(!t)return[[]];if(t==="/")return[[p3]];if(!t.startsWith("/"))throw new Error(`Invalid path "${t}"`);function e(_){throw new Error(`ERR (${s})/"${f}": ${_}`)}let s=Ae.Static,i=s;const o=[];let a;function l(){a&&o.push(a),a=[]}let b=0,u,f="",p="";function g(){f&&(s===Ae.Static?a.push({type:Oi.Static,value:f}):s===Ae.Param||s===Ae.ParamRegExp||s===Ae.ParamRegExpEnd?(a.length>1&&(u==="*"||u==="+")&&e(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Oi.Param,value:f,regexp:p,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):e("Invalid state to consume buffer"),f="")}function y(){f+=u}for(;b<t.length;){if(u=t[b++],u==="\\"&&s!==Ae.ParamRegExp){i=s,s=Ae.EscapeNext;continue}switch(s){case Ae.Static:u==="/"?(f&&g(),l()):u===":"?(g(),s=Ae.Param):y();break;case Ae.EscapeNext:y(),s=i;break;case Ae.Param:u==="("?s=Ae.ParamRegExp:h3.test(u)?y():(g(),s=Ae.Static,u!=="*"&&u!=="?"&&u!=="+"&&b--);break;case Ae.ParamRegExp:u===")"?p[p.length-1]=="\\"?p=p.slice(0,-1)+u:s=Ae.ParamRegExpEnd:p+=u;break;case Ae.ParamRegExpEnd:g(),s=Ae.Static,u!=="*"&&u!=="?"&&u!=="+"&&b--,p="";break;default:e("Unknown state");break}}return s===Ae.ParamRegExp&&e(`Unfinished custom RegExp for param "${f}"`),g(),l(),o}const du="[^/]+?",v3={sensitive:!1,strict:!1,start:!0,end:!0};var We=(function(t){return t[t._multiplier=10]="_multiplier",t[t.Root=90]="Root",t[t.Segment=40]="Segment",t[t.SubSegment=30]="SubSegment",t[t.Static=40]="Static",t[t.Dynamic=20]="Dynamic",t[t.BonusCustomRegExp=10]="BonusCustomRegExp",t[t.BonusWildcard=-50]="BonusWildcard",t[t.BonusRepeatable=-20]="BonusRepeatable",t[t.BonusOptional=-8]="BonusOptional",t[t.BonusStrict=.7000000000000001]="BonusStrict",t[t.BonusCaseSensitive=.25]="BonusCaseSensitive",t})(We||{});const y3=/[.+*?^${}()[\]/\\]/g;function k3(t,e){const s=Ht({},v3,e),i=[];let o=s.start?"^":"";const a=[];for(const f of t){const p=f.length?[]:[We.Root];s.strict&&!f.length&&(o+="/");for(let g=0;g<f.length;g++){const y=f[g];let _=We.Segment+(s.sensitive?We.BonusCaseSensitive:0);if(y.type===Oi.Static)g||(o+="/"),o+=y.value.replace(y3,"\\$&"),_+=We.Static;else if(y.type===Oi.Param){const{value:z,repeatable:I,optional:$,regexp:P}=y;a.push({name:z,repeatable:I,optional:$});const x=P||du;if(x!==du){_+=We.BonusCustomRegExp;try{new RegExp(`(${x})`)}catch(N){throw new Error(`Invalid custom RegExp for param "${z}" (${x}): `+N.message)}}let G=I?`((?:${x})(?:/(?:${x}))*)`:`(${x})`;g||(G=$&&f.length<2?`(?:/${G})`:"/"+G),$&&(G+="?"),o+=G,_+=We.Dynamic,$&&(_+=We.BonusOptional),I&&(_+=We.BonusRepeatable),x===".*"&&(_+=We.BonusWildcard)}p.push(_)}i.push(p)}if(s.strict&&s.end){const f=i.length-1;i[f][i[f].length-1]+=We.BonusStrict}s.strict||(o+="/?"),s.end?o+="$":s.strict&&!o.endsWith("/")&&(o+="(?:/|$)");const l=new RegExp(o,s.sensitive?"":"i");function b(f){const p=f.match(l),g={};if(!p)return null;for(let y=1;y<p.length;y++){const _=p[y]||"",z=a[y-1];g[z.name]=_&&z.repeatable?_.split("/"):_}return g}function u(f){let p="",g=!1;for(const y of t){(!g||!p.endsWith("/"))&&(p+="/"),g=!1;for(const _ of y)if(_.type===Oi.Static)p+=_.value;else if(_.type===Oi.Param){const{value:z,repeatable:I,optional:$}=_,P=z in f?f[z]:"";if(ys(P)&&!I)throw new Error(`Provided param "${z}" is an array but it is not repeatable (* or + modifiers)`);const x=ys(P)?P.join("/"):P;if(!x)if($)y.length<2&&(p.endsWith("/")?p=p.slice(0,-1):g=!0);else throw new Error(`Missing required param "${z}"`);p+=x}}return p||"/"}return{re:l,score:i,keys:a,parse:b,stringify:u}}function S3(t,e){let s=0;for(;s<t.length&&s<e.length;){const i=e[s]-t[s];if(i)return i;s++}return t.length<e.length?t.length===1&&t[0]===We.Static+We.Segment?-1:1:t.length>e.length?e.length===1&&e[0]===We.Static+We.Segment?1:-1:0}function Vd(t,e){let s=0;const i=t.score,o=e.score;for(;s<i.length&&s<o.length;){const a=S3(i[s],o[s]);if(a)return a;s++}if(Math.abs(o.length-i.length)===1){if(mu(i))return 1;if(mu(o))return-1}return o.length-i.length}function mu(t){const e=t[t.length-1];return t.length>0&&e[e.length-1]<0}const T3={strict:!1,end:!0,sensitive:!1};function _3(t,e,s){const i=k3(g3(t.path),s),o=Ht(i,{record:t,parent:e,children:[],alias:[]});return e&&!o.record.aliasOf==!e.record.aliasOf&&e.children.push(o),o}function w3(t,e){const s=[],i=new Map;e=ou(T3,e);function o(g){return i.get(g)}function a(g,y,_){const z=!_,I=pu(g);I.aliasOf=_&&_.record;const $=ou(e,g),P=[I];if("alias"in g){const N=typeof g.alias=="string"?[g.alias]:g.alias;for(const X of N)P.push(pu(Ht({},I,{components:_?_.record.components:I.components,path:X,aliasOf:_?_.record:I})))}let x,G;for(const N of P){const{path:X}=N;if(y&&X[0]!=="/"){const W=y.record.path,H=W[W.length-1]==="/"?"":"/";N.path=y.record.path+(X&&H+X)}if(x=_3(N,y,$),_?_.alias.push(x):(G=G||x,G!==x&&G.alias.push(x),z&&g.name&&!hu(x)&&l(g.name)),Kd(x)&&u(x),I.children){const W=I.children;for(let H=0;H<W.length;H++)a(W[H],x,_&&_.children[H])}_=_||x}return G?()=>{l(G)}:Rn}function l(g){if(qd(g)){const y=i.get(g);y&&(i.delete(g),s.splice(s.indexOf(y),1),y.children.forEach(l),y.alias.forEach(l))}else{const y=s.indexOf(g);y>-1&&(s.splice(y,1),g.record.name&&i.delete(g.record.name),g.children.forEach(l),g.alias.forEach(l))}}function b(){return s}function u(g){const y=A3(g,s);s.splice(y,0,g),g.record.name&&!hu(g)&&i.set(g.record.name,g)}function f(g,y){let _,z={},I,$;if("name"in g&&g.name){if(_=i.get(g.name),!_)throw on(ye.MATCHER_NOT_FOUND,{location:g});$=_.record.name,z=Ht(fu(y.params,_.keys.filter(G=>!G.optional).concat(_.parent?_.parent.keys.filter(G=>G.optional):[]).map(G=>G.name)),g.params&&fu(g.params,_.keys.map(G=>G.name))),I=_.stringify(z)}else if(g.path!=null)I=g.path,_=s.find(G=>G.re.test(I)),_&&(z=_.parse(I),$=_.record.name);else{if(_=y.name?i.get(y.name):s.find(G=>G.re.test(y.path)),!_)throw on(ye.MATCHER_NOT_FOUND,{location:g,currentLocation:y});$=_.record.name,z=Ht({},y.params,g.params),I=_.stringify(z)}const P=[];let x=_;for(;x;)P.unshift(x.record),x=x.parent;return{name:$,path:I,params:z,matched:P,meta:x3(P)}}t.forEach(g=>a(g));function p(){s.length=0,i.clear()}return{addRoute:a,resolve:f,removeRoute:l,clearRoutes:p,getRoutes:b,getRecordMatcher:o}}function fu(t,e){const s={};for(const i of e)i in t&&(s[i]=t[i]);return s}function pu(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta:t.meta||{},aliasOf:t.aliasOf,beforeEnter:t.beforeEnter,props:P3(t),children:t.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in t?t.components||null:t.component&&{default:t.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function P3(t){const e={},s=t.props||!1;if("component"in t)e.default=s;else for(const i in t.components)e[i]=typeof s=="object"?s[i]:s;return e}function hu(t){for(;t;){if(t.record.aliasOf)return!0;t=t.parent}return!1}function x3(t){return t.reduce((e,s)=>Ht(e,s.meta),{})}function A3(t,e){let s=0,i=e.length;for(;s!==i;){const a=s+i>>1;Vd(t,e[a])<0?i=a:s=a+1}const o=C3(t);return o&&(i=e.lastIndexOf(o,i-1)),i}function C3(t){let e=t;for(;e=e.parent;)if(Kd(e)&&Vd(t,e)===0)return e}function Kd({record:t}){return!!(t.name||t.components&&Object.keys(t.components).length||t.redirect)}function gu(t){const e=es(wr),s=es(Tl),i=ne(()=>{const u=ie(t.to);return e.resolve(u)}),o=ne(()=>{const{matched:u}=i.value,{length:f}=u,p=u[f-1],g=s.matched;if(!p||!g.length)return-1;const y=g.findIndex(rn.bind(null,p));if(y>-1)return y;const _=vu(u[f-2]);return f>1&&vu(p)===_&&g[g.length-1].path!==_?g.findIndex(rn.bind(null,u[f-2])):y}),a=ne(()=>o.value>-1&&O3(s.params,i.value.params)),l=ne(()=>o.value>-1&&o.value===s.matched.length-1&&Ud(s.params,i.value.params));function b(u={}){if(D3(u)){const f=e[ie(t.replace)?"replace":"push"](ie(t.to)).catch(Rn);return t.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:i,href:ne(()=>i.value.href),isActive:a,isExactActive:l,navigate:b}}function E3(t){return t.length===1?t[0]:t}const j3=Os({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:gu,setup(t,{slots:e}){const s=Jn(gu(t)),{options:i}=es(wr),o=ne(()=>({[yu(t.activeClass,i.linkActiveClass,"router-link-active")]:s.isActive,[yu(t.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:s.isExactActive}));return()=>{const a=e.default&&E3(e.default(s));return t.custom?a:fi("a",{"aria-current":s.isExactActive?t.ariaCurrentValue:null,href:s.href,onClick:s.navigate,class:o.value},a)}}}),M3=j3;function D3(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&!(t.button!==void 0&&t.button!==0)){if(t.currentTarget&&t.currentTarget.getAttribute){const e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function O3(t,e){for(const s in e){const i=e[s],o=t[s];if(typeof i=="string"){if(i!==o)return!1}else if(!ys(o)||o.length!==i.length||i.some((a,l)=>a.valueOf()!==o[l].valueOf()))return!1}return!0}function vu(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}const yu=(t,e,s)=>t??e??s,R3=Os({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(t,{attrs:e,slots:s}){const i=es($a),o=ne(()=>t.route||i.value),a=es(ru,0),l=ne(()=>{let f=ie(a);const{matched:p}=o.value;let g;for(;(g=p[f])&&!g.components;)f++;return f}),b=ne(()=>o.value.matched[l.value]);Ro(ru,ne(()=>l.value+1)),Ro(Rp,b),Ro($a,o);const u=he();return Ws(()=>[u.value,b.value,t.name],([f,p,g],[y,_,z])=>{p&&(p.instances[g]=f,_&&_!==p&&f&&f===y&&(p.leaveGuards.size||(p.leaveGuards=_.leaveGuards),p.updateGuards.size||(p.updateGuards=_.updateGuards))),f&&p&&(!_||!rn(p,_)||!y)&&(p.enterCallbacks[g]||[]).forEach(I=>I(f))},{flush:"post"}),()=>{const f=o.value,p=t.name,g=b.value,y=g&&g.components[p];if(!y)return ku(s.default,{Component:y,route:f});const _=g.props[p],z=_?_===!0?f.params:typeof _=="function"?_(f):_:null,$=fi(y,Ht({},z,e,{onVnodeUnmounted:P=>{P.component.isUnmounted&&(g.instances[p]=null)},ref:u}));return ku(s.default,{Component:$,route:f})||$}}});function ku(t,e){if(!t)return null;const s=t(e);return s.length===1?s[0]:s}const N3=R3;function I3(t){const e=w3(t.routes,t),s=t.parseQuery||l3,i=t.stringifyQuery||uu,o=t.history,a=Sn(),l=Sn(),b=Sn(),u=Mb(li);let f=li;Ji&&t.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const p=ka.bind(null,tt=>""+tt),g=ka.bind(null,Gp),y=ka.bind(null,$n);function _(tt,gt){let mt,ot;return qd(tt)?(mt=e.getRecordMatcher(tt),ot=gt):ot=tt,e.addRoute(ot,mt)}function z(tt){const gt=e.getRecordMatcher(tt);gt&&e.removeRoute(gt)}function I(){return e.getRoutes().map(tt=>tt.record)}function $(tt){return!!e.getRecordMatcher(tt)}function P(tt,gt){if(gt=Ht({},gt||u.value),typeof tt=="string"){const B=Sa(s,tt,gt.path),Y=e.resolve({path:B.path},gt),it=o.createHref(B.fullPath);return Ht(B,Y,{params:y(Y.params),hash:$n(B.hash),redirectedFrom:void 0,href:it})}let mt;if(tt.path!=null)mt=Ht({},tt,{path:Sa(s,tt.path,gt.path).path});else{const B=Ht({},tt.params);for(const Y in B)B[Y]==null&&delete B[Y];mt=Ht({},tt,{params:g(B)}),gt.params=g(gt.params)}const ot=e.resolve(mt,gt),Ot=tt.hash||"";ot.params=p(y(ot.params));const S=Qp(i,Ht({},tt,{hash:Vp(Ot),path:ot.path})),A=o.createHref(S);return Ht({fullPath:S,hash:Ot,query:i===uu?c3(tt.query):tt.query||{}},ot,{redirectedFrom:void 0,href:A})}function x(tt){return typeof tt=="string"?Sa(s,tt,u.value.path):Ht({},tt)}function G(tt,gt){if(f!==tt)return on(ye.NAVIGATION_CANCELLED,{from:gt,to:tt})}function N(tt){return H(tt)}function X(tt){return N(Ht(x(tt),{replace:!0}))}function W(tt,gt){const mt=tt.matched[tt.matched.length-1];if(mt&&mt.redirect){const{redirect:ot}=mt;let Ot=typeof ot=="function"?ot(tt,gt):ot;return typeof Ot=="string"&&(Ot=Ot.includes("?")||Ot.includes("#")?Ot=x(Ot):{path:Ot},Ot.params={}),Ht({query:tt.query,hash:tt.hash,params:Ot.path!=null?{}:tt.params},Ot)}}function H(tt,gt){const mt=f=P(tt),ot=u.value,Ot=tt.state,S=tt.force,A=tt.replace===!0,B=W(mt,ot);if(B)return H(Ht(x(B),{state:typeof B=="object"?Ht({},Ot,B.state):Ot,force:S,replace:A}),gt||mt);const Y=mt;Y.redirectedFrom=gt;let it;return!S&&Yp(i,ot,mt)&&(it=on(ye.NAVIGATION_DUPLICATED,{to:Y,from:ot}),Pe(ot,ot,!0,!1)),(it?Promise.resolve(it):yt(Y,ot)).catch(et=>Fs(et)?Fs(et,ye.NAVIGATION_GUARD_REDIRECT)?et:be(et):Dt(et,Y,ot)).then(et=>{if(et){if(Fs(et,ye.NAVIGATION_GUARD_REDIRECT))return H(Ht({replace:A},x(et.to),{state:typeof et.to=="object"?Ht({},Ot,et.to.state):Ot,force:S}),gt||Y)}else et=lt(Y,ot,!0,A,Ot);return Pt(Y,ot,et),et})}function rt(tt,gt){const mt=G(tt,gt);return mt?Promise.reject(mt):Promise.resolve()}function st(tt){const gt=Re.values().next().value;return gt&&typeof gt.runWithContext=="function"?gt.runWithContext(tt):tt()}function yt(tt,gt){let mt;const[ot,Ot,S]=u3(tt,gt);mt=_a(ot.reverse(),"beforeRouteLeave",tt,gt);for(const B of ot)B.leaveGuards.forEach(Y=>{mt.push(di(Y,tt,gt))});const A=rt.bind(null,tt,gt);return mt.push(A),Se(mt).then(()=>{mt=[];for(const B of a.list())mt.push(di(B,tt,gt));return mt.push(A),Se(mt)}).then(()=>{mt=_a(Ot,"beforeRouteUpdate",tt,gt);for(const B of Ot)B.updateGuards.forEach(Y=>{mt.push(di(Y,tt,gt))});return mt.push(A),Se(mt)}).then(()=>{mt=[];for(const B of S)if(B.beforeEnter)if(ys(B.beforeEnter))for(const Y of B.beforeEnter)mt.push(di(Y,tt,gt));else mt.push(di(B.beforeEnter,tt,gt));return mt.push(A),Se(mt)}).then(()=>(tt.matched.forEach(B=>B.enterCallbacks={}),mt=_a(S,"beforeRouteEnter",tt,gt,st),mt.push(A),Se(mt))).then(()=>{mt=[];for(const B of l.list())mt.push(di(B,tt,gt));return mt.push(A),Se(mt)}).catch(B=>Fs(B,ye.NAVIGATION_CANCELLED)?B:Promise.reject(B))}function Pt(tt,gt,mt){b.list().forEach(ot=>st(()=>ot(tt,gt,mt)))}function lt(tt,gt,mt,ot,Ot){const S=G(tt,gt);if(S)return S;const A=gt===li,B=Ji?history.state:{};mt&&(ot||A?o.replace(tt.fullPath,Ht({scroll:A&&B&&B.scroll},Ot)):o.push(tt.fullPath,Ot)),u.value=tt,Pe(tt,gt,mt,A),be()}let Ct;function Yt(){Ct||(Ct=o.listen((tt,gt,mt)=>{if(!Ye.listening)return;const ot=P(tt),Ot=W(ot,Ye.currentRoute.value);if(Ot){H(Ht(Ot,{replace:!0,force:!0}),ot).catch(Rn);return}f=ot;const S=u.value;Ji&&o3(cu(S.fullPath,mt.delta),Pr()),yt(ot,S).catch(A=>Fs(A,ye.NAVIGATION_ABORTED|ye.NAVIGATION_CANCELLED)?A:Fs(A,ye.NAVIGATION_GUARD_REDIRECT)?(H(Ht(x(A.to),{force:!0}),ot).then(B=>{Fs(B,ye.NAVIGATION_ABORTED|ye.NAVIGATION_DUPLICATED)&&!mt.delta&&mt.type===Ka.pop&&o.go(-1,!1)}).catch(Rn),Promise.reject()):(mt.delta&&o.go(-mt.delta,!1),Dt(A,ot,S))).then(A=>{A=A||lt(ot,S,!1),A&&(mt.delta&&!Fs(A,ye.NAVIGATION_CANCELLED)?o.go(-mt.delta,!1):mt.type===Ka.pop&&Fs(A,ye.NAVIGATION_ABORTED|ye.NAVIGATION_DUPLICATED)&&o.go(-1,!1)),Pt(ot,S,A)}).catch(Rn)}))}let ue=Sn(),It=Sn(),jt;function Dt(tt,gt,mt){be(tt);const ot=It.list();return ot.length?ot.forEach(Ot=>Ot(tt,gt,mt)):console.error(tt),Promise.reject(tt)}function Xt(){return jt&&u.value!==li?Promise.resolve():new Promise((tt,gt)=>{ue.add([tt,gt])})}function be(tt){return jt||(jt=!tt,Yt(),ue.list().forEach(([gt,mt])=>tt?mt(tt):gt()),ue.reset()),tt}function Pe(tt,gt,mt,ot){const{scrollBehavior:Ot}=t;if(!Ji||!Ot)return Promise.resolve();const S=!mt&&r3(cu(tt.fullPath,0))||(ot||!mt)&&history.state&&history.state.scroll||null;return pr().then(()=>Ot(tt,gt,S)).then(A=>A&&n3(A)).catch(A=>Dt(A,tt,gt))}const Jt=tt=>o.go(tt);let ss;const Re=new Set,Ye={currentRoute:u,listening:!0,addRoute:_,removeRoute:z,clearRoutes:e.clearRoutes,hasRoute:$,getRoutes:I,resolve:P,options:t,push:N,replace:X,go:Jt,back:()=>Jt(-1),forward:()=>Jt(1),beforeEach:a.add,beforeResolve:l.add,afterEach:b.add,onError:It.add,isReady:Xt,install(tt){tt.component("RouterLink",M3),tt.component("RouterView",N3),tt.config.globalProperties.$router=Ye,Object.defineProperty(tt.config.globalProperties,"$route",{enumerable:!0,get:()=>ie(u)}),Ji&&!ss&&u.value===li&&(ss=!0,N(o.location).catch(ot=>{}));const gt={};for(const ot in li)Object.defineProperty(gt,ot,{get:()=>u.value[ot],enumerable:!0});tt.provide(wr,Ye),tt.provide(Tl,jb(gt)),tt.provide($a,u);const mt=tt.unmount;Re.add(tt),tt.unmount=function(){Re.delete(tt),Re.size<1&&(f=li,Ct&&Ct(),Ct=null,u.value=li,ss=!1,jt=!1),mt()}}};function Se(tt){return tt.reduce((gt,mt)=>gt.then(()=>st(mt)),Promise.resolve())}return Ye}function L3(t,e){typeof console<"u"&&(console.warn("[intlify] "+t),e&&console.warn(e.stack))}const Zo=typeof window<"u",hi=(t,e=!1)=>e?Symbol.for(t):Symbol(t),F3=(t,e,s)=>z3({l:t,k:e,s}),z3=t=>JSON.stringify(t).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),we=t=>typeof t=="number"&&isFinite(t),B3=t=>xl(t)==="[object Date]",tr=t=>xl(t)==="[object RegExp]",xr=t=>zt(t)&&Object.keys(t).length===0,Oe=Object.assign,U3=Object.create,Qt=(t=null)=>U3(t);let Su;const Pl=()=>Su||(Su=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Qt());function Tu(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function _u(t){return t.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function q3(t){return t=t.replace(/(\w+)\s*=\s*"([^"]*)"/g,(i,o,a)=>`${o}="${_u(a)}"`),t=t.replace(/(\w+)\s*=\s*'([^']*)'/g,(i,o,a)=>`${o}='${_u(a)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(t)&&(t=t.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(i=>{t=t.replace(i,"$1javascript:")}),t}const $3=Object.prototype.hasOwnProperty;function ms(t,e){return $3.call(t,e)}const Ce=Array.isArray,fe=t=>typeof t=="function",_t=t=>typeof t=="string",pe=t=>typeof t=="boolean",Vt=t=>t!==null&&typeof t=="object",V3=t=>Vt(t)&&fe(t.then)&&fe(t.catch),Hd=Object.prototype.toString,xl=t=>Hd.call(t),zt=t=>xl(t)==="[object Object]",K3=t=>t==null?"":Ce(t)||zt(t)&&t.toString===Hd?JSON.stringify(t,null,2):String(t);function Al(t,e=""){return t.reduce((s,i,o)=>o===0?s+i:s+e+i,"")}const Eo=t=>!Vt(t)||Ce(t);function zo(t,e){if(Eo(t)||Eo(e))throw new Error("Invalid value");const s=[{src:t,des:e}];for(;s.length;){const{src:i,des:o}=s.pop();Object.keys(i).forEach(a=>{a!=="__proto__"&&(Vt(i[a])&&!Vt(o[a])&&(o[a]=Array.isArray(i[a])?[]:Qt()),Eo(o[a])||Eo(i[a])?o[a]=i[a]:s.push({src:i[a],des:o[a]}))})}}function H3(t,e,s){return{line:t,column:e,offset:s}}function Ga(t,e,s){return{start:t,end:e}}const Wt={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},G3=17;function Ar(t,e,s={}){const{domain:i,messages:o,args:a}=s,l=t,b=new SyntaxError(String(l));return b.code=t,e&&(b.location=e),b.domain=i,b}function W3(t){throw t}const zs=" ",J3="\r",Ge=`
|
|
3
3
|
`,Q3="\u2028",Y3="\u2029";function X3(t){const e=t;let s=0,i=1,o=1,a=0;const l=H=>e[H]===J3&&e[H+1]===Ge,b=H=>e[H]===Ge,u=H=>e[H]===Y3,f=H=>e[H]===Q3,p=H=>l(H)||b(H)||u(H)||f(H),g=()=>s,y=()=>i,_=()=>o,z=()=>a,I=H=>l(H)||u(H)||f(H)?Ge:e[H],$=()=>I(s),P=()=>I(s+a);function x(){return a=0,p(s)&&(i++,o=0),l(s)&&s++,s++,o++,e[s]}function G(){return l(s+a)&&a++,a++,e[s+a]}function N(){s=0,i=1,o=1,a=0}function X(H=0){a=H}function W(){const H=s+a;for(;H!==s;)x();a=0}return{index:g,line:y,column:_,peekOffset:z,charAt:I,currentChar:$,currentPeek:P,next:x,peek:G,reset:N,resetPeek:X,skipToPeek:W}}const ci=void 0,Z3=".",wu="'",t2="tokenizer";function e2(t,e={}){const s=e.location!==!1,i=X3(t),o=()=>i.index(),a=()=>H3(i.line(),i.column(),i.index()),l=a(),b=o(),u={currentType:13,offset:b,startLoc:l,endLoc:l,lastType:13,lastOffset:b,lastStartLoc:l,lastEndLoc:l,braceNest:0,inLinked:!1,text:""},f=()=>u,{onError:p}=e;function g(T,w,L,...V){const pt=f();if(w.column+=L,w.offset+=L,p){const nt=s?Ga(pt.startLoc,w):null,F=Ar(T,nt,{domain:t2,args:V});p(F)}}function y(T,w,L){T.endLoc=a(),T.currentType=w;const V={type:w};return s&&(V.loc=Ga(T.startLoc,T.endLoc)),L!=null&&(V.value=L),V}const _=T=>y(T,13);function z(T,w){return T.currentChar()===w?(T.next(),w):(g(Wt.EXPECTED_TOKEN,a(),0,w),"")}function I(T){let w="";for(;T.currentPeek()===zs||T.currentPeek()===Ge;)w+=T.currentPeek(),T.peek();return w}function $(T){const w=I(T);return T.skipToPeek(),w}function P(T){if(T===ci)return!1;const w=T.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w===95}function x(T){if(T===ci)return!1;const w=T.charCodeAt(0);return w>=48&&w<=57}function G(T,w){const{currentType:L}=w;if(L!==2)return!1;I(T);const V=P(T.currentPeek());return T.resetPeek(),V}function N(T,w){const{currentType:L}=w;if(L!==2)return!1;I(T);const V=T.currentPeek()==="-"?T.peek():T.currentPeek(),pt=x(V);return T.resetPeek(),pt}function X(T,w){const{currentType:L}=w;if(L!==2)return!1;I(T);const V=T.currentPeek()===wu;return T.resetPeek(),V}function W(T,w){const{currentType:L}=w;if(L!==7)return!1;I(T);const V=T.currentPeek()===".";return T.resetPeek(),V}function H(T,w){const{currentType:L}=w;if(L!==8)return!1;I(T);const V=P(T.currentPeek());return T.resetPeek(),V}function rt(T,w){const{currentType:L}=w;if(!(L===7||L===11))return!1;I(T);const V=T.currentPeek()===":";return T.resetPeek(),V}function st(T,w){const{currentType:L}=w;if(L!==9)return!1;const V=()=>{const nt=T.currentPeek();return nt==="{"?P(T.peek()):nt==="@"||nt==="|"||nt===":"||nt==="."||nt===zs||!nt?!1:nt===Ge?(T.peek(),V()):Pt(T,!1)},pt=V();return T.resetPeek(),pt}function yt(T){I(T);const w=T.currentPeek()==="|";return T.resetPeek(),w}function Pt(T,w=!0){const L=(pt=!1,nt="")=>{const F=T.currentPeek();return F==="{"||F==="@"||!F?pt:F==="|"?!(nt===zs||nt===Ge):F===zs?(T.peek(),L(!0,zs)):F===Ge?(T.peek(),L(!0,Ge)):!0},V=L();return w&&T.resetPeek(),V}function lt(T,w){const L=T.currentChar();return L===ci?ci:w(L)?(T.next(),L):null}function Ct(T){const w=T.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===95||w===36}function Yt(T){return lt(T,Ct)}function ue(T){const w=T.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===95||w===36||w===45}function It(T){return lt(T,ue)}function jt(T){const w=T.charCodeAt(0);return w>=48&&w<=57}function Dt(T){return lt(T,jt)}function Xt(T){const w=T.charCodeAt(0);return w>=48&&w<=57||w>=65&&w<=70||w>=97&&w<=102}function be(T){return lt(T,Xt)}function Pe(T){let w="",L="";for(;w=Dt(T);)L+=w;return L}function Jt(T){let w="";for(;;){const L=T.currentChar();if(L==="{"||L==="}"||L==="@"||L==="|"||!L)break;if(L===zs||L===Ge)if(Pt(T))w+=L,T.next();else{if(yt(T))break;w+=L,T.next()}else w+=L,T.next()}return w}function ss(T){$(T);let w="",L="";for(;w=It(T);)L+=w;return T.currentChar()===ci&&g(Wt.UNTERMINATED_CLOSING_BRACE,a(),0),L}function Re(T){$(T);let w="";return T.currentChar()==="-"?(T.next(),w+=`-${Pe(T)}`):w+=Pe(T),T.currentChar()===ci&&g(Wt.UNTERMINATED_CLOSING_BRACE,a(),0),w}function Ye(T){return T!==wu&&T!==Ge}function Se(T){$(T),z(T,"'");let w="",L="";for(;w=lt(T,Ye);)w==="\\"?L+=tt(T):L+=w;const V=T.currentChar();return V===Ge||V===ci?(g(Wt.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,a(),0),V===Ge&&(T.next(),z(T,"'")),L):(z(T,"'"),L)}function tt(T){const w=T.currentChar();switch(w){case"\\":case"'":return T.next(),`\\${w}`;case"u":return gt(T,w,4);case"U":return gt(T,w,6);default:return g(Wt.UNKNOWN_ESCAPE_SEQUENCE,a(),0,w),""}}function gt(T,w,L){z(T,w);let V="";for(let pt=0;pt<L;pt++){const nt=be(T);if(!nt){g(Wt.INVALID_UNICODE_ESCAPE_SEQUENCE,a(),0,`\\${w}${V}${T.currentChar()}`);break}V+=nt}return`\\${w}${V}`}function mt(T){return T!=="{"&&T!=="}"&&T!==zs&&T!==Ge}function ot(T){$(T);let w="",L="";for(;w=lt(T,mt);)L+=w;return L}function Ot(T){let w="",L="";for(;w=Yt(T);)L+=w;return L}function S(T){const w=L=>{const V=T.currentChar();return V==="{"||V==="@"||V==="|"||V==="("||V===")"||!V||V===zs?L:(L+=V,T.next(),w(L))};return w("")}function A(T){$(T);const w=z(T,"|");return $(T),w}function B(T,w){let L=null;switch(T.currentChar()){case"{":return w.braceNest>=1&&g(Wt.NOT_ALLOW_NEST_PLACEHOLDER,a(),0),T.next(),L=y(w,2,"{"),$(T),w.braceNest++,L;case"}":return w.braceNest>0&&w.currentType===2&&g(Wt.EMPTY_PLACEHOLDER,a(),0),T.next(),L=y(w,3,"}"),w.braceNest--,w.braceNest>0&&$(T),w.inLinked&&w.braceNest===0&&(w.inLinked=!1),L;case"@":return w.braceNest>0&&g(Wt.UNTERMINATED_CLOSING_BRACE,a(),0),L=Y(T,w)||_(w),w.braceNest=0,L;default:{let pt=!0,nt=!0,F=!0;if(yt(T))return w.braceNest>0&&g(Wt.UNTERMINATED_CLOSING_BRACE,a(),0),L=y(w,1,A(T)),w.braceNest=0,w.inLinked=!1,L;if(w.braceNest>0&&(w.currentType===4||w.currentType===5||w.currentType===6))return g(Wt.UNTERMINATED_CLOSING_BRACE,a(),0),w.braceNest=0,it(T,w);if(pt=G(T,w))return L=y(w,4,ss(T)),$(T),L;if(nt=N(T,w))return L=y(w,5,Re(T)),$(T),L;if(F=X(T,w))return L=y(w,6,Se(T)),$(T),L;if(!pt&&!nt&&!F)return L=y(w,12,ot(T)),g(Wt.INVALID_TOKEN_IN_PLACEHOLDER,a(),0,L.value),$(T),L;break}}return L}function Y(T,w){const{currentType:L}=w;let V=null;const pt=T.currentChar();switch((L===7||L===8||L===11||L===9)&&(pt===Ge||pt===zs)&&g(Wt.INVALID_LINKED_FORMAT,a(),0),pt){case"@":return T.next(),V=y(w,7,"@"),w.inLinked=!0,V;case".":return $(T),T.next(),y(w,8,".");case":":return $(T),T.next(),y(w,9,":");default:return yt(T)?(V=y(w,1,A(T)),w.braceNest=0,w.inLinked=!1,V):W(T,w)||rt(T,w)?($(T),Y(T,w)):H(T,w)?($(T),y(w,11,Ot(T))):st(T,w)?($(T),pt==="{"?B(T,w)||V:y(w,10,S(T))):(L===7&&g(Wt.INVALID_LINKED_FORMAT,a(),0),w.braceNest=0,w.inLinked=!1,it(T,w))}}function it(T,w){let L={type:13};if(w.braceNest>0)return B(T,w)||_(w);if(w.inLinked)return Y(T,w)||_(w);switch(T.currentChar()){case"{":return B(T,w)||_(w);case"}":return g(Wt.UNBALANCED_CLOSING_BRACE,a(),0),T.next(),y(w,3,"}");case"@":return Y(T,w)||_(w);default:{if(yt(T))return L=y(w,1,A(T)),w.braceNest=0,w.inLinked=!1,L;if(Pt(T))return y(w,0,Jt(T));break}}return L}function et(){const{currentType:T,offset:w,startLoc:L,endLoc:V}=u;return u.lastType=T,u.lastOffset=w,u.lastStartLoc=L,u.lastEndLoc=V,u.offset=o(),u.startLoc=a(),i.currentChar()===ci?y(u,13):it(i,u)}return{nextToken:et,currentOffset:o,currentPosition:a,context:f}}const s2="parser",i2=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function n2(t,e,s){switch(t){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||s,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function o2(t={}){const e=t.location!==!1,{onError:s}=t;function i(P,x,G,N,...X){const W=P.currentPosition();if(W.offset+=N,W.column+=N,s){const H=e?Ga(G,W):null,rt=Ar(x,H,{domain:s2,args:X});s(rt)}}function o(P,x,G){const N={type:P};return e&&(N.start=x,N.end=x,N.loc={start:G,end:G}),N}function a(P,x,G,N){e&&(P.end=x,P.loc&&(P.loc.end=G))}function l(P,x){const G=P.context(),N=o(3,G.offset,G.startLoc);return N.value=x,a(N,P.currentOffset(),P.currentPosition()),N}function b(P,x){const G=P.context(),{lastOffset:N,lastStartLoc:X}=G,W=o(5,N,X);return W.index=parseInt(x,10),P.nextToken(),a(W,P.currentOffset(),P.currentPosition()),W}function u(P,x){const G=P.context(),{lastOffset:N,lastStartLoc:X}=G,W=o(4,N,X);return W.key=x,P.nextToken(),a(W,P.currentOffset(),P.currentPosition()),W}function f(P,x){const G=P.context(),{lastOffset:N,lastStartLoc:X}=G,W=o(9,N,X);return W.value=x.replace(i2,n2),P.nextToken(),a(W,P.currentOffset(),P.currentPosition()),W}function p(P){const x=P.nextToken(),G=P.context(),{lastOffset:N,lastStartLoc:X}=G,W=o(8,N,X);return x.type!==11?(i(P,Wt.UNEXPECTED_EMPTY_LINKED_MODIFIER,G.lastStartLoc,0),W.value="",a(W,N,X),{nextConsumeToken:x,node:W}):(x.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,G.lastStartLoc,0,xs(x)),W.value=x.value||"",a(W,P.currentOffset(),P.currentPosition()),{node:W})}function g(P,x){const G=P.context(),N=o(7,G.offset,G.startLoc);return N.value=x,a(N,P.currentOffset(),P.currentPosition()),N}function y(P){const x=P.context(),G=o(6,x.offset,x.startLoc);let N=P.nextToken();if(N.type===8){const X=p(P);G.modifier=X.node,N=X.nextConsumeToken||P.nextToken()}switch(N.type!==9&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(N)),N=P.nextToken(),N.type===2&&(N=P.nextToken()),N.type){case 10:N.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(N)),G.key=g(P,N.value||"");break;case 4:N.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(N)),G.key=u(P,N.value||"");break;case 5:N.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(N)),G.key=b(P,N.value||"");break;case 6:N.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(N)),G.key=f(P,N.value||"");break;default:{i(P,Wt.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const X=P.context(),W=o(7,X.offset,X.startLoc);return W.value="",a(W,X.offset,X.startLoc),G.key=W,a(G,X.offset,X.startLoc),{nextConsumeToken:N,node:G}}}return a(G,P.currentOffset(),P.currentPosition()),{node:G}}function _(P){const x=P.context(),G=x.currentType===1?P.currentOffset():x.offset,N=x.currentType===1?x.endLoc:x.startLoc,X=o(2,G,N);X.items=[];let W=null;do{const st=W||P.nextToken();switch(W=null,st.type){case 0:st.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(st)),X.items.push(l(P,st.value||""));break;case 5:st.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(st)),X.items.push(b(P,st.value||""));break;case 4:st.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(st)),X.items.push(u(P,st.value||""));break;case 6:st.value==null&&i(P,Wt.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,xs(st)),X.items.push(f(P,st.value||""));break;case 7:{const yt=y(P);X.items.push(yt.node),W=yt.nextConsumeToken||null;break}}}while(x.currentType!==13&&x.currentType!==1);const H=x.currentType===1?x.lastOffset:P.currentOffset(),rt=x.currentType===1?x.lastEndLoc:P.currentPosition();return a(X,H,rt),X}function z(P,x,G,N){const X=P.context();let W=N.items.length===0;const H=o(1,x,G);H.cases=[],H.cases.push(N);do{const rt=_(P);W||(W=rt.items.length===0),H.cases.push(rt)}while(X.currentType!==13);return W&&i(P,Wt.MUST_HAVE_MESSAGES_IN_PLURAL,G,0),a(H,P.currentOffset(),P.currentPosition()),H}function I(P){const x=P.context(),{offset:G,startLoc:N}=x,X=_(P);return x.currentType===13?X:z(P,G,N,X)}function $(P){const x=e2(P,Oe({},t)),G=x.context(),N=o(0,G.offset,G.startLoc);return e&&N.loc&&(N.loc.source=P),N.body=I(x),t.onCacheKey&&(N.cacheKey=t.onCacheKey(P)),G.currentType!==13&&i(x,Wt.UNEXPECTED_LEXICAL_ANALYSIS,G.lastStartLoc,0,P[G.offset]||""),a(N,x.currentOffset(),x.currentPosition()),N}return{parse:$}}function xs(t){if(t.type===13)return"EOF";const e=(t.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function r2(t,e={}){const s={ast:t,helpers:new Set};return{context:()=>s,helper:a=>(s.helpers.add(a),a)}}function Pu(t,e){for(let s=0;s<t.length;s++)Cl(t[s],e)}function Cl(t,e){switch(t.type){case 1:Pu(t.cases,e),e.helper("plural");break;case 2:Pu(t.items,e);break;case 6:{Cl(t.key,e),e.helper("linked"),e.helper("type");break}case 5:e.helper("interpolate"),e.helper("list");break;case 4:e.helper("interpolate"),e.helper("named");break}}function a2(t,e={}){const s=r2(t);s.helper("normalize"),t.body&&Cl(t.body,s);const i=s.context();t.helpers=Array.from(i.helpers)}function l2(t){const e=t.body;return e.type===2?xu(e):e.cases.forEach(s=>xu(s)),t}function xu(t){if(t.items.length===1){const e=t.items[0];(e.type===3||e.type===9)&&(t.static=e.value,delete e.value)}else{const e=[];for(let s=0;s<t.items.length;s++){const i=t.items[s];if(!(i.type===3||i.type===9)||i.value==null)break;e.push(i.value)}if(e.length===t.items.length){t.static=Al(e);for(let s=0;s<t.items.length;s++){const i=t.items[s];(i.type===3||i.type===9)&&delete i.value}}}}function Qi(t){switch(t.t=t.type,t.type){case 0:{const e=t;Qi(e.body),e.b=e.body,delete e.body;break}case 1:{const e=t,s=e.cases;for(let i=0;i<s.length;i++)Qi(s[i]);e.c=s,delete e.cases;break}case 2:{const e=t,s=e.items;for(let i=0;i<s.length;i++)Qi(s[i]);e.i=s,delete e.items,e.static&&(e.s=e.static,delete e.static);break}case 3:case 9:case 8:case 7:{const e=t;e.value&&(e.v=e.value,delete e.value);break}case 6:{const e=t;Qi(e.key),e.k=e.key,delete e.key,e.modifier&&(Qi(e.modifier),e.m=e.modifier,delete e.modifier);break}case 5:{const e=t;e.i=e.index,delete e.index;break}case 4:{const e=t;e.k=e.key,delete e.key;break}}delete t.type}function c2(t,e){const{filename:s,breakLineCode:i,needIndent:o}=e,a=e.location!==!1,l={filename:s,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:i,needIndent:o,indentLevel:0};a&&t.loc&&(l.source=t.loc.source);const b=()=>l;function u(I,$){l.code+=I}function f(I,$=!0){const P=$?i:"";u(o?P+" ".repeat(I):P)}function p(I=!0){const $=++l.indentLevel;I&&f($)}function g(I=!0){const $=--l.indentLevel;I&&f($)}function y(){f(l.indentLevel)}return{context:b,push:u,indent:p,deindent:g,newline:y,helper:I=>`_${I}`,needIndent:()=>l.needIndent}}function u2(t,e){const{helper:s}=t;t.push(`${s("linked")}(`),an(t,e.key),e.modifier?(t.push(", "),an(t,e.modifier),t.push(", _type")):t.push(", undefined, _type"),t.push(")")}function b2(t,e){const{helper:s,needIndent:i}=t;t.push(`${s("normalize")}([`),t.indent(i());const o=e.items.length;for(let a=0;a<o&&(an(t,e.items[a]),a!==o-1);a++)t.push(", ");t.deindent(i()),t.push("])")}function d2(t,e){const{helper:s,needIndent:i}=t;if(e.cases.length>1){t.push(`${s("plural")}([`),t.indent(i());const o=e.cases.length;for(let a=0;a<o&&(an(t,e.cases[a]),a!==o-1);a++)t.push(", ");t.deindent(i()),t.push("])")}}function m2(t,e){e.body?an(t,e.body):t.push("null")}function an(t,e){const{helper:s}=t;switch(e.type){case 0:m2(t,e);break;case 1:d2(t,e);break;case 2:b2(t,e);break;case 6:u2(t,e);break;case 8:t.push(JSON.stringify(e.value),e);break;case 7:t.push(JSON.stringify(e.value),e);break;case 5:t.push(`${s("interpolate")}(${s("list")}(${e.index}))`,e);break;case 4:t.push(`${s("interpolate")}(${s("named")}(${JSON.stringify(e.key)}))`,e);break;case 9:t.push(JSON.stringify(e.value),e);break;case 3:t.push(JSON.stringify(e.value),e);break}}const f2=(t,e={})=>{const s=_t(e.mode)?e.mode:"normal",i=_t(e.filename)?e.filename:"message.intl";e.sourceMap;const o=e.breakLineCode!=null?e.breakLineCode:s==="arrow"?";":`
|
|
4
4
|
`,a=e.needIndent?e.needIndent:s!=="arrow",l=t.helpers||[],b=c2(t,{filename:i,breakLineCode:o,needIndent:a});b.push(s==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),b.indent(a),l.length>0&&(b.push(`const { ${Al(l.map(p=>`${p}: _${p}`),", ")} } = ctx`),b.newline()),b.push("return "),an(b,t),b.deindent(a),b.push("}"),delete t.helpers;const{code:u,map:f}=b.context();return{ast:t,code:u,map:f?f.toJSON():void 0}};function p2(t,e={}){const s=Oe({},e),i=!!s.jit,o=!!s.minify,a=s.optimize==null?!0:s.optimize,b=o2(s).parse(t);return i?(a&&l2(b),o&&Qi(b),{ast:b,code:""}):(a2(b,s),f2(b,s))}function h2(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Pl().__INTLIFY_PROD_DEVTOOLS__=!1)}function Ds(t){return Vt(t)&&El(t)===0&&(ms(t,"b")||ms(t,"body"))}const Gd=["b","body"];function g2(t){return gi(t,Gd)}const Wd=["c","cases"];function v2(t){return gi(t,Wd,[])}const Jd=["s","static"];function y2(t){return gi(t,Jd)}const Qd=["i","items"];function k2(t){return gi(t,Qd,[])}const Yd=["t","type"];function El(t){return gi(t,Yd)}const Xd=["v","value"];function jo(t,e){const s=gi(t,Xd);if(s!=null)return s;throw Vn(e)}const Zd=["m","modifier"];function S2(t){return gi(t,Zd)}const t0=["k","key"];function T2(t){const e=gi(t,t0);if(e)return e;throw Vn(6)}function gi(t,e,s){for(let i=0;i<e.length;i++){const o=e[i];if(ms(t,o)&&t[o]!=null)return t[o]}return s}const e0=[...Gd,...Wd,...Jd,...Qd,...t0,...Zd,...Xd,...Yd];function Vn(t){return new Error(`unhandled node type: ${t}`)}function wa(t){return s=>_2(s,t)}function _2(t,e){const s=g2(e);if(s==null)throw Vn(0);if(El(s)===1){const a=v2(s);return t.plural(a.reduce((l,b)=>[...l,Au(t,b)],[]))}else return Au(t,s)}function Au(t,e){const s=y2(e);if(s!=null)return t.type==="text"?s:t.normalize([s]);{const i=k2(e).reduce((o,a)=>[...o,Wa(t,a)],[]);return t.normalize(i)}}function Wa(t,e){const s=El(e);switch(s){case 3:return jo(e,s);case 9:return jo(e,s);case 4:{const i=e;if(ms(i,"k")&&i.k)return t.interpolate(t.named(i.k));if(ms(i,"key")&&i.key)return t.interpolate(t.named(i.key));throw Vn(s)}case 5:{const i=e;if(ms(i,"i")&&we(i.i))return t.interpolate(t.list(i.i));if(ms(i,"index")&&we(i.index))return t.interpolate(t.list(i.index));throw Vn(s)}case 6:{const i=e,o=S2(i),a=T2(i);return t.linked(Wa(t,a),o?Wa(t,o):void 0,t.type)}case 7:return jo(e,s);case 8:return jo(e,s);default:throw new Error(`unhandled node on format message part: ${s}`)}}const w2=t=>t;let Mo=Qt();function P2(t,e={}){let s=!1;const i=e.onError||W3;return e.onError=o=>{s=!0,i(o)},{...p2(t,e),detectError:s}}function x2(t,e){if(_t(t)){pe(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||w2)(t),o=Mo[i];if(o)return o;const{ast:a,detectError:l}=P2(t,{...e,location:!1,jit:!0}),b=wa(a);return l?b:Mo[i]=b}else{const s=t.cacheKey;if(s){const i=Mo[s];return i||(Mo[s]=wa(t))}else return wa(t)}}let Kn=null;function A2(t){Kn=t}function C2(t,e,s){Kn&&Kn.emit("i18n:init",{timestamp:Date.now(),i18n:t,version:e,meta:s})}const E2=j2("function:translate");function j2(t){return e=>Kn&&Kn.emit(t,e)}const Ks={INVALID_ARGUMENT:G3,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},M2=24;function Hs(t){return Ar(t,null,void 0)}function jl(t,e){return e.locale!=null?Cu(e.locale):Cu(t.locale)}let Pa;function Cu(t){if(_t(t))return t;if(fe(t)){if(t.resolvedOnce&&Pa!=null)return Pa;if(t.constructor.name==="Function"){const e=t();if(V3(e))throw Hs(Ks.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Pa=e}else throw Hs(Ks.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Hs(Ks.NOT_SUPPORT_LOCALE_TYPE)}function D2(t,e,s){return[...new Set([s,...Ce(e)?e:Vt(e)?Object.keys(e):_t(e)?[e]:[s]])]}function s0(t,e,s){const i=_t(s)?s:er,o=t;o.__localeChainCache||(o.__localeChainCache=new Map);let a=o.__localeChainCache.get(i);if(!a){a=[];let l=[s];for(;Ce(l);)l=Eu(a,l,e);const b=Ce(e)||!zt(e)?e:e.default?e.default:null;l=_t(b)?[b]:b,Ce(l)&&Eu(a,l,!1),o.__localeChainCache.set(i,a)}return a}function Eu(t,e,s){let i=!0;for(let o=0;o<e.length&&pe(i);o++){const a=e[o];_t(a)&&(i=O2(t,e[o],s))}return i}function O2(t,e,s){let i;const o=e.split("-");do{const a=o.join("-");i=R2(t,a,s),o.splice(-1,1)}while(o.length&&i===!0);return i}function R2(t,e,s){let i=!1;if(!t.includes(e)&&(i=!0,e)){i=e[e.length-1]!=="!";const o=e.replace(/!/g,"");t.push(o),(Ce(s)||zt(s))&&s[o]&&(i=s[o])}return i}const vi=[];vi[0]={w:[0],i:[3,0],"[":[4],o:[7]};vi[1]={w:[1],".":[2],"[":[4],o:[7]};vi[2]={w:[2],i:[3,0],0:[3,0]};vi[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};vi[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};vi[5]={"'":[4,0],o:8,l:[5,0]};vi[6]={'"':[4,0],o:8,l:[6,0]};const N2=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function I2(t){return N2.test(t)}function L2(t){const e=t.charCodeAt(0),s=t.charCodeAt(t.length-1);return e===s&&(e===34||e===39)?t.slice(1,-1):t}function F2(t){if(t==null)return"o";switch(t.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return t;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function z2(t){const e=t.trim();return t.charAt(0)==="0"&&isNaN(parseInt(t))?!1:I2(e)?L2(e):"*"+e}function B2(t){const e=[];let s=-1,i=0,o=0,a,l,b,u,f,p,g;const y=[];y[0]=()=>{l===void 0?l=b:l+=b},y[1]=()=>{l!==void 0&&(e.push(l),l=void 0)},y[2]=()=>{y[0](),o++},y[3]=()=>{if(o>0)o--,i=4,y[0]();else{if(o=0,l===void 0||(l=z2(l),l===!1))return!1;y[1]()}};function _(){const z=t[s+1];if(i===5&&z==="'"||i===6&&z==='"')return s++,b="\\"+z,y[0](),!0}for(;i!==null;)if(s++,a=t[s],!(a==="\\"&&_())){if(u=F2(a),g=vi[i],f=g[u]||g.l||8,f===8||(i=f[0],f[1]!==void 0&&(p=y[f[1]],p&&(b=a,p()===!1))))return;if(i===7)return e}}const ju=new Map;function U2(t,e){return Vt(t)?t[e]:null}function q2(t,e){if(!Vt(t))return null;let s=ju.get(e);if(s||(s=B2(e),s&&ju.set(e,s)),!s)return null;const i=s.length;let o=t,a=0;for(;a<i;){const l=s[a];if(e0.includes(l)&&Ds(o))return null;const b=o[l];if(b===void 0||fe(o))return null;o=b,a++}return o}const $2="10.0.8",Cr=-1,er="en-US",Mu="",Du=t=>`${t.charAt(0).toLocaleUpperCase()}${t.substr(1)}`;function V2(){return{upper:(t,e)=>e==="text"&&_t(t)?t.toUpperCase():e==="vnode"&&Vt(t)&&"__v_isVNode"in t?t.children.toUpperCase():t,lower:(t,e)=>e==="text"&&_t(t)?t.toLowerCase():e==="vnode"&&Vt(t)&&"__v_isVNode"in t?t.children.toLowerCase():t,capitalize:(t,e)=>e==="text"&&_t(t)?Du(t):e==="vnode"&&Vt(t)&&"__v_isVNode"in t?Du(t.children):t}}let i0;function K2(t){i0=t}let n0;function H2(t){n0=t}let o0;function G2(t){o0=t}let r0=null;const W2=t=>{r0=t},J2=()=>r0;let a0=null;const Ou=t=>{a0=t},Q2=()=>a0;let Ru=0;function Y2(t={}){const e=fe(t.onWarn)?t.onWarn:L3,s=_t(t.version)?t.version:$2,i=_t(t.locale)||fe(t.locale)?t.locale:er,o=fe(i)?er:i,a=Ce(t.fallbackLocale)||zt(t.fallbackLocale)||_t(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:o,l=zt(t.messages)?t.messages:xa(o),b=zt(t.datetimeFormats)?t.datetimeFormats:xa(o),u=zt(t.numberFormats)?t.numberFormats:xa(o),f=Oe(Qt(),t.modifiers,V2()),p=t.pluralRules||Qt(),g=fe(t.missing)?t.missing:null,y=pe(t.missingWarn)||tr(t.missingWarn)?t.missingWarn:!0,_=pe(t.fallbackWarn)||tr(t.fallbackWarn)?t.fallbackWarn:!0,z=!!t.fallbackFormat,I=!!t.unresolving,$=fe(t.postTranslation)?t.postTranslation:null,P=zt(t.processor)?t.processor:null,x=pe(t.warnHtmlMessage)?t.warnHtmlMessage:!0,G=!!t.escapeParameter,N=fe(t.messageCompiler)?t.messageCompiler:i0,X=fe(t.messageResolver)?t.messageResolver:n0||U2,W=fe(t.localeFallbacker)?t.localeFallbacker:o0||D2,H=Vt(t.fallbackContext)?t.fallbackContext:void 0,rt=t,st=Vt(rt.__datetimeFormatters)?rt.__datetimeFormatters:new Map,yt=Vt(rt.__numberFormatters)?rt.__numberFormatters:new Map,Pt=Vt(rt.__meta)?rt.__meta:{};Ru++;const lt={version:s,cid:Ru,locale:i,fallbackLocale:a,messages:l,modifiers:f,pluralRules:p,missing:g,missingWarn:y,fallbackWarn:_,fallbackFormat:z,unresolving:I,postTranslation:$,processor:P,warnHtmlMessage:x,escapeParameter:G,messageCompiler:N,messageResolver:X,localeFallbacker:W,fallbackContext:H,onWarn:e,__meta:Pt};return lt.datetimeFormats=b,lt.numberFormats=u,lt.__datetimeFormatters=st,lt.__numberFormatters=yt,__INTLIFY_PROD_DEVTOOLS__&&C2(lt,s,Pt),lt}const xa=t=>({[t]:Qt()});function Ml(t,e,s,i,o){const{missing:a,onWarn:l}=t;if(a!==null){const b=a(t,s,e,o);return _t(b)?b:e}else return e}function Tn(t,e,s){const i=t;i.__localeChainCache=new Map,t.localeFallbacker(t,s,e)}function X2(t,e){return t===e?!1:t.split("-")[0]===e.split("-")[0]}function Z2(t,e){const s=e.indexOf(t);if(s===-1)return!1;for(let i=s+1;i<e.length;i++)if(X2(t,e[i]))return!0;return!1}function Nu(t,...e){const{datetimeFormats:s,unresolving:i,fallbackLocale:o,onWarn:a,localeFallbacker:l}=t,{__datetimeFormatters:b}=t,[u,f,p,g]=Ja(...e),y=pe(p.missingWarn)?p.missingWarn:t.missingWarn;pe(p.fallbackWarn)?p.fallbackWarn:t.fallbackWarn;const _=!!p.part,z=jl(t,p),I=l(t,o,z);if(!_t(u)||u==="")return new Intl.DateTimeFormat(z,g).format(f);let $={},P,x=null;const G="datetime format";for(let W=0;W<I.length&&(P=I[W],$=s[P]||{},x=$[u],!zt(x));W++)Ml(t,u,P,y,G);if(!zt(x)||!_t(P))return i?Cr:u;let N=`${P}__${u}`;xr(g)||(N=`${N}__${JSON.stringify(g)}`);let X=b.get(N);return X||(X=new Intl.DateTimeFormat(P,Oe({},x,g)),b.set(N,X)),_?X.formatToParts(f):X.format(f)}const l0=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Ja(...t){const[e,s,i,o]=t,a=Qt();let l=Qt(),b;if(_t(e)){const u=e.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!u)throw Hs(Ks.INVALID_ISO_DATE_ARGUMENT);const f=u[3]?u[3].trim().startsWith("T")?`${u[1].trim()}${u[3].trim()}`:`${u[1].trim()}T${u[3].trim()}`:u[1].trim();b=new Date(f);try{b.toISOString()}catch{throw Hs(Ks.INVALID_ISO_DATE_ARGUMENT)}}else if(B3(e)){if(isNaN(e.getTime()))throw Hs(Ks.INVALID_DATE_ARGUMENT);b=e}else if(we(e))b=e;else throw Hs(Ks.INVALID_ARGUMENT);return _t(s)?a.key=s:zt(s)&&Object.keys(s).forEach(u=>{l0.includes(u)?l[u]=s[u]:a[u]=s[u]}),_t(i)?a.locale=i:zt(i)&&(l=i),zt(o)&&(l=o),[a.key||"",b,a,l]}function Iu(t,e,s){const i=t;for(const o in s){const a=`${e}__${o}`;i.__datetimeFormatters.has(a)&&i.__datetimeFormatters.delete(a)}}function Lu(t,...e){const{numberFormats:s,unresolving:i,fallbackLocale:o,onWarn:a,localeFallbacker:l}=t,{__numberFormatters:b}=t,[u,f,p,g]=Qa(...e),y=pe(p.missingWarn)?p.missingWarn:t.missingWarn;pe(p.fallbackWarn)?p.fallbackWarn:t.fallbackWarn;const _=!!p.part,z=jl(t,p),I=l(t,o,z);if(!_t(u)||u==="")return new Intl.NumberFormat(z,g).format(f);let $={},P,x=null;const G="number format";for(let W=0;W<I.length&&(P=I[W],$=s[P]||{},x=$[u],!zt(x));W++)Ml(t,u,P,y,G);if(!zt(x)||!_t(P))return i?Cr:u;let N=`${P}__${u}`;xr(g)||(N=`${N}__${JSON.stringify(g)}`);let X=b.get(N);return X||(X=new Intl.NumberFormat(P,Oe({},x,g)),b.set(N,X)),_?X.formatToParts(f):X.format(f)}const c0=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Qa(...t){const[e,s,i,o]=t,a=Qt();let l=Qt();if(!we(e))throw Hs(Ks.INVALID_ARGUMENT);const b=e;return _t(s)?a.key=s:zt(s)&&Object.keys(s).forEach(u=>{c0.includes(u)?l[u]=s[u]:a[u]=s[u]}),_t(i)?a.locale=i:zt(i)&&(l=i),zt(o)&&(l=o),[a.key||"",b,a,l]}function Fu(t,e,s){const i=t;for(const o in s){const a=`${e}__${o}`;i.__numberFormatters.has(a)&&i.__numberFormatters.delete(a)}}const th=t=>t,eh=t=>"",sh="text",ih=t=>t.length===0?"":Al(t),nh=K3;function zu(t,e){return t=Math.abs(t),e===2?t?t>1?1:0:1:t?Math.min(t,2):0}function oh(t){const e=we(t.pluralIndex)?t.pluralIndex:-1;return t.named&&(we(t.named.count)||we(t.named.n))?we(t.named.count)?t.named.count:we(t.named.n)?t.named.n:e:e}function rh(t,e){e.count||(e.count=t),e.n||(e.n=t)}function ah(t={}){const e=t.locale,s=oh(t),i=Vt(t.pluralRules)&&_t(e)&&fe(t.pluralRules[e])?t.pluralRules[e]:zu,o=Vt(t.pluralRules)&&_t(e)&&fe(t.pluralRules[e])?zu:void 0,a=P=>P[i(s,P.length,o)],l=t.list||[],b=P=>l[P],u=t.named||Qt();we(t.pluralIndex)&&rh(s,u);const f=P=>u[P];function p(P,x){const G=fe(t.messages)?t.messages(P,!!x):Vt(t.messages)?t.messages[P]:!1;return G||(t.parent?t.parent.message(P):eh)}const g=P=>t.modifiers?t.modifiers[P]:th,y=zt(t.processor)&&fe(t.processor.normalize)?t.processor.normalize:ih,_=zt(t.processor)&&fe(t.processor.interpolate)?t.processor.interpolate:nh,z=zt(t.processor)&&_t(t.processor.type)?t.processor.type:sh,$={list:b,named:f,plural:a,linked:(P,...x)=>{const[G,N]=x;let X="text",W="";x.length===1?Vt(G)?(W=G.modifier||W,X=G.type||X):_t(G)&&(W=G||W):x.length===2&&(_t(G)&&(W=G||W),_t(N)&&(X=N||X));const H=p(P,!0)($),rt=X==="vnode"&&Ce(H)&&W?H[0]:H;return W?g(W)(rt,X):rt},message:p,type:z,interpolate:_,normalize:y,values:Oe(Qt(),l,u)};return $}const Bu=()=>"",as=t=>fe(t);function Uu(t,...e){const{fallbackFormat:s,postTranslation:i,unresolving:o,messageCompiler:a,fallbackLocale:l,messages:b}=t,[u,f]=Ya(...e),p=pe(f.missingWarn)?f.missingWarn:t.missingWarn,g=pe(f.fallbackWarn)?f.fallbackWarn:t.fallbackWarn,y=pe(f.escapeParameter)?f.escapeParameter:t.escapeParameter,_=!!f.resolvedMessage,z=_t(f.default)||pe(f.default)?pe(f.default)?a?u:()=>u:f.default:s?a?u:()=>u:null,I=s||z!=null&&(_t(z)||fe(z)),$=jl(t,f);y&&lh(f);let[P,x,G]=_?[u,$,b[$]||Qt()]:u0(t,u,$,l,g,p),N=P,X=u;if(!_&&!(_t(N)||Ds(N)||as(N))&&I&&(N=z,X=N),!_&&(!(_t(N)||Ds(N)||as(N))||!_t(x)))return o?Cr:u;let W=!1;const H=()=>{W=!0},rt=as(N)?N:b0(t,u,x,N,X,H);if(W)return N;const st=bh(t,x,G,f),yt=ah(st),Pt=ch(t,rt,yt);let lt=i?i(Pt,u):Pt;if(y&&_t(lt)&&(lt=q3(lt)),__INTLIFY_PROD_DEVTOOLS__){const Ct={timestamp:Date.now(),key:_t(u)?u:as(N)?N.key:"",locale:x||(as(N)?N.locale:""),format:_t(N)?N:as(N)?N.source:"",message:lt};Ct.meta=Oe({},t.__meta,J2()||{}),E2(Ct)}return lt}function lh(t){Ce(t.list)?t.list=t.list.map(e=>_t(e)?Tu(e):e):Vt(t.named)&&Object.keys(t.named).forEach(e=>{_t(t.named[e])&&(t.named[e]=Tu(t.named[e]))})}function u0(t,e,s,i,o,a){const{messages:l,onWarn:b,messageResolver:u,localeFallbacker:f}=t,p=f(t,i,s);let g=Qt(),y,_=null;const z="translate";for(let I=0;I<p.length&&(y=p[I],g=l[y]||Qt(),(_=u(g,e))===null&&(_=g[e]),!(_t(_)||Ds(_)||as(_)));I++)if(!Z2(y,p)){const $=Ml(t,e,y,a,z);$!==e&&(_=$)}return[_,y,g]}function b0(t,e,s,i,o,a){const{messageCompiler:l,warnHtmlMessage:b}=t;if(as(i)){const f=i;return f.locale=f.locale||s,f.key=f.key||e,f}if(l==null){const f=(()=>i);return f.locale=s,f.key=e,f}const u=l(i,uh(t,s,o,i,b,a));return u.locale=s,u.key=e,u.source=i,u}function ch(t,e,s){return e(s)}function Ya(...t){const[e,s,i]=t,o=Qt();if(!_t(e)&&!we(e)&&!as(e)&&!Ds(e))throw Hs(Ks.INVALID_ARGUMENT);const a=we(e)?String(e):(as(e),e);return we(s)?o.plural=s:_t(s)?o.default=s:zt(s)&&!xr(s)?o.named=s:Ce(s)&&(o.list=s),we(i)?o.plural=i:_t(i)?o.default=i:zt(i)&&Oe(o,i),[a,o]}function uh(t,e,s,i,o,a){return{locale:e,key:s,warnHtmlMessage:o,onError:l=>{throw a&&a(l),l},onCacheKey:l=>F3(e,s,l)}}function bh(t,e,s,i){const{modifiers:o,pluralRules:a,messageResolver:l,fallbackLocale:b,fallbackWarn:u,missingWarn:f,fallbackContext:p}=t,y={locale:e,modifiers:o,pluralRules:a,messages:(_,z)=>{let I=l(s,_);if(I==null&&(p||z)){const[,,$]=u0(p||t,_,e,b,u,f);I=l($,_)}if(_t(I)||Ds(I)){let $=!1;const x=b0(t,_,e,I,_,()=>{$=!0});return $?Bu:x}else return as(I)?I:Bu}};return t.processor&&(y.processor=t.processor),i.list&&(y.list=i.list),i.named&&(y.named=i.named),we(i.plural)&&(y.pluralIndex=i.plural),y}h2();const dh="10.0.8";function mh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Pl().__INTLIFY_PROD_DEVTOOLS__=!1)}const cs={UNEXPECTED_RETURN_TYPE:M2,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32};function ks(t,...e){return Ar(t,null,void 0)}const Xa=hi("__translateVNode"),Za=hi("__datetimeParts"),tl=hi("__numberParts"),fh=hi("__setPluralRules"),ph=hi("__injectWithOption"),el=hi("__dispose");function Hn(t){if(!Vt(t)||Ds(t))return t;for(const e in t)if(ms(t,e))if(!e.includes("."))Vt(t[e])&&Hn(t[e]);else{const s=e.split("."),i=s.length-1;let o=t,a=!1;for(let l=0;l<i;l++){if(s[l]==="__proto__")throw new Error(`unsafe key: ${s[l]}`);if(s[l]in o||(o[s[l]]=Qt()),!Vt(o[s[l]])){a=!0;break}o=o[s[l]]}if(a||(Ds(o)?e0.includes(s[i])||delete t[e]:(o[s[i]]=t[e],delete t[e])),!Ds(o)){const l=o[s[i]];Vt(l)&&Hn(l)}}return t}function d0(t,e){const{messages:s,__i18n:i,messageResolver:o,flatJson:a}=e,l=zt(s)?s:Ce(i)?Qt():{[t]:Qt()};if(Ce(i)&&i.forEach(b=>{if("locale"in b&&"resource"in b){const{locale:u,resource:f}=b;u?(l[u]=l[u]||Qt(),zo(f,l[u])):zo(f,l)}else _t(b)&&zo(JSON.parse(b),l)}),o==null&&a)for(const b in l)ms(l,b)&&Hn(l[b]);return l}function m0(t){return t.type}function hh(t,e,s){let i=Vt(e.messages)?e.messages:Qt();"__i18nGlobal"in s&&(i=d0(t.locale.value,{messages:i,__i18n:s.__i18nGlobal}));const o=Object.keys(i);o.length&&o.forEach(a=>{t.mergeLocaleMessage(a,i[a])});{if(Vt(e.datetimeFormats)){const a=Object.keys(e.datetimeFormats);a.length&&a.forEach(l=>{t.mergeDateTimeFormat(l,e.datetimeFormats[l])})}if(Vt(e.numberFormats)){const a=Object.keys(e.numberFormats);a.length&&a.forEach(l=>{t.mergeNumberFormat(l,e.numberFormats[l])})}}}function qu(t){return oe(Xn,null,t,0)}const $u="__INTLIFY_META__",Vu=()=>[],gh=()=>!1;let Ku=0;function Hu(t){return((e,s,i,o)=>t(s,i,pi()||void 0,o))}const vh=()=>{const t=pi();let e=null;return t&&(e=m0(t)[$u])?{[$u]:e}:null};function f0(t={}){const{__root:e,__injectWithOption:s}=t,i=e===void 0,o=t.flatJson,a=Zo?he:Mb;let l=pe(t.inheritLocale)?t.inheritLocale:!0;const b=a(e&&l?e.locale.value:_t(t.locale)?t.locale:er),u=a(e&&l?e.fallbackLocale.value:_t(t.fallbackLocale)||Ce(t.fallbackLocale)||zt(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:b.value),f=a(d0(b.value,t)),p=a(zt(t.datetimeFormats)?t.datetimeFormats:{[b.value]:{}}),g=a(zt(t.numberFormats)?t.numberFormats:{[b.value]:{}});let y=e?e.missingWarn:pe(t.missingWarn)||tr(t.missingWarn)?t.missingWarn:!0,_=e?e.fallbackWarn:pe(t.fallbackWarn)||tr(t.fallbackWarn)?t.fallbackWarn:!0,z=e?e.fallbackRoot:pe(t.fallbackRoot)?t.fallbackRoot:!0,I=!!t.fallbackFormat,$=fe(t.missing)?t.missing:null,P=fe(t.missing)?Hu(t.missing):null,x=fe(t.postTranslation)?t.postTranslation:null,G=e?e.warnHtmlMessage:pe(t.warnHtmlMessage)?t.warnHtmlMessage:!0,N=!!t.escapeParameter;const X=e?e.modifiers:zt(t.modifiers)?t.modifiers:{};let W=t.pluralRules||e&&e.pluralRules,H;H=(()=>{i&&Ou(null);const F={version:dh,locale:b.value,fallbackLocale:u.value,messages:f.value,modifiers:X,pluralRules:W,missing:P===null?void 0:P,missingWarn:y,fallbackWarn:_,fallbackFormat:I,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:G,escapeParameter:N,messageResolver:t.messageResolver,messageCompiler:t.messageCompiler,__meta:{framework:"vue"}};F.datetimeFormats=p.value,F.numberFormats=g.value,F.__datetimeFormatters=zt(H)?H.__datetimeFormatters:void 0,F.__numberFormatters=zt(H)?H.__numberFormatters:void 0;const Q=Y2(F);return i&&Ou(Q),Q})(),Tn(H,b.value,u.value);function st(){return[b.value,u.value,f.value,p.value,g.value]}const yt=ne({get:()=>b.value,set:F=>{b.value=F,H.locale=b.value}}),Pt=ne({get:()=>u.value,set:F=>{u.value=F,H.fallbackLocale=u.value,Tn(H,b.value,F)}}),lt=ne(()=>f.value),Ct=ne(()=>p.value),Yt=ne(()=>g.value);function ue(){return fe(x)?x:null}function It(F){x=F,H.postTranslation=F}function jt(){return $}function Dt(F){F!==null&&(P=Hu(F)),$=F,H.missing=P}const Xt=(F,Q,ft,wt,Rt,ee)=>{st();let se;try{__INTLIFY_PROD_DEVTOOLS__,i||(H.fallbackContext=e?Q2():void 0),se=F(H)}finally{__INTLIFY_PROD_DEVTOOLS__,i||(H.fallbackContext=void 0)}if(ft!=="translate exists"&&we(se)&&se===Cr||ft==="translate exists"&&!se){const[Ne,xe]=Q();return e&&z?wt(e):Rt(Ne)}else{if(ee(se))return se;throw ks(cs.UNEXPECTED_RETURN_TYPE)}};function be(...F){return Xt(Q=>Reflect.apply(Uu,null,[Q,...F]),()=>Ya(...F),"translate",Q=>Reflect.apply(Q.t,Q,[...F]),Q=>Q,Q=>_t(Q))}function Pe(...F){const[Q,ft,wt]=F;if(wt&&!Vt(wt))throw ks(cs.INVALID_ARGUMENT);return be(Q,ft,Oe({resolvedMessage:!0},wt||{}))}function Jt(...F){return Xt(Q=>Reflect.apply(Nu,null,[Q,...F]),()=>Ja(...F),"datetime format",Q=>Reflect.apply(Q.d,Q,[...F]),()=>Mu,Q=>_t(Q))}function ss(...F){return Xt(Q=>Reflect.apply(Lu,null,[Q,...F]),()=>Qa(...F),"number format",Q=>Reflect.apply(Q.n,Q,[...F]),()=>Mu,Q=>_t(Q))}function Re(F){return F.map(Q=>_t(Q)||we(Q)||pe(Q)?qu(String(Q)):Q)}const Se={normalize:Re,interpolate:F=>F,type:"vnode"};function tt(...F){return Xt(Q=>{let ft;const wt=Q;try{wt.processor=Se,ft=Reflect.apply(Uu,null,[wt,...F])}finally{wt.processor=null}return ft},()=>Ya(...F),"translate",Q=>Q[Xa](...F),Q=>[qu(Q)],Q=>Ce(Q))}function gt(...F){return Xt(Q=>Reflect.apply(Lu,null,[Q,...F]),()=>Qa(...F),"number format",Q=>Q[tl](...F),Vu,Q=>_t(Q)||Ce(Q))}function mt(...F){return Xt(Q=>Reflect.apply(Nu,null,[Q,...F]),()=>Ja(...F),"datetime format",Q=>Q[Za](...F),Vu,Q=>_t(Q)||Ce(Q))}function ot(F){W=F,H.pluralRules=W}function Ot(F,Q){return Xt(()=>{if(!F)return!1;const ft=_t(Q)?Q:b.value,wt=B(ft),Rt=H.messageResolver(wt,F);return Ds(Rt)||as(Rt)||_t(Rt)},()=>[F],"translate exists",ft=>Reflect.apply(ft.te,ft,[F,Q]),gh,ft=>pe(ft))}function S(F){let Q=null;const ft=s0(H,u.value,b.value);for(let wt=0;wt<ft.length;wt++){const Rt=f.value[ft[wt]]||{},ee=H.messageResolver(Rt,F);if(ee!=null){Q=ee;break}}return Q}function A(F){const Q=S(F);return Q??(e?e.tm(F)||{}:{})}function B(F){return f.value[F]||{}}function Y(F,Q){if(o){const ft={[F]:Q};for(const wt in ft)ms(ft,wt)&&Hn(ft[wt]);Q=ft[F]}f.value[F]=Q,H.messages=f.value}function it(F,Q){f.value[F]=f.value[F]||{};const ft={[F]:Q};if(o)for(const wt in ft)ms(ft,wt)&&Hn(ft[wt]);Q=ft[F],zo(Q,f.value[F]),H.messages=f.value}function et(F){return p.value[F]||{}}function T(F,Q){p.value[F]=Q,H.datetimeFormats=p.value,Iu(H,F,Q)}function w(F,Q){p.value[F]=Oe(p.value[F]||{},Q),H.datetimeFormats=p.value,Iu(H,F,Q)}function L(F){return g.value[F]||{}}function V(F,Q){g.value[F]=Q,H.numberFormats=g.value,Fu(H,F,Q)}function pt(F,Q){g.value[F]=Oe(g.value[F]||{},Q),H.numberFormats=g.value,Fu(H,F,Q)}Ku++,e&&Zo&&(Ws(e.locale,F=>{l&&(b.value=F,H.locale=F,Tn(H,b.value,u.value))}),Ws(e.fallbackLocale,F=>{l&&(u.value=F,H.fallbackLocale=F,Tn(H,b.value,u.value))}));const nt={id:Ku,locale:yt,fallbackLocale:Pt,get inheritLocale(){return l},set inheritLocale(F){l=F,F&&e&&(b.value=e.locale.value,u.value=e.fallbackLocale.value,Tn(H,b.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:lt,get modifiers(){return X},get pluralRules(){return W||{}},get isGlobal(){return i},get missingWarn(){return y},set missingWarn(F){y=F,H.missingWarn=y},get fallbackWarn(){return _},set fallbackWarn(F){_=F,H.fallbackWarn=_},get fallbackRoot(){return z},set fallbackRoot(F){z=F},get fallbackFormat(){return I},set fallbackFormat(F){I=F,H.fallbackFormat=I},get warnHtmlMessage(){return G},set warnHtmlMessage(F){G=F,H.warnHtmlMessage=F},get escapeParameter(){return N},set escapeParameter(F){N=F,H.escapeParameter=F},t:be,getLocaleMessage:B,setLocaleMessage:Y,mergeLocaleMessage:it,getPostTranslationHandler:ue,setPostTranslationHandler:It,getMissingHandler:jt,setMissingHandler:Dt,[fh]:ot};return nt.datetimeFormats=Ct,nt.numberFormats=Yt,nt.rt=Pe,nt.te=Ot,nt.tm=A,nt.d=Jt,nt.n=ss,nt.getDateTimeFormat=et,nt.setDateTimeFormat=T,nt.mergeDateTimeFormat=w,nt.getNumberFormat=L,nt.setNumberFormat=V,nt.mergeNumberFormat=pt,nt[ph]=s,nt[Xa]=tt,nt[Za]=mt,nt[tl]=gt,nt}const Dl={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function yh({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((i,o)=>[...i,...o.type===ke?o.children:[o]],[]):e.reduce((s,i)=>{const o=t[i];return o&&(s[i]=o()),s},Qt())}function p0(){return ke}const kh=Os({name:"i18n-t",props:Oe({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>we(t)||!isNaN(t)}},Dl),setup(t,e){const{slots:s,attrs:i}=e,o=t.i18n||to({useScope:t.scope,__useComponent:!0});return()=>{const a=Object.keys(s).filter(g=>g!=="_"),l=Qt();t.locale&&(l.locale=t.locale),t.plural!==void 0&&(l.plural=_t(t.plural)?+t.plural:t.plural);const b=yh(e,a),u=o[Xa](t.keypath,b,l),f=Oe(Qt(),i),p=_t(t.tag)||Vt(t.tag)?t.tag:p0();return fi(p,f,u)}}}),Gu=kh;function Sh(t){return Ce(t)&&!_t(t[0])}function h0(t,e,s,i){const{slots:o,attrs:a}=e;return()=>{const l={part:!0};let b=Qt();t.locale&&(l.locale=t.locale),_t(t.format)?l.key=t.format:Vt(t.format)&&(_t(t.format.key)&&(l.key=t.format.key),b=Object.keys(t.format).reduce((y,_)=>s.includes(_)?Oe(Qt(),y,{[_]:t.format[_]}):y,Qt()));const u=i(t.value,l,b);let f=[l.key];Ce(u)?f=u.map((y,_)=>{const z=o[y.type],I=z?z({[y.type]:y.value,index:_,parts:u}):[y.value];return Sh(I)&&(I[0].key=`${y.type}-${_}`),I}):_t(u)&&(f=[u]);const p=Oe(Qt(),a),g=_t(t.tag)||Vt(t.tag)?t.tag:p0();return fi(g,p,f)}}const Th=Os({name:"i18n-n",props:Oe({value:{type:Number,required:!0},format:{type:[String,Object]}},Dl),setup(t,e){const s=t.i18n||to({useScope:t.scope,__useComponent:!0});return h0(t,e,c0,(...i)=>s[tl](...i))}}),Wu=Th,_h=Os({name:"i18n-d",props:Oe({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Dl),setup(t,e){const s=t.i18n||to({useScope:t.scope,__useComponent:!0});return h0(t,e,l0,(...i)=>s[Za](...i))}}),Ju=_h;function wh(t,e){const s=t;if(t.mode==="composition")return s.__getInstance(e)||t.global;{const i=s.__getInstance(e);return i!=null?i.__composer:t.global.__composer}}function Ph(t){const e=l=>{const{instance:b,value:u}=l;if(!b||!b.$)throw ks(cs.UNEXPECTED_ERROR);const f=wh(t,b.$),p=Qu(u);return[Reflect.apply(f.t,f,[...Yu(p)]),f]};return{created:(l,b)=>{const[u,f]=e(b);Zo&&t.global===f&&(l.__i18nWatcher=Ws(f.locale,()=>{b.instance&&b.instance.$forceUpdate()})),l.__composer=f,l.textContent=u},unmounted:l=>{Zo&&l.__i18nWatcher&&(l.__i18nWatcher(),l.__i18nWatcher=void 0,delete l.__i18nWatcher),l.__composer&&(l.__composer=void 0,delete l.__composer)},beforeUpdate:(l,{value:b})=>{if(l.__composer){const u=l.__composer,f=Qu(b);l.textContent=Reflect.apply(u.t,u,[...Yu(f)])}},getSSRProps:l=>{const[b]=e(l);return{textContent:b}}}}function Qu(t){if(_t(t))return{path:t};if(zt(t)){if(!("path"in t))throw ks(cs.REQUIRED_VALUE,"path");return t}else throw ks(cs.INVALID_VALUE)}function Yu(t){const{path:e,locale:s,args:i,choice:o,plural:a}=t,l={},b=i||{};return _t(s)&&(l.locale=s),we(o)&&(l.plural=o),we(a)&&(l.plural=a),[e,b,l]}function xh(t,e,...s){const i=zt(s[0])?s[0]:{};(!pe(i.globalInstall)||i.globalInstall)&&([Gu.name,"I18nT"].forEach(a=>t.component(a,Gu)),[Wu.name,"I18nN"].forEach(a=>t.component(a,Wu)),[Ju.name,"I18nD"].forEach(a=>t.component(a,Ju))),t.directive("t",Ph(e))}const Ah=hi("global-vue-i18n");function Ch(t={},e){const s=pe(t.globalInjection)?t.globalInjection:!0,i=new Map,[o,a]=Eh(t),l=hi("");function b(g){return i.get(g)||null}function u(g,y){i.set(g,y)}function f(g){i.delete(g)}const p={get mode(){return"composition"},async install(g,...y){if(g.__VUE_I18N_SYMBOL__=l,g.provide(g.__VUE_I18N_SYMBOL__,p),zt(y[0])){const I=y[0];p.__composerExtend=I.__composerExtend,p.__vueI18nExtend=I.__vueI18nExtend}let _=null;s&&(_=Lh(g,p.global)),xh(g,p,...y);const z=g.unmount;g.unmount=()=>{_&&_(),p.dispose(),z()}},get global(){return a},dispose(){o.stop()},__instances:i,__getInstance:b,__setInstance:u,__deleteInstance:f};return p}function to(t={}){const e=pi();if(e==null)throw ks(cs.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw ks(cs.NOT_INSTALLED);const s=jh(e),i=Dh(s),o=m0(e),a=Mh(t,o);if(a==="global")return hh(i,t,o),i;if(a==="parent"){let u=Oh(s,e,t.__useComponent);return u==null&&(u=i),u}const l=s;let b=l.__getInstance(e);if(b==null){const u=Oe({},t);"__i18n"in o&&(u.__i18n=o.__i18n),i&&(u.__root=i),b=f0(u),l.__composerExtend&&(b[el]=l.__composerExtend(b)),Nh(l,e,b),l.__setInstance(e,b)}return b}function Eh(t,e,s){const i=al(),o=i.run(()=>f0(t));if(o==null)throw ks(cs.UNEXPECTED_ERROR);return[i,o]}function jh(t){const e=es(t.isCE?Ah:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw ks(t.isCE?cs.NOT_INSTALLED_WITH_PROVIDE:cs.UNEXPECTED_ERROR);return e}function Mh(t,e){return xr(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function Dh(t){return t.mode==="composition"?t.global:t.global.__composer}function Oh(t,e,s=!1){let i=null;const o=e.root;let a=Rh(e,s);for(;a!=null;){const l=t;if(t.mode==="composition"&&(i=l.__getInstance(a)),i!=null||o===a)break;a=a.parent}return i}function Rh(t,e=!1){return t==null?null:e&&t.vnode.ctx||t.parent}function Nh(t,e,s){Yn(()=>{},e),hl(()=>{const i=s;t.__deleteInstance(e);const o=i[el];o&&(o(),delete i[el])},e)}const Ih=["locale","fallbackLocale","availableLocales"],Xu=["t","rt","d","n","tm","te"];function Lh(t,e){const s=Object.create(null);return Ih.forEach(o=>{const a=Object.getOwnPropertyDescriptor(e,o);if(!a)throw ks(cs.UNEXPECTED_ERROR);const l=le(a.value)?{get(){return a.value.value},set(b){a.value.value=b}}:{get(){return a.get&&a.get()}};Object.defineProperty(s,o,l)}),t.config.globalProperties.$i18n=s,Xu.forEach(o=>{const a=Object.getOwnPropertyDescriptor(e,o);if(!a||!a.value)throw ks(cs.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${o}`,a)}),()=>{delete t.config.globalProperties.$i18n,Xu.forEach(o=>{delete t.config.globalProperties[`$${o}`]})}}mh();K2(x2);H2(q2);G2(s0);if(__INTLIFY_PROD_DEVTOOLS__){const t=Pl();t.__INTLIFY__=!0,A2(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Fh=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};const Zu=t=>t==="";const zh=(...t)=>t.filter((e,s,i)=>!!e&&e.trim()!==""&&i.indexOf(e)===s).join(" ").trim();const tb=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Bh=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,s,i)=>i?i.toUpperCase():s.toLowerCase());const Uh=t=>{const e=Bh(t);return e.charAt(0).toUpperCase()+e.slice(1)};var _n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const qh=({name:t,iconNode:e,absoluteStrokeWidth:s,"absolute-stroke-width":i,strokeWidth:o,"stroke-width":a,size:l=_n.width,color:b=_n.stroke,...u},{slots:f})=>fi("svg",{..._n,...u,width:l,height:l,stroke:b,"stroke-width":Zu(s)||Zu(i)||s===!0||i===!0?Number(o||a||_n["stroke-width"])*24/Number(l):o||a||_n["stroke-width"],class:zh("lucide",u.class,...t?[`lucide-${tb(Uh(t))}-icon`,`lucide-${tb(t)}`]:["lucide-icon"]),...!f.default&&!Fh(u)&&{"aria-hidden":"true"}},[...e.map(p=>fi(...p)),...f.default?[f.default()]:[]]);const re=(t,e)=>(s,{slots:i,attrs:o})=>fi(qh,{...o,...s,iconNode:e,name:t},i);const $h=re("arrow-left-right",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]);const Vh=re("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);const Kh=re("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);const Hh=re("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);const Gh=re("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const Wh=re("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const Jh=re("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);const Qh=re("compass",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]]);const Yh=re("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);const Xh=re("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Zh=re("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);const tg=re("hammer",[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]]);const eg=re("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);const sg=re("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);const ig=re("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);const ng=re("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const og=re("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);const rg=re("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);const g0=re("pen-line",[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]);const ag=re("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const lg=re("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const cg=re("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);const ug=re("waypoints",[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]]);const bg=re("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);const dg=re("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),mg="/api";class fg{constructor(e){this.baseUrl=e??mg,this.openaiBaseUrl=this.deriveOpenaiBaseUrl(this.baseUrl)}setBaseUrl(e){this.baseUrl=e,this.openaiBaseUrl=this.deriveOpenaiBaseUrl(e)}deriveOpenaiBaseUrl(e){return e==="/api"?"/v1":e.replace(/\/api\/?$/,"/v1")}async listModels(){const e=await fetch(`${this.baseUrl}/tags`);if(!e.ok)throw new Error(`Failed to list models: ${e.statusText}`);return(await e.json()).models}async showModel(e){const s=await fetch(`${this.baseUrl}/show`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})});if(!s.ok)throw new Error(`Failed to show model: ${s.statusText}`);return s.json()}async streamGenerate(e,s){const i=await fetch(`${this.baseUrl}/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,stream:!0}),signal:s});if(!i.ok){const o=await i.text().catch(()=>"");throw new Error(o||`Generate failed: ${i.statusText}`)}if(!i.body)throw new Error("No response body for streaming");return i.body}async streamChat(e,s){const i=await fetch(`${this.baseUrl}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,stream:!0}),signal:s});if(!i.ok){const o=await i.text().catch(()=>"");throw new Error(o||`Chat failed: ${i.statusText}`)}if(!i.body)throw new Error("No response body for streaming");return i.body}async streamChatOpenAI(e,s){const i=await fetch(`${this.openaiBaseUrl}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,stream:!0}),signal:s});if(!i.ok){const o=await i.text().catch(()=>"");throw new Error(o||`OpenAI chat failed: ${i.statusText}`)}if(!i.body)throw new Error("No response body for streaming");return i.body}async generate(e){const s=await fetch(`${this.baseUrl}/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,stream:!1})});if(!s.ok){const i=await s.text().catch(()=>"");throw new Error(i||`Generate failed: ${s.statusText}`)}return s.json()}async chat(e){const s=await fetch(`${this.baseUrl}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,stream:!1})});if(!s.ok){const i=await s.text().catch(()=>"");throw new Error(i||`Chat failed: ${s.statusText}`)}return s.json()}async pullModel(e,s){const i=await fetch(`${this.baseUrl}/pull`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,stream:!0})});if(!i.ok)throw new Error(`Pull failed: ${i.statusText}`);if(!i.body)throw new Error("No response body for pull stream");const o=i.body.getReader(),a=new TextDecoder;let l="";for(;;){const{done:b,value:u}=await o.read();if(b)break;l+=a.decode(u,{stream:!0});const f=l.split(`
|
|
5
|
-
`);l=f.pop()??"";for(const p of f)if(p.trim())try{const g=JSON.parse(p);s?.(g.status,g.completed,g.total)}catch{}}}async version(){const e=await fetch(`${this.baseUrl}/version`);if(!e.ok)throw new Error(`Failed to get version: ${e.statusText}`);return(await e.json()).version}async ps(){const e=await fetch(`${this.baseUrl}/ps`);if(!e.ok)throw new Error(`Failed to get running models: ${e.statusText}`);return(await e.json()).models??[]}async deleteModel(e){const s=await fetch(`${this.baseUrl}/delete`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})});if(!s.ok)throw new Error(`Delete failed: ${s.statusText}`)}async embed(e){const s=await fetch(`${this.baseUrl}/embed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok)throw new Error(`Embed failed: ${s.statusText}`);return s.json()}}const Bo=new fg,v0={completion:{key:"completion",label:"Completion",desc:"Can generate text continuations from a prompt. This is the base capability of all language models — predicting and producing the next tokens in a sequence.",color:"text-text-secondary",icon:g0,unicode:"✏"},tools:{key:"tools",label:"Tool Calling",desc:"Can call external tools and functions during generation",color:"text-accent",icon:bg,unicode:"🔧"},thinking:{key:"thinking",label:"Reasoning",desc:"Supports chain-of-thought reasoning with <think> blocks",color:"text-warning",icon:eg,unicode:"💡"},vision:{key:"vision",label:"Vision",desc:"Can process and understand images alongside text",color:"text-success",icon:Xh,unicode:"👁"},embedding:{key:"embedding",label:"Embedding",desc:"Converts text into numerical vectors for similarity search",color:"text-text-muted",icon:Qh,unicode:"📐"}};function
|
|
5
|
+
`);l=f.pop()??"";for(const p of f)if(p.trim())try{const g=JSON.parse(p);s?.(g.status,g.completed,g.total)}catch{}}}async version(){const e=await fetch(`${this.baseUrl}/version`);if(!e.ok)throw new Error(`Failed to get version: ${e.statusText}`);return(await e.json()).version}async ps(){const e=await fetch(`${this.baseUrl}/ps`);if(!e.ok)throw new Error(`Failed to get running models: ${e.statusText}`);return(await e.json()).models??[]}async deleteModel(e){const s=await fetch(`${this.baseUrl}/delete`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})});if(!s.ok)throw new Error(`Delete failed: ${s.statusText}`)}async embed(e){const s=await fetch(`${this.baseUrl}/embed`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok)throw new Error(`Embed failed: ${s.statusText}`);return s.json()}}const Bo=new fg,v0={completion:{key:"completion",label:"Completion",desc:"Can generate text continuations from a prompt. This is the base capability of all language models — predicting and producing the next tokens in a sequence.",color:"text-text-secondary",icon:g0,unicode:"✏"},tools:{key:"tools",label:"Tool Calling",desc:"Can call external tools and functions during generation",color:"text-accent",icon:bg,unicode:"🔧"},thinking:{key:"thinking",label:"Reasoning",desc:"Supports chain-of-thought reasoning with <think> blocks",color:"text-warning",icon:eg,unicode:"💡"},vision:{key:"vision",label:"Vision",desc:"Can process and understand images alongside text",color:"text-success",icon:Xh,unicode:"👁"},embedding:{key:"embedding",label:"Embedding",desc:"Converts text into numerical vectors for similarity search",color:"text-text-muted",icon:Qh,unicode:"📐"}};function Hk(t){return t.map(e=>v0[e]??{key:e,label:e,desc:"",color:"text-text-secondary",icon:g0,unicode:""})}function pg(t){return t.map(e=>v0[e]?.unicode).filter(Boolean).join("")}function hg(t){const e={};for(const s of t.split(`
|
|
6
6
|
`)){const i=s.trim();if(!i)continue;const o=i.match(/^(\S+)\s+(.+)$/);o&&(e[o[1]]=o[2].replace(/^"|"$/g,""))}return e}const gg=_r("models",()=>{const t=he([]),e=he(new Map),s=he(!1),i=he(null),o=ne(()=>t.value.map(W=>W.name)),a=[/deepseek-r1/i,/\br1\b/i,/\bqwq\b/i,/\bo1\b/i,/\bo3\b/i,/thinking/i],l=[/llava/i,/\bvl\b/i,/vision/i,/minicpm-v/i],b=new Set(["bert","nomic-bert"]),u=[/embed/i,/^nomic-/i,/^mxbai-/i,/^all-minilm/i,/^bge-/i,/^gte-/i,/^e5-/i,/^snowflake-arctic-embed/i],f=ne(()=>t.value.filter(W=>{const H=W.details?.families??[];return H.length>0&&H.every(rt=>b.has(rt))?!1:!u.some(rt=>rt.test(W.name))}).map(W=>W.name)),p=ne(()=>t.value.filter(W=>{const H=W.details?.families??[];return H.length>0&&H.every(rt=>b.has(rt))?!0:u.some(rt=>rt.test(W.name))}).map(W=>W.name));function g(W){return e.value.get(W)}function y(W){return e.value.get(W)?.capabilities??[]}function _(W){return(e.value.get(W)?.capabilities??[]).includes("thinking")?!0:a.some(rt=>rt.test(W))}function z(W){return(e.value.get(W)?.capabilities??[]).includes("vision")?!0:l.some(rt=>rt.test(W))}function I(W){return(e.value.get(W)?.capabilities??[]).includes("tools")}function $(W){const H=e.value.get(W);if(!H?.parameters)return{};const rt=hg(H.parameters),st={};rt.temperature&&(st.temperature=parseFloat(rt.temperature)),rt.num_ctx&&(st.num_ctx=parseInt(rt.num_ctx,10)),rt.top_p&&(st.top_p=parseFloat(rt.top_p)),rt.top_k&&(st.top_k=parseInt(rt.top_k,10)),rt.repeat_penalty&&(st.repeat_penalty=parseFloat(rt.repeat_penalty)),rt.num_predict&&(st.num_predict=parseInt(rt.num_predict,10)),rt.mirostat&&(st.mirostat=parseInt(rt.mirostat,10)),rt.seed&&(st.seed=parseInt(rt.seed,10));const yt=Object.entries(rt).filter(([Pt])=>Pt==="stop").map(([,Pt])=>Pt);return yt.length>0&&(st.stop=yt),st}function P(W){return pg(y(W))}async function x(){s.value=!0,i.value=null;try{t.value=await Bo.listModels(),G()}catch(W){i.value=W instanceof Error?W.message:"Failed to fetch models"}finally{s.value=!1}}async function G(){const W=t.value.map(H=>H.name);await Promise.allSettled(W.map(H=>N(H)))}async function N(W){try{const H=await Bo.showModel(W);e.value.set(W,H)}catch(H){console.error(`Failed to fetch info for ${W}:`,H)}}async function X(W){await Bo.deleteModel(W),t.value=t.value.filter(H=>H.name!==W),e.value.delete(W)}return{models:t,modelInfoCache:e,loading:s,error:i,modelNames:o,chatModelNames:f,embeddingModelNames:p,getModelDetails:g,getCapabilities:y,getModelDefaults:$,isThinkingModel:_,isVisionModel:z,supportsTools:I,capabilityIcons:P,fetchModels:x,fetchModelInfo:N,deleteModel:X}}),vg="1FAIpQLSfM5TaAGHGi8mUdUpQbegxlNv_6yftYOidb1ZlCZP_ZXvBD9g",Do={type:"entry.1352630437",message:"entry.650654162",email:"entry.192445165",metadata:"entry.2099403794"},yg=`https://docs.google.com/forms/d/e/${vg}/formResponse`;function kg(){const t=navigator.userAgent;return t.includes("Firefox/")?`Firefox ${t.split("Firefox/")[1]?.split(" ")[0]}`:t.includes("Edg/")?`Edge ${t.split("Edg/")[1]?.split(" ")[0]}`:t.includes("Chrome/")?`Chrome ${t.split("Chrome/")[1]?.split(" ")[0]}`:t.includes("Safari/")&&!t.includes("Chrome")?`Safari ${t.split("Version/")[1]?.split(" ")[0]}`:t.slice(0,80)}function Sg(){const t=navigator.userAgent;return t.includes("Windows NT 10")?"Windows 10/11":t.includes("Windows")?"Windows":t.includes("Mac OS X")?`macOS ${t.match(/Mac OS X ([\d_]+)/)?.[1]?.replace(/_/g,".")??""}`:t.includes("Linux")?"Linux":navigator.platform||"Unknown"}function Tg(t,e,s,i){return{timestamp:new Date().toISOString(),route:t,selectedModel:e,ollamaConnected:s,installedModels:i,os:Sg(),browser:kg(),screenResolution:`${window.screen.width}x${window.screen.height}`,appVersion:"1.0.0"}}async function _g(t){const e=new URLSearchParams;e.append(Do.type,t.type),e.append(Do.message,t.message),t.email&&e.append(Do.email,t.email),e.append(Do.metadata,JSON.stringify(t.metadata)),await fetch(yg,{method:"POST",mode:"no-cors",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e.toString()})}const wg={class:"w-full max-w-md rounded-xl border border-border-default bg-surface-raised p-5 shadow-2xl"},Pg={key:0,class:"flex flex-col items-center gap-3 py-8"},xg={class:"flex h-12 w-12 items-center justify-center rounded-full bg-success/10"},Ag={class:"text-sm font-medium text-text-primary"},Cg={class:"text-xs text-text-muted"},Eg={class:"flex items-center justify-between mb-4"},jg={class:"text-sm font-semibold text-text-primary"},Mg={class:"mb-4"},Dg={class:"mb-2 text-xs text-text-muted"},Og={class:"grid grid-cols-4 gap-2"},Rg=["onClick"],Ng={class:"text-sm font-bold"},Ig={class:"mb-3"},Lg=["placeholder"],Fg={class:"mb-4"},zg={class:"mb-1 block text-xs text-text-muted"},Bg={class:"text-text-muted/50"},Ug=["placeholder"],qg=["disabled"],$g={class:"mt-2 text-center text-[9px] text-text-muted"},Vg=Os({__name:"FeedbackOverlay",emits:["close"],setup(t,{emit:e}){const s=e,i=_l(),o=gg(),a=he(null),l=he(""),b=he(""),u=he(!1),f=he(!1),p=[{value:"bug",labelKey:"feedback.types.bug",icon:"!"},{value:"idea",labelKey:"feedback.types.idea",icon:"?"},{value:"question",labelKey:"feedback.types.question",icon:"Q"},{value:"other",labelKey:"feedback.types.other",icon:"..."}];async function g(){if(!(!a.value||!l.value.trim())){u.value=!0;try{let _=!1;try{_=!!await Bo.version()}catch{}const z=Tg(i.path,o.modelNames[0]??"",_,o.modelNames);await _g({type:a.value,message:l.value.trim(),email:b.value.trim(),metadata:z}),f.value=!0,setTimeout(()=>s("close"),1500)}catch(_){console.error("Feedback submission failed:",_)}finally{u.value=!1}}}function y(_){_.target===_.currentTarget&&s("close")}return(_,z)=>(me(),ps(Vm,{to:"body"},[Et("div",{class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",onClick:y},[Et("div",wg,[f.value?(me(),rs("div",Pg,[Et("div",xg,[oe(ie(Wh),{class:"h-6 w-6 text-success"})]),Et("p",Ag,De(_.$t("feedback.thankYou")),1),Et("p",Cg,De(_.$t("feedback.thankYouDetail")),1)])):(me(),rs(ke,{key:1},[Et("div",Eg,[Et("h3",jg,De(_.$t("feedback.title")),1),Et("button",{class:"rounded p-1 text-text-muted hover:text-text-primary transition-colors",onClick:z[0]||(z[0]=I=>s("close"))},[oe(ie(dg),{class:"h-4 w-4"})])]),Et("div",Mg,[Et("p",Dg,De(_.$t("feedback.typeQuestion")),1),Et("div",Og,[(me(),rs(ke,null,gl(p,I=>Et("button",{key:I.value,class:ls(["flex flex-col items-center gap-1 rounded-lg border px-3 py-2.5 text-xs transition-colors",a.value===I.value?"border-accent bg-accent/10 text-accent":"border-border-default text-text-secondary hover:border-accent/50 hover:text-text-primary"]),onClick:$=>a.value=I.value},[Et("span",Ng,De(I.icon),1),Et("span",null,De(_.$t(I.labelKey)),1)],10,Rg)),64))])]),Et("div",Ig,[gc(Et("textarea",{"onUpdate:modelValue":z[1]||(z[1]=I=>l.value=I),rows:"4",class:"w-full resize-none rounded-lg border border-border-default bg-surface px-3 py-2 text-sm text-text-primary placeholder-text-muted outline-none focus:border-accent",placeholder:_.$t("feedback.message.placeholder")},null,8,Lg),[[Zc,l.value]])]),Et("div",Fg,[Et("label",zg,[Dn(De(_.$t("feedback.email.label"))+" ",1),Et("span",Bg,De(_.$t("feedback.email.optional")),1)]),gc(Et("input",{"onUpdate:modelValue":z[2]||(z[2]=I=>b.value=I),type:"email",class:"w-full rounded-lg border border-border-default bg-surface px-3 py-1.5 text-sm text-text-primary placeholder-text-muted outline-none focus:border-accent",placeholder:_.$t("feedback.email.placeholder")},null,8,Ug),[[Zc,b.value]])]),Et("button",{disabled:!a.value||!l.value.trim()||u.value,class:"w-full rounded-lg bg-accent px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-hover disabled:opacity-40",onClick:g},De(u.value?_.$t("feedback.submit.sending"):_.$t("feedback.submit.send")),9,qg),Et("p",$g,De(_.$t("feedback.disclaimer")),1)],64))])])]))}}),Kg={class:"flex w-56 flex-col border-e border-border-default bg-surface-raised"},Hg={class:"flex-1 space-y-1 p-3"},Gg={class:"mt-auto flex items-center border-t border-border-default px-3 py-[16px]"},Wg={class:"flex flex-1 items-center gap-1.5 rounded-lg bg-surface px-3 py-2.5"},Jg={class:"flex-1 text-xs text-text-muted truncate"},Qg=["title"],Yg=Os({__name:"AppSidebar",setup(t){const e=_l(),{t:s}=to(),i=he(!1),o=ne(()=>[{path:"/",label:s("common.nav.chatDiagnostics"),icon:sg},{path:"/compare",label:s("common.nav.compare"),icon:$h},{path:"/embeddings",label:s("common.nav.embeddings"),icon:ug},{path:"/rag",label:s("common.nav.knowledgeBase"),icon:Vh},{path:"/tools",label:s("common.nav.toolWorkshop"),icon:tg},{path:"/fim",label:s("common.nav.fim"),icon:Jh},{path:"/protocols",label:s("common.nav.protocols"),icon:rg},{path:"/training",label:s("common.nav.aiTraining"),icon:Zh},{path:"/settings?tab=models",label:s("common.nav.models"),icon:Kh},{path:"/benchmark",label:s("common.nav.benchmark"),icon:cg},{path:"/costs",label:s("common.nav.costDashboard"),icon:Yh},{path:"/analytics",label:s("common.nav.analytics"),icon:Hh},{path:"/system",label:s("common.nav.mySystem"),icon:ng},{path:"/settings",label:s("common.nav.settings"),icon:ag}]);return(a,l)=>{const b=yr("RouterLink");return me(),rs(ke,null,[Et("aside",Kg,[l[2]||(l[2]=Et("div",{class:"flex h-14 items-center gap-2 border-b border-border-default px-4"},[Et("span",{class:"text-xl font-bold text-accent"},"xR"),Et("span",{class:"text-sm font-medium text-text-secondary"},"LLMxRay")],-1)),Et("nav",Hg,[(me(!0),rs(ke,null,gl(o.value,u=>(me(),ps(b,{key:u.path,to:u.path,class:ls(["flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors",(u.path.includes("?")?ie(e).fullPath===u.path:ie(e).path===u.path)?"bg-surface-overlay text-accent":"text-text-secondary hover:bg-surface-overlay hover:text-text-primary"])},{default:Fn(()=>[(me(),ps(Zb(u.icon),{class:"h-4 w-4 shrink-0"})),Et("span",null,De(u.label),1)]),_:2},1032,["to","class"]))),128))]),Et("div",Gg,[Et("div",Wg,[Et("span",Jg,De(a.$t("common.nav.tagline")),1),Et("button",{class:"shrink-0 rounded p-0.5 text-text-muted hover:text-accent transition-colors",title:a.$t("feedback.title"),onClick:l[0]||(l[0]=Ed(u=>i.value=!0,["stop"]))},[oe(ie(ig),{class:"h-3.5 w-3.5"})],8,Qg)])])]),i.value?(me(),ps(Vg,{key:0,onClose:l[1]||(l[1]=u=>i.value=!1)})):Td("",!0)],64)}}}),Xg=_r("theme",()=>{const t=he(localStorage.getItem("llmxray-theme")??"system"),e=he(s(t.value));function s(a){return a==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a}function i(a){t.value=a,localStorage.setItem("llmxray-theme",a),e.value=s(a),o()}function o(){const a=document.documentElement;e.value==="dark"?(a.classList.add("dark"),a.classList.remove("light")):(a.classList.add("light"),a.classList.remove("dark"))}return window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{t.value==="system"&&(e.value=s("system"),o())}),Ws(t,()=>{e.value=s(t.value),o()},{immediate:!0}),{mode:t,resolvedTheme:e,setMode:i}}),Zg={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Chat Diagnostics"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Compare"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Knowledge Base"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Tool Workshop"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Code Completion"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Protocol Observatory"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI Training"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Models"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Costs"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analytics"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"My System"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"Local LLM Observatory"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Chat Diagnostics"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Session"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Compare Models"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Knowledge Base"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Models"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Tool Workshop"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Code Completion"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Protocol Observatory"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Costs"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analytics"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"My System"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Settings"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama connected"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama disconnected"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Processing..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Ready"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Error"}},success:{t:0,b:{t:2,i:[{t:3}],s:"Success"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Pending"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Running"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"Completed"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Failed"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Streaming"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"Idle"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"Connected"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"Disconnected"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"Dark"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Light"}},system:{t:0,b:{t:2,i:[{t:3}],s:"System"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"Theme"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"Language"}},english:{t:0,b:{t:2,i:[{t:3}],s:"English"}},french:{t:0,b:{t:2,i:[{t:3}],s:"French"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"Save"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Delete"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Close"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Copy"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},test:{t:0,b:{t:2,i:[{t:3}],s:"Test"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Refresh"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Send"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Stop"}},add:{t:0,b:{t:2,i:[{t:3}],s:"Add"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Remove"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirm"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Back"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Next"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Submit"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Reset"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Export"}},import:{t:0,b:{t:2,i:[{t:3}],s:"Import"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"Just now"}},minutesAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" minute ago"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" minutes ago"}]}]}},hoursAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" hour ago"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" hours ago"}]}]}},daysAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" day ago"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" days ago"}]}]}},monthsAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:4,k:"count"},{t:3,v:" month ago"}]},{t:2,i:[{t:4,k:"count"},{t:3,v:" months ago"}]}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tokens/s"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"ms"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"s"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"B"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"KB"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"MB"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"GB"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"dimensions"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"Select a model"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"No models available"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"Loading models..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"Pull a model"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"No data available"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"No results found"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"Nothing here yet"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"English"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"French"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"Arabic"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"Chinese"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"Japanese"}},he:{t:0,b:{t:2,i:[{t:3}],s:"Hebrew"}},de:{t:0,b:{t:2,i:[{t:3}],s:"German"}},es:{t:0,b:{t:2,i:[{t:3}],s:"Spanish"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"Portuguese"}},it:{t:0,b:{t:2,i:[{t:3}],s:"Italian"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"Russian"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"Korean"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"Hindi"}}}},tv={title:{t:0,b:{t:2,i:[{t:3}],s:"Chat Diagnostics"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Send a message... (Shift+Enter for new line)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"Send a message or paste/drop an image..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"Commands"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"Attach files"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"Attach files or images"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"Stop generating"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"Send message"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"Vision model — can process images"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Drop files to attach"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"New chat"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ New Chat"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"Chat History"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"Rename"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"Delete chat"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Are you sure you want to delete this conversation?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"Display name"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"New conversation"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"Edit name"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"No conversation history"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"No conversations yet."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"Click to rename"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"View session details"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"Untitled"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:"m ago"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:"h ago"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:"d ago"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"sessions"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Total Sessions"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Avg TTFT"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Avg Speed"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total Tokens"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"Recent Chats"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"Chat Settings"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Temperature"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Repeat penalty"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Context length"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Max tokens"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"System prompt"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"Instructions sent before the conversation. Sets the model's behavior and persona."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"You are a helpful assistant..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Knowledge Base"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"KB Enabled"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"KB Disabled"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"documents"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Manage"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"No documents ingested"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Add documents"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"Precise"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"Creative"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"Unlimited"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"Maximum response length. -1 = unlimited."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 for unlimited"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"Context Window"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Total context the model can see. Higher = more memory, slower."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"Advanced Sampling"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"Nucleus sampling. Lower = more focused on likely tokens."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"Limits sampling to the top K tokens at each step."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"Penalizes tokens that already appeared. Higher = less repetition."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Off"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Disabled"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"Adaptive perplexity-based sampling. Overrides top-p/top-k when enabled."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Random"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"Fixed seed for reproducible outputs. -1 = random."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 for random"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"Stop Sequences"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"e.g. Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"Comma-separated strings that stop generation when produced."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Tools"}},active:{t:0,b:{t:2,i:[{t:3}],s:"active"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"No tools defined yet"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Manage in Tool Workshop..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"Pulling..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Pull"}},thinking:{label:{t:0,b:{t:2,i:[{t:3}],s:"Thinking"}},off:{t:0,b:{t:2,i:[{t:3}],s:"Off"}},on:{t:0,b:{t:2,i:[{t:3}],s:"On"}},max:{t:0,b:{t:2,i:[{t:3}],s:"Max"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Toggle the model's internal reasoning. Max requests the largest budget. Ignored if the model doesn't support thinking."}},modelSupportsHint:{t:0,b:{t:2,i:[{t:3}],s:"model-supported"}}},responseFormat:{label:{t:0,b:{t:2,i:[{t:3}],s:"Response format"}},none:{t:0,b:{t:2,i:[{t:3}],s:"Free-form text"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Valid JSON (any shape)"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"JSON Schema (strict)"}},freeForm:{t:0,b:{t:2,i:[{t:3}],s:"Free-form"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Force the model to return structured output. JSON Schema constrains the shape — handy for parsing."}},schemaPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Paste a JSON Schema object…"}},schemaHint:{t:0,b:{t:2,i:[{t:3}],s:"Valid JSON Schema. Sent as the `format` field on /api/chat."}}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"Sliding window"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Keep only the last N messages"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"Max messages"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Auto-summarize"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"Summarize older messages automatically"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"Summarize threshold"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"Trigger after"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"messages"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"User facts"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"User Memories"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/remember facts injected into context"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"Add fact"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG memory"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"Message Memory (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"Retrieve relevant past messages via embeddings"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding model"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Select embedding model..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"No embedding models found. Pull one:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"Retrieve top"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K results"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memory"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"facts"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"Start a conversation with a local model"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"Response was truncated — increase num_predict in settings for longer responses"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tok/s"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"cold start"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"Model was loaded from disk for this request (load time > 500ms)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Export"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Download JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Download Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"Download Text"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"Chat & Conversation"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"Model & Settings"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"Features & Navigation"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memory"}},descriptions:{help:{t:0,b:{t:2,i:[{t:3}],s:"Show all available commands"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Clear current conversation"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Start a new chat session"}},summarize:{t:0,b:{t:2,i:[{t:3}],s:"Ask the model to summarize the conversation"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Export conversation as JSON or text"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Copy last assistant response to clipboard"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Show recent conversations"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Switch model or list available models"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Set the system prompt"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Set temperature (0-2)"}},top_p:{t:0,b:{t:2,i:[{t:3}],s:"Set top-p / nucleus sampling (0-1)"}},top_k:{t:0,b:{t:2,i:[{t:3}],s:"Set top-k sampling (1-100)"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Set context window size"}},repeat_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Set repeat penalty (1.0-2.0)"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Set seed for reproducibility (-1 for random)"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Set stop sequences (comma-separated)"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Set mirostat mode (0=off, 1=v1, 2=v2)"}},format:{t:0,b:{t:2,i:[{t:3}],s:"Toggle JSON output format"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Reset all settings to defaults"}},rag:{t:0,b:{t:2,i:[{t:3}],s:"Toggle RAG context on/off"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Open tools settings panel"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Show Ollama connection status and model info"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Show token count for current session"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Show average generation speed across sessions"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Navigate to the Compare page"}},session:{t:0,b:{t:2,i:[{t:3}],s:"View current session details"}},remember:{t:0,b:{t:2,i:[{t:3}],s:"Remember a fact about you across conversations"}},forget:{t:0,b:{t:2,i:[{t:3}],s:"Forget a previously remembered fact"}},memories:{t:0,b:{t:2,i:[{t:3}],s:"Show all remembered facts"}}},notifications:{helpHeader:{t:0,b:{t:2,i:[{t:3}],s:"Available commands:"}},unknownCommand:{t:0,b:{t:2,i:[{t:3,v:"Unknown command: /"},{t:4,k:"name"},{t:3,v:". Type /help for available commands."}]}},conversationCleared:{t:0,b:{t:2,i:[{t:3}],s:"Conversation cleared."}},newChatStarted:{t:0,b:{t:2,i:[{t:3}],s:"New chat started."}},nothingToSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Nothing to summarize — conversation is empty."}},conversationExported:{t:0,b:{t:2,i:[{t:3,v:"Conversation exported as "},{t:4,k:"format"},{t:3,v:"."}]}},historyHint:{t:0,b:{t:2,i:[{t:3}],s:"Scroll down to the recent chats section, or start a /new chat."}},availableModels:{t:0,b:{t:2,i:[{t:3,v:"Available models: "},{t:4,k:"list"},{t:3,v:`
|
|
7
7
|
Current: `},{t:4,k:"current"}]}},switchedTo:{t:0,b:{t:2,i:[{t:3,v:"Switched to "},{t:4,k:"model"},{t:3,v:"."}]}},modelNotFound:{t:0,b:{t:2,i:[{t:3,v:'Model "'},{t:4,k:"name"},{t:3,v:'" not found. Available: '},{t:4,k:"list"}]}},currentSystemPrompt:{t:0,b:{t:2,i:[{t:3,v:"Current system prompt: "},{t:4,k:"prompt"}]}},systemPromptUpdated:{t:0,b:{t:2,i:[{t:3}],s:"System prompt updated."}},tempUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /temperature 0.0-2.0"}]}},temperatureSet:{t:0,b:{t:2,i:[{t:3,v:"Temperature set to "},{t:4,k:"value"},{t:3,v:"."}]}},topPUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /top_p 0.0-1.0"}]}},topPSet:{t:0,b:{t:2,i:[{t:3,v:"Top-p set to "},{t:4,k:"value"},{t:3,v:"."}]}},topKUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /top_k 1-100"}]}},topKSet:{t:0,b:{t:2,i:[{t:3,v:"Top-k set to "},{t:4,k:"value"},{t:3,v:"."}]}},contextUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Valid sizes: "},{t:4,k:"sizes"}]}},contextSet:{t:0,b:{t:2,i:[{t:3,v:"Context window set to "},{t:4,k:"value"},{t:3,v:"."}]}},repeatPenaltyUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /repeat_penalty 1.0-2.0"}]}},repeatPenaltySet:{t:0,b:{t:2,i:[{t:3,v:"Repeat penalty set to "},{t:4,k:"value"},{t:3,v:"."}]}},seedUsage:{t:0,b:{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /seed [number]"}]}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Seed set to random."}},seedSet:{t:0,b:{t:2,i:[{t:3,v:"Seed set to "},{t:4,k:"value"},{t:3,v:"."}]}},stopCurrent:{t:0,b:{t:2,i:[{t:3,v:"Current stop sequences: "},{t:4,k:"sequences"}]}},stopSet:{t:0,b:{t:2,i:[{t:3,v:"Stop sequences set: "},{t:4,k:"sequences"}]}},mirostatUsage:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"Current: "},{t:4,k:"current"},{t:3,v:". Usage: /mirostat 0"}]},{t:2,i:[{t:3}],s:"1"},{t:2,i:[{t:3}],s:"2"}]}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat disabled."}},mirostatEnabled:{t:0,b:{t:2,i:[{t:3,v:"Mirostat v"},{t:4,k:"version"},{t:3,v:" enabled."}]}},jsonFormatEnabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format enabled."}},jsonFormatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format disabled."}},settingsReset:{t:0,b:{t:2,i:[{t:3}],s:"All settings reset to defaults."}},ragEnabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG context enabled."}},ragDisabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG context disabled."}},settingsPanelOpened:{t:0,b:{t:2,i:[{t:3}],s:"Settings panel opened."}},ollamaStatus:{t:0,b:{t:2,i:[{t:3,v:"Ollama: "},{t:4,k:"status"},{t:3,v:`
|
|
8
8
|
Model: `},{t:4,k:"model"}]}},ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Connected"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Disconnected"}},noActiveSession:{t:0,b:{t:2,i:[{t:3}],s:"No active session."}},tokenCounts:{t:0,b:{t:2,i:[{t:3,v:"Prompt tokens: "},{t:4,k:"prompt"},{t:3,v:`
|
|
@@ -17,20 +17,20 @@ Tokens de complétion : `},{t:4,k:"completion"},{t:3,v:`
|
|
|
17
17
|
Total : `},{t:4,k:"total"}]}},noSessionsRecorded:{t:0,b:{t:2,i:[{t:3}],s:"Aucune session enregistrée pour le moment."}},averageSpeed:{t:0,b:{t:2,i:[{t:3,v:"Vitesse moyenne : "},{t:4,k:"speed"}]}},rememberUsage:{t:0,b:{t:2,i:[{t:3}],s:`Usage : /remember [quelque chose à mémoriser]
|
|
18
18
|
Exemple : /remember Je préfère TypeScript à JavaScript`}},remembered:{t:0,b:{t:2,i:[{t:3,v:"Mémorisé : « "},{t:4,k:"fact"},{t:3,v:" »"}]}},forgetUsage:{t:0,b:{t:2,i:[{t:3}],s:`Usage : /forget [partie du fait à supprimer]
|
|
19
19
|
Exemple : /forget TypeScript`}},forgot:{t:0,b:{t:2,i:[{t:3,v:"Fait correspondant à « "},{t:4,k:"search"},{t:3,v:" » oublié."}]}},factNotFound:{t:0,b:{t:2,i:[{t:3,v:"Aucun fait correspondant à « "},{t:4,k:"search"},{t:3,v:" ». Utilisez /memories pour voir tous les faits."}]}},noMemories:{t:0,b:{t:2,i:[{t:3}],s:"Aucune mémoire enregistrée pour le moment. Utilisez /remember [fait] pour en ajouter une."}},yourMemories:{t:0,b:{t:2,i:[{t:3,v:"Vos mémoires ("},{t:4,k:"count"},{t:3,v:`) :
|
|
20
|
-
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Copié dans le presse-papiers."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Aucune réponse de l’assistant à copier."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Aucune conversation à exporter."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"Format JSON basculé. Cela affecte la prochaine requête."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(aucun)"}}}}},yv={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"Général"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modèles"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Intégrations"}},about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Connexion Ollama"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"URL Ollama"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Tester"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Connexion réussie"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Échec de la connexion"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Connecté"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Test en cours..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Déconnecté"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres par défaut"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Température"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Qu'est-ce que la température ?"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"La température contrôle le niveau de « créativité » ou d'« aléatoire » des réponses du modèle."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Choisit toujours le mot le plus probable. Idéal pour les faits, les maths et le code."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Un bon équilibre. C'est la valeur par défaut."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Plus surprenant et créatif."}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Déterministe"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Focalisé"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Équilibré"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Créatif"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Très aléatoire"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Extrême"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Longueur de contexte"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Qu'est-ce que la longueur de contexte ?"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"La quantité de conversation que le modèle peut voir en une fois, mesurée en tokens."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"Un contexte plus grand utilise plus de RAM/VRAM."}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" mots"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Sélectionner la langue"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger un nouveau modèle"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Nom du modèle"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Êtes-vous sûr de vouloir supprimer ce modèle ?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Taille"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Quantification"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Capacités"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger des modèles"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des modèles..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle installé. Téléchargez-en un depuis le catalogue ci-dessous."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle ne correspond à votre recherche."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger un modèle par nom"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Installé"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer la suppression ?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Compte Google"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Connecter"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Déconnecter"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Connecté en tant que"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Intégration Google"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Connectez votre compte Google pour activer les outils Agenda et Gmail dans l'Atelier d'outils."}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"Client ID OAuth2"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Authentification en cours..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Non connecté"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Connecter un compte Google"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Afficher les instructions de configuration"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Masquer les instructions de configuration"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Licence"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Dépôt"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Stack technique"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Observatoire local de LLM"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Historique IA local"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Votre archive de recherche — toutes les expériences, interrogeables"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comment vos données sont stockées"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Toutes vos données sont stockées localement dans votre navigateur via IndexedDB — une base de données permanente et native du navigateur. Vos données survivent à la fermeture du navigateur, au redémarrage de l’ordinateur et aux mises à jour logicielles. Rien n’est envoyé à un serveur."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Les données d’origine (benchmarks, conversations, comparaisons, entraînements) sont stockées dans 6 bases IndexedDB dédiées — une par fonctionnalité. IndexedDB n’est PAS un stockage de session — les données persistent de manière permanente jusqu’à ce que vous choisissiez de les supprimer."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"La base Historique est un index de recherche unifié alimenté par Dexie.js. Elle enregistre un résumé de chaque expérience pour permettre des requêtes rapides et l’analyse des tendances. Considérez-la comme un moteur de recherche sur toute votre activité LLMxRay."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Tout reste sur votre machine. Seules deux actions peuvent supprimer vos données : effacer les données du site dans le navigateur, ou utiliser les boutons Effacer de cette application. Il n’y a ni compte, ni synchronisation cloud, ni télémétrie."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Période"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Étiquettes"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Tous"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"7 derniers jours"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"30 derniers jours"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"90 derniers jours"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Tout"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" entrées"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Aucune entrée d'historique pour le moment. Lancez un benchmark, une comparaison ou un chat pour commencer à construire votre archive de recherche."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Tendances"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Activité (30 derniers jours)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modèles utilisés"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"Gestion de la base de données"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Total des entrées"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille estimée"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout exporter (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Exporter le filtré (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Rétention"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Conserver indéfiniment"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 jours"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 jours"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"1 an"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l'historique"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Cela supprimera toutes les entrées d'historique. Les autres données (benchmarks, conversations, etc.) ne sont pas affectées."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Chat"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Entraînement"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Session"}}}}},kv={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark chirurgical"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Evaluez les modeles avec des ensembles de questions selectionnes - confiance logprob reelle, diagnostics par categorie"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Details du resultat"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Dernier resultat"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Registre de comparaison"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Selectionner les modeles"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Selectionner les suites"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille du contexte"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Lancer le benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Temps estime"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Modeles maximum"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeles"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"selectionne(s)"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Suites de benchmark"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Importer personnalise"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Contexte :"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Lancer le benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"personnalise"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Progression"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Question en cours"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Derniere reponse"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Correct"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Incorrect"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Latence moyenne"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Confiance moyenne"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Progression par categorie"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arreter"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Reflexion"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Standard"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"En attente de la question..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"En attente de la premiere reponse..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Traitement de la question..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Arreter le benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Progression du benchmark"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Total moyen"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Suites"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Attendu :"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision globale"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Par categorie"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Confiance vs precision"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Details des questions"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun resultat pour le moment"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Confiance vs Precision - Nuage X-Ray"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Confus (faible conf, faux)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Calibre (haute conf, juste)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Surconfiant (haute conf, faux)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Chanceux (faible conf, juste)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Temps total par categorie"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Pression de contexte - Degradation de precision"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Repartition par categorie"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Categorie"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Correct"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Total moyen"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Confiance moyenne"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Detail par question"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Tout"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Faux"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Reponse"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les resultats"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Graphique radar"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Carte thermique"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Reprendre"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le resultat"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Resultats sauvegardes"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun resultat sauvegarde"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Cliquez pour selectionner pour la comparaison"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Incomplet"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Voir les details complets"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Reprendre le benchmark incomplet"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Créer une suite de benchmark"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la suite de benchmark"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la suite"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ex. Quiz d'histoire de France"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Que teste cette suite ?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Catégorie par défaut"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Questions"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une question"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la question"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Aucune question. Ajoutez votre première question ou utilisez l'IA pour en générer."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Tapez votre question ici..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Choix"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un choix"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Réponse correcte"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Catégorie"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Difficulté"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Facile"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Moyen"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Difficile"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la suite"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Créer une suite"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" choix"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Générer avec l'IA"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Sujet"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ex. Histoire de France, Programmation Python, Chimie organique"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Nombre de questions"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Difficulté"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Mixte"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer les questions"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Génération en cours..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler la génération"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Questions générées"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout sélectionner"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout désélectionner"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter la sélection"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Certaines questions n'ont pas pu être analysées"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucune question valide générée. Essayez un autre sujet ou modèle."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Importer une suite"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Importer une suite de benchmark personnalisee"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Glissez-deposez un fichier ici"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Deposez un fichier .json ici"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Parcourir"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille maximale"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Format invalide"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Importation reussie"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Importation en cours..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Requis : JSON avec nom, tableau de questions (2-500 elements)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Chaque question necessite : id, question, choix (2-6), correctAnswer."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Max 1 Mo. Les balises HTML seront supprimees. Les IDs seront dedupliques."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Fichier trop volumineux (max 1 Mo)"}}}},Sv={title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle disponible"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle d'embedding trouvé. Téléchargez-en un : ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire d'embedding"}},records:{t:0,b:{t:2,i:[{t:3}],s:"enregistrements"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aire de jeu Embedding"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte pour générer son vecteur d'embedding et inspecter les dimensions."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte à encoder..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Encoder"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Encodage en cours..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Afficher les valeurs brutes (50 premières sur "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Calculateur de similarité"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Comparez deux textes pour mesurer leur similarité sémantique via la distance cosinus."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Texte A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Texte B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Premier texte..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Deuxième texte..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison en cours..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison de modèles"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Encodez le même texte avec deux modèles pour comparer leur représentation du sens."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Modèle A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Modèle B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte à encoder avec les deux modèles..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les modèles"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison des modèles..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Similarité inter-modèles — à quel point ces modèles représentent le même texte de manière similaire."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Ces modèles encodent le sens très différemment."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Accord modéré — les modèles partagent une certaine structure sémantique."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Accord élevé — ces modèles représentent ce texte de manière similaire."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Les dimensions diffèrent ("},{t:4,k:"dimA"},{t:3,v:" vs "},{t:4,k:"dimB"},{t:3,v:") — la similarité cosinus directe est impossible."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Comparez les statistiques ci-dessus pour évaluer la qualité de représentation de chaque modèle."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Dims"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"Norme L2"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Parcimonie"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Temps"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings récents"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}}}},Tv={title:{t:0,b:{t:2,i:[{t:3}],s:"Base de connaissances"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Ingérez des documents pour des conversations alimentées par RAG"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle d'embedding"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage de la base de connaissances"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"documents"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"fragments"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"stockés"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"Stockage RAG"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Glissez-déposez des fichiers ici"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Parcourir"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Déposez des fichiers ici ou cliquez pour parcourir"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Formats : PDF, DOCX, TXT, Markdown, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Documents"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Aucun document ingéré pour le moment"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Activer/désactiver le contexte RAG"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le document"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Recherche sémantique"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher dans vos documents..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat de recherche"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Recherche en cours..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher"}},results:{t:0,b:{t:2,i:[{t:3}],s:"résultats"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Réduire"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Afficher le fragment complet"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Progression de l'ingération"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ingération en cours..."}}}},_v={title:{t:0,b:{t:2,i:[{t:3}],s:"Atelier d'outils"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un outil"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter depuis un modèle"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil configuré. Ajoutez-en un pour commencer."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'outil"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Description de l'outil"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la fonction"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Implémentation"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Code"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Tester l'outil"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer l'outil"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Panneau de code"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Fermer"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Source"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schéma"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"Manifeste d'outils compatible OpenAI"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Copier"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Avertissements"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil pour le moment. Créez votre premier outil ou partez d'un modèle."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Nouvel outil"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Depuis un modèle..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Exporter les données d'entraînement (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque d'outils"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer tous les outils du canevas"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Effacer tous les outils ?"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"Cela supprimera les "},{t:4,k:"count"},{t:3,v:" outil(s) du canevas. Cette action est irréversible."}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout supprimer"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Désactiver pour le chat"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Activer pour le chat"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer l'outil"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"activé(s) pour le chat"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Exporter tous les outils (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Exporter l'outil en JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles d'outils"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Commencez avec un modèle fonctionnel et personnalisez-le"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Utilitaire"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Données"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (Agenda et Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Personnalisé"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la fonction"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Obtenir la météo actuelle pour un lieu donné"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Constructeur visuel"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"JSON brut"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter un paramètre"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le paramètre"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer l'outil"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Modifier l'outil"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Nouvel outil"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil défini pour le moment."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter un outil"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Exécution en cours..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Succès"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Erreur"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Résultat"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Outil LLM"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"nom_de_fonction"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Brouillon IA"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"Analyses IA"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Exécution..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Terminé"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Échoué"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"Correction IA"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Que fait cet outil ?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Intention"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Décrivez ce que cet outil doit faire..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Génération..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"nom"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"type"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Aucun paramètre"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Sonder et choisir"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Sonder"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"En-têtes"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'en-tête"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"valeur"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme secret (utiliser une variable d'env dans le code généré)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Corps de la requête"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Points d'accès"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des endpoints..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Aucun endpoint correspondant"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"Suggestion IA"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Réflexion..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"champ"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"champs"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Appliquer"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Correspondances"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Désynchronisé"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Corps (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// Implémentation de l'outil..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"Correction suggérée par l'IA (vérifiez avant d'appliquer) :"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Appliquer la correction"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Fermer"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Accepter"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Rejeter"}}}},wv={title:{t:0,b:{t:2,i:[{t:3}],s:"Entraînement IA"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Parcourez, organisez et exportez vos données d'entraînement depuis l'Atelier d'outils."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Total de paires"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"acceptées"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"rejetées"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"En attente"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Paires d'entraînement"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Taux d'acceptation"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"Par phase"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Meilleurs modèles"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des prompts..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'outil"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Étiquette"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Statut"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Tous les modèles"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Tous les outils"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Toutes les étiquettes"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Tous les statuts"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" sélectionné(s)"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Exporter JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Marquer accepté"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Marquer rejeté"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une étiquette"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'étiquette..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer ?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Désélectionner"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une étiquette..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout sélectionner"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout désélectionner"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" sur "},{t:4,k:"total"},{t:3,v:" paires affichées"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucune paire d'entraînement ne correspond à vos filtres."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepté"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Rejeté"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt utilisateur"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"Réponse IA"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la réponse"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Étiquettes"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer la paire"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer la suppression ?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée d'entraînement collectée pour le moment."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Les paires d'entraînement sont générées automatiquement lorsque vous utilisez les fonctionnalités IA dans l'Atelier d'outils (génération de brouillon, analyse de code, auto-mapping et correction IA)."}}}},Pv={title:{t:0,b:{t:2,i:[{t:3}],s:"Mon système"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Matériel, environnement d'exécution et aperçu de l'inférence"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Détection du matériel..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Interrogation du CPU, de la mémoire, du GPU et du stockage"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Détection du matériel indisponible. Veuillez redémarrer le serveur de développement pour activer le plugin d'information système."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger rapport système (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger infos système (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Système d'exploitation"}},os:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Build"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Architecture"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Appareil"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Fabricant"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Processeur"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Cœurs physiques"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Processeurs logiques"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Fréquence maximale"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"RAM totale"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Disponible"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Utilisée"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Graphiques"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"RAM de l'adaptateur"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Partagée / Non rapportée"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Pilote"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Disque"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Libre"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Utilisé"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage navigateur"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Persistant"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Au mieux"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Analyse en cours..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Quota IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" enregistrements au total dans "},{t:4,k:"databases"},{t:3,v:" bases de données"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Effacer toutes les données"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Vide"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Environnement Ollama"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Statut"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Stockage total des modèles"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Modèles chargés"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inférence"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"cette session"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Aucune session d'inférence pour le moment."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse moyenne"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modèles utilisés"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles actifs"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle chargé en mémoire. Envoyez un message pour en charger un."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Ctx"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle installé."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Quantification"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Taille"}}}},xv={title:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les modèles"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Emplacements de comparaison"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Chaque emplacement est une combinaison modèle + paramètres. Ajoutez le même modèle plusieurs fois avec des paramètres différents pour comparer le comportement."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un emplacement"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Retirer l'emplacement"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système optionnel..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Options"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Température"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Aléatoire (laisser vide)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Avancé"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Pénalité de répétition"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Désactivé"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens max"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Longueur de contexte"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Par défaut"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" emplacement(s) configuré(s)"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Aucun emplacement configuré"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez un emplacement pour choisir un modèle et des paramètres, ou utilisez un preset rapide ci-dessus pour commencer."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter le premier emplacement"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Ajouter un emplacement ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Démarrage rapide :"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Balayage de température"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Crée 3 emplacements du même modèle aux températures 0.2 (focalisé), 0.7 (équilibré) et 1.2 (créatif). Observez comment la température modifie la sortie pour le même prompt."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Paire déterministe"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Crée 2 emplacements du même modèle avec le même seed mais des températures différentes (0.3 et 1.0). Le seed partagé signifie que toute différence dans la sortie provient uniquement de la température, pas de l'aléatoire."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison linguistique"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Comparer comment différentes langues affectent le coût en tokens et le comportement du modèle"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez un prompt à comparer entre les emplacements..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer"}},running:{t:0,b:{t:2,i:[{t:3}],s:"En cours..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Résultats"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Grille"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Diff"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Il faut au moins 2 résultats complétés pour afficher un diff."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer :"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"vs"}},only:{t:0,b:{t:2,i:[{t:4,k:"label"},{t:3,v:" uniquement"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison de performances"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Temps jusqu'au premier token"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"plus bas = mieux"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokens/sec"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"plus haut = mieux"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total de tokens"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Incompatibilité de langue détectée"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Votre prompt semble être en "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"cible : "},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Traduire en "},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Garder "},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout traduire"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Taxe de tokens"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens du prompt"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Prompt traduit"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Traduit"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Langue non supportée"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Traduction en cours... cela peut prendre un moment selon la taille du modèle"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"La qualité de la traduction dépend des capacités linguistiques de votre modèle. Les modèles plus grands produisent de meilleures traductions."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Tapez ou collez votre prompt en "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comparaisons sauvegardées"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Charger"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Aucune comparaison sauvegardée"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger en JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger en Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Partager sur GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Partagez vos découvertes"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez votre commentaire"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Qu'avez-vous découvert ? Partagez vos observations..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Aperçu du rapport"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Ouvrir GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Copier le Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Copié !"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Vous serez redirigé vers GitHub pour relire et publier vos résultats."}}}},Av={title:{t:0,b:{t:2,i:[{t:3}],s:"Session"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Session "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Session introuvable."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Introspection"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Outils"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Graphe d'agent"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger flux de tokens CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Flux de tokens"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Métriques"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Entrez votre prompt..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de raisonnement disponible pour cette session."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Introspection"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Illustratif"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Appels d'outils"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Chronologie"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Optimiser"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Graphe d'agent"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inspecteur de prompt"}}}},Cv={title:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer un retour"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Merci pour votre retour !"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Votre contribution aide à améliorer LLMxRay."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Quel type de retour ?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Bug"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Idée"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Autre"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Dites-nous ce que vous avez en tête..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"E-mail"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(facultatif — uniquement si vous souhaitez une réponse)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"votre@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer le retour"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Envoi en cours..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Inclut le contexte de l'application (page, modèle, système) pour nous aider à comprendre votre retour."}}},Ev={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Problemes de qualite detectes"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Repetitif"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient des phrases excessivement repetees"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Refus"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse semble etre un refus"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Brouille"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient un ratio eleve de caracteres non imprimables"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Vide"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient tres peu de contenu"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Tronque"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse a peut-etre ete coupee"}}}},jv={title:{t:0,b:{t:2,i:[{t:3}],s:"Tableau de bord des couts"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens totaux"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout estime"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Cout moy./session"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Utilisation de tokens par modele"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Utilisation quotidienne"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens de prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens de completion"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout estime"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Tendance des coûts"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Modele"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout est."}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Source"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Latence des requêtes (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Temps avant premier token (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Distribution de latence inter-tokens"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Les intervalles suivent les conventions OTel GenAI. Agrégé sur toutes les sessions."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Pas assez de données pour l'analyse en percentiles."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Erreurs par modèle"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Aucune erreur enregistrée."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Durée de chargement du modèle"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"démarrages froids"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Les points orange indiquent les démarrages froids (modèle chargé depuis le disque, > 500ms)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ces couts sont des estimations basees sur les tarifs equivalents des API cloud. Ollama fonctionne localement sans frais."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnee d'utilisation. Commencez a discuter pour voir l'utilisation des tokens et les estimations de couts."}}},Mv={title:{t:0,b:{t:2,i:[{t:3}],s:"Analytique"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité des réponses"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Analyse de latence"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Fiabilité"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Habitudes d'utilisation"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Impact des paramètres"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire du modèle"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Qualité par tour"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Vert = bon (3.5+), jaune = moyen (2-3.5), rouge = faible (< 2). Score basé sur le nombre de mots, la diversité du vocabulaire et la non-répétition."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Démarrez une conversation multi-tours pour voir les tendances de qualité."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Chronologie des erreurs"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Aucune erreur enregistrée."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Volume de requêtes"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Répartition des modèles"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Heures d'activité"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Température vs vitesse"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Chaque point est une session. Montre l'impact de la température sur la vitesse."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Au moins 2 sessions avec température explicite nécessaires."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Historique de chargement"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"froid"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}}},Dv={title:{t:0,b:{t:2,i:[{t:3}],s:"Complétion au milieu (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Tester la complétion de code avec préfixe + suffixe. Le modèle remplit le trou."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Certains modèles Ollama (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) supportent le champ `suffix` sur /api/generate. Fournissez le code avant et après le curseur — le modèle complète le milieu."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles de code (compatibles FIM)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Autres modèles (FIM peut-être non supporté)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Ce modèle n'est pas un modèle de code connu — `suffix` pourrait être ignoré."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Préfixe (code avant le curseur)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Suffixe (code après le curseur)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Complétion"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Aperçu assemblé"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Streaming…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Chargement"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse"}}}},Ov={title:{t:0,b:{t:2,i:[{t:3}],s:"Observatoire des protocoles"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Envoyez un prompt à travers trois protocoles de service. Même modèle, même démon Ollama — formats de fil différents. Comparez ce que chaque protocole donne."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama expose /api/chat (NDJSON natif), /v1/chat/completions (SSE compatible OpenAI) et /v1/messages (SSE compatible Anthropic). Les trois ciblent le même modèle local — aucun cloud, aucune clé API. Cette page lance le même prompt sur les trois en parallèle et montre ce qui diffère."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Tapez un prompt auquel les trois protocoles répondront…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens max"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Lancer les 3 protocoles"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Pas encore lancé."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Attente du premier token…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Inspecter l'enveloppe"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Premier chunk / événement"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Dernier chunk / événement"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"car."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Natif"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama natif"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"Compat. OpenAI"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (compat)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Compat. Anthropic"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (compat)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Fin"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison des réponses"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff. d'enveloppe"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Aspect"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Encadrement du flux"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Clés racine (observées)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Porteur du motif de fin"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Motif de fin (ce run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Porteur du compte de tokens"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés (ce run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Forme de l'enveloppe d'erreur"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Les valeurs observées proviennent de ce run sur votre Ollama local. Certains porteurs (ex. `done_reason` natif NDJSON) n'apparaissent que sur le chunk final, d'autres (ex. `message_stop` Anthropic) sont des événements dédiés."}}}},Rv={common:gv,dashboard:vv,settings:yv,benchmark:kv,embeddings:Sv,rag:Tv,tools:_v,training:wv,system:Pv,comparison:xv,session:Av,feedback:Cv,quality:Ev,cost:jv,analytics:Mv,fim:Dv,protocols:Ov},Nv={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"代码补全"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"协议观测站"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI 训练"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"成本"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"本地 LLM 观测站"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},session:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"代码补全"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"协议观测站"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"成本"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 已连接"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 未连接"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"就绪"}},error:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},success:{t:0,b:{t:2,i:[{t:3}],s:"成功"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"等待中"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"已完成"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"失败"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"流式传输中"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"空闲"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"已连接"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"浅色"}},system:{t:0,b:{t:2,i:[{t:3}],s:"跟随系统"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"主题"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},english:{t:0,b:{t:2,i:[{t:3}],s:"英语"}},french:{t:0,b:{t:2,i:[{t:3}],s:"法语"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},close:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"复制"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},test:{t:0,b:{t:2,i:[{t:3}],s:"测试"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},send:{t:0,b:{t:2,i:[{t:3}],s:"发送"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},next:{t:0,b:{t:2,i:[{t:3}],s:"下一步"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"重置"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},import:{t:0,b:{t:2,i:[{t:3}],s:"导入"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"刚刚"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 分钟前"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 小时前"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 天前"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 个月前"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tokens/s"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"ms"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"s"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"B"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"KB"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"MB"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"GB"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"维度"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"选择模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"没有可用的模型"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"加载模型中..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"拉取模型"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无数据"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"这里还没有内容"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"英语"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"阿拉伯语"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"中文"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"日语"}},he:{t:0,b:{t:2,i:[{t:3}],s:"希伯来语"}},de:{t:0,b:{t:2,i:[{t:3}],s:"德语"}},es:{t:0,b:{t:2,i:[{t:3}],s:"西班牙语"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"葡萄牙语"}},it:{t:0,b:{t:2,i:[{t:3}],s:"意大利语"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"俄语"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"韩语"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"印地语"}}}},Iv={title:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"发送消息... (Shift+Enter 换行)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"发送消息或粘贴/拖放图片..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"命令"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"附加文件"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"附加文件或图片"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"停止生成"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"发送消息"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"视觉模型 — 可处理图片"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"拖放文件以附加"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"新对话"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ 新对话"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史记录"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"聊天历史"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"重命名"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"删除对话"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"确定要删除这个对话吗?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"显示名称"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"新对话"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"编辑名称"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"没有对话历史"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"还没有对话。"}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"点击重命名"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"查看会话详情"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"无标题"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 分钟前"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 小时前"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 天前"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"总会话数"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"平均速度"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总 tokens"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"最近对话"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"聊天设置"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"重复惩罚"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"最大 tokens"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"在对话之前发送的指令。用于设定模型的行为和角色。"}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"你是一个有用的助手..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"知识库已启用"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"知识库已禁用"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"文档"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"管理"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"尚未导入文档"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"添加文档"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"精确"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"创意"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"无限制"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"最大回复长度。-1 = 无限制。"}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 为无限制"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"上下文窗口"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"模型一次可见的全部上下文。越大 = 记忆越多,速度越慢。"}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"高级采样"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"核采样。越低 = 越集中于高概率 tokens。"}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"每步将采样限制在前 K 个 tokens。"}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"惩罚已出现的 tokens。越高 = 重复越少。"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"已禁用"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"基于困惑度的自适应采样。启用时会覆盖 top-p/top-k。"}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"随机"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"固定 seed 用于可重现的输出。-1 = 随机。"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 为随机"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"停止序列"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如 Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"逗号分隔的字符串,生成时遇到则停止。"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},active:{t:0,b:{t:2,i:[{t:3}],s:"已激活"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"尚未定义工具"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"在工具工坊中管理..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"拉取中..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"拉取"}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"滑动窗口"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"仅保留最近的 N 条消息"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"最大消息数"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"自动摘要"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"自动总结较早的消息"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"摘要阈值"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"触发条件"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"条消息"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"用户事实"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"用户记忆"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/remember 事实会注入上下文"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"添加事实"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG 记忆"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"消息记忆 (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"通过 embeddings 检索相关的历史消息"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding 模型"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"选择 embedding 模型..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"未找到 embedding 模型。请拉取一个:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"检索前"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K 结果"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"记忆"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"条事实"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"开始与本地模型对话"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"回复已被截断 — 请在设置中增加 num_predict 以获得更长的回复"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tok/s"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"冷启动"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"此请求需要从磁盘加载模型(加载时间 > 500ms)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"下载文本"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"聊天与对话"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"模型与设置"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"功能与导航"}}}},Lv={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"通用"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"集成"}},about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史记录"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 连接"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"测试"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"连接成功"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"连接失败"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"已连接"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"测试中..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"默认参数"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"什么是温度?"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"温度控制模型回答的「创造性」或「随机性」。"}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"始终选择最可能的词。适用于事实、数学和代码。"}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"良好的平衡。这是默认值。"}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"更出人意料,更有创意。"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"确定性"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"专注"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"均衡"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"创意"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"非常随机"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"狂野"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"什么是上下文长度?"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"模型一次可以看到多少对话内容,以 tokens 为单位。"}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"更大的上下文会使用更多 RAM/VRAM。"}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" 个词"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"选择语言"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"拉取新模型"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"模型名称"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"拉取"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"确定要删除此模型吗?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"大小"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"量化"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数量"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"能力"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"下载模型"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"搜索模型..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"未安装任何模型。请从下方目录中拉取一个。"}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配的模型。"}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"按名称拉取任意模型"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"已安装"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"确认删除?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Google 账户"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"连接"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"断开"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"已连接为"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Google 集成"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"连接你的 Google 账户以在工具工坊中启用日历和 Gmail 工具。"}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"OAuth2 Client ID"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"认证中..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"连接 Google 账户"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"显示设置说明"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"隐藏设置说明"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},license:{t:0,b:{t:2,i:[{t:3}],s:"许可证"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"代码仓库"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"技术栈"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"本地 LLM 观测站"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"本地 AI 历史记录"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"你的研究档案 — 所有实验,可查询"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"你的数据如何存储"}},description:{t:0,b:{t:2,i:[{t:3}],s:"你的所有数据都通过 IndexedDB 存储在浏览器本地 — 这是一种永久性的、浏览器原生的数据库。你的数据在关闭浏览器、重启电脑和软件更新后依然保留。没有任何数据被发送到服务器。"}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"原始数据(基准测试、对话、对比、训练)存储在 6 个专用的 IndexedDB 数据库中 — 每个功能一个。IndexedDB 不是会话存储 — 数据会永久保留,直到你选择删除。"}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"历史记录数据库是一个由 Dexie.js 驱动的统一研究索引。它记录每次实验的摘要,以便快速查询和趋势分析。可以将其视为覆盖你所有 LLMxRay 活动的搜索引擎。"}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"一切都保留在你的设备上。只有两种方式可以删除数据:在浏览器中清除网站数据,或使用本应用中的清除按钮。没有账户、没有云同步、没有遥测。"}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"日期范围"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},all:{t:0,b:{t:2,i:[{t:3}],s:"全部"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"最近 7 天"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"最近 30 天"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"最近 90 天"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"所有时间"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 条记录"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"暂无历史记录。运行基准测试、对比或聊天以开始构建你的研究档案。"}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"趋势"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"活动(最近 30 天)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"使用的模型"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"数据库管理"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"总记录数"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"预估大小"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"导出全部 (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"导出筛选结果 (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"保留策略"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"永久保留"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 天"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 天"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"1 年"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"清除历史记录"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"此操作将删除所有历史记录。其他数据(基准测试、对话等)不受影响。"}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"聊天"}},training:{t:0,b:{t:2,i:[{t:3}],s:"训练"}},session:{t:0,b:{t:2,i:[{t:3}],s:"会话"}}}}},Fv={title:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"精准基准测试"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"使用精选题目集评估模型 — 真实 logprob 置信度,按类别诊断"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"结果详情"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"最新结果"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"对比记录"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"选择模型"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"选择测试套件"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"上下文大小"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"开始基准测试"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"预计时间"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"最大模型数"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"已选择"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"基准测试套件"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ 导入自定义"}},context:{t:0,b:{t:2,i:[{t:3}],s:"上下文:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"运行基准测试"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"自定义"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"进度"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"当前问题"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"上一个答案"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"正确"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"准确率"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"平均延迟"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"平均置信度"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"分类进度"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"思考中"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"标准"}},question:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"等待问题..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"等待第一个答案..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"处理问题中..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"停止基准测试"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"基准测试进度"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"平均总时间"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"测试套件"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"预期答案:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"总体准确率"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"按分类"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"置信度与准确率"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"题目详情"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"暂无结果"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"置信度与准确率 — X-Ray 散点图"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"困惑(低置信度,答错)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"校准良好(高置信度,答对)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"过度自信(高置信度,答错)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"幸运(低置信度,答对)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"各分类总耗时"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"上下文压力 — 准确率下降"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"分类明细"}},category:{t:0,b:{t:2,i:[{t:3}],s:"分类"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"正确"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"平均总时间"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"平均置信度"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"逐题详情"}},all:{t:0,b:{t:2,i:[{t:3}],s:"全部"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},response:{t:0,b:{t:2,i:[{t:3}],s:"回复"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"准确率"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"对比结果"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"雷达图"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"热力图"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"继续"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"删除结果"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"已保存的结果"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"暂无已保存的结果"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"点击选择进行对比"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"未完成"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"查看完整详情"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"继续未完成的基准测试"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"下载 CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"创建基准测试套件"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"编辑基准测试套件"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"套件名称"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如:法国历史测验"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"此套件测试什么内容?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"默认分类"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"题目"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"添加题目"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"编辑题目"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"暂无题目。添加第一道题目或使用 AI 生成。"}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"在此输入问题..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"添加选项"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"正确答案"}},category:{t:0,b:{t:2,i:[{t:3}],s:"分类"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"难度"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"中等"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"困难"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"保存套件"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"创建套件"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 个选项"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"AI 生成"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"主题"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如:法国历史、Python 编程、有机化学"}},count:{t:0,b:{t:2,i:[{t:3}],s:"题目数量"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"难度"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"混合"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"生成题目"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"生成中..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消生成"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"已生成的题目"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"全选"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消全选"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"添加所选"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"部分题目无法解析"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"未生成有效题目。请尝试其他主题或模型。"}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"导入测试套件"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"导入自定义基准测试套件"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"将 .json 文件拖放到此处"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"浏览"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"最大大小"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"格式无效"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"导入成功"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"导入中..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"要求:JSON 文件需包含 name 和 questions 数组(2-500 项)。"}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"每个问题需要:id、question、choices(2-6 个)、correctAnswer。"}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"最大 1MB。HTML 标签将被去除。ID 将自动去重。"}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"文件过大(最大 1MB)"}}}},zv={title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"没有可用的模型"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"未找到 embedding 模型。请拉取一个:ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Embedding 存储"}},records:{t:0,b:{t:2,i:[{t:3}],s:"条记录"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Embed 实验场"}},description:{t:0,b:{t:2,i:[{t:3}],s:"输入文本以生成其 embedding 向量并查看各维度。"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入要嵌入的文本..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"嵌入"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"嵌入中..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"显示原始值(前 50 / 共 "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"相似度计算器"}},description:{t:0,b:{t:2,i:[{t:3}],s:"比较两段文本,使用 cosine similarity 衡量语义相似度。"}},textA:{t:0,b:{t:2,i:[{t:3}],s:"文本 A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"文本 B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"第一段文本..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"第二段文本..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"比较"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"比较中..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},description:{t:0,b:{t:2,i:[{t:3}],s:"用两个模型嵌入相同文本,比较它们如何表示语义。"}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"模型 A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"模型 B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入文本以使用两个模型进行嵌入..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"对比模型"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"对比模型中..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"跨模型相似度 — 这两个模型对相同文本的表示有多相似。"}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"这两个模型编码语义的方式差异很大。"}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"中等一致 — 两个模型共享部分语义结构。"}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"高度一致 — 这两个模型对此文本的表示相似。"}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"维度不同("},{t:4,k:"dimA"},{t:3,v:" 与 "},{t:4,k:"dimB"},{t:3,v:")— 无法直接计算 cosine similarity。"}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"比较上方统计数据以评估每个模型的表示质量。"}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"维度"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"L2 范数"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"稀疏度"}},time:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"最近的 Embeddings"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}}}},Bv={title:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"导入文档用于 RAG 增强对话"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"没有 embedding 模型"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"知识库存储"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"篇文档"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"个片段"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"已存储"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"RAG 存储"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"浏览"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处或点击浏览"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"支持 PDF、DOCX、TXT、Markdown、CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"文档"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"尚未导入任何文档"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"切换 RAG 上下文"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"移除文档"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"语义搜索"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索你的文档..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"没有搜索结果"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"搜索中..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},results:{t:0,b:{t:2,i:[{t:3}],s:"条结果"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"收起"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"显示完整片段"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"导入进度"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"导入中..."}}}},Uv={title:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"添加工具"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"从模板添加"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"尚未配置工具。添加一个以开始使用。"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"工具名称"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"工具描述"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"函数名称"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"实现"}},code:{t:0,b:{t:2,i:[{t:3}],s:"代码"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"测试工具"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"删除工具"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"代码面板"}},close:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},source:{t:0,b:{t:2,i:[{t:3}],s:"源码"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI 兼容的工具清单"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"复制"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"警告"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"还没有工具。创建你的第一个工具或从模板开始。"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ 新工具"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"从模板..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"导出训练数据 (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"工具库"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"从画布中移除所有工具"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"清除所有工具?"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"这将从画布中移除全部 "},{t:4,k:"count"},{t:3,v:" 个工具。此操作无法撤销。"}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"全部删除"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"在聊天中禁用"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"在聊天中启用"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"删除工具"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"还没有工具"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"已在聊天中启用"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"导出所有工具 (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"导出工具为 JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"工具模板"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"从可用的模板开始,然后自定义"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"实用工具"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"数据"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google(日历和 Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"自定义"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"函数名称"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"获取指定位置的当前天气"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"可视化构建器"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"原始 JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加参数"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"移除参数"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"保存工具"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"编辑工具"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"新工具"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"尚未定义工具。"}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加工具"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"成功"}},error:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},result:{t:0,b:{t:2,i:[{t:3}],s:"结果"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM 工具"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function_name"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"AI 草拟"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI 洞察"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"完成"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"失败"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI 修复"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"这个工具做什么?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"意图"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"描述这个工具应该做什么..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"生成"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"生成中..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"无参数"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"探测并选择"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"探测"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"请求头"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"请求头名称"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"值"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"标记为机密(在生成的代码中使用环境变量)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"请求体"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"端点"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"搜索端点..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配的端点"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI 建议"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"思考中..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"个字段"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"个字段"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"应用"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"映射"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"不同步"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"函数体 (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// 工具实现..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI 建议的修复(应用前请检查):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"应用修复"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"接受"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"忽略"}}}},qv={title:{t:0,b:{t:2,i:[{t:3}],s:"AI 训练"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"浏览、筛选和导出工具工坊中的训练数据。"}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"总数据对"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"已采纳"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"已拒绝"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"待处理"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"训练数据对"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"采纳率"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"按阶段"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"热门模型"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"搜索..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"搜索提示词..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"工具名称"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},status:{t:0,b:{t:2,i:[{t:3}],s:"状态"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"所有模型"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"所有工具"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"所有标签"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"所有状态"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:3,v:"已选择 "},{t:4,k:"count"},{t:3,v:" 项"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"导出 JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"标记为已采纳"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"标记为已拒绝"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"添加标签"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"标签名称..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消选择"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"添加标签..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"全选"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消全选"}},pairsShown:{t:0,b:{t:2,i:[{t:3,v:"显示 "},{t:4,k:"shown"},{t:3,v:" / 共 "},{t:4,k:"total"},{t:3,v:" 对"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配筛选条件的训练数据对。"}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"已采纳"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"已拒绝"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"用户提示词"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI 回复"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"编辑回复"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"删除数据对"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"确认删除?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"尚未收集到训练数据。"}},description:{t:0,b:{t:2,i:[{t:3}],s:"当你在工具工坊中使用 AI 功能(草拟生成、代码分析、自动映射和 AI 修复)时,训练数据对会自动生成。"}}}},$v={title:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"硬件、运行时和推理概览"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"检测硬件中..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"正在查询 CPU、内存、GPU 和存储"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"硬件检测不可用。请重启开发服务器以启用系统信息插件。"}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载系统报告 (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载系统信息 (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"操作系统"}},os:{t:0,b:{t:2,i:[{t:3}],s:"系统"}},version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},build:{t:0,b:{t:2,i:[{t:3}],s:"构建版本"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"架构"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"设备"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"制造商"}},model:{t:0,b:{t:2,i:[{t:3}],s:"型号"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"处理器"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"物理核心"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"逻辑处理器"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"最大频率"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"内存"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"总 RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"可用"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"已使用"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"显卡"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"适配器 RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"共享 / 未报告"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"驱动程序"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"存储"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"磁盘"}},total:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},free:{t:0,b:{t:2,i:[{t:3}],s:"可用"}},used:{t:0,b:{t:2,i:[{t:3}],s:"已使用"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"浏览器存储"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"持久化"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"尽力而为"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"扫描中..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"IndexedDB 配额"}},totalRecords:{t:0,b:{t:2,i:[{t:3,v:"共 "},{t:4,k:"count"},{t:3,v:" 条记录,分布于 "},{t:4,k:"databases"},{t:3,v:" 个数据库"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"清除所有数据"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"空"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 运行时"}},status:{t:0,b:{t:2,i:[{t:3}],s:"状态"}},version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"模型总存储"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"已加载模型"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"本次会话"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"尚无推理会话。"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"平均速度"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"已生成 tokens"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"使用的模型"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"活跃模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"当前内存中没有加载模型。发送一条消息即可加载。"}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"上下文"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"未安装任何模型。"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数量"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"量化"}},size:{t:0,b:{t:2,i:[{t:3}],s:"大小"}}}},Vv={title:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"对比插槽"}},description:{t:0,b:{t:2,i:[{t:3}],s:"每个插槽是一个模型 + 设置组合。可多次添加同一模型并使用不同设置来对比行为。"}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"添加插槽"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"移除插槽"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"可选的系统提示词..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"随机(留空)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"高级"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"重复惩罚"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"最大 tokens"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"默认"}},slotsConfigured:{t:0,b:{t:2,i:[{t:3,v:"已配置 "},{t:4,k:"count"},{t:3,v:" 个插槽"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"尚未配置插槽"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"添加一个插槽来选择模型和设置,或使用上方的快速启动预设开始。"}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加第一个插槽"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ 添加插槽 ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"快速启动:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"温度扫描"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"创建同一模型的 3 个插槽,温度分别为 0.2(专注)、0.7(均衡)和 1.2(创意)。观察温度如何影响相同提示词的输出。"}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"确定性配对"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"创建同一模型的 2 个插槽,使用相同 seed 但不同温度(0.3 和 1.0)。共享 seed 意味着输出的任何差异纯粹来自温度,而非随机性。"}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"语言对比"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"比较不同语言如何影响 token 成本和模型行为"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入提示词以跨插槽进行对比..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"结果"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"网格"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"差异"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"需要至少 2 个已完成的结果才能显示差异。"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"比较:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"与"}},only:{t:0,b:{t:2,i:[{t:3,v:"仅 "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"性能对比"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"首 token 时间"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"越低越好"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokens/秒"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"越高越好"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总 tokens"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"速度"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"检测到语言不匹配"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"您的提示词似乎是"},{t:4,k:"detected"},{t:3,v:"。"}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"目标语言:"},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"翻译为"},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"保留"},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"全部翻译"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Token 税"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示词 Tokens"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"翻译后的提示词"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"已翻译"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"暂不支持该语言"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"翻译中……根据模型大小可能需要一些时间"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"翻译质量取决于模型的语言能力。更大的模型能产生更好的翻译。"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"输入或粘贴"},{t:4,k:"lang"},{t:3,v:"提示词..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"已保存的对比"}},load:{t:0,b:{t:2,i:[{t:3}],s:"加载"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"暂无保存的对比"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},json:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"分享到 GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"分享你的发现"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"添加你的评论"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"你发现了什么?分享你的见解..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"报告预览"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"打开 GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"复制 Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"已复制!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"你将被重定向到 GitHub 查看并发布你的结果。"}}}},Kv={title:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"会话 "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"未找到会话。"}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"流"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"内省"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Agent 图"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"提示词"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"下载 Token 流 CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token 流"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"指标"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"输入你的提示词..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"此会话没有可用的推理数据。"}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"内省"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"示意性"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"工具调用"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"时间线"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"优化"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Agent 图"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"提示词检查器"}}}},Hv={title:{t:0,b:{t:2,i:[{t:3}],s:"发送反馈"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"感谢你的反馈!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"你的意见有助于改进 LLMxRay。"}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"反馈类型?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"缺陷"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"建议"}},question:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},other:{t:0,b:{t:2,i:[{t:3}],s:"其他"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"告诉我们你的想法..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"邮箱"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(可选 — 仅在你希望收到回复时填写)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"your@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"发送反馈"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"发送中..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"会包含应用上下文(页面、模型、系统)以帮助我们理解你的反馈。"}}},Gv={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"检测到质量问题"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"重复"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复包含过多重复短语"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"拒绝"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复似乎是拒绝回答"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"乱码"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复包含大量不可打印字符"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"空白"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复内容极少"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"截断"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复可能被提前中断"}}}},Wv={title:{t:0,b:{t:2,i:[{t:3}],s:"成本面板"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总令牌数"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"会话数"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"平均成本/会话"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"按模型的令牌使用量"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"每日使用量"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示令牌"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"完成令牌"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"成本趋势"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"完成"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"来源"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"请求延迟 (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"首个令牌时间 (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"令牌间延迟分布"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"桶边界遵循 OTel GenAI 规范。跨所有会话聚合。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"会话数据不足,无法进行百分位分析。"}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"按模型的错误"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"未记录任何错误。"}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型加载时长"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"次冷启动"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"橙色圆点表示冷启动(模型从磁盘加载,> 500ms)。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"这些成本是基于等效云API定价的估算值。Ollama在本地免费运行。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无使用数据。开始聊天以查看令牌使用量和成本估算。"}}},Jv={title:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"回复质量"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"延迟分析"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"可靠性"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"使用模式"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"参数影响"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"模型内存"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"逐轮质量"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"绿色 = 好 (3.5+),黄色 = 一般 (2-3.5),红色 = 差 (< 2)。基于字数、词汇多样性和非重复性评分。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"开始多轮对话以查看质量趋势。"}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"错误时间线"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"未记录任何错误。"}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"请求量"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"模型分布"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"活跃时段"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"温度 vs 速度"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"每个点代表一个会话,展示温度对生成速度的影响。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"至少需要2个带有显式温度设置的会话。"}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型加载历史"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"冷启动"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}}},Qv={common:Nv,dashboard:Iv,settings:Lv,benchmark:Fv,embeddings:zv,rag:Bv,tools:Uv,training:qv,system:$v,comparison:Vv,session:Kv,feedback:Hv,quality:Gv,cost:Wv,analytics:Jv},Yv={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"إكمال الكود"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"مرصد البروتوكولات"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"تدريب الذكاء الاصطناعي"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"التكاليف"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"مرصد النماذج اللغوية المحلية"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},session:{t:0,b:{t:2,i:[{t:3}],s:"الجلسة"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"إكمال الكود"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"مرصد البروتوكولات"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"التكاليف"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama متصل"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama غير متصل"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التحميل..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المعالجة..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"جاهز"}},error:{t:0,b:{t:2,i:[{t:3}],s:"خطأ"}},success:{t:0,b:{t:2,i:[{t:3}],s:"نجاح"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"قيد الانتظار"}},running:{t:0,b:{t:2,i:[{t:3}],s:"قيد التشغيل"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"مكتمل"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"فشل"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ البث"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"خامل"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"متصل"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"داكن"}},light:{t:0,b:{t:2,i:[{t:3}],s:"فاتح"}},system:{t:0,b:{t:2,i:[{t:3}],s:"النظام"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"المظهر"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},english:{t:0,b:{t:2,i:[{t:3}],s:"الإنجليزية"}},french:{t:0,b:{t:2,i:[{t:3}],s:"الفرنسية"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"حفظ"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},close:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"نسخ"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"تعديل"}},test:{t:0,b:{t:2,i:[{t:3}],s:"اختبار"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"مسح"}},send:{t:0,b:{t:2,i:[{t:3}],s:"إرسال"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف"}},add:{t:0,b:{t:2,i:[{t:3}],s:"إضافة"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"إزالة"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد"}},back:{t:0,b:{t:2,i:[{t:3}],s:"رجوع"}},next:{t:0,b:{t:2,i:[{t:3}],s:"التالي"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"إرسال"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"إعادة تعيين"}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},import:{t:0,b:{t:2,i:[{t:3}],s:"استيراد"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"الآن"}},minutesAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" دقيقة"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" دقائق"}]}]}},hoursAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" ساعة"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" ساعات"}]}]}},daysAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" يوم"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" أيام"}]}]}},monthsAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" شهر"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" أشهر"}]}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"token/ث"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"مللي ثانية"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"ث"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"بايت"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"كيلوبايت"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"ميغابايت"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"غيغابايت"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"أبعاد"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"اختر نموذجاً"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج متاحة"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ تحميل النماذج..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل نموذج"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات متاحة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نتائج"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"لا يوجد شيء هنا بعد"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"الإنجليزية"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"الفرنسية"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"العربية"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"الصينية"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"اليابانية"}},he:{t:0,b:{t:2,i:[{t:3}],s:"العبرية"}},de:{t:0,b:{t:2,i:[{t:3}],s:"الألمانية"}},es:{t:0,b:{t:2,i:[{t:3}],s:"الإسبانية"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"البرتغالية"}},it:{t:0,b:{t:2,i:[{t:3}],s:"الإيطالية"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"الروسية"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"الكورية"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"الهندية"}}}},Xv={title:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أرسل رسالة... (Shift+Enter لسطر جديد)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"أرسل رسالة أو الصق/أسقط صورة..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"الأوامر"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"إرفاق ملفات"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"إرفاق ملفات أو صور"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف التوليد"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"إرسال رسالة"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"نموذج رؤية — يمكنه معالجة الصور"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"أسقط الملفات لإرفاقها"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"محادثة جديدة"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ محادثة جديدة"}},history:{t:0,b:{t:2,i:[{t:3}],s:"السجل"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"سجل المحادثات"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"إعادة تسمية"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"حذف المحادثة"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"هل أنت متأكد من حذف هذه المحادثة؟"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"اسم العرض"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"محادثة جديدة"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الاسم"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"لا يوجد سجل محادثات"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد محادثات بعد."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"انقر لإعادة التسمية"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"عرض تفاصيل الجلسة"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"بدون عنوان"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" د"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" س"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" ي"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"جلسات"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الجلسات"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"متوسط السرعة"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي token"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"المحادثات الأخيرة"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"إعدادات المحادثة"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"عقوبة التكرار"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لعدد token"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"تعليمات تُرسل قبل المحادثة. تحدد سلوك النموذج وشخصيته."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"أنت مساعد مفيد..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة مفعّلة"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة معطّلة"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"مستندات"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"إدارة"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم استيعاب أي مستندات"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"إضافة مستندات"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"دقيق"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"إبداعي"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"غير محدود"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لطول الاستجابة. -1 = غير محدود."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 لغير محدود"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"نافذة السياق"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي السياق الذي يراه النموذج. أعلى = ذاكرة أكثر، أبطأ."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"أخذ العينات المتقدم"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"أخذ عينات نواة. أقل = تركيز أكبر على token الأكثر احتمالاً."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"يحد أخذ العينات إلى أعلى K من token في كل خطوة."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"يعاقب token التي ظهرت بالفعل. أعلى = تكرار أقل."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"أخذ عينات تكيّفي قائم على الحيرة. يتجاوز top_p/top_k عند التفعيل."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"بذرة ثابتة لمخرجات قابلة للتكرار. -1 = عشوائي."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 لعشوائي"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"تسلسلات الإيقاف"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثلاً Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"سلاسل نصية مفصولة بفواصل توقف التوليد عند إنتاجها."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"الأدوات"}},active:{t:0,b:{t:2,i:[{t:3}],s:"نشط"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تعريف أدوات بعد"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"إدارة في ورشة الأدوات..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التنزيل..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل"}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"النافذة المنزلقة"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ بآخر N رسالة فقط"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى للرسائل"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"تلخيص تلقائي"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"تلخيص الرسائل القديمة تلقائياً"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"عتبة التلخيص"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"التفعيل بعد"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"رسائل"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"حقائق المستخدم"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة المستخدم"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"حقائق /remember تُحقن في السياق"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"إضافة حقيقة"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة RAG"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة الرسائل (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"استرجاع الرسائل السابقة ذات الصلة عبر التضمينات"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"نموذج embedding"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"اختر نموذج embedding..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نماذج embedding. قم بتنزيل واحد:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"استرجاع أعلى"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"أعلى K نتيجة"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"الذاكرة"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"حقائق"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ محادثة مع نموذج محلي"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"تم اقتطاع الاستجابة — قم بزيادة num_predict في الإعدادات للحصول على استجابات أطول"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tok/ث"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"بداية باردة"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"تم تحميل النموذج من القرص لهذا الطلب (وقت التحميل > 500 مللي ثانية)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"تحميل نص"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"المحادثة والدردشة"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"النموذج والإعدادات"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"الميزات والتنقل"}}}},Zv={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"عام"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"التكاملات"}},about:{t:0,b:{t:2,i:[{t:3}],s:"حول"}},history:{t:0,b:{t:2,i:[{t:3}],s:"السجل"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"اتصال Ollama"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"رابط Ollama"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"اختبار"}},save:{t:0,b:{t:2,i:[{t:3}],s:"حفظ"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"تم الاتصال بنجاح"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"فشل الاتصال"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"متصل"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاختبار..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات الافتراضية"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"ما هي درجة الحرارة؟"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:'تتحكم درجة الحرارة في مدى "إبداعية" أو "عشوائية" إجابات النموذج.'}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"يختار دائماً الكلمة الأكثر احتمالاً. مثالي للحقائق والرياضيات والبرمجة."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"توازن جيد. هذه هي القيمة الافتراضية."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"أكثر مفاجأة وإبداعاً."}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"حتمي"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"مركّز"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"متوازن"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"إبداعي"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي جداً"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"جامح"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"ما هو طول السياق؟"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"مقدار المحادثة الذي يمكن للنموذج رؤيته دفعة واحدة، مقاساً بعدد token."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"سياق أكبر يستهلك المزيد من RAM/VRAM."}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" كلمة"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"اختر اللغة"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل نموذج جديد"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"اسم النموذج"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"هل أنت متأكد من حذف هذا النموذج؟"}},size:{t:0,b:{t:2,i:[{t:3}],s:"الحجم"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"التكميم"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"القدرات"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل النماذج"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"البحث في النماذج..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج مثبّتة. قم بتنزيل واحد من الكتالوج أدناه."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج تطابق بحثك."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل أي نموذج بالاسم"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"مثبّت"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد الحذف؟"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"حساب Google"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"ربط"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"قطع الاتصال"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"متصل بحساب"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"تكامل Google"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"اربط حساب Google الخاص بك لتفعيل أدوات التقويم و Gmail في ورشة الأدوات."}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"معرّف عميل OAuth2"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المصادقة..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"ربط حساب Google"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"عرض تعليمات الإعداد"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"إخفاء تعليمات الإعداد"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},license:{t:0,b:{t:2,i:[{t:3}],s:"الرخصة"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"المستودع"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"المكدس التقني"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"مرصد النماذج اللغوية المحلية"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"سجل الذكاء الاصطناعي المحلي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"أرشيف أبحاثك — جميع التجارب، قابلة للاستعلام"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"كيف يتم تخزين بياناتك"}},description:{t:0,b:{t:2,i:[{t:3}],s:"جميع بياناتك مخزّنة محلياً في متصفحك باستخدام IndexedDB — قاعدة بيانات دائمة ومدمجة في المتصفح. بياناتك تبقى محفوظة بعد إغلاق المتصفح وإعادة تشغيل الحاسوب وتحديثات البرامج. لا يتم إرسال أي شيء إلى أي خادم."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"البيانات الأصلية (اختبارات الأداء، المحادثات، المقارنات، التدريب) مخزّنة في 6 قواعد بيانات IndexedDB مخصصة — واحدة لكل ميزة. IndexedDB ليس تخزين جلسة — البيانات تبقى بشكل دائم حتى تختار حذفها بنفسك."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة بيانات السجل هي فهرس بحث موحّد يعمل بتقنية Dexie.js. تسجّل ملخصاً لكل تجربة لتمكين الاستعلام السريع وتحليل الاتجاهات. اعتبرها محرك بحث يغطي جميع أنشطتك في LLMxRay."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"كل شيء يبقى على جهازك. شيئان فقط يمكنهما حذف بياناتك: مسح بيانات الموقع من المتصفح، أو استخدام أزرار المسح في هذا التطبيق. لا حسابات، لا مزامنة سحابية، لا قياس عن بُعد."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"النوع"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"نطاق التاريخ"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"الوسوم"}},all:{t:0,b:{t:2,i:[{t:3}],s:"الكل"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 7 أيام"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 30 يوماً"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 90 يوماً"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"كل الأوقات"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" سجل"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد سجلات بعد. قم بتشغيل اختبار أداء أو مقارنة أو محادثة لبدء بناء أرشيف أبحاثك."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاتجاهات"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"النشاط (آخر 30 يوماً)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المستخدمة"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"إدارة قاعدة البيانات"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي السجلات"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"الحجم التقديري"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"تصدير الكل (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"تصدير المصفّى (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ للأبد"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 يوماً"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 يوماً"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"سنة واحدة"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"مسح السجل"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"سيؤدي هذا إلى حذف جميع سجلات السجل. البيانات الأخرى (اختبارات الأداء، المحادثات، إلخ) لن تتأثر."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار أداء"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"محادثة"}},training:{t:0,b:{t:2,i:[{t:3}],s:"تدريب"}},session:{t:0,b:{t:2,i:[{t:3}],s:"جلسة"}}}}},ty={title:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء الجراحي"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"تقييم النماذج بمجموعات أسئلة مختارة — ثقة logprob حقيقية، تشخيص لكل فئة"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"تفاصيل النتيجة"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"آخر نتيجة"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"سجل المقارنة"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"اختر النماذج"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"اختر مجموعات الاختبار"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"حجم السياق"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"بدء اختبار الأداء"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"الوقت المقدّر"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى للنماذج"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"محدد"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"مجموعات اختبار الأداء"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ استيراد مخصص"}},context:{t:0,b:{t:2,i:[{t:3}],s:"السياق:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"تشغيل اختبار الأداء"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"مخصص"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"التقدم"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"السؤال الحالي"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"آخر إجابة"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"صحيح"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"خاطئ"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"متوسط زمن الاستجابة"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الثقة"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم الفئة"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"يفكّر"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"قياسي"}},question:{t:0,b:{t:2,i:[{t:3}],s:"سؤال"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"بانتظار السؤال..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"بانتظار الإجابة الأولى..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ معالجة السؤال..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف اختبار الأداء"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم اختبار الأداء"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الإجمالي"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"مجموعات الاختبار"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"المتوقع:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة الإجمالية"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"لكل فئة"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"الثقة مقابل الدقة"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"تفاصيل الأسئلة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج بعد"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"الثقة مقابل الدقة — مخطط التشتت"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"مرتبك (ثقة منخفضة، خاطئ)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"معايَر (ثقة عالية، صحيح)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"مفرط الثقة (ثقة عالية، خاطئ)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"محظوظ (ثقة منخفضة، صحيح)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الوقت لكل فئة"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"ضغط السياق — تدهور الدقة"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"تفصيل الفئات"}},category:{t:0,b:{t:2,i:[{t:3}],s:"الفئة"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"صحيح"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الإجمالي"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الثقة"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"تفصيل كل سؤال"}},all:{t:0,b:{t:2,i:[{t:3}],s:"الكل"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"خاطئ"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},response:{t:0,b:{t:2,i:[{t:3}],s:"الاستجابة"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النتائج"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"مخطط رادار"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"خريطة حرارية"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"استئناف"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"حذف النتيجة"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"النتائج المحفوظة"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج محفوظة بعد"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"انقر للتحديد للمقارنة"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"غير مكتمل"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"عرض التفاصيل الكاملة"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"استئناف اختبار أداء غير مكتمل"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"تحميل CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"إنشاء مجموعة اختبار"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"تعديل مجموعة اختبار"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"اسم المجموعة"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثال: اختبار التاريخ الفرنسي"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ما الذي تختبره هذه المجموعة؟"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"الفئة الافتراضية"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"الأسئلة"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"إضافة سؤال"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"تعديل سؤال"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أسئلة بعد. أضف سؤالك الأول أو استخدم الذكاء الاصطناعي لتوليدها."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"السؤال"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اكتب سؤالك هنا..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"الخيارات"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"إضافة خيار"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"الإجابة الصحيحة"}},category:{t:0,b:{t:2,i:[{t:3}],s:"الفئة"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"الصعوبة"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"سهل"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"متوسط"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"صعب"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"حفظ المجموعة"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"إنشاء المجموعة"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" خيارات"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"التوليد بالذكاء الاصطناعي"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"الموضوع"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثال: التاريخ الفرنسي، برمجة Python، الكيمياء العضوية"}},count:{t:0,b:{t:2,i:[{t:3}],s:"عدد الأسئلة"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"الصعوبة"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"متنوع"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"توليد الأسئلة"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التوليد..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء التوليد"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"الأسئلة المولّدة"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"تحديد الكل"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء تحديد الكل"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"إضافة المحدد"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"تعذّر تحليل بعض الأسئلة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم توليد أسئلة صالحة. جرّب موضوعاً أو نموذجاً آخر."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"استيراد مجموعة اختبار"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"استيراد مجموعة اختبار أداء مخصصة"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"اسحب وأسقط ملفاً هنا"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"أسقط ملف .json هنا"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"تصفح"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"الحجم الأقصى"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"تنسيق غير صالح"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"تم الاستيراد بنجاح"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاستيراد..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"المتطلبات: JSON يحتوي على name ومصفوفة questions (2-500 عنصر)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"كل سؤال يحتاج: id، question، choices (2-6)، correctAnswer."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى 1 ميغابايت. ستتم إزالة وسوم HTML. سيتم إزالة تكرار المعرّفات."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"الملف كبير جداً (الحد الأقصى 1 ميغابايت)"}}}},ey={title:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج متاحة"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نماذج embedding. قم بتنزيل واحد: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة embedding"}},records:{t:0,b:{t:2,i:[{t:3}],s:"سجلات"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"ساحة تجربة embedding"}},description:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لتوليد متجه embedding الخاص به وفحص الأبعاد."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لعمل embedding..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"تضمين"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التضمين..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"عرض القيم الخام (أول 50 من "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"حاسبة التشابه"}},description:{t:0,b:{t:2,i:[{t:3}],s:"قارن نصين لقياس تشابههما الدلالي باستخدام مسافة cosine similarity."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"النص أ"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"النص ب"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"النص الأول..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"النص الثاني..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المقارنة..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},description:{t:0,b:{t:2,i:[{t:3}],s:"تضمين نفس النص بنموذجين لمقارنة كيفية تمثيلهما للمعنى."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"النموذج أ"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"النموذج ب"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لتضمينه بكلا النموذجين..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ مقارنة النماذج..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"التشابه بين النماذج — مدى تمثيل هذه النماذج لنفس النص بشكل متشابه."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"هذه النماذج تشفّر المعنى بطرق مختلفة جداً."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"توافق متوسط — النماذج تتشارك بعض البنية الدلالية."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"توافق عالٍ — هذه النماذج تمثل هذا النص بشكل متشابه."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"الأبعاد مختلفة ("},{t:4,k:"dimA"},{t:3,v:" مقابل "},{t:4,k:"dimB"},{t:3,v:") — لا يمكن حساب cosine similarity مباشرة."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"قارن الإحصائيات أعلاه لتقييم جودة تمثيل كل نموذج."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"الأبعاد"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"معيار L2"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"التناثر"}},time:{t:0,b:{t:2,i:[{t:3}],s:"الوقت"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات الأخيرة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}}}},sy={title:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"استيعاب المستندات لمحادثات مدعومة بـ RAG"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج embedding"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"تخزين قاعدة المعرفة"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"مستندات"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"أجزاء"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"مخزّن"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"تخزين RAG"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"اسحب وأسقط الملفات هنا"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"تصفح"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"أسقط الملفات هنا أو انقر للتصفح"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"يدعم PDF، DOCX، TXT، Markdown، CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"المستندات"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم استيعاب أي مستندات بعد"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"تبديل سياق RAG"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"إزالة المستند"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"البحث الدلالي"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"ابحث في مستنداتك..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج بحث"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ البحث..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"بحث"}},results:{t:0,b:{t:2,i:[{t:3}],s:"نتائج"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"عرض أقل"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"عرض الجزء كاملاً"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم الاستيعاب"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاستيعاب..."}}}},iy={title:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"إضافة أداة"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"إضافة من قالب"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات مهيّأة. أضف واحدة للبدء."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الأداة"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"وصف الأداة"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الدالة"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"التنفيذ"}},code:{t:0,b:{t:2,i:[{t:3}],s:"الشفرة"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداة"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"حذف الأداة"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"لوحة الشفرة"}},close:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}},source:{t:0,b:{t:2,i:[{t:3}],s:"المصدر"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"بيان أدوات متوافق مع OpenAI"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"نسخ"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"تحذيرات"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات بعد. أنشئ أداتك الأولى أو ابدأ من قالب."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ أداة جديدة"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"من قالب..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"تصدير بيانات التدريب (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"مكتبة الأدوات"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"إزالة جميع الأدوات من اللوحة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"مسح جميع الأدوات؟"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"سيؤدي هذا إلى إزالة جميع الأدوات ("},{t:4,k:"count"},{t:3,v:") من اللوحة. لا يمكن التراجع عن هذا."}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"حذف الكل"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"تعطيل للمحادثة"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"تفعيل للمحادثة"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"حذف الأداة"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات بعد"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"مفعّل للمحادثة"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"تصدير جميع الأدوات (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"تصدير الأداة كـ JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"قوالب الأدوات"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ بقالب جاهز وقم بتخصيصه"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"أدوات مساعدة"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"البيانات"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (التقويم و Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"مخصص"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الدالة"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"الحصول على الطقس الحالي لموقع معين"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"المنشئ المرئي"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"JSON خام"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة معامل"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"إزالة المعامل"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"حفظ الأداة"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الأداة"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"أداة جديدة"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تعريف أدوات بعد."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة أداة"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"نجاح"}},error:{t:0,b:{t:2,i:[{t:3}],s:"خطأ"}},result:{t:0,b:{t:2,i:[{t:3}],s:"النتيجة"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"المدة"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"أداة LLM"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function_name"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"مسودة بالذكاء الاصطناعي"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"رؤى الذكاء الاصطناعي"}},running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"تم"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"فشل"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"إصلاح بالذكاء الاصطناعي"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ماذا تفعل هذه الأداة؟"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"الغرض"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"صف ما يجب أن تفعله هذه الأداة..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"توليد"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التوليد..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"الاسم"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"النوع"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد معاملات"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"استكشاف واختيار"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"استكشاف"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"الترويسات"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اسم الترويسة"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"القيمة"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كسري (استخدام متغير بيئة في الشفرة المولّدة)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"جسم الطلب"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"نقاط النهاية"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"البحث في نقاط النهاية..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نقاط نهاية مطابقة"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"اقتراح الذكاء الاصطناعي"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"يفكّر..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"حقل"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"حقول"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"تطبيق"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"التعيينات"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"غير متزامن"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"الجسم (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// تنفيذ الأداة..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"إصلاح مقترح بالذكاء الاصطناعي (راجع قبل التطبيق):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"تطبيق الإصلاح"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"قبول"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"رفض"}}}},ny={title:{t:0,b:{t:2,i:[{t:3}],s:"تدريب الذكاء الاصطناعي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"تصفّح وانتقِ وصدّر بيانات التدريب من ورشة الأدوات."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الأزواج"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"مقبول"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"مرفوض"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"قيد الانتظار"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"أزواج التدريب"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"معدل القبول"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"حسب المرحلة"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"أفضل النماذج"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"بحث..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"البحث في الموجّهات..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الأداة"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"وسم"}},status:{t:0,b:{t:2,i:[{t:3}],s:"الحالة"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"جميع النماذج"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"جميع الأدوات"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"جميع الوسوم"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"جميع الحالات"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" محدد"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"تصدير JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كمقبول"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كمرفوض"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"إضافة وسم"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اسم الوسم..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد؟"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء التحديد"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"إضافة وسم..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"تحديد الكل"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء تحديد الكل"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" من "},{t:4,k:"total"},{t:3,v:" زوج معروض"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أزواج تدريب تطابق مرشحاتك."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"مقبول"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"مرفوض"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه المستخدم"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"استجابة الذكاء الاصطناعي"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الاستجابة"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"الوسوم"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"حذف الزوج"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد الحذف؟"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم جمع بيانات تدريب بعد."}},description:{t:0,b:{t:2,i:[{t:3}],s:"تُنشأ أزواج التدريب تلقائياً عند استخدام ميزات الذكاء الاصطناعي في ورشة الأدوات (توليد المسودات، تحليل الشفرة، التعيين التلقائي، وإصلاح الذكاء الاصطناعي)."}}}},oy={title:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"نظرة عامة على العتاد وبيئة التشغيل والاستدلال"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ اكتشاف العتاد..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"الاستعلام عن CPU والذاكرة و GPU والتخزين"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"اكتشاف العتاد غير متاح. يرجى إعادة تشغيل خادم التطوير لتفعيل إضافة معلومات النظام."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل تقرير النظام (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل معلومات النظام (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"نظام التشغيل"}},os:{t:0,b:{t:2,i:[{t:3}],s:"نظام التشغيل"}},version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},build:{t:0,b:{t:2,i:[{t:3}],s:"البناء"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"البنية"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"الجهاز"}},name:{t:0,b:{t:2,i:[{t:3}],s:"الاسم"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"الشركة المصنّعة"}},model:{t:0,b:{t:2,i:[{t:3}],s:"الطراز"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"المعالج"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"الأنوية الفيزيائية"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"المعالجات المنطقية"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"أقصى تردد"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"الذاكرة"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"متاح"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"قيد الاستخدام"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"الرسومات"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة المحوّل"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"مشتركة / غير مُبلّغ عنها"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"برنامج التشغيل"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"التخزين"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"القرص"}},total:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},free:{t:0,b:{t:2,i:[{t:3}],s:"متاح"}},used:{t:0,b:{t:2,i:[{t:3}],s:"مستخدم"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"تخزين المتصفح"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"دائم"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"أفضل جهد"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الفحص..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"حصة IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" سجل إجمالي عبر "},{t:4,k:"databases"},{t:3,v:" قاعدة بيانات"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح جميع البيانات"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"فارغ"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"بيئة تشغيل Ollama"}},status:{t:0,b:{t:2,i:[{t:3}],s:"الحالة"}},version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي تخزين النماذج"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المحمّلة"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"هذه الجلسة"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد جلسات استدلال بعد."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"متوسط السرعة"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"token المولّدة"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المستخدمة"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"النماذج النشطة"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج محمّلة حالياً في الذاكرة. أرسل رسالة لتحميل واحد."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"السياق"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج مثبّتة."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"التكميم"}},size:{t:0,b:{t:2,i:[{t:3}],s:"الحجم"}}}},ry={title:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"خانات المقارنة"}},description:{t:0,b:{t:2,i:[{t:3}],s:"كل خانة هي مزيج من نموذج + إعدادات. أضف نفس النموذج عدة مرات بإعدادات مختلفة لمقارنة السلوك."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"إضافة خانة"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"إزالة خانة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه نظام اختياري..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"الخيارات"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي (اتركه فارغاً)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"متقدم"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"عقوبة التكرار"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لعدد token"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"افتراضي"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" خانة مهيّأة"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تهيئة خانات بعد"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"أضف خانة لاختيار نموذج وإعدادات، أو استخدم إعداداً مسبقاً للبدء السريع أعلاه."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة الخانة الأولى"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ إضافة خانة ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"بداية سريعة:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"مسح درجة الحرارة"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"ينشئ 3 خانات لنفس النموذج بدرجات حرارة 0.2 (مركّز)، 0.7 (متوازن)، و 1.2 (إبداعي). شاهد كيف تغيّر درجة الحرارة المخرجات لنفس الموجه."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"زوج حتمي"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"ينشئ خانتين لنفس النموذج بنفس البذرة لكن بدرجات حرارة مختلفة (0.3 و 1.0). البذرة المشتركة تعني أن أي اختلاف في المخرجات ناتج فقط عن درجة الحرارة وليس العشوائية."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة اللغات"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"قارن كيف تؤثر اللغات المختلفة على تكلفة tokens وسلوك النموذج"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل موجهاً للمقارنة عبر الخانات..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"النتائج"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"شبكة"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"الفرق"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"يلزم نتيجتان مكتملتان على الأقل لعرض الفرق."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"مقابل"}},only:{t:0,b:{t:2,i:[{t:4,k:"label"},{t:3,v:" فقط"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة الأداء"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"وقت أول token"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"الأقل أفضل"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"token/ث"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"الأعلى أفضل"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي token"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"السرعة"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"المدة"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"تم اكتشاف عدم تطابق اللغة"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"يبدو أن موجهك مكتوب بال"},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"الهدف: "},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"ترجمة إلى "},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"الإبقاء على "},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"ترجمة الكل"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"ضريبة Tokens"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens الإدخال"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"النص المترجم"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"مترجم"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"اللغة غير مدعومة بعد"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الترجمة... قد يستغرق ذلك بعض الوقت حسب حجم النموذج"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"جودة الترجمة تعتمد على قدرات النموذج اللغوية. النماذج الأكبر تنتج ترجمات أفضل."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"اكتب أو الصق النص بـ"},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"المقارنات المحفوظة"}},load:{t:0,b:{t:2,i:[{t:3}],s:"تحميل"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد مقارنات محفوظة بعد"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},json:{t:0,b:{t:2,i:[{t:3}],s:"تحميل كـ JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل كـ Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"مشاركة في GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"شارك اكتشافاتك"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"أضف تعليقك"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ماذا اكتشفت؟ شارك ملاحظاتك..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"معاينة التقرير"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"فتح GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"نسخ Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"تم النسخ!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"ستتم إعادة توجيهك إلى GitHub لمراجعة ونشر نتائجك."}}}},ay={title:{t:0,b:{t:2,i:[{t:3}],s:"الجلسة"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"الجلسة "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على الجلسة."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"البث"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"الاستبطان"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"الأدوات"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"رسم الوكيل البياني"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"الموجه"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"تحميل CSV بث token"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"بث token"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"المقاييس"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل الموجه الخاص بك..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"لا تتوفر بيانات استدلال لهذه الجلسة."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستبطان"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"توضيحي"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"استدعاءات الأدوات"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"الخط الزمني"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"تحسين"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"رسم الوكيل البياني"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"فاحص الموجه"}}}},ly={title:{t:0,b:{t:2,i:[{t:3}],s:"إرسال ملاحظات"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"شكراً لملاحظاتك!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"مساهمتك تساعد في تحسين LLMxRay."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"ما نوع الملاحظة؟"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"خلل"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"فكرة"}},question:{t:0,b:{t:2,i:[{t:3}],s:"سؤال"}},other:{t:0,b:{t:2,i:[{t:3}],s:"أخرى"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أخبرنا بما يدور في ذهنك..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"البريد الإلكتروني"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(اختياري — فقط إذا أردت الحصول على رد)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"بريدك@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"إرسال الملاحظات"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الإرسال..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"يتضمن سياق التطبيق (الصفحة، النموذج، النظام) لمساعدتنا في فهم ملاحظاتك."}}},cy={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"تم اكتشاف مشاكل في الجودة"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"متكرر"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على عبارات مكررة بشكل مفرط"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"رفض"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"يبدو أن الرد هو رفض"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"مشوش"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على نسبة عالية من الأحرف غير القابلة للطباعة"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"فارغ"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على محتوى قليل جداً"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"مقطوع"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"ربما تم اقتطاع الرد"}}}},uy={title:{t:0,b:{t:2,i:[{t:3}],s:"لوحة التكاليف"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الرموز"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"متوسط التكلفة/جلسة"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"استخدام الرموز حسب النموذج"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"الاستخدام اليومي"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"رموز المطالبة"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"رموز الإكمال"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"اتجاه التكلفة"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"المطالبة"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"الإكمال"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"المصدر"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"زمن الاستجابة (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"الوقت حتى أول رمز (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"توزيع التأخير بين الرموز"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"حدود المجموعات تتبع اتفاقيات OTel GenAI. مجمعة عبر جميع الجلسات."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات كافية لتحليل النسب المئوية."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"الأخطاء حسب النموذج"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تسجيل أي أخطاء."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"مدة تحميل النموذج"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"بدايات باردة"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"تشير النقاط البرتقالية إلى البدايات الباردة (النموذج محمل من القرص، > 500 مللي ثانية)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"هذه التكاليف تقديرات مبنية على أسعار واجهات برمجة التطبيقات السحابية المكافئة. يعمل Ollama محلياً بدون تكلفة."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات استخدام بعد. ابدأ المحادثة لرؤية استخدام الرموز وتقديرات التكلفة."}}},by={title:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"جودة الاستجابة"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"تحليل التأخير"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"الموثوقية"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"أنماط الاستخدام"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"تأثير الإعدادات"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة النموذج"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"الجودة عبر الأدوار"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"أخضر = جيد (3.5+)، أصفر = متوسط (2-3.5)، أحمر = ضعيف (< 2)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ محادثة متعددة الأدوار لرؤية اتجاهات الجودة."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"الجدول الزمني للأخطاء"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تسجيل أي أخطاء."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"حجم الطلبات"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"توزيع النماذج"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"ساعات النشاط"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"الحرارة مقابل السرعة"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"كل نقطة تمثل جلسة. يوضح تأثير درجة الحرارة على سرعة التوليد."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"يلزم جلستان على الأقل مع إعدادات حرارة صريحة."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"سجل تحميل النموذج"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"بارد"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}}},dy={common:Yv,dashboard:Xv,settings:Zv,benchmark:ty,embeddings:ey,rag:sy,tools:iy,training:ny,system:oy,comparison:ry,session:ay,feedback:ly,quality:cy,cost:uy,analytics:by},my={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ćaskanje - diagnostika"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Poredi"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđavanja"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Alatnica"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna koda"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI obuka"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"Lokalni LLM posmatrač"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ćaskanje - diagnostika"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Poredi modela"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđavanja"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Alatnica"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna koda"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama povezana"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama odspojena"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Obrada..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Spremno"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Greška"}},success:{t:0,b:{t:2,i:[{t:3}],s:"Uspeh"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Čeka"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Radi"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"Završeno"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Neuspelo"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Strimovanje"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"Neaktivan"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"Povezano"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"Odspojeno"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"Tamno"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Svetlo"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Sistem"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"Tema"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"Jezik"}},english:{t:0,b:{t:2,i:[{t:3}],s:"Engleski"}},french:{t:0,b:{t:2,i:[{t:3}],s:"Francuski"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Izbriši"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Uredi"}},test:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Očisti"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Zastani"}},add:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Nazad"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Sledeće"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Podnesi"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Resetuj"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Export"}},import:{t:0,b:{t:2,i:[{t:3}],s:"Import"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"Samo sada"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" minuta pre"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" sati pre"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" dana pre"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" meseci pre"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni/s"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"ms"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"s"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"B"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"KB"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"MB"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"GB"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"Dimenzije"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi model"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema dostupnih modela"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje modela..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"Povuci model"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema rezultata"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"Još ništa ovde"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"Engleski"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Francuski"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"Arapski"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"Kineski"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"Japanski"}},he:{t:0,b:{t:2,i:[{t:3}],s:"Hebrejski"}},de:{t:0,b:{t:2,i:[{t:3}],s:"Nemački"}},es:{t:0,b:{t:2,i:[{t:3}],s:"Španski"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"Portugalski"}},it:{t:0,b:{t:2,i:[{t:3}],s:"Italijanski"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"Ruski"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"Korejski"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"Hindi"}}}},fy={title:{t:0,b:{t:2,i:[{t:3}],s:"Dijagnostika četa"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku... (Shift+Enter za novi red)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku ili nalepi/prevuci sliku..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"Komande"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"Priloži fajlove"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"Priloži fajlove ili slike"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi generisanje"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"Vizuelni model — može da obrađuje slike"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Prevuci fajlove za prilaganje"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"Novi čet"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ Novi čet"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Istorija"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"Istorija četa"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"Preimenuj"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"Obriši čet"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Da li ste sigurni da želite da obrišete ovaj razgovor?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"Prikazano ime"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"Novi razgovor"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"Uredi ime"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"Nema istorije razgovora"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"Još nema razgovora."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"Klikni da preimenuješ"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži detalje sesije"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"Bez naslova"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"m"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"h"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"d"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"sesije"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno sesija"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosečan TTF"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Prosečna brzina"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno tokena"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"Skorašnji razgovori"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja četa"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Kazna ponavljanja"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Dužina konteksta"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno tokena"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"Instrukcije poslate pre razgovora. Podešavaju ponašanje i personu modela."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Vi ste koristan asistent..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"KB uključen"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"KB isključen"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"Dokumenti"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Upravljaj"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"Nema ubačenih dokumenata"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj dokumente"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"Precizno"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"Kreativno"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"Neograničeno"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna dužina odgovora. -1 = neograničeno."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 za neograničeno"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"Prozor konteksta"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan kontekst koji model vidi. Veće = više memorije, sporije."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"Napredno uzorkovanje"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"Nucleus sampling. Niže = fokusiranije na verovatne tokene."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"Ograniči uzorkovanje na top K tokena u svakom koraku."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"Kažnjava tokene koji su se već pojavili. Više = manje ponavljanja."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Onemogućeno"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"Adaptivno uzorkovanje zasnovano na perpleksitetu. Zamenjuje top-p/top-k kada je uključeno."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Nasumično"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"Fiksni seed za reproduktivne rezultate. -1 = nasumično."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 za nasumično"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"Stop sekvence"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr. Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"Stringovi odvojeni zarezima koji zaustavljaju generisanje kada se pojave."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Alati"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Aktivno"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"Još nema definisanih alata"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Upravljaj u radionici alata..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"Povlačenje..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Povuci"}},thinking:{label:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},off:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},on:{t:0,b:{t:2,i:[{t:3}],s:"Uključeno"}},max:{t:0,b:{t:2,i:[{t:3}],s:"Max"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Uključite interno rezonovanje modela. Max traži najveći budžet. Ignoriše se ako model ne podržava."}},modelSupportsHint:{t:0,b:{t:2,i:[{t:3}],s:"podržano u modelu"}}},responseFormat:{label:{t:0,b:{t:2,i:[{t:3}],s:"Format odgovora"}},none:{t:0,b:{t:2,i:[{t:3}],s:"Slobodan tekst"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Validan JSON (bilo koji oblik)"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"JSON Schema (strogo)"}},freeForm:{t:0,b:{t:2,i:[{t:3}],s:"Slobodan"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Prinudi strukturisan izlaz. JSON Schema ograničava oblik — korisno za parsiranje."}},schemaPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nalepi JSON Schema objekat…"}},schemaHint:{t:0,b:{t:2,i:[{t:3}],s:"Validan JSON Schema. Šalje se kao `format` polje na /api/chat."}}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"Klizni prozor"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Zadrži samo poslednjih N poruka"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno poruka"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Auto-sumarizacija"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"Automatski sumiraj starije poruke"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"Prag sumarizacije"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni nakon"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"Poruke"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"Činjenice o korisniku"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"Korisničke memorije"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/remember činjenice ubačene u kontekst"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj činjenicu"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG memorija"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"Memorija poruka (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi relevantne stare poruke putem embeddinga"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding model"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi embedding model..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema pronađenih embedding modela. Povuci jedan:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi top"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K rezultata"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"Činjenice"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"Započni razgovor sa lokalnim modelom"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor je skraćen — povećaj num_predict u podešavanjima za duže odgovore"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tok/s"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"Hladan start"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"Model je učitan sa diska za ovaj zahtev (vreme učitavanja > 500ms)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi tekst"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"Čet i razgovor"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"Model i podešavanja"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"Funkcije i navigacija"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},descriptions:{help:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži sve dostupne komande"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Obriši trenutni razgovor"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Započni novu sesiju četa"}},summarize:{t:0,b:{t:2,i:[{t:3}],s:"Zatraži od modela da sažme razgovor"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Izvezi razgovor kao JSON ili tekst"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj poslednji odgovor asistenta"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži skorašnje razgovore"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Promeni model ili prikaži dostupne modele"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Postavi sistemski prompt"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Postavi temperaturu (0-2)"}},top_p:{t:0,b:{t:2,i:[{t:3}],s:"Postavi top-p / nucleus sampling (0-1)"}},top_k:{t:0,b:{t:2,i:[{t:3}],s:"Postavi top-k uzorkovanje (1-100)"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Postavi veličinu prozora konteksta"}},repeat_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Postavi kaznu ponavljanja (1.0-2.0)"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Postavi seed za reproduktivnost (-1 za nasumično)"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Postavi stop sekvence (odvojene zarezima)"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Postavi mirostat mod (0=isključen, 1=v1, 2=v2)"}},format:{t:0,b:{t:2,i:[{t:3}],s:"Uključi/isključi JSON format izlaza"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Vrati sva podešavanja na podrazumevana"}},rag:{t:0,b:{t:2,i:[{t:3}],s:"Uključi/isključi RAG kontekst"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Otvori panel podešavanja alata"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži status Ollama veze i informacije o modelu"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži broj tokena za trenutnu sesiju"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži prosečnu brzinu generisanja po sesijama"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Idi na stranicu Uporedi"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži detalje trenutne sesije"}},remember:{t:0,b:{t:2,i:[{t:3}],s:"Zapamti činjenicu o tebi između razgovora"}},forget:{t:0,b:{t:2,i:[{t:3}],s:"Zaboravi prethodno zapamćenu činjenicu"}},memories:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži sve zapamćene činjenice"}}},notifications:{helpHeader:{t:0,b:{t:2,i:[{t:3}],s:"Dostupne komande:"}},unknownCommand:{t:0,b:{t:2,i:[{t:3,v:"Nepoznata komanda: /"},{t:4,k:"name"},{t:3,v:". Ukucaj /help da vidiš dostupne komande."}]}},conversationCleared:{t:0,b:{t:2,i:[{t:3}],s:"Razgovor obrisan."}},newChatStarted:{t:0,b:{t:2,i:[{t:3}],s:"Novi čet pokrenut."}},nothingToSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Nema šta da se sažme — razgovor je prazan."}},conversationExported:{t:0,b:{t:2,i:[{t:3,v:"Razgovor izvezen kao "},{t:4,k:"format"},{t:3,v:"."}]}},historyHint:{t:0,b:{t:2,i:[{t:3}],s:"Skroluj do sekcije skorašnjih razgovora ili započni /new čet."}},availableModels:{t:0,b:{t:2,i:[{t:3,v:"Dostupni modeli: "},{t:4,k:"list"},{t:3,v:`
|
|
20
|
+
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Copié dans le presse-papiers."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Aucune réponse de l’assistant à copier."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Aucune conversation à exporter."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"Format JSON basculé. Cela affecte la prochaine requête."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(aucun)"}}}}},yv={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"Général"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modèles"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Intégrations"}},about:{t:0,b:{t:2,i:[{t:3}],s:"À propos"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Historique"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Connexion Ollama"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"URL Ollama"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Tester"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Connexion réussie"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Échec de la connexion"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Connecté"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Test en cours..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Déconnecté"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres par défaut"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Température"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Qu'est-ce que la température ?"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"La température contrôle le niveau de « créativité » ou d'« aléatoire » des réponses du modèle."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Choisit toujours le mot le plus probable. Idéal pour les faits, les maths et le code."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Un bon équilibre. C'est la valeur par défaut."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Plus surprenant et créatif."}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Déterministe"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Focalisé"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Équilibré"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Créatif"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Très aléatoire"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Extrême"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Longueur de contexte"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Qu'est-ce que la longueur de contexte ?"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"La quantité de conversation que le modèle peut voir en une fois, mesurée en tokens."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"Un contexte plus grand utilise plus de RAM/VRAM."}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" mots"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Sélectionner la langue"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger un nouveau modèle"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Nom du modèle"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Êtes-vous sûr de vouloir supprimer ce modèle ?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Taille"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Quantification"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Capacités"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger des modèles"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des modèles..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle installé. Téléchargez-en un depuis le catalogue ci-dessous."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle ne correspond à votre recherche."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger un modèle par nom"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Installé"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer la suppression ?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Compte Google"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Connecter"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Déconnecter"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Connecté en tant que"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Intégration Google"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Connectez votre compte Google pour activer les outils Agenda et Gmail dans l'Atelier d'outils."}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"Client ID OAuth2"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Authentification en cours..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Non connecté"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Connecter un compte Google"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Afficher les instructions de configuration"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Masquer les instructions de configuration"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Licence"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Dépôt"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Stack technique"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Observatoire local de LLM"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Historique IA local"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Votre archive de recherche — toutes les expériences, interrogeables"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comment vos données sont stockées"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Toutes vos données sont stockées localement dans votre navigateur via IndexedDB — une base de données permanente et native du navigateur. Vos données survivent à la fermeture du navigateur, au redémarrage de l’ordinateur et aux mises à jour logicielles. Rien n’est envoyé à un serveur."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Les données d’origine (benchmarks, conversations, comparaisons, entraînements) sont stockées dans 6 bases IndexedDB dédiées — une par fonctionnalité. IndexedDB n’est PAS un stockage de session — les données persistent de manière permanente jusqu’à ce que vous choisissiez de les supprimer."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"La base Historique est un index de recherche unifié alimenté par Dexie.js. Elle enregistre un résumé de chaque expérience pour permettre des requêtes rapides et l’analyse des tendances. Considérez-la comme un moteur de recherche sur toute votre activité LLMxRay."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Tout reste sur votre machine. Seules deux actions peuvent supprimer vos données : effacer les données du site dans le navigateur, ou utiliser les boutons Effacer de cette application. Il n’y a ni compte, ni synchronisation cloud, ni télémétrie."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Langue"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Période"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Étiquettes"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Tous"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"7 derniers jours"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"30 derniers jours"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"90 derniers jours"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Tout"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" entrées"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Aucune entrée d'historique pour le moment. Lancez un benchmark, une comparaison ou un chat pour commencer à construire votre archive de recherche."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Tendances"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Activité (30 derniers jours)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modèles utilisés"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"Gestion de la base de données"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Total des entrées"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille estimée"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout exporter (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Exporter le filtré (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Rétention"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Conserver indéfiniment"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 jours"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 jours"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"1 an"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Effacer l'historique"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Cela supprimera toutes les entrées d'historique. Les autres données (benchmarks, conversations, etc.) ne sont pas affectées."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Chat"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Entraînement"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Session"}}}}},kv={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark chirurgical"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Evaluez les modeles avec des ensembles de questions selectionnes - confiance logprob reelle, diagnostics par categorie"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Details du resultat"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Dernier resultat"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Registre de comparaison"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Selectionner les modeles"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Selectionner les suites"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille du contexte"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Lancer le benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Temps estime"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Modeles maximum"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeles"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"selectionne(s)"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Suites de benchmark"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Importer personnalise"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Contexte :"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Lancer le benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"personnalise"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Progression"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Question en cours"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Derniere reponse"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Correct"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Incorrect"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Latence moyenne"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Confiance moyenne"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Progression par categorie"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Arreter"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Reflexion"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Standard"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"En attente de la question..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"En attente de la premiere reponse..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Traitement de la question..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Arreter le benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Progression du benchmark"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Total moyen"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Suites"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Attendu :"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision globale"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Par categorie"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Confiance vs precision"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Details des questions"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun resultat pour le moment"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Confiance vs Precision - Nuage X-Ray"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Confus (faible conf, faux)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Calibre (haute conf, juste)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Surconfiant (haute conf, faux)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Chanceux (faible conf, juste)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Temps total par categorie"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Pression de contexte - Degradation de precision"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Repartition par categorie"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Categorie"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Correct"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Total moyen"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Confiance moyenne"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Detail par question"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Tout"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Faux"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Reponse"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Precision"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les resultats"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Graphique radar"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Carte thermique"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Reprendre"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le resultat"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Resultats sauvegardes"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun resultat sauvegarde"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Cliquez pour selectionner pour la comparaison"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Incomplet"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Voir les details complets"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Reprendre le benchmark incomplet"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Créer une suite de benchmark"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la suite de benchmark"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la suite"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ex. Quiz d'histoire de France"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Que teste cette suite ?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Catégorie par défaut"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Questions"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une question"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la question"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Aucune question. Ajoutez votre première question ou utilisez l'IA pour en générer."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Tapez votre question ici..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Choix"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un choix"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Réponse correcte"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Catégorie"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Difficulté"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Facile"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Moyen"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Difficile"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer la suite"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Créer une suite"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" choix"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Générer avec l'IA"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Sujet"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ex. Histoire de France, Programmation Python, Chimie organique"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Nombre de questions"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Difficulté"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Mixte"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer les questions"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Génération en cours..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler la génération"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Questions générées"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout sélectionner"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout désélectionner"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter la sélection"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Certaines questions n'ont pas pu être analysées"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucune question valide générée. Essayez un autre sujet ou modèle."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Importer une suite"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Importer une suite de benchmark personnalisee"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Glissez-deposez un fichier ici"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Deposez un fichier .json ici"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Parcourir"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Taille maximale"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Format invalide"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Importation reussie"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Importation en cours..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Requis : JSON avec nom, tableau de questions (2-500 elements)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Chaque question necessite : id, question, choix (2-6), correctAnswer."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Max 1 Mo. Les balises HTML seront supprimees. Les IDs seront dedupliques."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Fichier trop volumineux (max 1 Mo)"}}}},Sv={title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle disponible"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle d'embedding trouvé. Téléchargez-en un : ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire d'embedding"}},records:{t:0,b:{t:2,i:[{t:3}],s:"enregistrements"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aire de jeu Embedding"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte pour générer son vecteur d'embedding et inspecter les dimensions."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte à encoder..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Encoder"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Encodage en cours..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Afficher les valeurs brutes (50 premières sur "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Calculateur de similarité"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Comparez deux textes pour mesurer leur similarité sémantique via la distance cosinus."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Texte A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Texte B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Premier texte..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Deuxième texte..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison en cours..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison de modèles"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Encodez le même texte avec deux modèles pour comparer leur représentation du sens."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Modèle A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Modèle B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez du texte à encoder avec les deux modèles..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les modèles"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison des modèles..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Similarité inter-modèles — à quel point ces modèles représentent le même texte de manière similaire."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Ces modèles encodent le sens très différemment."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Accord modéré — les modèles partagent une certaine structure sémantique."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Accord élevé — ces modèles représentent ce texte de manière similaire."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Les dimensions diffèrent ("},{t:4,k:"dimA"},{t:3,v:" vs "},{t:4,k:"dimB"},{t:3,v:") — la similarité cosinus directe est impossible."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Comparez les statistiques ci-dessus pour évaluer la qualité de représentation de chaque modèle."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Dims"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"Norme L2"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Parcimonie"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Temps"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings récents"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}}}},Tv={title:{t:0,b:{t:2,i:[{t:3}],s:"Base de connaissances"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Ingérez des documents pour des conversations alimentées par RAG"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle d'embedding"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage de la base de connaissances"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"documents"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"fragments"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"stockés"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"Stockage RAG"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Glissez-déposez des fichiers ici"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Parcourir"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Déposez des fichiers ici ou cliquez pour parcourir"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Formats : PDF, DOCX, TXT, Markdown, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Documents"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Aucun document ingéré pour le moment"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Activer/désactiver le contexte RAG"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le document"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Recherche sémantique"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher dans vos documents..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucun résultat de recherche"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Recherche en cours..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher"}},results:{t:0,b:{t:2,i:[{t:3}],s:"résultats"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Réduire"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Afficher le fragment complet"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Progression de l'ingération"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ingération en cours..."}}}},_v={title:{t:0,b:{t:2,i:[{t:3}],s:"Atelier d'outils"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un outil"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter depuis un modèle"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil configuré. Ajoutez-en un pour commencer."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'outil"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Description de l'outil"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la fonction"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Implémentation"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Code"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Tester l'outil"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer l'outil"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Panneau de code"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Fermer"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Source"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schéma"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"Manifeste d'outils compatible OpenAI"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Copier"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Avertissements"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil pour le moment. Créez votre premier outil ou partez d'un modèle."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Nouvel outil"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Depuis un modèle..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Exporter les données d'entraînement (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Bibliothèque d'outils"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer tous les outils du canevas"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Effacer tous les outils ?"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"Cela supprimera les "},{t:4,k:"count"},{t:3,v:" outil(s) du canevas. Cette action est irréversible."}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout supprimer"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Désactiver pour le chat"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Activer pour le chat"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer l'outil"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"activé(s) pour le chat"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Exporter tous les outils (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Exporter l'outil en JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles d'outils"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Commencez avec un modèle fonctionnel et personnalisez-le"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Utilitaire"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Données"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (Agenda et Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Personnalisé"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de la fonction"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Obtenir la météo actuelle pour un lieu donné"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Constructeur visuel"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"JSON brut"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter un paramètre"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer le paramètre"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Enregistrer l'outil"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Modifier l'outil"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Nouvel outil"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Aucun outil défini pour le moment."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter un outil"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Exécution en cours..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Succès"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Erreur"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Résultat"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Outil LLM"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"nom_de_fonction"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Brouillon IA"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"Analyses IA"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Exécution..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Terminé"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Échoué"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"Correction IA"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Description"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Que fait cet outil ?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Intention"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Décrivez ce que cet outil doit faire..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Génération..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"nom"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"type"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Aucun paramètre"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Sonder et choisir"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Sonder"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"En-têtes"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'en-tête"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"valeur"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Marquer comme secret (utiliser une variable d'env dans le code généré)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Corps de la requête"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Points d'accès"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des endpoints..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Aucun endpoint correspondant"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"Suggestion IA"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Réflexion..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"champ"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"champs"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Appliquer"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Correspondances"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Désynchronisé"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Corps (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// Implémentation de l'outil..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"Correction suggérée par l'IA (vérifiez avant d'appliquer) :"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Appliquer la correction"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Fermer"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Accepter"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Rejeter"}}}},wv={title:{t:0,b:{t:2,i:[{t:3}],s:"Entraînement IA"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Parcourez, organisez et exportez vos données d'entraînement depuis l'Atelier d'outils."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Total de paires"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"acceptées"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"rejetées"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"En attente"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Paires d'entraînement"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Taux d'acceptation"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"Par phase"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Meilleurs modèles"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Rechercher des prompts..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'outil"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Étiquette"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Statut"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Tous les modèles"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Tous les outils"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Toutes les étiquettes"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Tous les statuts"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" sélectionné(s)"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Exporter JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Marquer accepté"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Marquer rejeté"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une étiquette"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nom de l'étiquette..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer ?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Désélectionner"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter une étiquette..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout sélectionner"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout désélectionner"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" sur "},{t:4,k:"total"},{t:3,v:" paires affichées"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Aucune paire d'entraînement ne correspond à vos filtres."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Accepté"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Rejeté"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt utilisateur"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"Réponse IA"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Modifier la réponse"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Étiquettes"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Supprimer la paire"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Confirmer la suppression ?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée d'entraînement collectée pour le moment."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Les paires d'entraînement sont générées automatiquement lorsque vous utilisez les fonctionnalités IA dans l'Atelier d'outils (génération de brouillon, analyse de code, auto-mapping et correction IA)."}}}},Pv={title:{t:0,b:{t:2,i:[{t:3}],s:"Mon système"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Matériel, environnement d'exécution et aperçu de l'inférence"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Actualiser"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Détection du matériel..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Interrogation du CPU, de la mémoire, du GPU et du stockage"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Détection du matériel indisponible. Veuillez redémarrer le serveur de développement pour activer le plugin d'information système."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger rapport système (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger infos système (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Système d'exploitation"}},os:{t:0,b:{t:2,i:[{t:3}],s:"SE"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Build"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Architecture"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Appareil"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Nom"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Fabricant"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Processeur"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Cœurs physiques"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Processeurs logiques"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Fréquence maximale"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"RAM totale"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Disponible"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Utilisée"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Graphiques"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"RAM de l'adaptateur"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Partagée / Non rapportée"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Pilote"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Disque"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Libre"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Utilisé"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Stockage navigateur"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Persistant"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Au mieux"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Analyse en cours..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Quota IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" enregistrements au total dans "},{t:4,k:"databases"},{t:3,v:" bases de données"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Effacer toutes les données"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Vide"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Environnement Ollama"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Statut"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Version"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Stockage total des modèles"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Modèles chargés"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inférence"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"cette session"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Aucune session d'inférence pour le moment."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse moyenne"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT moyen"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modèles utilisés"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles actifs"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle chargé en mémoire. Envoyez un message pour en charger un."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Ctx"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Modèles installés"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Aucun modèle installé."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Famille"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Quantification"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Taille"}}}},xv={title:{t:0,b:{t:2,i:[{t:3}],s:"Comparer les modèles"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Emplacements de comparaison"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Chaque emplacement est une combinaison modèle + paramètres. Ajoutez le même modèle plusieurs fois avec des paramètres différents pour comparer le comportement."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Ajouter un emplacement"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Retirer l'emplacement"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout effacer"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt système optionnel..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Options"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Paramètres"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Température"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Aléatoire (laisser vide)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Avancé"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Pénalité de répétition"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Désactivé"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens max"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Longueur de contexte"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Par défaut"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" emplacement(s) configuré(s)"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Aucun emplacement configuré"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez un emplacement pour choisir un modèle et des paramètres, ou utilisez un preset rapide ci-dessus pour commencer."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Ajouter le premier emplacement"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Ajouter un emplacement ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Démarrage rapide :"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Balayage de température"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Crée 3 emplacements du même modèle aux températures 0.2 (focalisé), 0.7 (équilibré) et 1.2 (créatif). Observez comment la température modifie la sortie pour le même prompt."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Paire déterministe"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Crée 2 emplacements du même modèle avec le même seed mais des températures différentes (0.3 et 1.0). Le seed partagé signifie que toute différence dans la sortie provient uniquement de la température, pas de l'aléatoire."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison linguistique"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Comparer comment différentes langues affectent le coût en tokens et le comportement du modèle"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Saisissez un prompt à comparer entre les emplacements..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer"}},running:{t:0,b:{t:2,i:[{t:3}],s:"En cours..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Résultats"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Grille"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Diff"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Il faut au moins 2 résultats complétés pour afficher un diff."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Comparer :"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"vs"}},only:{t:0,b:{t:2,i:[{t:4,k:"label"},{t:3,v:" uniquement"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison de performances"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Temps jusqu'au premier token"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"plus bas = mieux"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokens/sec"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"plus haut = mieux"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total de tokens"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Durée"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Incompatibilité de langue détectée"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Votre prompt semble être en "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"cible : "},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Traduire en "},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Garder "},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Tout traduire"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Annuler"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Taxe de tokens"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens du prompt"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Prompt traduit"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Traduit"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Langue non supportée"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Traduction en cours... cela peut prendre un moment selon la taille du modèle"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"La qualité de la traduction dépend des capacités linguistiques de votre modèle. Les modèles plus grands produisent de meilleures traductions."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Tapez ou collez votre prompt en "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Comparaisons sauvegardées"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Charger"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Aucune comparaison sauvegardée"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger en JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger en Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Partager sur GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Partagez vos découvertes"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Ajoutez votre commentaire"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Qu'avez-vous découvert ? Partagez vos observations..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Aperçu du rapport"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Ouvrir GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Copier le Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Copié !"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Vous serez redirigé vers GitHub pour relire et publier vos résultats."}}}},Av={title:{t:0,b:{t:2,i:[{t:3}],s:"Session"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Session "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Session introuvable."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Flux"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Introspection"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Outils"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Graphe d'agent"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Exporter"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Télécharger flux de tokens CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Flux de tokens"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Métriques"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Entrez votre prompt..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Raisonnement"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de raisonnement disponible pour cette session."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Introspection"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Illustratif"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Appels d'outils"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Chronologie"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Optimiser"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Graphe d'agent"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inspecteur de prompt"}}}},Cv={title:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer un retour"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Merci pour votre retour !"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Votre contribution aide à améliorer LLMxRay."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Quel type de retour ?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Bug"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Idée"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Question"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Autre"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Dites-nous ce que vous avez en tête..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"E-mail"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(facultatif — uniquement si vous souhaitez une réponse)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"votre@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Envoyer le retour"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Envoi en cours..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Inclut le contexte de l'application (page, modèle, système) pour nous aider à comprendre votre retour."}}},Ev={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Problemes de qualite detectes"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Repetitif"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient des phrases excessivement repetees"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Refus"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse semble etre un refus"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Brouille"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient un ratio eleve de caracteres non imprimables"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Vide"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse contient tres peu de contenu"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Tronque"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"La reponse a peut-etre ete coupee"}}}},jv={title:{t:0,b:{t:2,i:[{t:3}],s:"Tableau de bord des couts"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens totaux"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout estime"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Cout moy./session"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Utilisation de tokens par modele"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Utilisation quotidienne"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens de prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens de completion"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout estime"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Tendance des coûts"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Modele"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sessions"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Cout est."}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Source"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Latence des requêtes (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Temps avant premier token (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Distribution de latence inter-tokens"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Les intervalles suivent les conventions OTel GenAI. Agrégé sur toutes les sessions."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Pas assez de données pour l'analyse en percentiles."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Erreurs par modèle"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Aucune erreur enregistrée."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Durée de chargement du modèle"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"démarrages froids"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Les points orange indiquent les démarrages froids (modèle chargé depuis le disque, > 500ms)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ces couts sont des estimations basees sur les tarifs equivalents des API cloud. Ollama fonctionne localement sans frais."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnee d'utilisation. Commencez a discuter pour voir l'utilisation des tokens et les estimations de couts."}}},Mv={title:{t:0,b:{t:2,i:[{t:3}],s:"Analytique"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Qualité des réponses"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Analyse de latence"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Fiabilité"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Habitudes d'utilisation"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Impact des paramètres"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Mémoire du modèle"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Qualité par tour"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Vert = bon (3.5+), jaune = moyen (2-3.5), rouge = faible (< 2). Score basé sur le nombre de mots, la diversité du vocabulaire et la non-répétition."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Démarrez une conversation multi-tours pour voir les tendances de qualité."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Chronologie des erreurs"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Aucune erreur enregistrée."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Volume de requêtes"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Répartition des modèles"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Heures d'activité"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Température vs vitesse"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Chaque point est une session. Montre l'impact de la température sur la vitesse."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Au moins 2 sessions avec température explicite nécessaires."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Historique de chargement"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"froid"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Aucune donnée de session."}}}},Dv={title:{t:0,b:{t:2,i:[{t:3}],s:"Complétion au milieu (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Tester la complétion de code avec préfixe + suffixe. Le modèle remplit le trou."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Certains modèles Ollama (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) supportent le champ `suffix` sur /api/generate. Fournissez le code avant et après le curseur — le modèle complète le milieu."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Modèles de code (compatibles FIM)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Autres modèles (FIM peut-être non supporté)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Ce modèle n'est pas un modèle de code connu — `suffix` pourrait être ignoré."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Préfixe (code avant le curseur)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Suffixe (code après le curseur)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Générer"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Complétion"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Aperçu assemblé"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Streaming…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Chargement"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Vitesse"}}}},Ov={title:{t:0,b:{t:2,i:[{t:3}],s:"Observatoire des protocoles"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Envoyez un prompt à travers trois protocoles de service. Même modèle, même démon Ollama — formats de fil différents. Comparez ce que chaque protocole donne."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama expose /api/chat (NDJSON natif), /v1/chat/completions (SSE compatible OpenAI) et /v1/messages (SSE compatible Anthropic). Les trois ciblent le même modèle local — aucun cloud, aucune clé API. Cette page lance le même prompt sur les trois en parallèle et montre ce qui diffère."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Modèle"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Tapez un prompt auquel les trois protocoles répondront…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens max"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Lancer les 3 protocoles"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Pas encore lancé."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Attente du premier token…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Inspecter l'enveloppe"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Premier chunk / événement"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Dernier chunk / événement"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"car."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Natif"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama natif"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"Compat. OpenAI"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (compat)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Compat. Anthropic"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (compat)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Fin"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Comparaison des réponses"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff. d'enveloppe"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Aspect"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Encadrement du flux"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Clés racine (observées)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Porteur du motif de fin"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Motif de fin (ce run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Porteur du compte de tokens"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Tokens générés (ce run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Forme de l'enveloppe d'erreur"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Les valeurs observées proviennent de ce run sur votre Ollama local. Certains porteurs (ex. `done_reason` natif NDJSON) n'apparaissent que sur le chunk final, d'autres (ex. `message_stop` Anthropic) sont des événements dédiés."}}}},Rv={common:gv,dashboard:vv,settings:yv,benchmark:kv,embeddings:Sv,rag:Tv,tools:_v,training:wv,system:Pv,comparison:xv,session:Av,feedback:Cv,quality:Ev,cost:jv,analytics:Mv,fim:Dv,protocols:Ov},Nv={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"代码补全"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"协议观测站"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI 训练"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"成本"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"本地 LLM 观测站"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},session:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"代码补全"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"协议观测站"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"成本"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 已连接"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 未连接"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"加载中..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"处理中..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"就绪"}},error:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},success:{t:0,b:{t:2,i:[{t:3}],s:"成功"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"等待中"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"已完成"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"失败"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"流式传输中"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"空闲"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"已连接"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"深色"}},light:{t:0,b:{t:2,i:[{t:3}],s:"浅色"}},system:{t:0,b:{t:2,i:[{t:3}],s:"跟随系统"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"主题"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},english:{t:0,b:{t:2,i:[{t:3}],s:"英语"}},french:{t:0,b:{t:2,i:[{t:3}],s:"法语"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},close:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"复制"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"编辑"}},test:{t:0,b:{t:2,i:[{t:3}],s:"测试"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"清除"}},send:{t:0,b:{t:2,i:[{t:3}],s:"发送"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},add:{t:0,b:{t:2,i:[{t:3}],s:"添加"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"移除"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认"}},back:{t:0,b:{t:2,i:[{t:3}],s:"返回"}},next:{t:0,b:{t:2,i:[{t:3}],s:"下一步"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"提交"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"重置"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},import:{t:0,b:{t:2,i:[{t:3}],s:"导入"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"刚刚"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 分钟前"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 小时前"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 天前"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 个月前"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tokens/s"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"ms"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"s"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"B"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"KB"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"MB"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"GB"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"维度"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"选择模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"没有可用的模型"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"加载模型中..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"拉取模型"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无数据"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"未找到结果"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"这里还没有内容"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"英语"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"法语"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"阿拉伯语"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"中文"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"日语"}},he:{t:0,b:{t:2,i:[{t:3}],s:"希伯来语"}},de:{t:0,b:{t:2,i:[{t:3}],s:"德语"}},es:{t:0,b:{t:2,i:[{t:3}],s:"西班牙语"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"葡萄牙语"}},it:{t:0,b:{t:2,i:[{t:3}],s:"意大利语"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"俄语"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"韩语"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"印地语"}}}},Iv={title:{t:0,b:{t:2,i:[{t:3}],s:"聊天诊断"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"发送消息... (Shift+Enter 换行)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"发送消息或粘贴/拖放图片..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"命令"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"附加文件"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"附加文件或图片"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"停止生成"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"发送消息"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"视觉模型 — 可处理图片"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"拖放文件以附加"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"新对话"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ 新对话"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史记录"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"聊天历史"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"重命名"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"删除对话"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"确定要删除这个对话吗?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"显示名称"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"新对话"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"编辑名称"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"没有对话历史"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"还没有对话。"}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"点击重命名"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"查看会话详情"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"无标题"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 分钟前"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 小时前"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"n"},{t:3,v:" 天前"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"总会话数"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"平均速度"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总 tokens"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"最近对话"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"聊天设置"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"重复惩罚"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"最大 tokens"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"在对话之前发送的指令。用于设定模型的行为和角色。"}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"你是一个有用的助手..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"知识库已启用"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"知识库已禁用"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"文档"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"管理"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"尚未导入文档"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"添加文档"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"精确"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"创意"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"无限制"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"最大回复长度。-1 = 无限制。"}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 为无限制"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"上下文窗口"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"模型一次可见的全部上下文。越大 = 记忆越多,速度越慢。"}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"高级采样"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"核采样。越低 = 越集中于高概率 tokens。"}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"每步将采样限制在前 K 个 tokens。"}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"惩罚已出现的 tokens。越高 = 重复越少。"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"已禁用"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"基于困惑度的自适应采样。启用时会覆盖 top-p/top-k。"}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"随机"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"固定 seed 用于可重现的输出。-1 = 随机。"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 为随机"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"停止序列"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如 Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"逗号分隔的字符串,生成时遇到则停止。"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},active:{t:0,b:{t:2,i:[{t:3}],s:"已激活"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"尚未定义工具"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"在工具工坊中管理..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"拉取中..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"拉取"}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"滑动窗口"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"仅保留最近的 N 条消息"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"最大消息数"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"自动摘要"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"自动总结较早的消息"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"摘要阈值"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"触发条件"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"条消息"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"用户事实"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"用户记忆"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/remember 事实会注入上下文"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"添加事实"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG 记忆"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"消息记忆 (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"通过 embeddings 检索相关的历史消息"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding 模型"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"选择 embedding 模型..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"未找到 embedding 模型。请拉取一个:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"检索前"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K 结果"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"记忆"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"条事实"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"开始与本地模型对话"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"回复已被截断 — 请在设置中增加 num_predict 以获得更长的回复"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"tokens"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tok/s"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"冷启动"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"此请求需要从磁盘加载模型(加载时间 > 500ms)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"下载文本"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"聊天与对话"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"模型与设置"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"功能与导航"}}}},Lv={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"通用"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"集成"}},about:{t:0,b:{t:2,i:[{t:3}],s:"关于"}},history:{t:0,b:{t:2,i:[{t:3}],s:"历史记录"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 连接"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"测试"}},save:{t:0,b:{t:2,i:[{t:3}],s:"保存"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"连接成功"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"连接失败"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"已连接"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"测试中..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"默认参数"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"什么是温度?"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"温度控制模型回答的「创造性」或「随机性」。"}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"始终选择最可能的词。适用于事实、数学和代码。"}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"良好的平衡。这是默认值。"}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"更出人意料,更有创意。"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"确定性"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"专注"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"均衡"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"创意"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"非常随机"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"狂野"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"什么是上下文长度?"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"模型一次可以看到多少对话内容,以 tokens 为单位。"}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"更大的上下文会使用更多 RAM/VRAM。"}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" 个词"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"选择语言"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"拉取新模型"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"模型名称"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"拉取"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"确定要删除此模型吗?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"大小"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"量化"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数量"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"能力"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"下载模型"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"搜索模型..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"未安装任何模型。请从下方目录中拉取一个。"}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配的模型。"}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"按名称拉取任意模型"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"已安装"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"确认删除?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Google 账户"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"连接"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"断开"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"已连接为"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Google 集成"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"连接你的 Google 账户以在工具工坊中启用日历和 Gmail 工具。"}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"OAuth2 Client ID"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"认证中..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"未连接"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"连接 Google 账户"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"显示设置说明"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"隐藏设置说明"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},license:{t:0,b:{t:2,i:[{t:3}],s:"许可证"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"代码仓库"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"技术栈"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"本地 LLM 观测站"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"本地 AI 历史记录"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"你的研究档案 — 所有实验,可查询"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"你的数据如何存储"}},description:{t:0,b:{t:2,i:[{t:3}],s:"你的所有数据都通过 IndexedDB 存储在浏览器本地 — 这是一种永久性的、浏览器原生的数据库。你的数据在关闭浏览器、重启电脑和软件更新后依然保留。没有任何数据被发送到服务器。"}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"原始数据(基准测试、对话、对比、训练)存储在 6 个专用的 IndexedDB 数据库中 — 每个功能一个。IndexedDB 不是会话存储 — 数据会永久保留,直到你选择删除。"}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"历史记录数据库是一个由 Dexie.js 驱动的统一研究索引。它记录每次实验的摘要,以便快速查询和趋势分析。可以将其视为覆盖你所有 LLMxRay 活动的搜索引擎。"}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"一切都保留在你的设备上。只有两种方式可以删除数据:在浏览器中清除网站数据,或使用本应用中的清除按钮。没有账户、没有云同步、没有遥测。"}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},language:{t:0,b:{t:2,i:[{t:3}],s:"语言"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"日期范围"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},all:{t:0,b:{t:2,i:[{t:3}],s:"全部"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"最近 7 天"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"最近 30 天"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"最近 90 天"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"所有时间"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 条记录"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"暂无历史记录。运行基准测试、对比或聊天以开始构建你的研究档案。"}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"趋势"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"活动(最近 30 天)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"使用的模型"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"数据库管理"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"总记录数"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"预估大小"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"导出全部 (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"导出筛选结果 (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"保留策略"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"永久保留"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 天"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 天"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"1 年"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"清除历史记录"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"此操作将删除所有历史记录。其他数据(基准测试、对话等)不受影响。"}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"聊天"}},training:{t:0,b:{t:2,i:[{t:3}],s:"训练"}},session:{t:0,b:{t:2,i:[{t:3}],s:"会话"}}}}},Fv={title:{t:0,b:{t:2,i:[{t:3}],s:"基准测试"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"精准基准测试"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"使用精选题目集评估模型 — 真实 logprob 置信度,按类别诊断"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"结果详情"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"最新结果"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"对比记录"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"选择模型"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"选择测试套件"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"上下文大小"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"开始基准测试"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"预计时间"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"最大模型数"}},models:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"已选择"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"基准测试套件"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ 导入自定义"}},context:{t:0,b:{t:2,i:[{t:3}],s:"上下文:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"运行基准测试"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"自定义"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"进度"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"当前问题"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"上一个答案"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"正确"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"准确率"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"平均延迟"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"平均置信度"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"分类进度"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"停止"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"思考中"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"标准"}},question:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"等待问题..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"等待第一个答案..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"处理问题中..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"停止基准测试"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"基准测试进度"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"平均总时间"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"测试套件"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"预期答案:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"总体准确率"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"按分类"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"置信度与准确率"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"题目详情"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"暂无结果"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"置信度与准确率 — X-Ray 散点图"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"困惑(低置信度,答错)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"校准良好(高置信度,答对)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"过度自信(高置信度,答错)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"幸运(低置信度,答对)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"各分类总耗时"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"上下文压力 — 准确率下降"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"分类明细"}},category:{t:0,b:{t:2,i:[{t:3}],s:"分类"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"正确"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"平均总时间"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"平均置信度"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"逐题详情"}},all:{t:0,b:{t:2,i:[{t:3}],s:"全部"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},response:{t:0,b:{t:2,i:[{t:3}],s:"回复"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"准确率"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"对比结果"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"雷达图"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"热力图"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"继续"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"删除结果"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"已保存的结果"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"暂无已保存的结果"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"点击选择进行对比"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"未完成"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"查看完整详情"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"继续未完成的基准测试"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"下载 CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"创建基准测试套件"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"编辑基准测试套件"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"套件名称"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如:法国历史测验"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"此套件测试什么内容?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"默认分类"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"题目"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"添加题目"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"编辑题目"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"暂无题目。添加第一道题目或使用 AI 生成。"}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"在此输入问题..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"添加选项"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"正确答案"}},category:{t:0,b:{t:2,i:[{t:3}],s:"分类"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"难度"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"简单"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"中等"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"困难"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"保存套件"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"创建套件"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" 个选项"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"AI 生成"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"主题"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"例如:法国历史、Python 编程、有机化学"}},count:{t:0,b:{t:2,i:[{t:3}],s:"题目数量"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"难度"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"混合"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"生成题目"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"生成中..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消生成"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"已生成的题目"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"全选"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消全选"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"添加所选"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"部分题目无法解析"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"未生成有效题目。请尝试其他主题或模型。"}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"导入测试套件"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"导入自定义基准测试套件"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"将 .json 文件拖放到此处"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"浏览"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"最大大小"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"格式无效"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"导入成功"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"导入中..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"要求:JSON 文件需包含 name 和 questions 数组(2-500 项)。"}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"每个问题需要:id、question、choices(2-6 个)、correctAnswer。"}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"最大 1MB。HTML 标签将被去除。ID 将自动去重。"}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"文件过大(最大 1MB)"}}}},zv={title:{t:0,b:{t:2,i:[{t:3}],s:"Embeddings"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"没有可用的模型"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"未找到 embedding 模型。请拉取一个:ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Embedding 存储"}},records:{t:0,b:{t:2,i:[{t:3}],s:"条记录"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Embed 实验场"}},description:{t:0,b:{t:2,i:[{t:3}],s:"输入文本以生成其 embedding 向量并查看各维度。"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入要嵌入的文本..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"嵌入"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"嵌入中..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"显示原始值(前 50 / 共 "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"相似度计算器"}},description:{t:0,b:{t:2,i:[{t:3}],s:"比较两段文本,使用 cosine similarity 衡量语义相似度。"}},textA:{t:0,b:{t:2,i:[{t:3}],s:"文本 A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"文本 B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"第一段文本..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"第二段文本..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"比较"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"比较中..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},description:{t:0,b:{t:2,i:[{t:3}],s:"用两个模型嵌入相同文本,比较它们如何表示语义。"}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"模型 A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"模型 B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入文本以使用两个模型进行嵌入..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"对比模型"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"对比模型中..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"跨模型相似度 — 这两个模型对相同文本的表示有多相似。"}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"这两个模型编码语义的方式差异很大。"}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"中等一致 — 两个模型共享部分语义结构。"}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"高度一致 — 这两个模型对此文本的表示相似。"}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"维度不同("},{t:4,k:"dimA"},{t:3,v:" 与 "},{t:4,k:"dimB"},{t:3,v:")— 无法直接计算 cosine similarity。"}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"比较上方统计数据以评估每个模型的表示质量。"}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"维度"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"L2 范数"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"稀疏度"}},time:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"最近的 Embeddings"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}}}},Bv={title:{t:0,b:{t:2,i:[{t:3}],s:"知识库"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"导入文档用于 RAG 增强对话"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"没有 embedding 模型"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"知识库存储"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"篇文档"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"个片段"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"已存储"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"RAG 存储"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"浏览"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"将文件拖放到此处或点击浏览"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"支持 PDF、DOCX、TXT、Markdown、CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"文档"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"尚未导入任何文档"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"切换 RAG 上下文"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"移除文档"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"语义搜索"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"搜索你的文档..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"没有搜索结果"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"搜索中..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"搜索"}},results:{t:0,b:{t:2,i:[{t:3}],s:"条结果"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"收起"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"显示完整片段"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"导入进度"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"导入中..."}}}},Uv={title:{t:0,b:{t:2,i:[{t:3}],s:"工具工坊"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"添加工具"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"从模板添加"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"尚未配置工具。添加一个以开始使用。"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"工具名称"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"工具描述"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"函数名称"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"实现"}},code:{t:0,b:{t:2,i:[{t:3}],s:"代码"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"测试工具"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"删除工具"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"代码面板"}},close:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},source:{t:0,b:{t:2,i:[{t:3}],s:"源码"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI 兼容的工具清单"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"复制"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"警告"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"还没有工具。创建你的第一个工具或从模板开始。"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ 新工具"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"从模板..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"导出训练数据 (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"工具库"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"从画布中移除所有工具"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"清除所有工具?"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"这将从画布中移除全部 "},{t:4,k:"count"},{t:3,v:" 个工具。此操作无法撤销。"}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"全部删除"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"在聊天中禁用"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"在聊天中启用"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"删除工具"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"还没有工具"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"已在聊天中启用"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"导出所有工具 (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"导出工具为 JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"工具模板"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"从可用的模板开始,然后自定义"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"实用工具"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"数据"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google(日历和 Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"自定义"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"函数名称"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"获取指定位置的当前天气"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"可视化构建器"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"原始 JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加参数"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"移除参数"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"保存工具"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"编辑工具"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"新工具"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"尚未定义工具。"}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加工具"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"成功"}},error:{t:0,b:{t:2,i:[{t:3}],s:"错误"}},result:{t:0,b:{t:2,i:[{t:3}],s:"结果"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM 工具"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function_name"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"AI 草拟"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI 洞察"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"完成"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"失败"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI 修复"}},description:{t:0,b:{t:2,i:[{t:3}],s:"描述"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"这个工具做什么?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"意图"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"描述这个工具应该做什么..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"生成"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"生成中..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"类型"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"无参数"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"探测并选择"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"探测"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"请求头"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"请求头名称"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"值"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"标记为机密(在生成的代码中使用环境变量)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"请求体"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"端点"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"搜索端点..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配的端点"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI 建议"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"思考中..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"个字段"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"个字段"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"应用"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"映射"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"不同步"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"函数体 (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// 工具实现..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI 建议的修复(应用前请检查):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"应用修复"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"接受"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"忽略"}}}},qv={title:{t:0,b:{t:2,i:[{t:3}],s:"AI 训练"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"浏览、筛选和导出工具工坊中的训练数据。"}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"总数据对"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"已采纳"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"已拒绝"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"待处理"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"训练数据对"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"采纳率"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"按阶段"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"热门模型"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"搜索..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"搜索提示词..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"工具名称"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},status:{t:0,b:{t:2,i:[{t:3}],s:"状态"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"所有模型"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"所有工具"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"所有标签"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"所有状态"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:3,v:"已选择 "},{t:4,k:"count"},{t:3,v:" 项"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"导出 JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"标记为已采纳"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"标记为已拒绝"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"添加标签"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"标签名称..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"删除"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"确认?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消选择"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"添加标签..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"全选"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"取消全选"}},pairsShown:{t:0,b:{t:2,i:[{t:3,v:"显示 "},{t:4,k:"shown"},{t:3,v:" / 共 "},{t:4,k:"total"},{t:3,v:" 对"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"没有匹配筛选条件的训练数据对。"}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"已采纳"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"已拒绝"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"用户提示词"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理过程"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI 回复"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"编辑回复"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"标签"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"删除数据对"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"确认删除?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"尚未收集到训练数据。"}},description:{t:0,b:{t:2,i:[{t:3}],s:"当你在工具工坊中使用 AI 功能(草拟生成、代码分析、自动映射和 AI 修复)时,训练数据对会自动生成。"}}}},$v={title:{t:0,b:{t:2,i:[{t:3}],s:"我的系统"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"硬件、运行时和推理概览"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"刷新"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"检测硬件中..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"正在查询 CPU、内存、GPU 和存储"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"硬件检测不可用。请重启开发服务器以启用系统信息插件。"}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载系统报告 (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载系统信息 (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"操作系统"}},os:{t:0,b:{t:2,i:[{t:3}],s:"系统"}},version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},build:{t:0,b:{t:2,i:[{t:3}],s:"构建版本"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"架构"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"设备"}},name:{t:0,b:{t:2,i:[{t:3}],s:"名称"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"制造商"}},model:{t:0,b:{t:2,i:[{t:3}],s:"型号"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"处理器"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"物理核心"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"逻辑处理器"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"最大频率"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"内存"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"总 RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"可用"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"已使用"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"显卡"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"适配器 RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"共享 / 未报告"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"驱动程序"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"存储"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"磁盘"}},total:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},free:{t:0,b:{t:2,i:[{t:3}],s:"可用"}},used:{t:0,b:{t:2,i:[{t:3}],s:"已使用"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"浏览器存储"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"持久化"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"尽力而为"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"扫描中..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"IndexedDB 配额"}},totalRecords:{t:0,b:{t:2,i:[{t:3,v:"共 "},{t:4,k:"count"},{t:3,v:" 条记录,分布于 "},{t:4,k:"databases"},{t:3,v:" 个数据库"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"清除所有数据"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"空"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 运行时"}},status:{t:0,b:{t:2,i:[{t:3}],s:"状态"}},version:{t:0,b:{t:2,i:[{t:3}],s:"版本"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"模型总存储"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"已加载模型"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"本次会话"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"尚无推理会话。"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"平均速度"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"已生成 tokens"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"平均 TTFT"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"使用的模型"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"活跃模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"当前内存中没有加载模型。发送一条消息即可加载。"}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"上下文"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"已安装模型"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"未安装任何模型。"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},family:{t:0,b:{t:2,i:[{t:3}],s:"系列"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"参数量"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"量化"}},size:{t:0,b:{t:2,i:[{t:3}],s:"大小"}}}},Vv={title:{t:0,b:{t:2,i:[{t:3}],s:"模型对比"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"对比插槽"}},description:{t:0,b:{t:2,i:[{t:3}],s:"每个插槽是一个模型 + 设置组合。可多次添加同一模型并使用不同设置来对比行为。"}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"添加插槽"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"移除插槽"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"全部清除"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"系统提示词"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"可选的系统提示词..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"选项"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"设置"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"温度"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"随机(留空)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"高级"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"重复惩罚"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"关闭"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"最大 tokens"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"上下文长度"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"默认"}},slotsConfigured:{t:0,b:{t:2,i:[{t:3,v:"已配置 "},{t:4,k:"count"},{t:3,v:" 个插槽"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"尚未配置插槽"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"添加一个插槽来选择模型和设置,或使用上方的快速启动预设开始。"}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ 添加第一个插槽"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ 添加插槽 ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"快速启动:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"温度扫描"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"创建同一模型的 3 个插槽,温度分别为 0.2(专注)、0.7(均衡)和 1.2(创意)。观察温度如何影响相同提示词的输出。"}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"确定性配对"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"创建同一模型的 2 个插槽,使用相同 seed 但不同温度(0.3 和 1.0)。共享 seed 意味着输出的任何差异纯粹来自温度,而非随机性。"}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"语言对比"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"比较不同语言如何影响 token 成本和模型行为"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"输入提示词以跨插槽进行对比..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"对比"}},running:{t:0,b:{t:2,i:[{t:3}],s:"运行中..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"结果"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"网格"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"差异"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"需要至少 2 个已完成的结果才能显示差异。"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"比较:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"与"}},only:{t:0,b:{t:2,i:[{t:3,v:"仅 "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"性能对比"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"首 token 时间"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"越低越好"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokens/秒"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"越高越好"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总 tokens"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"速度"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"耗时"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"检测到语言不匹配"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"您的提示词似乎是"},{t:4,k:"detected"},{t:3,v:"。"}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"目标语言:"},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"翻译为"},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"保留"},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"全部翻译"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"取消"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Token 税"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示词 Tokens"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"翻译后的提示词"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"已翻译"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"暂不支持该语言"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"翻译中……根据模型大小可能需要一些时间"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"翻译质量取决于模型的语言能力。更大的模型能产生更好的翻译。"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"输入或粘贴"},{t:4,k:"lang"},{t:3,v:"提示词..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"已保存的对比"}},load:{t:0,b:{t:2,i:[{t:3}],s:"加载"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"暂无保存的对比"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},json:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"分享到 GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"分享你的发现"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"添加你的评论"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"你发现了什么?分享你的见解..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"报告预览"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"打开 GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"复制 Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"已复制!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"你将被重定向到 GitHub 查看并发布你的结果。"}}}},Kv={title:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"会话 "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"未找到会话。"}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"流"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"内省"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"工具"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Agent 图"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"提示词"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"导出"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"下载 JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"下载 Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"下载 Token 流 CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token 流"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"指标"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"输入你的提示词..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"推理"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"此会话没有可用的推理数据。"}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"内省"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"示意性"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"工具调用"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"时间线"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"优化"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Agent 图"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"提示词检查器"}}}},Hv={title:{t:0,b:{t:2,i:[{t:3}],s:"发送反馈"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"感谢你的反馈!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"你的意见有助于改进 LLMxRay。"}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"反馈类型?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"缺陷"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"建议"}},question:{t:0,b:{t:2,i:[{t:3}],s:"问题"}},other:{t:0,b:{t:2,i:[{t:3}],s:"其他"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"告诉我们你的想法..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"邮箱"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(可选 — 仅在你希望收到回复时填写)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"your@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"发送反馈"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"发送中..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"会包含应用上下文(页面、模型、系统)以帮助我们理解你的反馈。"}}},Gv={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"检测到质量问题"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"重复"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复包含过多重复短语"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"拒绝"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复似乎是拒绝回答"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"乱码"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复包含大量不可打印字符"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"空白"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复内容极少"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"截断"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"回复可能被提前中断"}}}},Wv={title:{t:0,b:{t:2,i:[{t:3}],s:"成本面板"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总令牌数"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"会话数"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"平均成本/会话"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"按模型的令牌使用量"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"每日使用量"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示令牌"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"完成令牌"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"成本趋势"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"会话"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"提示"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"完成"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"总计"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"预估成本"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"来源"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"请求延迟 (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"首个令牌时间 (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"令牌间延迟分布"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"桶边界遵循 OTel GenAI 规范。跨所有会话聚合。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"会话数据不足,无法进行百分位分析。"}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"按模型的错误"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"未记录任何错误。"}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型加载时长"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"次冷启动"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"橙色圆点表示冷启动(模型从磁盘加载,> 500ms)。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"这些成本是基于等效云API定价的估算值。Ollama在本地免费运行。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无使用数据。开始聊天以查看令牌使用量和成本估算。"}}},Jv={title:{t:0,b:{t:2,i:[{t:3}],s:"分析"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"回复质量"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"延迟分析"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"可靠性"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"使用模式"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"参数影响"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"模型内存"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"逐轮质量"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"绿色 = 好 (3.5+),黄色 = 一般 (2-3.5),红色 = 差 (< 2)。基于字数、词汇多样性和非重复性评分。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"开始多轮对话以查看质量趋势。"}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"错误时间线"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"未记录任何错误。"}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"请求量"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"模型分布"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"活跃时段"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"温度 vs 速度"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"每个点代表一个会话,展示温度对生成速度的影响。"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"至少需要2个带有显式温度设置的会话。"}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"模型加载历史"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"冷启动"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"暂无会话数据。"}}}},Qv={title:{t:0,b:{t:2,i:[{t:3}],s:"中段填充游乐场"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"用前缀 + 后缀测试代码补全。模型来填补中间。"}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"部分 Ollama 模型(Qwen-Coder、CodeLlama、Codestral、DeepSeek-Coder、StarCoder)在 /api/generate 上支持 `suffix` 字段。请提供光标前后的代码 —— 模型会补全中间部分。"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"代码模型(支持 FIM)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"其他模型(可能不支持 FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"该模型不是已知的代码模型 —— `suffix` 可能被忽略。"}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"前缀(光标之前的代码)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"后缀(光标之后的代码)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"生成"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"补全结果"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"拼接预览"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"流式传输中…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"总耗时"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"模型加载"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"生成词元"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"速度"}}}},Yv={title:{t:0,b:{t:2,i:[{t:3}],s:"协议观察台"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"通过三种服务协议发送同一条提示。同一个模型、同一个 Ollama 守护进程 —— 不同的传输格式。比较各协议返回的内容。"}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 暴露 /api/chat(原生 NDJSON)、/v1/chat/completions(OpenAI 兼容 SSE)与 /v1/messages(Anthropic 兼容 SSE)。三者均面向同一本地模型 —— 无云端、无 API 密钥。本页将同一提示并行发送到三者,并展示差异。"}},model:{t:0,b:{t:2,i:[{t:3}],s:"模型"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"提示词"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"输入一条让三种协议都回答的提示…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"最大词元数"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"运行全部 3 个协议"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"尚未运行。"}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"等待首个词元…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"查看信封"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"首个 chunk / event"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"最后一个 chunk / event"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"字符"}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"原生"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama 原生"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI 兼容"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1(兼容)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Anthropic 兼容"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1(兼容)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"总耗时"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"词元数"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"结束原因"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"响应对比"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"信封差异"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"对比项"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"流式封装"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"顶层字段(观测到的)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"结束原因所在字段"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"本次结束原因值"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"词元计数所在字段"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"本次生成词元数"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"错误信封结构"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"观测值来自本次在您本地 Ollama 上的运行。部分载体(例如原生 NDJSON 的 `done_reason`)仅出现在最后一个 chunk 中,而另一些(例如 Anthropic 的 `message_stop`)则是专用事件。"}}}},Xv={common:Nv,dashboard:Iv,settings:Lv,benchmark:Fv,embeddings:zv,rag:Bv,tools:Uv,training:qv,system:$v,comparison:Vv,session:Kv,feedback:Hv,quality:Gv,cost:Wv,analytics:Jv,fim:Qv,protocols:Yv},Zv={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"إكمال الكود"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"مرصد البروتوكولات"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"تدريب الذكاء الاصطناعي"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"التكاليف"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"مرصد النماذج اللغوية المحلية"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},session:{t:0,b:{t:2,i:[{t:3}],s:"الجلسة"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"إكمال الكود"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"مرصد البروتوكولات"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"التكاليف"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama متصل"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama غير متصل"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التحميل..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المعالجة..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"جاهز"}},error:{t:0,b:{t:2,i:[{t:3}],s:"خطأ"}},success:{t:0,b:{t:2,i:[{t:3}],s:"نجاح"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"قيد الانتظار"}},running:{t:0,b:{t:2,i:[{t:3}],s:"قيد التشغيل"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"مكتمل"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"فشل"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ البث"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"خامل"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"متصل"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"داكن"}},light:{t:0,b:{t:2,i:[{t:3}],s:"فاتح"}},system:{t:0,b:{t:2,i:[{t:3}],s:"النظام"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"المظهر"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},english:{t:0,b:{t:2,i:[{t:3}],s:"الإنجليزية"}},french:{t:0,b:{t:2,i:[{t:3}],s:"الفرنسية"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"حفظ"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},close:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"نسخ"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"تعديل"}},test:{t:0,b:{t:2,i:[{t:3}],s:"اختبار"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"مسح"}},send:{t:0,b:{t:2,i:[{t:3}],s:"إرسال"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف"}},add:{t:0,b:{t:2,i:[{t:3}],s:"إضافة"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"إزالة"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد"}},back:{t:0,b:{t:2,i:[{t:3}],s:"رجوع"}},next:{t:0,b:{t:2,i:[{t:3}],s:"التالي"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"إرسال"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"إعادة تعيين"}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},import:{t:0,b:{t:2,i:[{t:3}],s:"استيراد"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"الآن"}},minutesAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" دقيقة"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" دقائق"}]}]}},hoursAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" ساعة"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" ساعات"}]}]}},daysAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" يوم"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" أيام"}]}]}},monthsAgo:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" شهر"}]},{t:2,i:[{t:3,v:"منذ "},{t:4,k:"count"},{t:3,v:" أشهر"}]}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"token/ث"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"مللي ثانية"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"ث"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"بايت"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"كيلوبايت"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"ميغابايت"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"غيغابايت"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"أبعاد"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"اختر نموذجاً"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج متاحة"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ تحميل النماذج..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل نموذج"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات متاحة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نتائج"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"لا يوجد شيء هنا بعد"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"الإنجليزية"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"الفرنسية"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"العربية"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"الصينية"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"اليابانية"}},he:{t:0,b:{t:2,i:[{t:3}],s:"العبرية"}},de:{t:0,b:{t:2,i:[{t:3}],s:"الألمانية"}},es:{t:0,b:{t:2,i:[{t:3}],s:"الإسبانية"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"البرتغالية"}},it:{t:0,b:{t:2,i:[{t:3}],s:"الإيطالية"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"الروسية"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"الكورية"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"الهندية"}}}},ty={title:{t:0,b:{t:2,i:[{t:3}],s:"تشخيص المحادثة"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أرسل رسالة... (Shift+Enter لسطر جديد)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"أرسل رسالة أو الصق/أسقط صورة..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"الأوامر"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"إرفاق ملفات"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"إرفاق ملفات أو صور"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف التوليد"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"إرسال رسالة"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"نموذج رؤية — يمكنه معالجة الصور"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"أسقط الملفات لإرفاقها"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"محادثة جديدة"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ محادثة جديدة"}},history:{t:0,b:{t:2,i:[{t:3}],s:"السجل"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"سجل المحادثات"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"إعادة تسمية"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"حذف المحادثة"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"هل أنت متأكد من حذف هذه المحادثة؟"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"اسم العرض"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"محادثة جديدة"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الاسم"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"لا يوجد سجل محادثات"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد محادثات بعد."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"انقر لإعادة التسمية"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"عرض تفاصيل الجلسة"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"بدون عنوان"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" د"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" س"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"منذ "},{t:4,k:"n"},{t:3,v:" ي"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"جلسات"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الجلسات"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"متوسط السرعة"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي token"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"المحادثات الأخيرة"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"إعدادات المحادثة"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"عقوبة التكرار"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لعدد token"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"تعليمات تُرسل قبل المحادثة. تحدد سلوك النموذج وشخصيته."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"أنت مساعد مفيد..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة مفعّلة"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة معطّلة"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"مستندات"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"إدارة"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم استيعاب أي مستندات"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"إضافة مستندات"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"دقيق"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"إبداعي"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"غير محدود"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لطول الاستجابة. -1 = غير محدود."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 لغير محدود"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"نافذة السياق"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي السياق الذي يراه النموذج. أعلى = ذاكرة أكثر، أبطأ."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"أخذ العينات المتقدم"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"أخذ عينات نواة. أقل = تركيز أكبر على token الأكثر احتمالاً."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"يحد أخذ العينات إلى أعلى K من token في كل خطوة."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"يعاقب token التي ظهرت بالفعل. أعلى = تكرار أقل."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat v2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"أخذ عينات تكيّفي قائم على الحيرة. يتجاوز top_p/top_k عند التفعيل."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"بذرة ثابتة لمخرجات قابلة للتكرار. -1 = عشوائي."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 لعشوائي"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"تسلسلات الإيقاف"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثلاً Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"سلاسل نصية مفصولة بفواصل توقف التوليد عند إنتاجها."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"الأدوات"}},active:{t:0,b:{t:2,i:[{t:3}],s:"نشط"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تعريف أدوات بعد"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"إدارة في ورشة الأدوات..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التنزيل..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل"}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"النافذة المنزلقة"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ بآخر N رسالة فقط"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى للرسائل"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"تلخيص تلقائي"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"تلخيص الرسائل القديمة تلقائياً"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"عتبة التلخيص"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"التفعيل بعد"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"رسائل"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"حقائق المستخدم"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة المستخدم"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"حقائق /remember تُحقن في السياق"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"إضافة حقيقة"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة RAG"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة الرسائل (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"استرجاع الرسائل السابقة ذات الصلة عبر التضمينات"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"نموذج embedding"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"اختر نموذج embedding..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نماذج embedding. قم بتنزيل واحد:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"استرجاع أعلى"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"أعلى K نتيجة"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"الذاكرة"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"حقائق"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ محادثة مع نموذج محلي"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"تم اقتطاع الاستجابة — قم بزيادة num_predict في الإعدادات للحصول على استجابات أطول"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"tok/ث"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"بداية باردة"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"تم تحميل النموذج من القرص لهذا الطلب (وقت التحميل > 500 مللي ثانية)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"تحميل نص"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"المحادثة والدردشة"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"النموذج والإعدادات"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"الميزات والتنقل"}}}},ey={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"عام"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"التكاملات"}},about:{t:0,b:{t:2,i:[{t:3}],s:"حول"}},history:{t:0,b:{t:2,i:[{t:3}],s:"السجل"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"اتصال Ollama"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"رابط Ollama"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"اختبار"}},save:{t:0,b:{t:2,i:[{t:3}],s:"حفظ"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"تم الاتصال بنجاح"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"فشل الاتصال"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"متصل"}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاختبار..."}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات الافتراضية"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"ما هي درجة الحرارة؟"}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:'تتحكم درجة الحرارة في مدى "إبداعية" أو "عشوائية" إجابات النموذج.'}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"يختار دائماً الكلمة الأكثر احتمالاً. مثالي للحقائق والرياضيات والبرمجة."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"توازن جيد. هذه هي القيمة الافتراضية."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"أكثر مفاجأة وإبداعاً."}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"حتمي"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"مركّز"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"متوازن"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"إبداعي"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي جداً"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"جامح"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"ما هو طول السياق؟"}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"مقدار المحادثة الذي يمكن للنموذج رؤيته دفعة واحدة، مقاساً بعدد token."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3}],s:"سياق أكبر يستهلك المزيد من RAM/VRAM."}},approximateWords:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" كلمة"}]}},language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"اختر اللغة"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل نموذج جديد"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"اسم النموذج"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"هل أنت متأكد من حذف هذا النموذج؟"}},size:{t:0,b:{t:2,i:[{t:3}],s:"الحجم"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"التكميم"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"القدرات"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل النماذج"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"البحث في النماذج..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج مثبّتة. قم بتنزيل واحد من الكتالوج أدناه."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج تطابق بحثك."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"تنزيل أي نموذج بالاسم"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"مثبّت"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد الحذف؟"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"حساب Google"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"ربط"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"قطع الاتصال"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"متصل بحساب"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"تكامل Google"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"اربط حساب Google الخاص بك لتفعيل أدوات التقويم و Gmail في ورشة الأدوات."}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"معرّف عميل OAuth2"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المصادقة..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"غير متصل"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"ربط حساب Google"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"عرض تعليمات الإعداد"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"إخفاء تعليمات الإعداد"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},license:{t:0,b:{t:2,i:[{t:3}],s:"الرخصة"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"المستودع"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"المكدس التقني"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"مرصد النماذج اللغوية المحلية"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"سجل الذكاء الاصطناعي المحلي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"أرشيف أبحاثك — جميع التجارب، قابلة للاستعلام"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"كيف يتم تخزين بياناتك"}},description:{t:0,b:{t:2,i:[{t:3}],s:"جميع بياناتك مخزّنة محلياً في متصفحك باستخدام IndexedDB — قاعدة بيانات دائمة ومدمجة في المتصفح. بياناتك تبقى محفوظة بعد إغلاق المتصفح وإعادة تشغيل الحاسوب وتحديثات البرامج. لا يتم إرسال أي شيء إلى أي خادم."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"البيانات الأصلية (اختبارات الأداء، المحادثات، المقارنات، التدريب) مخزّنة في 6 قواعد بيانات IndexedDB مخصصة — واحدة لكل ميزة. IndexedDB ليس تخزين جلسة — البيانات تبقى بشكل دائم حتى تختار حذفها بنفسك."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة بيانات السجل هي فهرس بحث موحّد يعمل بتقنية Dexie.js. تسجّل ملخصاً لكل تجربة لتمكين الاستعلام السريع وتحليل الاتجاهات. اعتبرها محرك بحث يغطي جميع أنشطتك في LLMxRay."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"كل شيء يبقى على جهازك. شيئان فقط يمكنهما حذف بياناتك: مسح بيانات الموقع من المتصفح، أو استخدام أزرار المسح في هذا التطبيق. لا حسابات، لا مزامنة سحابية، لا قياس عن بُعد."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"النوع"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},language:{t:0,b:{t:2,i:[{t:3}],s:"اللغة"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"نطاق التاريخ"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"الوسوم"}},all:{t:0,b:{t:2,i:[{t:3}],s:"الكل"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 7 أيام"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 30 يوماً"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"آخر 90 يوماً"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"كل الأوقات"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" سجل"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد سجلات بعد. قم بتشغيل اختبار أداء أو مقارنة أو محادثة لبدء بناء أرشيف أبحاثك."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاتجاهات"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"النشاط (آخر 30 يوماً)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المستخدمة"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"إدارة قاعدة البيانات"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي السجلات"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"الحجم التقديري"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"تصدير الكل (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"تصدير المصفّى (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"الاحتفاظ للأبد"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 يوماً"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 يوماً"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"سنة واحدة"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"مسح السجل"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"سيؤدي هذا إلى حذف جميع سجلات السجل. البيانات الأخرى (اختبارات الأداء، المحادثات، إلخ) لن تتأثر."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار أداء"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"محادثة"}},training:{t:0,b:{t:2,i:[{t:3}],s:"تدريب"}},session:{t:0,b:{t:2,i:[{t:3}],s:"جلسة"}}}}},sy={title:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداء الجراحي"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"تقييم النماذج بمجموعات أسئلة مختارة — ثقة logprob حقيقية، تشخيص لكل فئة"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"تفاصيل النتيجة"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"آخر نتيجة"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"سجل المقارنة"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"اختر النماذج"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"اختر مجموعات الاختبار"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"حجم السياق"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"بدء اختبار الأداء"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"الوقت المقدّر"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى للنماذج"}},models:{t:0,b:{t:2,i:[{t:3}],s:"النماذج"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"محدد"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"مجموعات اختبار الأداء"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ استيراد مخصص"}},context:{t:0,b:{t:2,i:[{t:3}],s:"السياق:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"تشغيل اختبار الأداء"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"مخصص"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC Challenge"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellaSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"التقدم"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"السؤال الحالي"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"آخر إجابة"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"صحيح"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"خاطئ"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"متوسط زمن الاستجابة"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الثقة"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم الفئة"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"يفكّر"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"قياسي"}},question:{t:0,b:{t:2,i:[{t:3}],s:"سؤال"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"بانتظار السؤال..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"بانتظار الإجابة الأولى..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ معالجة السؤال..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"إيقاف اختبار الأداء"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم اختبار الأداء"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الإجمالي"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"مجموعات الاختبار"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"المتوقع:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة الإجمالية"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"لكل فئة"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"الثقة مقابل الدقة"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"تفاصيل الأسئلة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج بعد"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"الثقة مقابل الدقة — مخطط التشتت"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"مرتبك (ثقة منخفضة، خاطئ)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"معايَر (ثقة عالية، صحيح)"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"مفرط الثقة (ثقة عالية، خاطئ)"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"محظوظ (ثقة منخفضة، صحيح)"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الوقت لكل فئة"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"ضغط السياق — تدهور الدقة"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"تفصيل الفئات"}},category:{t:0,b:{t:2,i:[{t:3}],s:"الفئة"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"صحيح"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الإجمالي"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"متوسط الثقة"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"تفصيل كل سؤال"}},all:{t:0,b:{t:2,i:[{t:3}],s:"الكل"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"خاطئ"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},response:{t:0,b:{t:2,i:[{t:3}],s:"الاستجابة"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"الدقة"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النتائج"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"مخطط رادار"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"خريطة حرارية"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"استئناف"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"حذف النتيجة"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"النتائج المحفوظة"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج محفوظة بعد"}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"انقر للتحديد للمقارنة"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"غير مكتمل"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"عرض التفاصيل الكاملة"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"استئناف اختبار أداء غير مكتمل"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"تحميل CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"إنشاء مجموعة اختبار"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"تعديل مجموعة اختبار"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"اسم المجموعة"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثال: اختبار التاريخ الفرنسي"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ما الذي تختبره هذه المجموعة؟"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"الفئة الافتراضية"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"الأسئلة"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"إضافة سؤال"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"تعديل سؤال"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أسئلة بعد. أضف سؤالك الأول أو استخدم الذكاء الاصطناعي لتوليدها."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"السؤال"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اكتب سؤالك هنا..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"الخيارات"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"إضافة خيار"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"الإجابة الصحيحة"}},category:{t:0,b:{t:2,i:[{t:3}],s:"الفئة"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"الصعوبة"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"سهل"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"متوسط"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"صعب"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"حفظ المجموعة"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"إنشاء المجموعة"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" خيارات"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"التوليد بالذكاء الاصطناعي"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"الموضوع"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"مثال: التاريخ الفرنسي، برمجة Python، الكيمياء العضوية"}},count:{t:0,b:{t:2,i:[{t:3}],s:"عدد الأسئلة"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"الصعوبة"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"متنوع"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"توليد الأسئلة"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التوليد..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء التوليد"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"الأسئلة المولّدة"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"تحديد الكل"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء تحديد الكل"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"إضافة المحدد"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"تعذّر تحليل بعض الأسئلة"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم توليد أسئلة صالحة. جرّب موضوعاً أو نموذجاً آخر."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"استيراد مجموعة اختبار"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"استيراد مجموعة اختبار أداء مخصصة"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"اسحب وأسقط ملفاً هنا"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"أسقط ملف .json هنا"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"تصفح"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"الحجم الأقصى"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"تنسيق غير صالح"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"تم الاستيراد بنجاح"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاستيراد..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"المتطلبات: JSON يحتوي على name ومصفوفة questions (2-500 عنصر)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"كل سؤال يحتاج: id، question، choices (2-6)، correctAnswer."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى 1 ميغابايت. ستتم إزالة وسوم HTML. سيتم إزالة تكرار المعرّفات."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"الملف كبير جداً (الحد الأقصى 1 ميغابايت)"}}}},iy={title:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج متاحة"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على نماذج embedding. قم بتنزيل واحد: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة embedding"}},records:{t:0,b:{t:2,i:[{t:3}],s:"سجلات"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"ساحة تجربة embedding"}},description:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لتوليد متجه embedding الخاص به وفحص الأبعاد."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لعمل embedding..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"تضمين"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التضمين..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"عرض القيم الخام (أول 50 من "},{t:4,k:"total"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"حاسبة التشابه"}},description:{t:0,b:{t:2,i:[{t:3}],s:"قارن نصين لقياس تشابههما الدلالي باستخدام مسافة cosine similarity."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"النص أ"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"النص ب"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"النص الأول..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"النص الثاني..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ المقارنة..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},description:{t:0,b:{t:2,i:[{t:3}],s:"تضمين نفس النص بنموذجين لمقارنة كيفية تمثيلهما للمعنى."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"النموذج أ"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"النموذج ب"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل نصاً لتضمينه بكلا النموذجين..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ مقارنة النماذج..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"التشابه بين النماذج — مدى تمثيل هذه النماذج لنفس النص بشكل متشابه."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"هذه النماذج تشفّر المعنى بطرق مختلفة جداً."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"توافق متوسط — النماذج تتشارك بعض البنية الدلالية."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"توافق عالٍ — هذه النماذج تمثل هذا النص بشكل متشابه."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"الأبعاد مختلفة ("},{t:4,k:"dimA"},{t:3,v:" مقابل "},{t:4,k:"dimB"},{t:3,v:") — لا يمكن حساب cosine similarity مباشرة."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"قارن الإحصائيات أعلاه لتقييم جودة تمثيل كل نموذج."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"الأبعاد"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"معيار L2"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"التناثر"}},time:{t:0,b:{t:2,i:[{t:3}],s:"الوقت"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"التضمينات الأخيرة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}}}},ny={title:{t:0,b:{t:2,i:[{t:3}],s:"قاعدة المعرفة"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"استيعاب المستندات لمحادثات مدعومة بـ RAG"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج embedding"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"تخزين قاعدة المعرفة"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"مستندات"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"أجزاء"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"مخزّن"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"تخزين RAG"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"اسحب وأسقط الملفات هنا"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"تصفح"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"أسقط الملفات هنا أو انقر للتصفح"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"يدعم PDF، DOCX، TXT، Markdown، CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"المستندات"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم استيعاب أي مستندات بعد"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"تبديل سياق RAG"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"إزالة المستند"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"البحث الدلالي"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"ابحث في مستنداتك..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نتائج بحث"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ البحث..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"بحث"}},results:{t:0,b:{t:2,i:[{t:3}],s:"نتائج"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"عرض أقل"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"عرض الجزء كاملاً"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"تقدم الاستيعاب"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الاستيعاب..."}}}},oy={title:{t:0,b:{t:2,i:[{t:3}],s:"ورشة الأدوات"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"إضافة أداة"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"إضافة من قالب"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات مهيّأة. أضف واحدة للبدء."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الأداة"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"وصف الأداة"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الدالة"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"التنفيذ"}},code:{t:0,b:{t:2,i:[{t:3}],s:"الشفرة"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"اختبار الأداة"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"حذف الأداة"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"لوحة الشفرة"}},close:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}},source:{t:0,b:{t:2,i:[{t:3}],s:"المصدر"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"بيان أدوات متوافق مع OpenAI"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"نسخ"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"تحذيرات"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات بعد. أنشئ أداتك الأولى أو ابدأ من قالب."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ أداة جديدة"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"من قالب..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"تصدير بيانات التدريب (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"مكتبة الأدوات"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"إزالة جميع الأدوات من اللوحة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3}],s:"مسح جميع الأدوات؟"}},clearAllWarning:{t:0,b:{t:2,i:[{t:3,v:"سيؤدي هذا إلى إزالة جميع الأدوات ("},{t:4,k:"count"},{t:3,v:") من اللوحة. لا يمكن التراجع عن هذا."}]}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"حذف الكل"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"تعطيل للمحادثة"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"تفعيل للمحادثة"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"حذف الأداة"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أدوات بعد"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"مفعّل للمحادثة"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"تصدير جميع الأدوات (JSON)"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"تصدير الأداة كـ JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"قوالب الأدوات"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ بقالب جاهز وقم بتخصيصه"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"أدوات مساعدة"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"البيانات"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (التقويم و Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"مخصص"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الدالة"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"الحصول على الطقس الحالي لموقع معين"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"المنشئ المرئي"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"JSON خام"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة معامل"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"إزالة المعامل"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"حفظ الأداة"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الأداة"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"أداة جديدة"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تعريف أدوات بعد."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة أداة"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"نجاح"}},error:{t:0,b:{t:2,i:[{t:3}],s:"خطأ"}},result:{t:0,b:{t:2,i:[{t:3}],s:"النتيجة"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"المدة"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"أداة LLM"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function_name"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"مسودة بالذكاء الاصطناعي"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"رؤى الذكاء الاصطناعي"}},running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"تم"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"فشل"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"إصلاح بالذكاء الاصطناعي"}},description:{t:0,b:{t:2,i:[{t:3}],s:"الوصف"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ماذا تفعل هذه الأداة؟"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"الغرض"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"صف ما يجب أن تفعله هذه الأداة..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"توليد"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التوليد..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"الاسم"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"النوع"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد معاملات"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"استكشاف واختيار"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"استكشاف"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"الترويسات"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اسم الترويسة"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"القيمة"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كسري (استخدام متغير بيئة في الشفرة المولّدة)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"جسم الطلب"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"نقاط النهاية"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"البحث في نقاط النهاية..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نقاط نهاية مطابقة"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"اقتراح الذكاء الاصطناعي"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"يفكّر..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"حقل"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"حقول"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"تطبيق"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"التعيينات"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"غير متزامن"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"الجسم (TypeScript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"// تنفيذ الأداة..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"إصلاح مقترح بالذكاء الاصطناعي (راجع قبل التطبيق):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"تطبيق الإصلاح"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"إغلاق"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"قبول"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"رفض"}}}},ry={title:{t:0,b:{t:2,i:[{t:3}],s:"تدريب الذكاء الاصطناعي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"تصفّح وانتقِ وصدّر بيانات التدريب من ورشة الأدوات."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الأزواج"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"مقبول"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"مرفوض"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"قيد الانتظار"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"أزواج التدريب"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"معدل القبول"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"حسب المرحلة"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"أفضل النماذج"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"بحث..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"البحث في الموجّهات..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"اسم الأداة"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"وسم"}},status:{t:0,b:{t:2,i:[{t:3}],s:"الحالة"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"جميع النماذج"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"جميع الأدوات"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"جميع الوسوم"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"جميع الحالات"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" محدد"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"تصدير JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كمقبول"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"تعيين كمرفوض"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"إضافة وسم"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اسم الوسم..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"حذف"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد؟"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء التحديد"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"إضافة وسم..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"تحديد الكل"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء تحديد الكل"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" من "},{t:4,k:"total"},{t:3,v:" زوج معروض"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد أزواج تدريب تطابق مرشحاتك."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"مقبول"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"مرفوض"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه المستخدم"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"استجابة الذكاء الاصطناعي"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"تعديل الاستجابة"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"الوسوم"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"حذف الزوج"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"تأكيد الحذف؟"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم جمع بيانات تدريب بعد."}},description:{t:0,b:{t:2,i:[{t:3}],s:"تُنشأ أزواج التدريب تلقائياً عند استخدام ميزات الذكاء الاصطناعي في ورشة الأدوات (توليد المسودات، تحليل الشفرة، التعيين التلقائي، وإصلاح الذكاء الاصطناعي)."}}}},ay={title:{t:0,b:{t:2,i:[{t:3}],s:"نظامي"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"نظرة عامة على العتاد وبيئة التشغيل والاستدلال"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"تحديث"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ اكتشاف العتاد..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"الاستعلام عن CPU والذاكرة و GPU والتخزين"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"اكتشاف العتاد غير متاح. يرجى إعادة تشغيل خادم التطوير لتفعيل إضافة معلومات النظام."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل تقرير النظام (Markdown)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل معلومات النظام (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"نظام التشغيل"}},os:{t:0,b:{t:2,i:[{t:3}],s:"نظام التشغيل"}},version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},build:{t:0,b:{t:2,i:[{t:3}],s:"البناء"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"البنية"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"الجهاز"}},name:{t:0,b:{t:2,i:[{t:3}],s:"الاسم"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"الشركة المصنّعة"}},model:{t:0,b:{t:2,i:[{t:3}],s:"الطراز"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"المعالج"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"الأنوية الفيزيائية"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"المعالجات المنطقية"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"أقصى تردد"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"الذاكرة"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"متاح"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"قيد الاستخدام"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"الرسومات"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة المحوّل"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"مشتركة / غير مُبلّغ عنها"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"برنامج التشغيل"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"التخزين"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"القرص"}},total:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},free:{t:0,b:{t:2,i:[{t:3}],s:"متاح"}},used:{t:0,b:{t:2,i:[{t:3}],s:"مستخدم"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"تخزين المتصفح"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"دائم"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"أفضل جهد"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الفحص..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"حصة IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" سجل إجمالي عبر "},{t:4,k:"databases"},{t:3,v:" قاعدة بيانات"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح جميع البيانات"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"فارغ"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"بيئة تشغيل Ollama"}},status:{t:0,b:{t:2,i:[{t:3}],s:"الحالة"}},version:{t:0,b:{t:2,i:[{t:3}],s:"الإصدار"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي تخزين النماذج"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المحمّلة"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"هذه الجلسة"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد جلسات استدلال بعد."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"متوسط السرعة"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"token المولّدة"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"متوسط TTFT"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المستخدمة"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"النماذج النشطة"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج محمّلة حالياً في الذاكرة. أرسل رسالة لتحميل واحد."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"السياق"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"النماذج المثبّتة"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد نماذج مثبّتة."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},family:{t:0,b:{t:2,i:[{t:3}],s:"العائلة"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"المعاملات"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"التكميم"}},size:{t:0,b:{t:2,i:[{t:3}],s:"الحجم"}}}},ly={title:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة النماذج"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"خانات المقارنة"}},description:{t:0,b:{t:2,i:[{t:3}],s:"كل خانة هي مزيج من نموذج + إعدادات. أضف نفس النموذج عدة مرات بإعدادات مختلفة لمقارنة السلوك."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"إضافة خانة"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"إزالة خانة"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"مسح الكل"}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه النظام"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"موجه نظام اختياري..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"الخيارات"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"الإعدادات"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"درجة الحرارة"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"عشوائي (اتركه فارغاً)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"متقدم"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"عقوبة التكرار"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"معطّل"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى لعدد token"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"طول السياق"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"افتراضي"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" خانة مهيّأة"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تهيئة خانات بعد"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"أضف خانة لاختيار نموذج وإعدادات، أو استخدم إعداداً مسبقاً للبدء السريع أعلاه."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ إضافة الخانة الأولى"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ إضافة خانة ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"بداية سريعة:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"مسح درجة الحرارة"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"ينشئ 3 خانات لنفس النموذج بدرجات حرارة 0.2 (مركّز)، 0.7 (متوازن)، و 1.2 (إبداعي). شاهد كيف تغيّر درجة الحرارة المخرجات لنفس الموجه."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"زوج حتمي"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"ينشئ خانتين لنفس النموذج بنفس البذرة لكن بدرجات حرارة مختلفة (0.3 و 1.0). البذرة المشتركة تعني أن أي اختلاف في المخرجات ناتج فقط عن درجة الحرارة وليس العشوائية."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة اللغات"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"قارن كيف تؤثر اللغات المختلفة على تكلفة tokens وسلوك النموذج"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل موجهاً للمقارنة عبر الخانات..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة"}},running:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ التشغيل..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"النتائج"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"شبكة"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"الفرق"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"يلزم نتيجتان مكتملتان على الأقل لعرض الفرق."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"مقابل"}},only:{t:0,b:{t:2,i:[{t:4,k:"label"},{t:3,v:" فقط"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة الأداء"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"وقت أول token"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"الأقل أفضل"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"token/ث"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"الأعلى أفضل"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي token"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"السرعة"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"المدة"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"token"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"تم اكتشاف عدم تطابق اللغة"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"يبدو أن موجهك مكتوب بال"},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"الهدف: "},{t:4,k:"language"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"ترجمة إلى "},{t:4,k:"language"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"الإبقاء على "},{t:4,k:"language"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"ترجمة الكل"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"إلغاء"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"ضريبة Tokens"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokens الإدخال"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"النص المترجم"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"مترجم"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"اللغة غير مدعومة بعد"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الترجمة... قد يستغرق ذلك بعض الوقت حسب حجم النموذج"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"جودة الترجمة تعتمد على قدرات النموذج اللغوية. النماذج الأكبر تنتج ترجمات أفضل."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"اكتب أو الصق النص بـ"},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"المقارنات المحفوظة"}},load:{t:0,b:{t:2,i:[{t:3}],s:"تحميل"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد مقارنات محفوظة بعد"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},json:{t:0,b:{t:2,i:[{t:3}],s:"تحميل كـ JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل كـ Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"مشاركة في GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"شارك اكتشافاتك"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"أضف تعليقك"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"ماذا اكتشفت؟ شارك ملاحظاتك..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"معاينة التقرير"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"فتح GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"نسخ Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"تم النسخ!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"ستتم إعادة توجيهك إلى GitHub لمراجعة ونشر نتائجك."}}}},cy={title:{t:0,b:{t:2,i:[{t:3}],s:"الجلسة"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"الجلسة "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم العثور على الجلسة."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"البث"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"الاستبطان"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"الأدوات"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"رسم الوكيل البياني"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"الموجه"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"تصدير"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"تحميل JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"تحميل Markdown"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"تحميل CSV بث token"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"بث token"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"المقاييس"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"أدخل الموجه الخاص بك..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستدلال"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"لا تتوفر بيانات استدلال لهذه الجلسة."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"الاستبطان"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"توضيحي"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"استدعاءات الأدوات"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"الخط الزمني"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"تحسين"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"رسم الوكيل البياني"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"فاحص الموجه"}}}},uy={title:{t:0,b:{t:2,i:[{t:3}],s:"إرسال ملاحظات"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"شكراً لملاحظاتك!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"مساهمتك تساعد في تحسين LLMxRay."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"ما نوع الملاحظة؟"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"خلل"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"فكرة"}},question:{t:0,b:{t:2,i:[{t:3}],s:"سؤال"}},other:{t:0,b:{t:2,i:[{t:3}],s:"أخرى"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"أخبرنا بما يدور في ذهنك..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"البريد الإلكتروني"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(اختياري — فقط إذا أردت الحصول على رد)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"بريدك@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"إرسال الملاحظات"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"جارٍ الإرسال..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"يتضمن سياق التطبيق (الصفحة، النموذج، النظام) لمساعدتنا في فهم ملاحظاتك."}}},by={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"تم اكتشاف مشاكل في الجودة"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"متكرر"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على عبارات مكررة بشكل مفرط"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"رفض"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"يبدو أن الرد هو رفض"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"مشوش"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على نسبة عالية من الأحرف غير القابلة للطباعة"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"فارغ"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"الرد يحتوي على محتوى قليل جداً"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"مقطوع"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"ربما تم اقتطاع الرد"}}}},dy={title:{t:0,b:{t:2,i:[{t:3}],s:"لوحة التكاليف"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"إجمالي الرموز"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"متوسط التكلفة/جلسة"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"استخدام الرموز حسب النموذج"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"الاستخدام اليومي"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"رموز المطالبة"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"رموز الإكمال"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"اتجاه التكلفة"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"الجلسات"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"المطالبة"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"الإكمال"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"التكلفة المقدرة"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"المصدر"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"زمن الاستجابة (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"الوقت حتى أول رمز (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"توزيع التأخير بين الرموز"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"حدود المجموعات تتبع اتفاقيات OTel GenAI. مجمعة عبر جميع الجلسات."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات كافية لتحليل النسب المئوية."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"الأخطاء حسب النموذج"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تسجيل أي أخطاء."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"مدة تحميل النموذج"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"بدايات باردة"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"تشير النقاط البرتقالية إلى البدايات الباردة (النموذج محمل من القرص، > 500 مللي ثانية)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"هذه التكاليف تقديرات مبنية على أسعار واجهات برمجة التطبيقات السحابية المكافئة. يعمل Ollama محلياً بدون تكلفة."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات استخدام بعد. ابدأ المحادثة لرؤية استخدام الرموز وتقديرات التكلفة."}}},my={title:{t:0,b:{t:2,i:[{t:3}],s:"التحليلات"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"جودة الاستجابة"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"تحليل التأخير"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"الموثوقية"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"أنماط الاستخدام"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"تأثير الإعدادات"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"ذاكرة النموذج"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"الجودة عبر الأدوار"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"أخضر = جيد (3.5+)، أصفر = متوسط (2-3.5)، أحمر = ضعيف (< 2)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"ابدأ محادثة متعددة الأدوار لرؤية اتجاهات الجودة."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"الجدول الزمني للأخطاء"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"لم يتم تسجيل أي أخطاء."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"حجم الطلبات"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"توزيع النماذج"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"ساعات النشاط"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"الحرارة مقابل السرعة"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"كل نقطة تمثل جلسة. يوضح تأثير درجة الحرارة على سرعة التوليد."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"يلزم جلستان على الأقل مع إعدادات حرارة صريحة."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"سجل تحميل النموذج"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"بارد"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"لا توجد بيانات جلسات بعد."}}}},fy={title:{t:0,b:{t:2,i:[{t:3}],s:"ساحة الإكمال في الوسط"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"اختبر إكمال الكود ببادئة + لاحقة. النموذج يملأ الفراغ."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"بعض نماذج Ollama (Qwen-Coder، CodeLlama، Codestral، DeepSeek-Coder، StarCoder) تدعم حقل `suffix` على /api/generate. زوّد الكود قبل المؤشّر وبعده — والنموذج يكمل ما بينهما."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"نماذج الكود (تدعم FIM)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"نماذج أخرى (قد لا تدعم FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"هذا النموذج ليس من نماذج الكود المعروفة — قد يُتجاهَل حقل `suffix`."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"البادئة (الكود قبل المؤشّر)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"اللاحقة (الكود بعد المؤشّر)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"توليد"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"الإكمال"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"معاينة مدمجة"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"بثّ جارٍ…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"تحميل النموذج"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"الرموز المولَّدة"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"السرعة"}}}},py={title:{t:0,b:{t:2,i:[{t:3}],s:"مرصد البروتوكولات"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"أرسل مطالبة واحدة عبر ثلاثة بروتوكولات تقديم. نفس النموذج، نفس خادم Ollama — صيغ نقل مختلفة. قارن ما يعطيك إيّاه كل بروتوكول."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"يكشف Ollama ثلاث نقاط: /api/chat (NDJSON أصلي)، و /v1/chat/completions (SSE متوافق مع OpenAI)، و /v1/messages (SSE متوافق مع Anthropic). كلها تستهدف نفس النموذج المحلي — بلا سحابة، بلا مفاتيح API. تطلق هذه الصفحة نفس المطالبة عبر الثلاثة بالتوازي وتُظهر ما يختلف."}},model:{t:0,b:{t:2,i:[{t:3}],s:"النموذج"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"المطالبة"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"اكتب مطالبة سيُجيب عنها البروتوكولات الثلاثة…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"الحد الأقصى للرموز"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"شغّل البروتوكولات الثلاثة"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"لم تُشغَّل بعد."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"بانتظار أوّل رمز…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"تفحّص الظرف"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"أول chunk / event"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"آخر chunk / event"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"حرف"}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"أصلي"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama الأصلي"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"متوافق مع OpenAI"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (توافق)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"متوافق مع Anthropic"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (توافق)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"الإجمالي"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"الرموز"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"الإنهاء"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"مقارنة الاستجابة"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"فروق الظرف"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"الجانب"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"تأطير البث"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"المفاتيح العلوية (المرصودة)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"حقل سبب الإنهاء"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"قيمة سبب الإنهاء (هذه المرّة)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"حقل عدّ الرموز"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"رموز الإكمال (هذه المرّة)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"بنية ظرف الخطأ"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"القيم المرصودة من هذا التشغيل على Ollama المحلي لديك. بعض الحقول (مثل `done_reason` في NDJSON الأصلي) لا تظهر إلا في الـ chunk الأخير، بينما تكون أخرى (مثل `message_stop` لدى Anthropic) أحداثاً مخصّصة."}}}},hy={common:Zv,dashboard:ty,settings:ey,benchmark:sy,embeddings:iy,rag:ny,tools:oy,training:ry,system:ay,comparison:ly,session:cy,feedback:uy,quality:by,cost:dy,analytics:my,fim:fy,protocols:py},gy={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ćaskanje - diagnostika"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Poredi"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđavanja"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Alatnica"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna koda"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI obuka"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"Lokalni LLM posmatrač"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ćaskanje - diagnostika"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Poredi modela"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđavanja"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Alatnica"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna koda"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama povezana"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama odspojena"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Obrada..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Spremno"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Greška"}},success:{t:0,b:{t:2,i:[{t:3}],s:"Uspeh"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Čeka"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Radi"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"Završeno"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Neuspelo"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Strimovanje"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"Neaktivan"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"Povezano"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"Odspojeno"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"Tamno"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Svetlo"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Sistem"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"Tema"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"Jezik"}},english:{t:0,b:{t:2,i:[{t:3}],s:"Engleski"}},french:{t:0,b:{t:2,i:[{t:3}],s:"Francuski"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Izbriši"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Uredi"}},test:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Očisti"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Zastani"}},add:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Nazad"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Sledeće"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Podnesi"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Resetuj"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Export"}},import:{t:0,b:{t:2,i:[{t:3}],s:"Import"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"Samo sada"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" minuta pre"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" sati pre"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" dana pre"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" meseci pre"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni/s"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"ms"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"s"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"B"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"KB"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"MB"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"GB"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"Dimenzije"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi model"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema dostupnih modela"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje modela..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"Povuci model"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema rezultata"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"Još ništa ovde"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"Engleski"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Francuski"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"Arapski"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"Kineski"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"Japanski"}},he:{t:0,b:{t:2,i:[{t:3}],s:"Hebrejski"}},de:{t:0,b:{t:2,i:[{t:3}],s:"Nemački"}},es:{t:0,b:{t:2,i:[{t:3}],s:"Španski"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"Portugalski"}},it:{t:0,b:{t:2,i:[{t:3}],s:"Italijanski"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"Ruski"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"Korejski"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"Hindi"}}}},vy={title:{t:0,b:{t:2,i:[{t:3}],s:"Dijagnostika četa"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku... (Shift+Enter za novi red)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku ili nalepi/prevuci sliku..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"Komande"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"Priloži fajlove"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"Priloži fajlove ili slike"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi generisanje"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji poruku"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"Vizuelni model — može da obrađuje slike"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Prevuci fajlove za prilaganje"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"Novi čet"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ Novi čet"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Istorija"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"Istorija četa"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"Preimenuj"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"Obriši čet"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Da li ste sigurni da želite da obrišete ovaj razgovor?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"Prikazano ime"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"Novi razgovor"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"Uredi ime"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"Nema istorije razgovora"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"Još nema razgovora."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"Klikni da preimenuješ"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži detalje sesije"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"Bez naslova"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"m"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"h"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"pre "},{t:4,k:"n"},{t:3,v:"d"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"sesije"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno sesija"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosečan TTF"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Prosečna brzina"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno tokena"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"Skorašnji razgovori"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja četa"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Kazna ponavljanja"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Dužina konteksta"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno tokena"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"Instrukcije poslate pre razgovora. Podešavaju ponašanje i personu modela."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Vi ste koristan asistent..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"KB uključen"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"KB isključen"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"Dokumenti"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Upravljaj"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"Nema ubačenih dokumenata"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj dokumente"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"Precizno"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"Kreativno"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"Neograničeno"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna dužina odgovora. -1 = neograničeno."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 za neograničeno"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"Prozor konteksta"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan kontekst koji model vidi. Veće = više memorije, sporije."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"Napredno uzorkovanje"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"Nucleus sampling. Niže = fokusiranije na verovatne tokene."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"Ograniči uzorkovanje na top K tokena u svakom koraku."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"Kažnjava tokene koji su se već pojavili. Više = manje ponavljanja."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Onemogućeno"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"Adaptivno uzorkovanje zasnovano na perpleksitetu. Zamenjuje top-p/top-k kada je uključeno."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Nasumično"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"Fiksni seed za reproduktivne rezultate. -1 = nasumično."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 za nasumično"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"Stop sekvence"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr. Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"Stringovi odvojeni zarezima koji zaustavljaju generisanje kada se pojave."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Alati"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Aktivno"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"Još nema definisanih alata"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Upravljaj u radionici alata..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"Povlačenje..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Povuci"}},thinking:{label:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},off:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},on:{t:0,b:{t:2,i:[{t:3}],s:"Uključeno"}},max:{t:0,b:{t:2,i:[{t:3}],s:"Max"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Uključite interno rezonovanje modela. Max traži najveći budžet. Ignoriše se ako model ne podržava."}},modelSupportsHint:{t:0,b:{t:2,i:[{t:3}],s:"podržano u modelu"}}},responseFormat:{label:{t:0,b:{t:2,i:[{t:3}],s:"Format odgovora"}},none:{t:0,b:{t:2,i:[{t:3}],s:"Slobodan tekst"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Validan JSON (bilo koji oblik)"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"JSON Schema (strogo)"}},freeForm:{t:0,b:{t:2,i:[{t:3}],s:"Slobodan"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Prinudi strukturisan izlaz. JSON Schema ograničava oblik — korisno za parsiranje."}},schemaPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nalepi JSON Schema objekat…"}},schemaHint:{t:0,b:{t:2,i:[{t:3}],s:"Validan JSON Schema. Šalje se kao `format` polje na /api/chat."}}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"Klizni prozor"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Zadrži samo poslednjih N poruka"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno poruka"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Auto-sumarizacija"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"Automatski sumiraj starije poruke"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"Prag sumarizacije"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni nakon"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"Poruke"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"Činjenice o korisniku"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"Korisničke memorije"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/remember činjenice ubačene u kontekst"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj činjenicu"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG memorija"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"Memorija poruka (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi relevantne stare poruke putem embeddinga"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding model"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi embedding model..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema pronađenih embedding modela. Povuci jedan:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi top"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K rezultata"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"Činjenice"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"Započni razgovor sa lokalnim modelom"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor je skraćen — povećaj num_predict u podešavanjima za duže odgovore"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tok/s"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"Hladan start"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"Model je učitan sa diska za ovaj zahtev (vreme učitavanja > 500ms)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdown"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi tekst"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"Čet i razgovor"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"Model i podešavanja"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"Funkcije i navigacija"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},descriptions:{help:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži sve dostupne komande"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Obriši trenutni razgovor"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Započni novu sesiju četa"}},summarize:{t:0,b:{t:2,i:[{t:3}],s:"Zatraži od modela da sažme razgovor"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Izvezi razgovor kao JSON ili tekst"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj poslednji odgovor asistenta"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži skorašnje razgovore"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Promeni model ili prikaži dostupne modele"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Postavi sistemski prompt"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Postavi temperaturu (0-2)"}},top_p:{t:0,b:{t:2,i:[{t:3}],s:"Postavi top-p / nucleus sampling (0-1)"}},top_k:{t:0,b:{t:2,i:[{t:3}],s:"Postavi top-k uzorkovanje (1-100)"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Postavi veličinu prozora konteksta"}},repeat_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Postavi kaznu ponavljanja (1.0-2.0)"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Postavi seed za reproduktivnost (-1 za nasumično)"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Postavi stop sekvence (odvojene zarezima)"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Postavi mirostat mod (0=isključen, 1=v1, 2=v2)"}},format:{t:0,b:{t:2,i:[{t:3}],s:"Uključi/isključi JSON format izlaza"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Vrati sva podešavanja na podrazumevana"}},rag:{t:0,b:{t:2,i:[{t:3}],s:"Uključi/isključi RAG kontekst"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Otvori panel podešavanja alata"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži status Ollama veze i informacije o modelu"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži broj tokena za trenutnu sesiju"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži prosečnu brzinu generisanja po sesijama"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Idi na stranicu Uporedi"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži detalje trenutne sesije"}},remember:{t:0,b:{t:2,i:[{t:3}],s:"Zapamti činjenicu o tebi između razgovora"}},forget:{t:0,b:{t:2,i:[{t:3}],s:"Zaboravi prethodno zapamćenu činjenicu"}},memories:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži sve zapamćene činjenice"}}},notifications:{helpHeader:{t:0,b:{t:2,i:[{t:3}],s:"Dostupne komande:"}},unknownCommand:{t:0,b:{t:2,i:[{t:3,v:"Nepoznata komanda: /"},{t:4,k:"name"},{t:3,v:". Ukucaj /help da vidiš dostupne komande."}]}},conversationCleared:{t:0,b:{t:2,i:[{t:3}],s:"Razgovor obrisan."}},newChatStarted:{t:0,b:{t:2,i:[{t:3}],s:"Novi čet pokrenut."}},nothingToSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Nema šta da se sažme — razgovor je prazan."}},conversationExported:{t:0,b:{t:2,i:[{t:3,v:"Razgovor izvezen kao "},{t:4,k:"format"},{t:3,v:"."}]}},historyHint:{t:0,b:{t:2,i:[{t:3}],s:"Skroluj do sekcije skorašnjih razgovora ili započni /new čet."}},availableModels:{t:0,b:{t:2,i:[{t:3,v:"Dostupni modeli: "},{t:4,k:"list"},{t:3,v:`
|
|
21
21
|
Trenutni: `},{t:4,k:"current"}]}},switchedTo:{t:0,b:{t:2,i:[{t:3,v:"Prebačeno na "},{t:4,k:"model"},{t:3,v:"."}]}},modelNotFound:{t:0,b:{t:2,i:[{t:3,v:"Model „"},{t:4,k:"name"},{t:3,v:'" nije pronađen. Dostupni: '},{t:4,k:"list"}]}},currentSystemPrompt:{t:0,b:{t:2,i:[{t:3,v:"Trenutni sistemski prompt: "},{t:4,k:"prompt"}]}},systemPromptUpdated:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt ažuriran."}},tempUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /temperature 0.0-2.0"}]}},temperatureSet:{t:0,b:{t:2,i:[{t:3,v:"Temperatura postavljena na "},{t:4,k:"value"},{t:3,v:"."}]}},topPUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /top_p 0.0-1.0"}]}},topPSet:{t:0,b:{t:2,i:[{t:3,v:"Top-p postavljen na "},{t:4,k:"value"},{t:3,v:"."}]}},topKUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /top_k 1-100"}]}},topKSet:{t:0,b:{t:2,i:[{t:3,v:"Top-k postavljen na "},{t:4,k:"value"},{t:3,v:"."}]}},contextUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Validne veličine: "},{t:4,k:"sizes"}]}},contextSet:{t:0,b:{t:2,i:[{t:3,v:"Prozor konteksta postavljen na "},{t:4,k:"value"},{t:3,v:"."}]}},repeatPenaltyUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /repeat_penalty 1.0-2.0"}]}},repeatPenaltySet:{t:0,b:{t:2,i:[{t:3,v:"Kazna ponavljanja postavljena na "},{t:4,k:"value"},{t:3,v:"."}]}},seedUsage:{t:0,b:{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /seed [broj]"}]}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Seed postavljen na nasumično."}},seedSet:{t:0,b:{t:2,i:[{t:3,v:"Seed postavljen na "},{t:4,k:"value"},{t:3,v:"."}]}},stopCurrent:{t:0,b:{t:2,i:[{t:3,v:"Trenutne stop sekvence: "},{t:4,k:"sequences"}]}},stopSet:{t:0,b:{t:2,i:[{t:3,v:"Stop sekvence postavljene: "},{t:4,k:"sequences"}]}},mirostatUsage:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"Trenutno: "},{t:4,k:"current"},{t:3,v:". Upotreba: /mirostat 0"}]},{t:2,i:[{t:3}],s:"1"},{t:2,i:[{t:3}],s:"2"}]}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat onemogućen."}},mirostatEnabled:{t:0,b:{t:2,i:[{t:3,v:"Mirostat v"},{t:4,k:"version"},{t:3,v:" omogućen."}]}},jsonFormatEnabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format omogućen."}},jsonFormatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format onemogućen."}},settingsReset:{t:0,b:{t:2,i:[{t:3}],s:"Sva podešavanja vraćena na podrazumevana."}},ragEnabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG kontekst omogućen."}},ragDisabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG kontekst onemogućen."}},settingsPanelOpened:{t:0,b:{t:2,i:[{t:3}],s:"Panel podešavanja otvoren."}},ollamaStatus:{t:0,b:{t:2,i:[{t:3,v:"Ollama: "},{t:4,k:"status"},{t:3,v:`
|
|
22
22
|
Model: `},{t:4,k:"model"}]}},ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Povezan"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Nije povezan"}},noActiveSession:{t:0,b:{t:2,i:[{t:3}],s:"Nema aktivne sesije."}},tokenCounts:{t:0,b:{t:2,i:[{t:3,v:"Tokeni prompta: "},{t:4,k:"prompt"},{t:3,v:`
|
|
23
23
|
Tokeni odgovora: `},{t:4,k:"completion"},{t:3,v:`
|
|
24
24
|
Ukupno: `},{t:4,k:"total"}]}},noSessionsRecorded:{t:0,b:{t:2,i:[{t:3}],s:"Još nema zabeleženih sesija."}},averageSpeed:{t:0,b:{t:2,i:[{t:3,v:"Prosečna brzina: "},{t:4,k:"speed"}]}},rememberUsage:{t:0,b:{t:2,i:[{t:3}],s:`Upotreba: /remember [nešto što treba zapamtiti]
|
|
25
25
|
Primer: /remember Više volim TypeScript od JavaScript-a`}},remembered:{t:0,b:{t:2,i:[{t:3,v:"Zapamćeno: „"},{t:4,k:"fact"},{t:3,v:'"'}]}},forgetUsage:{t:0,b:{t:2,i:[{t:3}],s:`Upotreba: /forget [deo činjenice koju treba ukloniti]
|
|
26
26
|
Primer: /forget TypeScript`}},forgot:{t:0,b:{t:2,i:[{t:3,v:"Zaboravljena činjenica koja odgovara „"},{t:4,k:"search"},{t:3,v:'".'}]}},factNotFound:{t:0,b:{t:2,i:[{t:3,v:"Nije pronađena nijedna činjenica koja odgovara „"},{t:4,k:"search"},{t:3,v:'". Koristi /memories da vidiš sve činjenice.'}]}},noMemories:{t:0,b:{t:2,i:[{t:3}],s:"Još nema sačuvanih sećanja. Koristi /remember [činjenica] da dodaš jedno."}},yourMemories:{t:0,b:{t:2,i:[{t:3,v:"Tvoja sećanja ("},{t:4,k:"count"},{t:3,v:`):
|
|
27
|
-
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Kopirano u privremenu memoriju."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Nema odgovora asistenta za kopiranje."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Nema razgovora za izvoz."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format prebačen. To utiče na sledeći zahtev."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(nema)"}}}}},py={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Models"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Integrations"}},about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama veza"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj vezu"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Veza uspješna"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Veza nije uspjela"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Povezivanje..."}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Odspojen"}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumijevani parametri"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Što je Temperatura?"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:'Kontroliše koliko "kreativno" ili "slučajno" odgovori modela su.'}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Uvek bira najverovatniju reč. Dobar za činjenice, matematiku i kod."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Dobar balans. To je podrazumevano."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Iznenađujuće i kreativnije."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Deterministički"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Fokusiran"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Balansiran"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Kreativan"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Veoma slučajan"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Divlji"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Duljina konteksta"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Što je Duljina konteksta?"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Koliko razgovora model može videti odjednom, izraženo u tokenima."}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Veća dužina koristi više RAM/VRAM."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" reči"}]}},approximateWords:{t:0,b:{t:2,i:[{t:3}],s:"Jezik"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi jezik"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Select language"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Povuci novi model"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Ime modela"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Povuci"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Brisanje"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Jesi li siguran da želiš da obrišeš ovaj model?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Veličina"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Porodica"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Kvalifikacija"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Sposobnosti"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi modele"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži modele..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Nije instalirano nijedan model. Povuci jedan iz kataloga."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Nema modela koji odgovaraju vašoj pretrazi."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Povuci bilo koji model po imenu"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Instalirano"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Potvrda brisanja?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Google račun"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Poveži"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Odspoji"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Povezan kao"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Integracija LLM"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Povežite svoj Google račun da omogućite kalendar i Gmail alate u Radionici. "}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"OAuth2 Client ID"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Autentifikacija..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Nije povezan"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Povežite svoj Google račun"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži postavke"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Skrij postavke"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Licenca"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Repoizitorijum"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Tech Stack"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Lokalni LLM Posmatrač"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Lokalna AI Istorija"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Vaš istraživački arhiv — svi eksperimenti, pretraživi"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kako se vaše podaci čuvaju"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Sva vaša data je skladištena lokalno u vašem pregledniku koristeći IndexedDB — trajni, preglednik-native bazu podataka. Vaša data preživi zatvaranje preglednika, ponovnu pokretanje računara i softverske ažuriranja. Ništa se šalje na server."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Originalni podaci (benchmarkovi, razgovori, poređenja, obuka) su skladišteni u 6 odvojene IndexedDB baze podataka — jedna za svaku funkcionalnost. IndexedDB nije sesijska memorija — ona traje do sledećeg prelaska preglednika."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"Istorijski indeks je moćni istraživački alat koji koristi Dexie.js za brzo pretraživanje i analizu svih LLMxRay aktivnosti. Misli na njega kao na pretragu unutar vašeg LLMxRay profila."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Sve ostaje na vašem računaru. Jedini način da se podaci izbrišu je da obrišete preglednik site data ili koristite Clear dugmad u ovoj aplikaciji. Nema naloga, nema cloud sinkronizacije, nema telemetrije."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Tip"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Languaža"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Datum raspon"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Tagovi"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Sve"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 7 dana"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 30 dana"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 90 dana"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Svi vremena"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" ulazaka"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Nema istorijskih unosa. Pokrenite eksperiment, poređenje ili razgovor da biste započeli svoju istraživačku arhivu."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Trendovi"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Aktivnost (poslednjih 30 dana)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modeli korišćeni"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"Baza podataka upravljanja"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan broj ulazaka"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Procjenjena veličina"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Izvozi sve (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Izvozi Filtrirano (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Zadržavanje"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Zauvek"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 dana"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 dana"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"Godina"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Čisti Istoriju"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Ovo će izbrisati sve istorijske unose. Ostale podatke (benchmarkovi, razgovori, itd.) nije pogođeno."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Razgovor"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Traing"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}}}}},hy={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Hirurgički Benchmark"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Procjenite modele koristeći kreirane skupove pitanja - stvarne logprobnije povjerenje, per-kategorijske dijagnoze"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Detalji rezultata"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Najnoviji rezultat"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje tabele"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi modele"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi skup pitanja"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Veličina konteksta"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Procjenjena vremenska trajanje"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalni broj modela"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"Odabrano"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark skupovi pitanja"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Uvoz prilagođeno"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Kontekst:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni Benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"prilagoditi"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC izazov"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellasSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Napredak"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Trenutno pitanje"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Poslednji odgovor"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Tačno"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Neispravno"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Preciznost"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna latencija"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna sigurnost"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Kategorijski napredak"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Misli"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Standardno"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje na pitanje..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje prvi odgovor..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Obradi pitanje..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi Benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Napredak benchmarka"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno TTF"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno ukupno"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Skupovi pitanja"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Očekivano:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Opšta preciznost"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Per kategorija"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Sigurnost vs. Preciznost - X-Ray Scatter"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Zbunjen (nisko sigurnost, pogrešno)"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Kalibrirano (visoka sigurnost, tačno)"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Previše sigurno (visoka sigurnost, pogrešno)"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Sretan (niska sigurnost, tačno)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Per-Kategorijsko ukupno vreme"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Pritisak konteksta - Preciznost degradacija"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Kategorijska razbijanja"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Kategorija"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Tačno"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno TTF"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno ukupno"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna sigurnost"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Per-Pitanje Detalji"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Sve"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Pogrešno"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Preciznost"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Reasoning"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Response"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Accuracy"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Poredi rezultate"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Radar grafikon"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Topografska karta"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Nastavi"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Izbriši rezultat"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvani Rezultati"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Još nema sačuvanih rezultata."}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Klikni za selekciju za poređenje"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Nedovršeno"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Pogledajte detalje"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Nastavi nedovršeni benchmark"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Kreirajte Benchmark Suite"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Uredite Benchmark Suite"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Skup pitanja"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr., Francuska istorija kviz"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta ovo skup pitanja testira?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumevana kategorija"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Pitanja"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Pitanje"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Uredi Pitanje"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Nema pitanja još. Dodajte svoje prvo pitanje ili koristite AI da ih generišete."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite svoje pitanje ovde..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Odgovori"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Odgovor"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Tačan odgovor"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Kategorija"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Težina"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Lako"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Srednje"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Teško"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj Skup pitanja"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Kreirajte Suite"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" odgovora"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Generišite sa AI"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Tema"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr., Francuska istorija, Python programiranje, Organski hemija"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Broj pitanja"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Težina"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Mješovito"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generišite Pitanja"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Generiranje..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži generaciju"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Generisana pitanja"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi sve"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Poništi izbor"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Izabrano"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Neka pitanja nisu mogla biti parsirana"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nije generisano validnih pitanja. Pokušajte drugu temu ili model."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz Skup pitanja"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz Prilagođeni Benchmark Suite"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Povuci i otpusti datoteku ovde"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Povuci .json datoteku ovdje"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Brovs"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna veličina"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Nevalidan format"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz uspešan"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Zahtevi: JSON sa imenom, pitanje niz (2-500 stavki)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Svako pitanje mora imati: id, pitanje, odgovori (2-6), tačan odgovor."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna veličina 1MB. HTML oznake će se ukloniti. ID-ovi će se deduplicirati."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Datoteka je prevelika (maksimalno 1MB)"}}}},gy={title:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđenja"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema dostupnih modela"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nije pronađen nijedan model za ugnježđivanje. Preuzmite jedan: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđena memorija"}},records:{t:0,b:{t:2,i:[{t:3}],s:"zapisi"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Igraj sa ugnježđenjima"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst da biste generisali njegov vektor ugnježđivanja i pregledali dimenzije."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst za ugnježđivanje..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Ugnjezdi"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđujem..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Prikaži sirove vrednosti (prvih 50 od "},{t:4,k:"ukupno"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kalkulator sličnosti"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Uporedite dva teksta da biste izmerili njihovu semantičku sličnost koristeći kosinusnu udaljenost."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Tekst A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Tekst B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Prvi tekst..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Drugi tekst..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Poredi"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje modela"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježdi isti tekst sa dva modela da biste uporedili kako predstavljaju značenje."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Model A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Model B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst za ugnježđivanje sa oba modela..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Poredi modele"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje modela..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Unakrsna sličnost — ovi modeli predstavljaju značenje veoma različito."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Veoma različito — modeli dele samo minimalnu semantičku strukturu."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Umereno slaganje — modeli dele deo semantičke strukture."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Visoko slaganje — ovi modeli predstavljaju ovaj tekst slično."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Dimenzije se razlikuju ("},{t:4,k:"dimA"},{t:3,v:" vs "},{t:4,k:"dimB"},{t:3,v:") — direktna kosinusna sličnost nije moguća."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Uporedite statistiku iznad da biste procenili kvalitet reprezentacije svakog modela."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Dimenzije"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"L2 norma"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Sparzitet"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Vreme"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Nedavno ugnježđeno"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}}}},vy={title:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Učitaj dokumente za RAG-pokrećene razgovore"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema umetnutih modela"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladištenje znanja"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"dokumenti"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"komadi"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"skladišteno"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"RAZ Skladištenje"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Povuci i odložite datoteke ovde"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Brovs"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Odložite datoteke ovdje ili kliknite da biste pretražili"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Podržava PDF, DOCX, TXT, Markdown, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dokumenti"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Nema dokumenata učitano još"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Podesi RAG kontekst"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni dokument"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Semantičko pretraživanje"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Pretražite svoje dokumente..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema rezultata pretrage"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Pretražujem..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži"}},results:{t:0,b:{t:2,i:[{t:3}],s:"rezultati"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Pokaži manje"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži cijeli komad"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Ingeštaj napredak"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ingeštajuće..."}}}},yy={title:{t:0,b:{t:2,i:[{t:3}],s:"Radionica alata"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj alat"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj iz šablona"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Nema konfigurisanih alata. Dodaj jedan da biste počeli."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Ime alata"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Opis alata"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Ime funkcije"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Implementacija"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Kod"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj alat"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Obriši alat"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Panel koda"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Izvor"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-kompatibilni manifest alata"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Upozorenja"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Nema još alata. Napravi svoj prvi alat ili počni od šablona."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Novi alat"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Iz šablona..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj trening podatke (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Biblioteka alata"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni sve alate sa platna"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3,v:"Da li želite da uklonite sve "},{t:4,k:"count"},{t:3,v:" alat(a) sa platna? Ovo ne može biti povučeno."}]}},clearAllWarning:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Onemogući za razgovor"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Omogući za razgovor"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni alat"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Izbrisati alat"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Nema još alata"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj sve alate (JSON)"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj alat kao JSON"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz alata kao JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Šabloni alata"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Počni sa funkcionalnim šablonom i prilagodi ga"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Utičišta"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Podaci"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (Kalendar & Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Prilagođeno"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Ime funkcije"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Dobijaj trenutnu vremensku prognozu za dato mesto"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Vizuelni graditelj"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"Raw JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj parametar"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni parametar"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj alat"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Uredi alat"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Novi alat"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Još nema definisanih alata."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj alat"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Radi..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Uspjeh"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Greška"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Rezultat"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Trajanje"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM alat"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"funcName"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Nacrtaj sa AI"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI uvidi"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Radi..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Gotovo"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Neuspjeh"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI popravka"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta ovaj alat radi?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Namjena"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Opišite što bi ovaj alat trebao da radi..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generiraj"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Generiranje..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"name"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"tip"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Nema parametara"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Probaj i izaberi"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Probaj"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"Glave"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ime glave"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"vrijednost"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Označi kao tajni (koristi varijablu okruženja u generisanim kodu)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Telo zahtjeva"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Krajnja tačka"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži krajnje tačke..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Nema odgovarajućih krajnjih tačaka"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI sugestija"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Razmišlja..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"polje"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"polja"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Primjeni"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Mapiranje"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Izvan sinhronizacije"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Telo (Tipskript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"/ / Alat implementacija..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI-sugestirana popravka (pregledajte prije primjene):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Primjeni popravku"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Prihvati"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Odbaci"}}}},ky={title:{t:0,b:{t:2,i:[{t:3}],s:"AI Training"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Brauzirajte, kurirajte i izvozite svoje podatke za obuku iz alata u radionici."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan parovi"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"prihvaćeno"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"odbijeno"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Očekuje se"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Parovi za obuku"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Stopa prihvatanja"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"Po fazi"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Najbolji modeli"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Pretraga..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Pretražite prompte..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Ime alata"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Oznaka"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Status"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Svi modeli"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Svi alati"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Sve oznake"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Svi statusi"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" izabrano"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Oznaci kao prihvaćeno"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Oznaci kao odbijeno"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj oznaku"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ime oznake..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Obriši"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi sve"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj oznaku..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi sve"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi ništa"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" od "},{t:4,k:"total"},{t:3,v:" parova prikazano"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema obučnih parova koji odgovaraju vašim filtrima."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Prihvaćeno"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Odbijeno"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Korisnički prompt"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI odgovor"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Uredi odgovor"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Oznake"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Obriši par"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi brisanje?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Još nema prikupljenih podataka za obuku."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Parovi za obuku se generišu automatski kada koristite AI funkcije u alatu (generisanje nacrta, analiza koda, automapiranje i popravka AI)."}}}},Sy={title:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Hardver, runtime i inferecija pregled"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Detektovanje hardvera..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Upit CPU-a, memorije, GPU-a i skladišta"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Nedostupno detektovanje hardvera. Ponovo pokrenite server za dev da omogućite plugin sistem informacija."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Eksporat"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi izveštaj o sistemu (Markdovn)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi sistem info (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Operativni sistem"}},os:{t:0,b:{t:2,i:[{t:3}],s:"OS"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Build"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Architecture"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Uređaj"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Ime"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Proizvođač"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Familija"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Procesor"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Fizički jezgro"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Logički procesori"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna frekvencija"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Dostupno"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Korišćeno"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Grafika"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"Adapter RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Deljeno / Nije izvešteno"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Vozač"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladište"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Drive"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Slobodno"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Korišćeno"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladište u pregledaču"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Persistentno"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Najbolji napor"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Skeniranje..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Kvota IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" ukupnih zapisa preko "},{t:4,k:"database"},{t:3,v:" baza podataka"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve podatke"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Prazno"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama Runtime"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Status"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno skladištenje modela"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Modeli učitani"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inferecija"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"Ova sesija"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Nema inferecijskih sesija još. Pošalji poruku da biste učitali jedan."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna brzina"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno vrijeme odgovora"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Koristeni modeli"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aktivni modeli"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema trenutno učitani model u memoriji. Pošalji poruku da biste ga učitali."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Kontekst"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema instaliranih modela."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Familija"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Kvantizacija"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Veličina"}}}},Ty={title:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi rezultate modela"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Slotovi za poređenje"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Svaki slot je kombinacija modela i podešavanja. Dodaj isti model više puta sa različitim podešavanjima da uporediš ponašanje."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj slot"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni slot"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Opcioni sistemski prompt..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Opcije"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nasumično (ostavi prazno)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Napredno"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Kazna ponavljanja"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno tokena"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Dužina konteksta"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumevano"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" slot(ova) podešeno"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Još nema podešenih slotova"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj slot da izabereš model i podešavanja, ili koristi brzi početni preset iznad."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj prvi slot"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Dodaj slot ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Brzi početak:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Temperaturni opseg"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Kreira 3 slota istog modela na temperaturama 0.2 (fokusirano), 0.7 (uravnoteženo) i 1.2 (kreativno). Pogledaj kako temperatura menja rezultat za isti prompt."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Deterministički par"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Kreira 2 slota istog modela sa istim seed‑om, ali različitim temperaturama (0.3 i 1.0). Zajednički seed znači da je razlika u izlazu isključivo zbog temperature, a ne nasumičnosti."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje jezika"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi kako različiti jezici utiču na cenu tokena i ponašanje modela"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesi prompt za poređenje između slotova..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Pokrećem..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Rezultati"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Mreža"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Razlike"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Potrebna su najmanje 2 završena rezultata da bi se prikazala razlika."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"vs"}},only:{t:0,b:{t:2,i:[{t:3,v:"samo "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje performansi"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Vreme do prvog tokena"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"niže je bolje"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokena/sek"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"više je bolje"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno tokena"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Brzina"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Trajanje"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Otkriven jezički nesklad"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Čini se da je tvoj prompt na jeziku: "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"ciljni jezik je "},{t:4,k:"languae"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Prevedi na "},{t:4,k:"languae"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Zadrži "},{t:4,k:"languae"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Prevedi sve"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Porez na tokene"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni prompta"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Prevedeni prompt"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Prevedeno"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Jezik još nije podržan"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Prevodim... može potrajati u zavisnosti od veličine modela"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet prevoda zavisi od jezičkih sposobnosti modela. Veći modeli daju bolji prevod."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Ukucaj ili nalepi svoj prompt na jeziku "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvana poređenja"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Učitaj"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Još nema sačuvanih poređenja"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi kao JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi kao Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Podeli na GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Podeli svoja otkrića"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj komentar"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta si otkrio? Podeli svoje uvide..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Pregled izveštaja"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Otvori GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Kopirano!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Bićeš preusmeren na GitHub da pregledaš i objaviš svoje nalaze."}}}},_y={title:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Sesija "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Sesija nije pronađena."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Strim"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Introspekcija"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Alati"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Agent Grafikon"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdovn"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Token Stream CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token Strim"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Mertriki"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite svoj prompt..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka o razumevanju za ovu sesiju."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Introspekcija"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Ilustruj"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Pozivi alata"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Vremenska linija"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Optimizuj"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Agent Grafikon"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Prompt Inspector"}}}},wy={title:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji povratnu informaciju"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Hvala vam na povratnoj informaciji!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Vaše učešće pomaže da LLMxRay postane bolji."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Koje vrste povratnih informacija?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Bug"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Ideja"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Drugo"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recite nam šta je na vašem umu..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"E-pošta"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(opciono - samo ako želite odgovor)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"vaš@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji povratnu informaciju"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Slanje..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Uključuje kontekst aplikacije (stranica, model, sistem) da bismo razumeli vaše povratne informacije."}}},Py={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Pronađene probleme sa kvalitetom"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Repetiitivni"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor sadrži previše ponavljanih fraza"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Refuz"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor izgleda kao odbijanje"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Giibleriš"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor ima visok odnos nečitljivih znakova"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Prazan"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor sadrži vrlo malo sadržaja"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Prekinut"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor može biti prekinut"}}}},xy={title:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi kontrolne table"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total Tokena"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna Cena/Sesija"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Token Uporaba po Modelu"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Dnevna Uporaba"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt Tokena"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion Tokena"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Trend Cene"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Izvor"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Zahtev Latencija (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Vreme do Prvi Token (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Inter-Token Latencija Distribucija"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Buketi granica prate OTeL GenAI konvencije. Aggregirano preko svih sesija."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nedovoljno podataka o sesijama za analizu percentila."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Greske po Modelu"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Nema zabeleženih grešaka."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Vreme Ucitavanja Modela"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"Hladni Pokreti"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Orange tačke označavaju hladne pokrete (model učitan sa diska, > 500ms)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema sesijskih podataka još."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ove cene su procjene na osnovu ekvivalentnih cijena API-ja u oblaku. Olamma radi lokalno bez troškova."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema upotrebe podataka još. Počnite da razgovarate da biste vidjeli token upotrebu i procjenjene cijene."}}},Ay={title:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet odgovora"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Analiza latencije"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Pouzdanost"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Obrasci korisničkog ponašanja"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Uticaj postavki"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija modela"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet preko okretaja"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Zelena = dobra (3,5+), žuta = srednja (2-3,5), crvena = loša (< 2). Ocena zasnovana na broju reči, raznolikosti leksike i nedopuštanju ponavljanja."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Pokrenite višeokretnu razgovor da biste videli trendove kvaliteta."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Vremenski red grešaka"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Nije zabeležena nijedna greška."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Volumen zahteva"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Distribucija modela"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Aktivne sate"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka sesije."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura vs. Brzina"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Svaki tačka je sesija. Prikazuje kako temperatura utiče na generisanje brzine."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Treba najmanje 2 sesije sa eksplicitno postavljenim temperaturama."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Istorija učitavanja modela"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"hladno"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka sesije."}}}},Cy={title:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna u sredini (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Testirajte dopunu koda sa prefiksom + sufiksom. Model popunjava prazninu."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Neki Ollama modeli (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) podržavaju `suffix` polje na /api/generate. Unesite kod pre i posle kursora — model dopunjava sredinu."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Modeli za kod (FIM-kompatibilni)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Ostali modeli (možda ne podržavaju FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Ovaj model nije poznati model za kod — `suffix` može biti ignorisan."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Prefiks (kod pre kursora)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Sufiks (kod posle kursora)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generiši"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Spojeni prikaz"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Strimovanje…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Brzina"}}}},Ey={title:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Pošaljite jedan prompt kroz tri protokola posluživanja. Isti model, isti Ollama demon — različiti žičani formati. Uporedite šta vam svaki protokol pruža."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama izlaže /api/chat (nativni NDJSON), /v1/chat/completions (OpenAI-kompatibilan SSE) i /v1/messages (Anthropic-kompatibilan SSE). Sva tri ciljaju isti lokalni model — bez oblaka, bez API ključeva. Ova stranica pokreće isti prompt na sva tri paralelno i pokazuje šta se razlikuje."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite prompt na koji će sva tri protokola odgovoriti…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maks. tokena"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni sva 3 protokola"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Još nije pokrenuto."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje prvog tokena…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Inspekcija envelope"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Prvi chunk / događaj"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Poslednji chunk / događaj"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"znak."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Nativni"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama nativni"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-komp."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (komp)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Anthropic-komp."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (komp)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Kraj"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje odgovora"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff envelope"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Aspekt"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Omotač strima"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Ključevi vrha (opaženi)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Nosač razloga završetka"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Razlog završetka (ovaj run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Nosač broja tokena"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni (ovaj run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Oblik envelope greške"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Opažene vrednosti su iz ovog runa na vašem lokalnom Ollama. Neki nosači (npr. NDJSON nativni `done_reason`) pojavljuju se samo na poslednjem chunk-u, drugi (npr. Anthropic `message_stop`) su namenski događaji."}}}},jy={common:my,dashboard:fy,settings:py,benchmark:hy,embeddings:gy,rag:vy,tools:yy,training:ky,system:Sy,comparison:Ty,session:_y,feedback:wy,quality:Py,cost:xy,analytics:Ay,fim:Cy,protocols:Ey},My={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ћаскање - диагностика"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Пореди"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђавања"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Алатница"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Допуна кода"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI обука"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"Локални LLM посматрач"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ћаскање - диагностика"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Пореди модела"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђавања"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Алатница"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Допуна кода"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama повезана"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama одспојена"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Обрада..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Спремно"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Грешка"}},success:{t:0,b:{t:2,i:[{t:3}],s:"Успех"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Чека"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Ради"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"Завршено"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Неуспело"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Стримовање"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"Неактиван"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"Повезано"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"Одспојено"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"Тамно"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Светло"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Систем"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"Тема"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"Језик"}},english:{t:0,b:{t:2,i:[{t:3}],s:"Енглески"}},french:{t:0,b:{t:2,i:[{t:3}],s:"Француски"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Избриши"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Уреди"}},test:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Очисти"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Застани"}},add:{t:0,b:{t:2,i:[{t:3}],s:"Додај"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Уклони"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Потврди"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Назад"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Следеће"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Поднеси"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Ресетуј"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Еxпорт"}},import:{t:0,b:{t:2,i:[{t:3}],s:"Импорт"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"Само сада"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" минута пре"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" сати пре"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" дана пре"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" месеци пре"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Токени/с"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"мс"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"с"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"Б"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"КБ"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"МБ"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"ГБ"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"Димензије"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"Одабери модел"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема доступних модела"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање модела..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"Повуци модел"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема резултата"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"Још ништа овде"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"Енглески"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Француски"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"Арапски"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"Кинески"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"Јапански"}},he:{t:0,b:{t:2,i:[{t:3}],s:"Хебрејски"}},de:{t:0,b:{t:2,i:[{t:3}],s:"Немачки"}},es:{t:0,b:{t:2,i:[{t:3}],s:"Шпански"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"Португалски"}},it:{t:0,b:{t:2,i:[{t:3}],s:"Италијански"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"Руски"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"Корејски"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"Хинди"}}}},Dy={title:{t:0,b:{t:2,i:[{t:3}],s:"Дијагностика чета"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку... (Схифт+Ентер за нови ред)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку или налепи/превуци слику..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"Команде"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"Приложи фајлове"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"Приложи фајлове или слике"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"Заустави генерисање"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"Визуелни модел — може да обрађује слике"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Превуци фајлове за прилагање"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"Нови чет"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ Нови чет"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Историја"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"Историја чета"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"Преименуј"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"Обриши чет"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Да ли сте сигурни да желите да обришете овај разговор?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"Приказано име"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"Нови разговор"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"Уреди име"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"Нема историје разговора"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"Још нема разговора."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"Кликни да преименујеш"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи детаље сесије"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"Без наслова"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"м"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"х"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"д"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"сесије"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Укупно сесија"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просечан TTF"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Просечна брзина"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Укупно токена"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"Скорашњи разговори"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања чета"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Казна понављања"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Дужина контекста"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Максимално токена"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"Инструкције послате пре разговора. Подешавају понашање и персону модела."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ви сте користан асистент..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"КБ укључен"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"КБ искључен"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"Документи"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Управљај"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"Нема убачених докумената"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Додај документе"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"Прецизно"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"Креативно"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"Неограничено"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"Максимална дужина одговора. -1 = неограничено."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 за неограничено"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"Прозор контекста"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Укупан контекст који модел види. Веће = више меморије, спорије."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"Напредно узорковање"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"Nucleus sampling. Ниже = фокусираније на вероватне токене."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"Ограничи узорковање на top К токена у сваком кораку."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"Кажњава токене који су се већ појавили. Више = мање понављања."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Онемогућено"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"Адаптивно узорковање засновано на перплекситету. Замењује top-p/top-k када је укључено."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Насумично"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"Фиксни seed за репродуктивне резултате. -1 = насумично."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 за насумично"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"Стоп секвенце"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр. Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"Стрингови одвојени зарезима који заустављају генерисање када се појаве."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Алати"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Активно"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"Још нема дефинисаних алата"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Управљај у радионици алата..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"Повлачење..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Повуци"}},thinking:{label:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},off:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},on:{t:0,b:{t:2,i:[{t:3}],s:"Укључено"}},max:{t:0,b:{t:2,i:[{t:3}],s:"Max"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Укључите интерно резоновање модела. Max тражи највећи буџет. Игнорише се ако модел не подржава."}},modelSupportsHint:{t:0,b:{t:2,i:[{t:3}],s:"подржано у моделу"}}},responseFormat:{label:{t:0,b:{t:2,i:[{t:3}],s:"Формат одговора"}},none:{t:0,b:{t:2,i:[{t:3}],s:"Слободан текст"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Валидан JSON (било који облик)"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"JSON Schema (строго)"}},freeForm:{t:0,b:{t:2,i:[{t:3}],s:"Слободан"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Принуди структурисан излаз. JSON Schema ограничава облик — корисно за парсирање."}},schemaPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Налепи JSON Schema објекат…"}},schemaHint:{t:0,b:{t:2,i:[{t:3}],s:"Валидан JSON Schema. Шаље се као `format` поље на /api/chat."}}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"Клизни прозор"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Задржи само последњих Н порука"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"Максимално порука"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Ауто-сумаризација"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"Аутоматски сумирај старије поруке"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"Праг сумаризације"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"Покрени након"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"Поруке"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"Чињенице о кориснику"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"Корисничке меморије"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/ремембер чињенице убачене у контекст"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"Додај чињеницу"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG меморија"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"Меморија порука (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"Преузми релевантне старе поруке путем ембеддинга"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding модел"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Изабери embedding модел..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема пронађених embedding модела. Повуци један:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"Преузми top"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K резултата"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"Чињенице"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"Започни разговор са локалним моделом"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"Одговор је скраћен — повећај num_predict у подешавањима за дуже одговоре"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Ток/с"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"Хладан старт"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"Модел је учитан са диска за овај захтев (време учитавања > 500мс)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдоwн"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"Преузми текст"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"Чет и разговор"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"Модел и подешавања"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"Функције и навигација"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},descriptions:{help:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи све доступне команде"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Обриши тренутни разговор"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Започни нову сесију чета"}},summarize:{t:0,b:{t:2,i:[{t:3}],s:"Затражи од модела да сажме разговор"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Извези разговор као JSON или текст"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај последњи одговор асистента"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи скорашње разговоре"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Промени модел или прикажи доступне моделе"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Постави системски промпт"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Постави температуру (0-2)"}},top_p:{t:0,b:{t:2,i:[{t:3}],s:"Постави top-p / nucleus sampling (0-1)"}},top_k:{t:0,b:{t:2,i:[{t:3}],s:"Постави top-k узорковање (1-100)"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Постави величину прозора контекста"}},repeat_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Постави казну понављања (1.0-2.0)"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Постави seed за репродуктивност (-1 за насумично)"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Постави стоп секвенце (одвојене зарезима)"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Постави mirostat мод (0=искључен, 1=в1, 2=в2)"}},format:{t:0,b:{t:2,i:[{t:3}],s:"Укључи/искључи JSON формат излаза"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Врати сва подешавања на подразумевана"}},rag:{t:0,b:{t:2,i:[{t:3}],s:"Укључи/искључи RAG контекст"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Отвори панел подешавања алата"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи статус Ollama везе и информације о моделу"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи број токена за тренутну сесију"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи просечну брзину генерисања по сесијама"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Иди на страницу Упореди"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи детаље тренутне сесије"}},remember:{t:0,b:{t:2,i:[{t:3}],s:"Запамти чињеницу о теби између разговора"}},forget:{t:0,b:{t:2,i:[{t:3}],s:"Заборави претходно запамћену чињеницу"}},memories:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи све запамћене чињенице"}}},notifications:{helpHeader:{t:0,b:{t:2,i:[{t:3}],s:"Доступне команде:"}},unknownCommand:{t:0,b:{t:2,i:[{t:3,v:"Непозната команда: /"},{t:4,k:"name"},{t:3,v:". Укуцај /хелп да видиш доступне команде."}]}},conversationCleared:{t:0,b:{t:2,i:[{t:3}],s:"Разговор обрисан."}},newChatStarted:{t:0,b:{t:2,i:[{t:3}],s:"Нови чет покренут."}},nothingToSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Нема шта да се сажме — разговор је празан."}},conversationExported:{t:0,b:{t:2,i:[{t:3,v:"Разговор извезен као "},{t:4,k:"format"},{t:3,v:"."}]}},historyHint:{t:0,b:{t:2,i:[{t:3}],s:"Скролуј до секције скорашњих разговора или започни /неw чет."}},availableModels:{t:0,b:{t:2,i:[{t:3,v:"Доступни модели: "},{t:4,k:"list"},{t:3,v:`
|
|
27
|
+
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Kopirano u privremenu memoriju."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Nema odgovora asistenta za kopiranje."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Nema razgovora za izvoz."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"JSON format prebačen. To utiče na sledeći zahtev."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(nema)"}}}}},yy={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"General"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Models"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Integrations"}},about:{t:0,b:{t:2,i:[{t:3}],s:"About"}},history:{t:0,b:{t:2,i:[{t:3}],s:"History"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama veza"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj vezu"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Veza uspješna"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Veza nije uspjela"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Povezivanje..."}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Odspojen"}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumijevani parametri"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Što je Temperatura?"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:'Kontroliše koliko "kreativno" ili "slučajno" odgovori modela su.'}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Uvek bira najverovatniju reč. Dobar za činjenice, matematiku i kod."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Dobar balans. To je podrazumevano."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Iznenađujuće i kreativnije."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Deterministički"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Fokusiran"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Balansiran"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Kreativan"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Veoma slučajan"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Divlji"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Duljina konteksta"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Što je Duljina konteksta?"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Koliko razgovora model može videti odjednom, izraženo u tokenima."}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Veća dužina koristi više RAM/VRAM."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" reči"}]}},approximateWords:{t:0,b:{t:2,i:[{t:3}],s:"Jezik"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi jezik"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Select language"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Povuci novi model"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Ime modela"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Povuci"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Brisanje"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Jesi li siguran da želiš da obrišeš ovaj model?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Veličina"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Porodica"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Kvalifikacija"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Sposobnosti"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi modele"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži modele..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Nije instalirano nijedan model. Povuci jedan iz kataloga."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Nema modela koji odgovaraju vašoj pretrazi."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Povuci bilo koji model po imenu"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Instalirano"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Potvrda brisanja?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Google račun"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Poveži"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Odspoji"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Povezan kao"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Integracija LLM"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Povežite svoj Google račun da omogućite kalendar i Gmail alate u Radionici. "}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"OAuth2 Client ID"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Autentifikacija..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Nije povezan"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Povežite svoj Google račun"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži postavke"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Skrij postavke"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Licenca"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Repoizitorijum"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Tech Stack"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Lokalni LLM Posmatrač"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Lokalna AI Istorija"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Vaš istraživački arhiv — svi eksperimenti, pretraživi"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kako se vaše podaci čuvaju"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Sva vaša data je skladištena lokalno u vašem pregledniku koristeći IndexedDB — trajni, preglednik-native bazu podataka. Vaša data preživi zatvaranje preglednika, ponovnu pokretanje računara i softverske ažuriranja. Ništa se šalje na server."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Originalni podaci (benchmarkovi, razgovori, poređenja, obuka) su skladišteni u 6 odvojene IndexedDB baze podataka — jedna za svaku funkcionalnost. IndexedDB nije sesijska memorija — ona traje do sledećeg prelaska preglednika."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"Istorijski indeks je moćni istraživački alat koji koristi Dexie.js za brzo pretraživanje i analizu svih LLMxRay aktivnosti. Misli na njega kao na pretragu unutar vašeg LLMxRay profila."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Sve ostaje na vašem računaru. Jedini način da se podaci izbrišu je da obrišete preglednik site data ili koristite Clear dugmad u ovoj aplikaciji. Nema naloga, nema cloud sinkronizacije, nema telemetrije."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Tip"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Languaža"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Datum raspon"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Tagovi"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Sve"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 7 dana"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 30 dana"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"Poslednjih 90 dana"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Svi vremena"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" ulazaka"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Nema istorijskih unosa. Pokrenite eksperiment, poređenje ili razgovor da biste započeli svoju istraživačku arhivu."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Trendovi"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Aktivnost (poslednjih 30 dana)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Modeli korišćeni"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"Baza podataka upravljanja"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan broj ulazaka"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Procjenjena veličina"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Izvozi sve (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Izvozi Filtrirano (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Zadržavanje"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Zauvek"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 dana"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 dana"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"Godina"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Čisti Istoriju"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Ovo će izbrisati sve istorijske unose. Ostale podatke (benchmarkovi, razgovori, itd.) nije pogođeno."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Razgovor"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Traing"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}}}}},ky={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Hirurgički Benchmark"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Procjenite modele koristeći kreirane skupove pitanja - stvarne logprobnije povjerenje, per-kategorijske dijagnoze"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Detalji rezultata"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Najnoviji rezultat"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje tabele"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi modele"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi skup pitanja"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Veličina konteksta"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Procjenjena vremenska trajanje"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalni broj modela"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Modeli"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"Odabrano"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark skupovi pitanja"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Uvoz prilagođeno"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Kontekst:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni Benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"prilagoditi"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"ARC izazov"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"MMLU-Pro"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"HellasSwag"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"GSM-8K"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"TruthfulQA"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Napredak"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Trenutno pitanje"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Poslednji odgovor"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Tačno"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Neispravno"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Preciznost"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna latencija"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna sigurnost"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Kategorijski napredak"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Misli"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Standardno"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje na pitanje..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje prvi odgovor..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Obradi pitanje..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Zaustavi Benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Napredak benchmarka"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno TTF"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno ukupno"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Skupovi pitanja"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Očekivano:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Opšta preciznost"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Per kategorija"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Sigurnost vs. Preciznost - X-Ray Scatter"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Zbunjen (nisko sigurnost, pogrešno)"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Kalibrirano (visoka sigurnost, tačno)"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Previše sigurno (visoka sigurnost, pogrešno)"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Sretan (niska sigurnost, tačno)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Per-Kategorijsko ukupno vreme"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Pritisak konteksta - Preciznost degradacija"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Kategorijska razbijanja"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Kategorija"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Tačno"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno TTF"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno ukupno"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna sigurnost"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Per-Pitanje Detalji"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Sve"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Pogrešno"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Razmišljanje"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Preciznost"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Reasoning"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Response"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Accuracy"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Poredi rezultate"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Radar grafikon"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Topografska karta"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Nastavi"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Izbriši rezultat"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvani Rezultati"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Još nema sačuvanih rezultata."}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Klikni za selekciju za poređenje"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Nedovršeno"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Pogledajte detalje"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Nastavi nedovršeni benchmark"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdown"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Kreirajte Benchmark Suite"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Uredite Benchmark Suite"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Skup pitanja"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr., Francuska istorija kviz"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta ovo skup pitanja testira?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumevana kategorija"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Pitanja"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Pitanje"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Uredi Pitanje"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Nema pitanja još. Dodajte svoje prvo pitanje ili koristite AI da ih generišete."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite svoje pitanje ovde..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Odgovori"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Odgovor"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Tačan odgovor"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Kategorija"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Težina"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Lako"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Srednje"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Teško"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj Skup pitanja"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Kreirajte Suite"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" odgovora"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Generišite sa AI"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Tema"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"npr., Francuska istorija, Python programiranje, Organski hemija"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Broj pitanja"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Težina"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Mješovito"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generišite Pitanja"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Generiranje..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži generaciju"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Generisana pitanja"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi sve"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Poništi izbor"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj Izabrano"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Neka pitanja nisu mogla biti parsirana"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nije generisano validnih pitanja. Pokušajte drugu temu ili model."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz Skup pitanja"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz Prilagođeni Benchmark Suite"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Povuci i otpusti datoteku ovde"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Povuci .json datoteku ovdje"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Brovs"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna veličina"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Nevalidan format"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz uspešan"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Uvoz..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Zahtevi: JSON sa imenom, pitanje niz (2-500 stavki)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Svako pitanje mora imati: id, pitanje, odgovori (2-6), tačan odgovor."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna veličina 1MB. HTML oznake će se ukloniti. ID-ovi će se deduplicirati."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Datoteka je prevelika (maksimalno 1MB)"}}}},Sy={title:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđenja"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema dostupnih modela"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nije pronađen nijedan model za ugnježđivanje. Preuzmite jedan: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđena memorija"}},records:{t:0,b:{t:2,i:[{t:3}],s:"zapisi"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Igraj sa ugnježđenjima"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst da biste generisali njegov vektor ugnježđivanja i pregledali dimenzije."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst za ugnježđivanje..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Ugnjezdi"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježđujem..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Prikaži sirove vrednosti (prvih 50 od "},{t:4,k:"ukupno"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kalkulator sličnosti"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Uporedite dva teksta da biste izmerili njihovu semantičku sličnost koristeći kosinusnu udaljenost."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Tekst A"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Tekst B"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Prvi tekst..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Drugi tekst..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Poredi"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje modela"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Ugnježdi isti tekst sa dva modela da biste uporedili kako predstavljaju značenje."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Model A"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Model B"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite tekst za ugnježđivanje sa oba modela..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Poredi modele"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje modela..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Unakrsna sličnost — ovi modeli predstavljaju značenje veoma različito."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Veoma različito — modeli dele samo minimalnu semantičku strukturu."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Umereno slaganje — modeli dele deo semantičke strukture."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Visoko slaganje — ovi modeli predstavljaju ovaj tekst slično."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Dimenzije se razlikuju ("},{t:4,k:"dimA"},{t:3,v:" vs "},{t:4,k:"dimB"},{t:3,v:") — direktna kosinusna sličnost nije moguća."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Uporedite statistiku iznad da biste procenili kvalitet reprezentacije svakog modela."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Dimenzije"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"L2 norma"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Sparzitet"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Vreme"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Nedavno ugnježđeno"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}}}},Ty={title:{t:0,b:{t:2,i:[{t:3}],s:"Baza znanja"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Učitaj dokumente za RAG-pokrećene razgovore"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema umetnutih modela"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladištenje znanja"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"dokumenti"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"komadi"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"skladišteno"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"RAZ Skladištenje"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Povuci i odložite datoteke ovde"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Brovs"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Odložite datoteke ovdje ili kliknite da biste pretražili"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Podržava PDF, DOCX, TXT, Markdown, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Dokumenti"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Nema dokumenata učitano još"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Podesi RAG kontekst"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni dokument"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Semantičko pretraživanje"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Pretražite svoje dokumente..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema rezultata pretrage"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Pretražujem..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži"}},results:{t:0,b:{t:2,i:[{t:3}],s:"rezultati"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Pokaži manje"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Prikaži cijeli komad"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Ingeštaj napredak"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ingeštajuće..."}}}},_y={title:{t:0,b:{t:2,i:[{t:3}],s:"Radionica alata"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj alat"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj iz šablona"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Nema konfigurisanih alata. Dodaj jedan da biste počeli."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Ime alata"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Opis alata"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Ime funkcije"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Implementacija"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Kod"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Testiraj alat"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Obriši alat"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Panel koda"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Izvor"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Schema"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-kompatibilni manifest alata"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Upozorenja"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Nema još alata. Napravi svoj prvi alat ili počni od šablona."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Novi alat"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Iz šablona..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj trening podatke (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Biblioteka alata"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni sve alate sa platna"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3,v:"Da li želite da uklonite sve "},{t:4,k:"count"},{t:3,v:" alat(a) sa platna? Ovo ne može biti povučeno."}]}},clearAllWarning:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Onemogući za razgovor"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Omogući za razgovor"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni alat"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Izbrisati alat"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Nema još alata"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj sve alate (JSON)"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj alat kao JSON"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz alata kao JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Šabloni alata"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Počni sa funkcionalnim šablonom i prilagodi ga"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Utičišta"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Podaci"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Google (Kalendar & Gmail)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Prilagođeno"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Ime funkcije"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Dobijaj trenutnu vremensku prognozu za dato mesto"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Vizuelni graditelj"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"Raw JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj parametar"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni parametar"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvaj alat"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Uredi alat"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Novi alat"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Još nema definisanih alata."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj alat"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Radi..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Uspjeh"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Greška"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Rezultat"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Trajanje"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM alat"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"funcName"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Nacrtaj sa AI"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI uvidi"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Radi..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Gotovo"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Neuspjeh"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI popravka"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Opis"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta ovaj alat radi?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Namjena"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Opišite što bi ovaj alat trebao da radi..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generiraj"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Generiranje..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"name"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"tip"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Nema parametara"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Probaj i izaberi"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"https://api.example.com/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Probaj"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"Glave"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ime glave"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"vrijednost"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Označi kao tajni (koristi varijablu okruženja u generisanim kodu)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Telo zahtjeva"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Krajnja tačka"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Pretraži krajnje tačke..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Nema odgovarajućih krajnjih tačaka"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI sugestija"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Razmišlja..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"polje"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"polja"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Primjeni"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Mapiranje"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Izvan sinhronizacije"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Telo (Tipskript)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"/ / Alat implementacija..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI-sugestirana popravka (pregledajte prije primjene):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Primjeni popravku"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Zatvori"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Prihvati"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Odbaci"}}}},wy={title:{t:0,b:{t:2,i:[{t:3}],s:"AI Training"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Brauzirajte, kurirajte i izvozite svoje podatke za obuku iz alata u radionici."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan parovi"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"prihvaćeno"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"odbijeno"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Očekuje se"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Parovi za obuku"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Stopa prihvatanja"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"Po fazi"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Najbolji modeli"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Pretraga..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Pretražite prompte..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Ime alata"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Oznaka"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Status"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Svi modeli"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Svi alati"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Sve oznake"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Svi statusi"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" izabrano"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Oznaci kao prihvaćeno"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Oznaci kao odbijeno"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj oznaku"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ime oznake..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Obriši"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi sve"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj oznaku..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Izaberi sve"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Odaberi ništa"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" od "},{t:4,k:"total"},{t:3,v:" parova prikazano"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Nema obučnih parova koji odgovaraju vašim filtrima."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Prihvaćeno"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Odbijeno"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Korisnički prompt"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI odgovor"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Uredi odgovor"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Oznake"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Obriši par"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Potvrdi brisanje?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Još nema prikupljenih podataka za obuku."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Parovi za obuku se generišu automatski kada koristite AI funkcije u alatu (generisanje nacrta, analiza koda, automapiranje i popravka AI)."}}}},Py={title:{t:0,b:{t:2,i:[{t:3}],s:"Moj sistem"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Hardver, runtime i inferecija pregled"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ažuriraj"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Detektovanje hardvera..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Upit CPU-a, memorije, GPU-a i skladišta"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Nedostupno detektovanje hardvera. Ponovo pokrenite server za dev da omogućite plugin sistem informacija."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Eksporat"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi izveštaj o sistemu (Markdovn)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi sistem info (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Operativni sistem"}},os:{t:0,b:{t:2,i:[{t:3}],s:"OS"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Build"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Architecture"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Uređaj"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Ime"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Proizvođač"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Familija"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Procesor"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Fizički jezgro"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Logički procesori"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalna frekvencija"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Memorija"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"Ukupan RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Dostupno"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Korišćeno"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Grafika"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"Adapter RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Deljeno / Nije izvešteno"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Vozač"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladište"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Drive"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Slobodno"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Korišćeno"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Skladište u pregledaču"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Persistentno"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Najbolji napor"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Skeniranje..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Kvota IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" ukupnih zapisa preko "},{t:4,k:"database"},{t:3,v:" baza podataka"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve podatke"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Prazno"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama Runtime"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Status"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Verzija"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno skladištenje modela"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Modeli učitani"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Inferecija"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"Ova sesija"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Nema inferecijskih sesija još. Pošalji poruku da biste učitali jedan."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna brzina"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Prosječno vrijeme odgovora"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Koristeni modeli"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Aktivni modeli"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema trenutno učitani model u memoriji. Pošalji poruku da biste ga učitali."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Kontekst"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Instalirani modeli"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Nema instaliranih modela."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Familija"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Parametri"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Kvantizacija"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Veličina"}}}},xy={title:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi rezultate modela"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Slotovi za poređenje"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Svaki slot je kombinacija modela i podešavanja. Dodaj isti model više puta sa različitim podešavanjima da uporediš ponašanje."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj slot"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Ukloni slot"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Obriši sve"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Sistemski prompt"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Opcioni sistemski prompt..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Opcije"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Podešavanja"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Nasumično (ostavi prazno)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Napredno"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Kazna ponavljanja"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Isključeno"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maksimalno tokena"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Dužina konteksta"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Podrazumevano"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" slot(ova) podešeno"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Još nema podešenih slotova"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj slot da izabereš model i podešavanja, ili koristi brzi početni preset iznad."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Dodaj prvi slot"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Dodaj slot ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Brzi početak:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Temperaturni opseg"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Kreira 3 slota istog modela na temperaturama 0.2 (fokusirano), 0.7 (uravnoteženo) i 1.2 (kreativno). Pogledaj kako temperatura menja rezultat za isti prompt."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Deterministički par"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Kreira 2 slota istog modela sa istim seed‑om, ali različitim temperaturama (0.3 i 1.0). Zajednički seed znači da je razlika u izlazu isključivo zbog temperature, a ne nasumičnosti."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje jezika"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi kako različiti jezici utiču na cenu tokena i ponašanje modela"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesi prompt za poređenje između slotova..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Pokrećem..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Rezultati"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Mreža"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Razlike"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Potrebna su najmanje 2 završena rezultata da bi se prikazala razlika."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Uporedi:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"vs"}},only:{t:0,b:{t:2,i:[{t:3,v:"samo "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje performansi"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Vreme do prvog tokena"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"niže je bolje"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Tokena/sek"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"više je bolje"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno tokena"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Brzina"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Trajanje"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Otkriven jezički nesklad"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Čini se da je tvoj prompt na jeziku: "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"ciljni jezik je "},{t:4,k:"languae"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Prevedi na "},{t:4,k:"languae"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Zadrži "},{t:4,k:"languae"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Prevedi sve"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Otkaži"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Porez na tokene"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni prompta"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Prevedeni prompt"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Prevedeno"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Jezik još nije podržan"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Prevodim... može potrajati u zavisnosti od veličine modela"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet prevoda zavisi od jezičkih sposobnosti modela. Veći modeli daju bolji prevod."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Ukucaj ili nalepi svoj prompt na jeziku "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Sačuvana poređenja"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Učitaj"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Još nema sačuvanih poređenja"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Izvoz"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi kao JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi kao Markdown"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Podeli na GitHub Discussions"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Podeli svoja otkrića"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Dodaj komentar"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Šta si otkrio? Podeli svoje uvide..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Pregled izveštaja"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Otvori GitHub Discussions"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Kopiraj Markdown"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Kopirano!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Bićeš preusmeren na GitHub da pregledaš i objaviš svoje nalaze."}}}},Ay={title:{t:0,b:{t:2,i:[{t:3}],s:"Sesija"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Sesija "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Sesija nije pronađena."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Strim"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Introspekcija"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Alati"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Agent Grafikon"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Eksportuj"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Markdovn"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Preuzmi Token Stream CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token Strim"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Mertriki"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite svoj prompt..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Razumevanje"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka o razumevanju za ovu sesiju."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Introspekcija"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Ilustruj"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Pozivi alata"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Vremenska linija"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Optimizuj"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Agent Grafikon"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Prompt Inspector"}}}},Cy={title:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji povratnu informaciju"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Hvala vam na povratnoj informaciji!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Vaše učešće pomaže da LLMxRay postane bolji."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Koje vrste povratnih informacija?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Bug"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Ideja"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Pitanje"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Drugo"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Recite nam šta je na vašem umu..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"E-pošta"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(opciono - samo ako želite odgovor)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"vaš@email.com"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Pošalji povratnu informaciju"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Slanje..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Uključuje kontekst aplikacije (stranica, model, sistem) da bismo razumeli vaše povratne informacije."}}},Ey={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Pronađene probleme sa kvalitetom"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Repetiitivni"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor sadrži previše ponavljanih fraza"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Refuz"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor izgleda kao odbijanje"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Giibleriš"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor ima visok odnos nečitljivih znakova"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Prazan"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor sadrži vrlo malo sadržaja"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Prekinut"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Odgovor može biti prekinut"}}}},jy={title:{t:0,b:{t:2,i:[{t:3}],s:"Troškovi kontrolne table"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total Tokena"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Prosječna Cena/Sesija"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Token Uporaba po Modelu"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Dnevna Uporaba"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt Tokena"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion Tokena"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Trend Cene"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Sesije"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Completion"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Total"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Procenjena Cena"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Izvor"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Zahtev Latencija (P50 / P95 / P99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Vreme do Prvi Token (P50 / P95 / P99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Inter-Token Latencija Distribucija"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Buketi granica prate OTeL GenAI konvencije. Aggregirano preko svih sesija."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nedovoljno podataka o sesijama za analizu percentila."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Greske po Modelu"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Nema zabeleženih grešaka."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Vreme Ucitavanja Modela"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"Hladni Pokreti"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Orange tačke označavaju hladne pokrete (model učitan sa diska, > 500ms)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema sesijskih podataka još."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ove cene su procjene na osnovu ekvivalentnih cijena API-ja u oblaku. Olamma radi lokalno bez troškova."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema upotrebe podataka još. Počnite da razgovarate da biste vidjeli token upotrebu i procjenjene cijene."}}},My={title:{t:0,b:{t:2,i:[{t:3}],s:"Analitika"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet odgovora"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Analiza latencije"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Pouzdanost"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Obrasci korisničkog ponašanja"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Uticaj postavki"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Memorija modela"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Kvalitet preko okretaja"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Zelena = dobra (3,5+), žuta = srednja (2-3,5), crvena = loša (< 2). Ocena zasnovana na broju reči, raznolikosti leksike i nedopuštanju ponavljanja."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Pokrenite višeokretnu razgovor da biste videli trendove kvaliteta."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Vremenski red grešaka"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Nije zabeležena nijedna greška."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Volumen zahteva"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Distribucija modela"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Aktivne sate"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka sesije."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Temperatura vs. Brzina"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Svaki tačka je sesija. Prikazuje kako temperatura utiče na generisanje brzine."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Treba najmanje 2 sesije sa eksplicitno postavljenim temperaturama."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Istorija učitavanja modela"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"hladno"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Nema podataka sesije."}}}},Dy={title:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna u sredini (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Testirajte dopunu koda sa prefiksom + sufiksom. Model popunjava prazninu."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Neki Ollama modeli (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) podržavaju `suffix` polje na /api/generate. Unesite kod pre i posle kursora — model dopunjava sredinu."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Modeli za kod (FIM-kompatibilni)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Ostali modeli (možda ne podržavaju FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Ovaj model nije poznati model za kod — `suffix` može biti ignorisan."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Prefiks (kod pre kursora)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Sufiks (kod posle kursora)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Generiši"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Dopuna"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Spojeni prikaz"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Strimovanje…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Učitavanje"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Brzina"}}}},Oy={title:{t:0,b:{t:2,i:[{t:3}],s:"Opservatorija protokola"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Pošaljite jedan prompt kroz tri protokola posluživanja. Isti model, isti Ollama demon — različiti žičani formati. Uporedite šta vam svaki protokol pruža."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama izlaže /api/chat (nativni NDJSON), /v1/chat/completions (OpenAI-kompatibilan SSE) i /v1/messages (Anthropic-kompatibilan SSE). Sva tri ciljaju isti lokalni model — bez oblaka, bez API ključeva. Ova stranica pokreće isti prompt na sva tri paralelno i pokazuje šta se razlikuje."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Model"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Prompt"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Unesite prompt na koji će sva tri protokola odgovoriti…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Maks. tokena"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Pokreni sva 3 protokola"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Još nije pokrenuto."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Čekanje prvog tokena…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Inspekcija envelope"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Prvi chunk / događaj"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Poslednji chunk / događaj"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"znak."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Nativni"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama nativni"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-komp."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (komp)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Anthropic-komp."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (komp)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Ukupno"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Tokeni"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Kraj"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Poređenje odgovora"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff envelope"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Aspekt"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Omotač strima"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Ključevi vrha (opaženi)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Nosač razloga završetka"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Razlog završetka (ovaj run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Nosač broja tokena"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Generisani tokeni (ovaj run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Oblik envelope greške"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Opažene vrednosti su iz ovog runa na vašem lokalnom Ollama. Neki nosači (npr. NDJSON nativni `done_reason`) pojavljuju se samo na poslednjem chunk-u, drugi (npr. Anthropic `message_stop`) su namenski događaji."}}}},Ry={common:gy,dashboard:vy,settings:yy,benchmark:ky,embeddings:Sy,rag:Ty,tools:_y,training:wy,system:Py,comparison:xy,session:Ay,feedback:Cy,quality:Ey,cost:jy,analytics:My,fim:Dy,protocols:Oy},Ny={nav:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ћаскање - диагностика"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Пореди"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђавања"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Алатница"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Допуна кода"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},aiTraining:{t:0,b:{t:2,i:[{t:3}],s:"AI обука"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},tagline:{t:0,b:{t:2,i:[{t:3}],s:"Локални LLM посматрач"}}},header:{chatDiagnostics:{t:0,b:{t:2,i:[{t:3}],s:"Ћаскање - диагностика"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Пореди модела"}},embeddings:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђавања"}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},toolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Алатница"}},fim:{t:0,b:{t:2,i:[{t:3}],s:"Допуна кода"}},protocols:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},costDashboard:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови"}},analytics:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},mySystem:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},default:{t:0,b:{t:2,i:[{t:3}],s:"LLMxRay"}}},status:{ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama повезана"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Ollama одспојена"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање..."}},processing:{t:0,b:{t:2,i:[{t:3}],s:"Обрада..."}},ready:{t:0,b:{t:2,i:[{t:3}],s:"Спремно"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Грешка"}},success:{t:0,b:{t:2,i:[{t:3}],s:"Успех"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Чека"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Ради"}},completed:{t:0,b:{t:2,i:[{t:3}],s:"Завршено"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Неуспело"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Стримовање"}},idle:{t:0,b:{t:2,i:[{t:3}],s:"Неактиван"}},connected:{t:0,b:{t:2,i:[{t:3}],s:"Повезано"}},disconnected:{t:0,b:{t:2,i:[{t:3}],s:"Одспојено"}}},theme:{dark:{t:0,b:{t:2,i:[{t:3}],s:"Тамно"}},light:{t:0,b:{t:2,i:[{t:3}],s:"Светло"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Систем"}},themeLabel:{t:0,b:{t:2,i:[{t:3}],s:"Тема"}}},locale:{language:{t:0,b:{t:2,i:[{t:3}],s:"Језик"}},english:{t:0,b:{t:2,i:[{t:3}],s:"Енглески"}},french:{t:0,b:{t:2,i:[{t:3}],s:"Француски"}}},actions:{save:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Избриши"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Уреди"}},test:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Очисти"}},send:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Застани"}},add:{t:0,b:{t:2,i:[{t:3}],s:"Додај"}},remove:{t:0,b:{t:2,i:[{t:3}],s:"Уклони"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Потврди"}},back:{t:0,b:{t:2,i:[{t:3}],s:"Назад"}},next:{t:0,b:{t:2,i:[{t:3}],s:"Следеће"}},submit:{t:0,b:{t:2,i:[{t:3}],s:"Поднеси"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Ресетуј"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Еxпорт"}},import:{t:0,b:{t:2,i:[{t:3}],s:"Импорт"}}},time:{justNow:{t:0,b:{t:2,i:[{t:3}],s:"Само сада"}},minutesAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" минута пре"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" сати пре"}]}},daysAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" дана пре"}]}},monthsAgo:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" месеци пре"}]}}},units:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Токени/с"}},milliseconds:{t:0,b:{t:2,i:[{t:3}],s:"мс"}},seconds:{t:0,b:{t:2,i:[{t:3}],s:"с"}},bytes:{t:0,b:{t:2,i:[{t:3}],s:"Б"}},kilobytes:{t:0,b:{t:2,i:[{t:3}],s:"КБ"}},megabytes:{t:0,b:{t:2,i:[{t:3}],s:"МБ"}},gigabytes:{t:0,b:{t:2,i:[{t:3}],s:"ГБ"}},percent:{t:0,b:{t:2,i:[{t:3}],s:"%"}},dimensions:{t:0,b:{t:2,i:[{t:3}],s:"Димензије"}}},model:{selectModel:{t:0,b:{t:2,i:[{t:3}],s:"Одабери модел"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема доступних модела"}},loadingModels:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање модела..."}},pullModel:{t:0,b:{t:2,i:[{t:3}],s:"Повуци модел"}}},empty:{noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема резултата"}},nothingHere:{t:0,b:{t:2,i:[{t:3}],s:"Још ништа овде"}}},languages:{en:{t:0,b:{t:2,i:[{t:3}],s:"Енглески"}},fr:{t:0,b:{t:2,i:[{t:3}],s:"Француски"}},ar:{t:0,b:{t:2,i:[{t:3}],s:"Арапски"}},zh:{t:0,b:{t:2,i:[{t:3}],s:"Кинески"}},ja:{t:0,b:{t:2,i:[{t:3}],s:"Јапански"}},he:{t:0,b:{t:2,i:[{t:3}],s:"Хебрејски"}},de:{t:0,b:{t:2,i:[{t:3}],s:"Немачки"}},es:{t:0,b:{t:2,i:[{t:3}],s:"Шпански"}},pt:{t:0,b:{t:2,i:[{t:3}],s:"Португалски"}},it:{t:0,b:{t:2,i:[{t:3}],s:"Италијански"}},ru:{t:0,b:{t:2,i:[{t:3}],s:"Руски"}},ko:{t:0,b:{t:2,i:[{t:3}],s:"Корејски"}},hi:{t:0,b:{t:2,i:[{t:3}],s:"Хинди"}}}},Iy={title:{t:0,b:{t:2,i:[{t:3}],s:"Дијагностика чета"}},input:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку... (Схифт+Ентер за нови ред)"}},placeholderVision:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку или налепи/превуци слику..."}},commands:{t:0,b:{t:2,i:[{t:3}],s:"Команде"}},attachFiles:{t:0,b:{t:2,i:[{t:3}],s:"Приложи фајлове"}},attachFilesVision:{t:0,b:{t:2,i:[{t:3}],s:"Приложи фајлове или слике"}},stopGenerating:{t:0,b:{t:2,i:[{t:3}],s:"Заустави генерисање"}},sendMessage:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи поруку"}},visionBadge:{t:0,b:{t:2,i:[{t:3}],s:"Визуелни модел — може да обрађује слике"}}},dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Превуци фајлове за прилагање"}},conversation:{newChat:{t:0,b:{t:2,i:[{t:3}],s:"Нови чет"}},newChatButton:{t:0,b:{t:2,i:[{t:3}],s:"+ Нови чет"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Историја"}},chatHistory:{t:0,b:{t:2,i:[{t:3}],s:"Историја чета"}},rename:{t:0,b:{t:2,i:[{t:3}],s:"Преименуј"}},deleteChat:{t:0,b:{t:2,i:[{t:3}],s:"Обриши чет"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Да ли сте сигурни да желите да обришете овај разговор?"}},displayName:{t:0,b:{t:2,i:[{t:3}],s:"Приказано име"}},defaultName:{t:0,b:{t:2,i:[{t:3}],s:"Нови разговор"}},editName:{t:0,b:{t:2,i:[{t:3}],s:"Уреди име"}},noHistory:{t:0,b:{t:2,i:[{t:3}],s:"Нема историје разговора"}},noConversationsYet:{t:0,b:{t:2,i:[{t:3}],s:"Још нема разговора."}},clickToRename:{t:0,b:{t:2,i:[{t:3}],s:"Кликни да преименујеш"}},viewSessionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи детаље сесије"}},untitled:{t:0,b:{t:2,i:[{t:3}],s:"Без наслова"}},minutesAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"м"}]}},hoursAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"х"}]}},daysAgo:{t:0,b:{t:2,i:[{t:3,v:"пре "},{t:4,k:"n"},{t:3,v:"д"}]}}},metrics:{sessions:{t:0,b:{t:2,i:[{t:3}],s:"сесије"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Укупно сесија"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просечан TTF"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Просечна брзина"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Укупно токена"}},recentChats:{t:0,b:{t:2,i:[{t:3}],s:"Скорашњи разговори"}}},settings:{chatSettings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања чета"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top P"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Казна понављања"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Дужина контекста"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Максимално токена"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},systemPromptHint:{t:0,b:{t:2,i:[{t:3}],s:"Инструкције послате пре разговора. Подешавају понашање и персону модела."}},systemPromptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Ви сте користан асистент..."}},knowledgeBase:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},kbEnabled:{t:0,b:{t:2,i:[{t:3}],s:"КБ укључен"}},kbDisabled:{t:0,b:{t:2,i:[{t:3}],s:"КБ искључен"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"Документи"}},manage:{t:0,b:{t:2,i:[{t:3}],s:"Управљај"}},noDocumentsIngested:{t:0,b:{t:2,i:[{t:3}],s:"Нема убачених докумената"}},addDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Додај документе"}},precise:{t:0,b:{t:2,i:[{t:3}],s:"Прецизно"}},creative:{t:0,b:{t:2,i:[{t:3}],s:"Креативно"}},unlimited:{t:0,b:{t:2,i:[{t:3}],s:"Неограничено"}},maxTokensHint:{t:0,b:{t:2,i:[{t:3}],s:"Максимална дужина одговора. -1 = неограничено."}},maxTokensPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 за неограничено"}},contextWindow:{t:0,b:{t:2,i:[{t:3}],s:"Прозор контекста"}},contextWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Укупан контекст који модел види. Веће = више меморије, спорије."}},advancedSampling:{t:0,b:{t:2,i:[{t:3}],s:"Напредно узорковање"}},topPHint:{t:0,b:{t:2,i:[{t:3}],s:"Nucleus sampling. Ниже = фокусираније на вероватне токене."}},topKHint:{t:0,b:{t:2,i:[{t:3}],s:"Ограничи узорковање на top К токена у сваком кораку."}},repeatPenaltyHint:{t:0,b:{t:2,i:[{t:3}],s:"Кажњава токене који су се већ појавили. Више = мање понављања."}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Онемогућено"}},mirostatV1:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V1"}},mirostatV2:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat V2"}},mirostatHint:{t:0,b:{t:2,i:[{t:3}],s:"Адаптивно узорковање засновано на перплекситету. Замењује top-p/top-k када је укључено."}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Насумично"}},seedHint:{t:0,b:{t:2,i:[{t:3}],s:"Фиксни seed за репродуктивне резултате. -1 = насумично."}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"-1 за насумично"}},stopSequences:{t:0,b:{t:2,i:[{t:3}],s:"Стоп секвенце"}},stopSequencesPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр. Human:, \\n\\n"}},stopSequencesHint:{t:0,b:{t:2,i:[{t:3}],s:"Стрингови одвојени зарезима који заустављају генерисање када се појаве."}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Алати"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Активно"}},noToolsDefined:{t:0,b:{t:2,i:[{t:3}],s:"Још нема дефинисаних алата"}},manageInToolWorkshop:{t:0,b:{t:2,i:[{t:3}],s:"Управљај у радионици алата..."}},pulling:{t:0,b:{t:2,i:[{t:3}],s:"Повлачење..."}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Повуци"}},thinking:{label:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},off:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},on:{t:0,b:{t:2,i:[{t:3}],s:"Укључено"}},max:{t:0,b:{t:2,i:[{t:3}],s:"Max"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Укључите интерно резоновање модела. Max тражи највећи буџет. Игнорише се ако модел не подржава."}},modelSupportsHint:{t:0,b:{t:2,i:[{t:3}],s:"подржано у моделу"}}},responseFormat:{label:{t:0,b:{t:2,i:[{t:3}],s:"Формат одговора"}},none:{t:0,b:{t:2,i:[{t:3}],s:"Слободан текст"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Валидан JSON (било који облик)"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"JSON Schema (строго)"}},freeForm:{t:0,b:{t:2,i:[{t:3}],s:"Слободан"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Принуди структурисан излаз. JSON Schema ограничава облик — корисно за парсирање."}},schemaPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Налепи JSON Schema објекат…"}},schemaHint:{t:0,b:{t:2,i:[{t:3}],s:"Валидан JSON Schema. Шаље се као `format` поље на /api/chat."}}}},memory:{slidingWindow:{t:0,b:{t:2,i:[{t:3}],s:"Клизни прозор"}},slidingWindowHint:{t:0,b:{t:2,i:[{t:3}],s:"Задржи само последњих Н порука"}},maxMessages:{t:0,b:{t:2,i:[{t:3}],s:"Максимално порука"}},autoSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Ауто-сумаризација"}},autoSummarizeHint:{t:0,b:{t:2,i:[{t:3}],s:"Аутоматски сумирај старије поруке"}},summarizeThreshold:{t:0,b:{t:2,i:[{t:3}],s:"Праг сумаризације"}},triggerAfter:{t:0,b:{t:2,i:[{t:3}],s:"Покрени након"}},messages:{t:0,b:{t:2,i:[{t:3}],s:"Поруке"}},userFacts:{t:0,b:{t:2,i:[{t:3}],s:"Чињенице о кориснику"}},userMemories:{t:0,b:{t:2,i:[{t:3}],s:"Корисничке меморије"}},userMemoriesHint:{t:0,b:{t:2,i:[{t:3}],s:"/ремембер чињенице убачене у контекст"}},addFact:{t:0,b:{t:2,i:[{t:3}],s:"Додај чињеницу"}},ragMemory:{t:0,b:{t:2,i:[{t:3}],s:"RAG меморија"}},messageMemoryRag:{t:0,b:{t:2,i:[{t:3}],s:"Меморија порука (RAG)"}},messageMemoryHint:{t:0,b:{t:2,i:[{t:3}],s:"Преузми релевантне старе поруке путем ембеддинга"}},embeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Embedding модел"}},selectEmbeddingModel:{t:0,b:{t:2,i:[{t:3}],s:"Изабери embedding модел..."}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема пронађених embedding модела. Повуци један:"}},retrieveTop:{t:0,b:{t:2,i:[{t:3}],s:"Преузми top"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top K резултата"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},facts:{t:0,b:{t:2,i:[{t:3}],s:"Чињенице"}}},empty:{startConversation:{t:0,b:{t:2,i:[{t:3}],s:"Започни разговор са локалним моделом"}}},bubble:{truncatedWarning:{t:0,b:{t:2,i:[{t:3}],s:"Одговор је скраћен — повећај num_predict у подешавањима за дуже одговоре"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},tokPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Ток/с"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"Хладан старт"}},coldStart:{t:0,b:{t:2,i:[{t:3}],s:"Модел је учитан са диска за овај захтев (време учитавања > 500мс)"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдоwн"}},downloadText:{t:0,b:{t:2,i:[{t:3}],s:"Преузми текст"}}},slashCommands:{chatConversation:{t:0,b:{t:2,i:[{t:3}],s:"Чет и разговор"}},modelSettings:{t:0,b:{t:2,i:[{t:3}],s:"Модел и подешавања"}},featuresNavigation:{t:0,b:{t:2,i:[{t:3}],s:"Функције и навигација"}},memory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},descriptions:{help:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи све доступне команде"}},clear:{t:0,b:{t:2,i:[{t:3}],s:"Обриши тренутни разговор"}},new:{t:0,b:{t:2,i:[{t:3}],s:"Започни нову сесију чета"}},summarize:{t:0,b:{t:2,i:[{t:3}],s:"Затражи од модела да сажме разговор"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Извези разговор као JSON или текст"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај последњи одговор асистента"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи скорашње разговоре"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Промени модел или прикажи доступне моделе"}},system:{t:0,b:{t:2,i:[{t:3}],s:"Постави системски промпт"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Постави температуру (0-2)"}},top_p:{t:0,b:{t:2,i:[{t:3}],s:"Постави top-p / nucleus sampling (0-1)"}},top_k:{t:0,b:{t:2,i:[{t:3}],s:"Постави top-k узорковање (1-100)"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Постави величину прозора контекста"}},repeat_penalty:{t:0,b:{t:2,i:[{t:3}],s:"Постави казну понављања (1.0-2.0)"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Постави seed за репродуктивност (-1 за насумично)"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Постави стоп секвенце (одвојене зарезима)"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Постави mirostat мод (0=искључен, 1=в1, 2=в2)"}},format:{t:0,b:{t:2,i:[{t:3}],s:"Укључи/искључи JSON формат излаза"}},reset:{t:0,b:{t:2,i:[{t:3}],s:"Врати сва подешавања на подразумевана"}},rag:{t:0,b:{t:2,i:[{t:3}],s:"Укључи/искључи RAG контекст"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Отвори панел подешавања алата"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи статус Ollama везе и информације о моделу"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи број токена за тренутну сесију"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи просечну брзину генерисања по сесијама"}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Иди на страницу Упореди"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи детаље тренутне сесије"}},remember:{t:0,b:{t:2,i:[{t:3}],s:"Запамти чињеницу о теби између разговора"}},forget:{t:0,b:{t:2,i:[{t:3}],s:"Заборави претходно запамћену чињеницу"}},memories:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи све запамћене чињенице"}}},notifications:{helpHeader:{t:0,b:{t:2,i:[{t:3}],s:"Доступне команде:"}},unknownCommand:{t:0,b:{t:2,i:[{t:3,v:"Непозната команда: /"},{t:4,k:"name"},{t:3,v:". Укуцај /хелп да видиш доступне команде."}]}},conversationCleared:{t:0,b:{t:2,i:[{t:3}],s:"Разговор обрисан."}},newChatStarted:{t:0,b:{t:2,i:[{t:3}],s:"Нови чет покренут."}},nothingToSummarize:{t:0,b:{t:2,i:[{t:3}],s:"Нема шта да се сажме — разговор је празан."}},conversationExported:{t:0,b:{t:2,i:[{t:3,v:"Разговор извезен као "},{t:4,k:"format"},{t:3,v:"."}]}},historyHint:{t:0,b:{t:2,i:[{t:3}],s:"Скролуј до секције скорашњих разговора или започни /неw чет."}},availableModels:{t:0,b:{t:2,i:[{t:3,v:"Доступни модели: "},{t:4,k:"list"},{t:3,v:`
|
|
28
28
|
Тренутни: `},{t:4,k:"current"}]}},switchedTo:{t:0,b:{t:2,i:[{t:3,v:"Пребачено на "},{t:4,k:"model"},{t:3,v:"."}]}},modelNotFound:{t:0,b:{t:2,i:[{t:3,v:"Модел „"},{t:4,k:"name"},{t:3,v:'" није пронађен. Доступни: '},{t:4,k:"list"}]}},currentSystemPrompt:{t:0,b:{t:2,i:[{t:3,v:"Тренутни системски промпт: "},{t:4,k:"prompt"}]}},systemPromptUpdated:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт ажуриран."}},tempUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /температуре 0.0-2.0"}]}},temperatureSet:{t:0,b:{t:2,i:[{t:3,v:"Температура постављена на "},{t:4,k:"value"},{t:3,v:"."}]}},topPUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /топ_п 0.0-1.0"}]}},topPSet:{t:0,b:{t:2,i:[{t:3,v:"Топ-п постављен на "},{t:4,k:"value"},{t:3,v:"."}]}},topKUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /топ_к 1-100"}]}},topKSet:{t:0,b:{t:2,i:[{t:3,v:"Топ-к постављен на "},{t:4,k:"value"},{t:3,v:"."}]}},contextUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Валидне величине: "},{t:4,k:"sizes"}]}},contextSet:{t:0,b:{t:2,i:[{t:3,v:"Прозор контекста постављен на "},{t:4,k:"value"},{t:3,v:"."}]}},repeatPenaltyUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /репеат_пеналтy 1.0-2.0"}]}},repeatPenaltySet:{t:0,b:{t:2,i:[{t:3,v:"Казна понављања постављена на "},{t:4,k:"value"},{t:3,v:"."}]}},seedUsage:{t:0,b:{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /seed [број]"}]}},seedRandom:{t:0,b:{t:2,i:[{t:3}],s:"Seed постављен на насумично."}},seedSet:{t:0,b:{t:2,i:[{t:3,v:"Seed постављен на "},{t:4,k:"value"},{t:3,v:"."}]}},stopCurrent:{t:0,b:{t:2,i:[{t:3,v:"Тренутне стоп секвенце: "},{t:4,k:"sequences"}]}},stopSet:{t:0,b:{t:2,i:[{t:3,v:"Стоп секвенце постављене: "},{t:4,k:"sequences"}]}},mirostatUsage:{t:0,b:{t:1,c:[{t:2,i:[{t:3,v:"Тренутно: "},{t:4,k:"current"},{t:3,v:". Употреба: /mirostat 0"}]},{t:2,i:[{t:3}],s:"1"},{t:2,i:[{t:3}],s:"2"}]}},mirostatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat онемогућен."}},mirostatEnabled:{t:0,b:{t:2,i:[{t:3,v:"Mirostat в"},{t:4,k:"version"},{t:3,v:" омогућен."}]}},jsonFormatEnabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON формат омогућен."}},jsonFormatDisabled:{t:0,b:{t:2,i:[{t:3}],s:"JSON формат онемогућен."}},settingsReset:{t:0,b:{t:2,i:[{t:3}],s:"Сва подешавања враћена на подразумевана."}},ragEnabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG контекст омогућен."}},ragDisabled:{t:0,b:{t:2,i:[{t:3}],s:"RAG контекст онемогућен."}},settingsPanelOpened:{t:0,b:{t:2,i:[{t:3}],s:"Панел подешавања отворен."}},ollamaStatus:{t:0,b:{t:2,i:[{t:3,v:"Ollama: "},{t:4,k:"status"},{t:3,v:`
|
|
29
29
|
Модел: `},{t:4,k:"model"}]}},ollamaConnected:{t:0,b:{t:2,i:[{t:3}],s:"Повезан"}},ollamaDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Није повезан"}},noActiveSession:{t:0,b:{t:2,i:[{t:3}],s:"Нема активне сесије."}},tokenCounts:{t:0,b:{t:2,i:[{t:3,v:"Токени промпта: "},{t:4,k:"prompt"},{t:3,v:`
|
|
30
30
|
Токени одговора: `},{t:4,k:"completion"},{t:3,v:`
|
|
31
31
|
Укупно: `},{t:4,k:"total"}]}},noSessionsRecorded:{t:0,b:{t:2,i:[{t:3}],s:"Још нема забележених сесија."}},averageSpeed:{t:0,b:{t:2,i:[{t:3,v:"Просечна брзина: "},{t:4,k:"speed"}]}},rememberUsage:{t:0,b:{t:2,i:[{t:3}],s:`Употреба: /ремембер [нешто што треба запамтити]
|
|
32
32
|
Пример: /ремембер Више волим ТyпеСцрипт од ЈаваСцрипт-а`}},remembered:{t:0,b:{t:2,i:[{t:3,v:"Запамћено: „"},{t:4,k:"fact"},{t:3,v:'"'}]}},forgetUsage:{t:0,b:{t:2,i:[{t:3}],s:`Употреба: /форгет [део чињенице коју треба уклонити]
|
|
33
33
|
Пример: /форгет ТyпеСцрипт`}},forgot:{t:0,b:{t:2,i:[{t:3,v:"Заборављена чињеница која одговара „"},{t:4,k:"search"},{t:3,v:'".'}]}},factNotFound:{t:0,b:{t:2,i:[{t:3,v:"Није пронађена ниједна чињеница која одговара „"},{t:4,k:"search"},{t:3,v:'". Користи /мемориес да видиш све чињенице.'}]}},noMemories:{t:0,b:{t:2,i:[{t:3}],s:"Још нема сачуваних сећања. Користи /ремембер [чињеница] да додаш једно."}},yourMemories:{t:0,b:{t:2,i:[{t:3,v:"Твоја сећања ("},{t:4,k:"count"},{t:3,v:`):
|
|
34
|
-
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Копирано у привремену меморију."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Нема одговора асистента за копирање."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Нема разговора за извоз."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"JSON формат пребачен. То утиче на следећи захтев."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(нема)"}}}}},Oy={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"Генерал"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Моделс"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Интегратионс"}},about:{t:0,b:{t:2,i:[{t:3}],s:"Абоут"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Хисторy"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama веза"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај везу"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Веза успјешна"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Веза није успјела"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Повезивање..."}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Одспојен"}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Подразумијевани параметри"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Што је Температура?"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:'Контролише колико "креативно" или "случајно" одговори модела су.'}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Увек бира највероватнију реч. Добар за чињенице, математику и код."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Добар баланс. То је подразумевано."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Изненађујуће и креативније."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Детерминистички"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Фокусиран"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Балансиран"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Креативан"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Веома случајан"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Дивљи"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Дуљина контекста"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Што је Дуљина контекста?"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Колико разговора модел може видети одједном, изражено у токенима."}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Већа дужина користи више RAM/VRAM."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" речи"}]}},approximateWords:{t:0,b:{t:2,i:[{t:3}],s:"Језик"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Одабери језик"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Селецт лангуаге"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Повуци нови модел"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Име модела"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Повуци"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Брисање"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Јеси ли сигуран да желиш да обришеш овај модел?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Величина"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Породица"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Квалификација"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Способности"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Преузми моделе"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Претражи моделе..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Није инсталирано ниједан модел. Повуци један из каталога."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Нема модела који одговарају вашој претрази."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Повуци било који модел по имену"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирано"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Потврда брисања?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Гоогле рачун"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Повежи"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Одспоји"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Повезан као"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Интеграција LLM"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Повежите свој Гоогле рачун да омогућите календар и Гмаил алате у Радионици. "}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"ОАутх2 Цлиент ИД"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Аутентификација..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Није повезан"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Повежите свој Гоогле рачун"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи поставке"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Скриј поставке"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Лиценца"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Репоизиторијум"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Тецх Стацк"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Локални LLM Посматрач"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Локална AI Историја"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Ваш истраживачки архив — сви експерименти, претраживи"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Како се ваше подаци чувају"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Сва ваша дата је складиштена локално у вашем прегледнику користећи IndexedDB — трајни, прегледник-нативе базу података. Ваша дата преживи затварање прегледника, поновну покретање рачунара и софтверске ажурирања. Ништа се шаље на сервер."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Оригинални подаци (бенцхмаркови, разговори, поређења, обука) су складиштени у 6 одвојене IndexedDB базе података — једна за сваку функционалност. IndexedDB није сесијска меморија — она траје до следећег преласка прегледника."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"Историјски индекс је моћни истраживачки алат који користи Деxие.јс за брзо претраживање и анализу свих LLMxRay активности. Мисли на њега као на претрагу унутар вашег LLMxRay профила."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Све остаје на вашем рачунару. Једини начин да се подаци избришу је да обришете прегледник сите дата или користите Цлеар дугмад у овој апликацији. Нема налога, нема цлоуд синкронизације, нема телеметрије."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Тип"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Лангуажа"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Датум распон"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Тагови"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Све"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 7 дана"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 30 дана"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 90 дана"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Сви времена"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" улазака"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Нема историјских уноса. Покрените експеримент, поређење или разговор да бисте започели своју истраживачку архиву."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Трендови"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Активност (последњих 30 дана)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Модели коришћени"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"База података управљања"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Укупан број улазака"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Процјењена величина"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Извози све (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Извози Филтрирано (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Задржавање"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Заувек"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 дана"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 дана"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"Година"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Чисти Историју"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Ово ће избрисати све историјске уносе. Остале податке (бенцхмаркови, разговори, итд.) није погођено."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Поређење"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Разговор"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Траинг"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}}}}},Ry={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Хирургички Benchmark"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Процјените моделе користећи креиране скупове питања - стварне логпробније повјерење, пер-категоријске дијагнозе"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Детаљи резултата"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Најновији резултат"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Поређење табеле"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Одабери моделе"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Одабери скуп питања"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Величина контекста"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Покрени benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Процјењена временска трајање"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Максимални број модела"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"Одабрано"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark скупови питања"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Увоз прилагођено"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Контекст:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Покрени Benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"прилагодити"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"АРЦ изазов"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"ММЛУ-Про"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"ХелласСwаг"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"ГСМ-8К"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"ТрутхфулQА"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Напредак"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Тренутно питање"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Последњи одговор"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Тачно"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Неисправно"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Прецизност"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна латенција"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна сигурност"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Категоријски напредак"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Заустави"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Мисли"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Стандардно"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Чекање на питање..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Чекање први одговор..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Обради питање..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Заустави Benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Напредак бенцхмарка"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно TTF"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно укупно"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Скупови питања"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Очекивано:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Општа прецизност"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Пер категорија"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Сигурност вс. Прецизност - X-Раy Сцаттер"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Збуњен (ниско сигурност, погрешно)"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Калибрирано (висока сигурност, тачно)"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Превише сигурно (висока сигурност, погрешно)"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Сретан (ниска сигурност, тачно)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Пер-Категоријско укупно време"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Притисак контекста - Прецизност деградација"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Категоријска разбијања"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Категорија"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Тачно"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно TTF"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно укупно"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна сигурност"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Пер-Питање Детаљи"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Све"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Погрешно"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Одговор"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Прецизност"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Реасонинг"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Респонсе"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Аццурацy"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Пореди резултате"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Радар графикон"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Топографска карта"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Настави"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Избриши резултат"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Сачувани Резултати"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Још нема сачуваних резултата."}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Кликни за селекцију за поређење"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Недовршено"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Погледајте детаље"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Настави недовршени benchmark"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Преузми CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдоwн"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Креирајте Benchmark Суите"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Уредите Benchmark Суите"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Скуп питања"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр., Француска историја квиз"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта ово скуп питања тестира?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Подразумевана категорија"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Питања"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Додај Питање"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Уреди Питање"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Нема питања још. Додајте своје прво питање или користите AI да их генеришете."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите своје питање овде..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Одговори"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Додај Одговор"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Тачан одговор"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Категорија"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Тежина"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Лако"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Средње"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Тешко"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај Скуп питања"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Креирајте Суите"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" одговора"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Генеришите са AI"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Тема"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр., Француска историја, Пyтхон програмирање, Органски хемија"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Број питања"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Тежина"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Мјешовито"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генеришите Питања"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Генерирање..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи генерацију"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Генерисана питања"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Изабери све"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Поништи избор"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Додај Изабрано"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Нека питања нису могла бити парсирана"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Није генерисано валидних питања. Покушајте другу тему или модел."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Увоз Скуп питања"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Увоз Прилагођени Benchmark Суите"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Повуци и отпусти датотеку овде"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Повуци .јсон датотеку овдје"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Бровс"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Максимална величина"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Невалидан формат"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Увоз успешан"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Увоз..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Захтеви: JSON са именом, питање низ (2-500 ставки)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Свако питање мора имати: ид, питање, одговори (2-6), тачан одговор."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Максимална величина 1МБ. HTML ознаке ће се уклонити. ИД-ови ће се дедуплицирати."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Датотека је превелика (максимално 1МБ)"}}}},Ny={title:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђења"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема доступних модела"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Није пронађен ниједан модел за угњежђивање. Преузмите један: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђена меморија"}},records:{t:0,b:{t:2,i:[{t:3}],s:"записи"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Играј са угњежђењима"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст да бисте генерисали његов вектор угњежђивања и прегледали димензије."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст за угњежђивање..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Угњезди"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђујем..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Прикажи сирове вредности (првих 50 од "},{t:4,k:"ukupno"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Калкулатор сличности"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Упоредите два текста да бисте измерили њихову семантичку сличност користећи косинусну удаљеност."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Текст А"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Текст Б"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Први текст..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Други текст..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Пореди"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Поређење..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Поређење модела"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Угњежди исти текст са два модела да бисте упоредили како представљају значење."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Модел А"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Модел Б"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст за угњежђивање са оба модела..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Пореди моделе"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Поређење модела..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Унакрсна сличност — ови модели представљају значење веома различито."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Веома различито — модели деле само минималну семантичку структуру."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Умерено слагање — модели деле део семантичке структуре."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Високо слагање — ови модели представљају овај текст слично."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Димензије се разликују ("},{t:4,k:"dimA"},{t:3,v:" вс "},{t:4,k:"dimB"},{t:3,v:") — директна косинусна сличност није могућа."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Упоредите статистику изнад да бисте проценили квалитет репрезентације сваког модела."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Димензије"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"Л2 норма"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Спарзитет"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Време"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Недавно угњежђено"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}}}},Iy={title:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Учитај документе за RAG-покрећене разговоре"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема уметнутих модела"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиштење знања"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"документи"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"комади"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"складиштено"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"РАЗ Складиштење"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Повуци и одложите датотеке овде"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Бровс"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Одложите датотеке овдје или кликните да бисте претражили"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Подржава PDF, ДОЦX, ТXТ, Маркдоwн, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Документи"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Нема докумената учитано још"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Подеси RAG контекст"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Уклони документ"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Семантичко претраживање"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Претражите своје документе..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема резултата претраге"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Претражујем..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Претражи"}},results:{t:0,b:{t:2,i:[{t:3}],s:"резултати"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Покажи мање"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи цијели комад"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Ингештај напредак"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ингештајуће..."}}}},Ly={title:{t:0,b:{t:2,i:[{t:3}],s:"Радионица алата"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Додај алат"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Додај из шаблона"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Нема конфигурисаних алата. Додај један да бисте почели."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Име алата"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Опис алата"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Име функције"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Имплементација"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Код"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај алат"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Обриши алат"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Панел кода"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Извор"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Сцхема"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-компатибилни манифест алата"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Упозорења"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Нема још алата. Направи свој први алат или почни од шаблона."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Нови алат"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Из шаблона..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј тренинг податке (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Библиотека алата"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Уклони све алате са платна"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3,v:"Да ли желите да уклоните све "},{t:4,k:"count"},{t:3,v:" алат(а) са платна? Ово не може бити повучено."}]}},clearAllWarning:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Онемогући за разговор"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Омогући за разговор"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Уклони алат"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Избрисати алат"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Нема још алата"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј све алате (JSON)"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј алат као JSON"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Извоз алата као JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Шаблони алата"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Почни са функционалним шаблоном и прилагоди га"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Утичишта"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Подаци"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Гоогле (Календар & Гмаил)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Прилагођено"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Име функције"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Добијај тренутну временску прогнозу за дато место"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Визуелни градитељ"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"Раw JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај параметар"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Уклони параметар"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај алат"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Уреди алат"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Нови алат"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Још нема дефинисаних алата."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај алат"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Ради..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Успјех"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Грешка"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Резултат"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Трајање"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM алат"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"фунцНаме"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Нацртај са AI"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI увиди"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Ради..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Готово"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Неуспјех"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI поправка"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта овај алат ради?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Намјена"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Опишите што би овај алат требао да ради..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генерирај"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Генерирање..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"наме"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"тип"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Нема параметара"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Пробај и изабери"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"хттпс://апи.еxампле.цом/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Пробај"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"Главе"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Име главе"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"вриједност"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Означи као тајни (користи варијаблу окружења у генерисаним коду)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Тело захтјева"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Крајња тачка"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Претражи крајње тачке..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Нема одговарајућих крајњих тачака"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI сугестија"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Размишља..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"поље"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"поља"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Примјени"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Мапирање"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Изван синхронизације"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Тело (Типскрипт)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"/ / Алат имплементација..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI-сугестирана поправка (прегледајте прије примјене):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Примјени поправку"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Прихвати"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Одбаци"}}}},Fy={title:{t:0,b:{t:2,i:[{t:3}],s:"AI Траининг"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Браузирајте, курирајте и извозите своје податке за обуку из алата у радионици."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Укупан парови"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"прихваћено"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"одбијено"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Очекује се"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Парови за обуку"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Стопа прихватања"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"По фази"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Најбољи модели"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Претрага..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Претражите промпте..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Име алата"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Ознака"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Статус"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Сви модели"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Сви алати"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Све ознаке"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Сви статуси"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" изабрано"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Извоз JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Ознаци као прихваћено"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Ознаци као одбијено"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Додај ознаку"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Име ознаке..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Обриши"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Потврди?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Одабери све"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Додај ознаку..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Изабери све"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Одабери ништа"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" од "},{t:4,k:"total"},{t:3,v:" парова приказано"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема обучних парова који одговарају вашим филтрима."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Прихваћено"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Одбијено"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Кориснички промпт"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI одговор"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Уреди одговор"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Ознаке"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Обриши пар"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Потврди брисање?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Још нема прикупљених података за обуку."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Парови за обуку се генеришу аутоматски када користите AI функције у алату (генерисање нацрта, анализа кода, аутомапирање и поправка AI)."}}}},zy={title:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Хардвер, рунтиме и инфереција преглед"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Детектовање хардвера..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Упит CPU-а, меморије, GPU-а и складишта"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Недоступно детектовање хардвера. Поново покрените сервер за дев да омогућите плугин систем информација."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Експорат"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми извештај о систему (Маркдовн)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми систем инфо (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Оперативни систем"}},os:{t:0,b:{t:2,i:[{t:3}],s:"ОС"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Буилд"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Арцхитецтуре"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Уређај"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Име"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Произвођач"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Фамилија"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Процесор"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Физички језгро"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Логички процесори"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Максимална фреквенција"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"Укупан RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Доступно"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Коришћено"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Графика"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"Адаптер RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Дељено / Није извештено"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Возач"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиште"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Дриве"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Слободно"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Коришћено"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиште у прегледачу"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Персистентно"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Најбољи напор"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Скенирање..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Квота IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" укупних записа преко "},{t:4,k:"database"},{t:3,v:" база података"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све податке"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Празно"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama Рунтиме"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Статус"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Укупно складиштење модела"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Модели учитани"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Инфереција"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"Ова сесија"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Нема инферецијских сесија још. Пошаљи поруку да бисте учитали један."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна брзина"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно вријеме одговора"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Користени модели"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Активни модели"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема тренутно учитани модел у меморији. Пошаљи поруку да бисте га учитали."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Контекст"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема инсталираних модела."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Фамилија"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Квантизација"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Величина"}}}},By={title:{t:0,b:{t:2,i:[{t:3}],s:"Упореди резултате модела"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Слотови за поређење"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Сваки слот је комбинација модела и подешавања. Додај исти модел више пута са различитим подешавањима да упоредиш понашање."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Додај слот"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Уклони слот"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Опциони системски промпт..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Опције"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Насумично (остави празно)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Напредно"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Казна понављања"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Максимално токена"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Дужина контекста"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Подразумевано"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" слот(ова) подешено"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Још нема подешених слотова"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Додај слот да изабереш модел и подешавања, или користи брзи почетни пресет изнад."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај први слот"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Додај слот ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Брзи почетак:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Температурни опсег"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Креира 3 слота истог модела на температурама 0.2 (фокусирано), 0.7 (уравнотежено) и 1.2 (креативно). Погледај како температура мења резултат за исти промпт."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Детерминистички пар"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Креира 2 слота истог модела са истим seed‑ом, али различитим температурама (0.3 и 1.0). Заједнички seed значи да је разлика у излазу искључиво због температуре, а не насумичности."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Поређење језика"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Упореди како различити језици утичу на цену токена и понашање модела"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унеси промпт за поређење између слотова..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Упореди"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Покрећем..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Резултати"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Мрежа"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Разлике"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Потребна су најмање 2 завршена резултата да би се приказала разлика."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Упореди:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"вс"}},only:{t:0,b:{t:2,i:[{t:3,v:"само "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Поређење перформанси"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Време до првог токена"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"ниже је боље"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Токена/сек"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"више је боље"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Укупно токена"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Брзина"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Трајање"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Откривен језички несклад"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Чини се да је твој промпт на језику: "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"циљни језик је "},{t:4,k:"languae"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Преведи на "},{t:4,k:"languae"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Задржи "},{t:4,k:"languae"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Преведи све"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Порез на токене"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени промпта"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Преведени промпт"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Преведено"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Језик још није подржан"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Преводим... може потрајати у зависности од величине модела"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет превода зависи од језичких способности модела. Већи модели дају бољи превод."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Укуцај или налепи свој промпт на језику "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Сачувана поређења"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Учитај"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Још нема сачуваних поређења"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Преузми као JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми као Маркдоwн"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Подели на GitHub Дисцуссионс"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Подели своја открића"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Додај коментар"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта си открио? Подели своје увиде..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Преглед извештаја"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Отвори GitHub Дисцуссионс"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Копирај Маркдоwн"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Копирано!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Бићеш преусмерен на GitHub да прегледаш и објавиш своје налазе."}}}},Uy={title:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Сесија "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Сесија није пронађена."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Стрим"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Интроспекција"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Алати"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Агент Графикон"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдовн"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Token Стреам CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token Стрим"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Мертрики"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите свој промпт..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Нема података о разумевању за ову сесију."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Интроспекција"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Илуструј"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Позиви алата"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Временска линија"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Оптимизуј"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Агент Графикон"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Промпт Инспецтор"}}}},qy={title:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи повратну информацију"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Хвала вам на повратној информацији!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Ваше учешће помаже да LLMxRay постане бољи."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Које врсте повратних информација?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Буг"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Идеја"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Друго"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Реците нам шта је на вашем уму..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"Е-пошта"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(опционо - само ако желите одговор)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"ваш@емаил.цом"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи повратну информацију"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Слање..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Укључује контекст апликације (страница, модел, систем) да бисмо разумели ваше повратне информације."}}},$y={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Пронађене проблеме са квалитетом"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Репетиитивни"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор садржи превише понављаних фраза"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Рефуз"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор изгледа као одбијање"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Гииблериш"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор има висок однос нечитљивих знакова"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Празан"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор садржи врло мало садржаја"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Прекинут"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор може бити прекинут"}}}},Vy={title:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови контролне табле"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Тотал Токена"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна Цена/Сесија"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Token Упораба по Моделу"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Дневна Упораба"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Промпт Токена"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Цомплетион Токена"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Тренд Цене"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Цомплетион"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Тотал"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Извор"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Захтев Латенција (П50 / П95 / П99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Време до Први Token (П50 / П95 / П99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Интер-Token Латенција Дистрибуција"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Букети граница прате ОТеЛ ГенАИ конвенције. Аггрегирано преко свих сесија."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Недовољно података о сесијама за анализу перцентила."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Греске по Моделу"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Нема забележених грешака."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Време Уцитавања Модела"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"Хладни Покрети"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Оранге тачке означавају хладне покрете (модел учитан са диска, > 500мс)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема сесијских података још."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ове цене су процјене на основу еквивалентних цијена API-ја у облаку. Оламма ради локално без трошкова."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема употребе података још. Почните да разговарате да бисте видјели token употребу и процјењене цијене."}}},Ky={title:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет одговора"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Анализа латенције"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Поузданост"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Обрасци корисничког понашања"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Утицај поставки"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија модела"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет преко окретаја"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Зелена = добра (3,5+), жута = средња (2-3,5), црвена = лоша (< 2). Оцена заснована на броју речи, разноликости лексике и недопуштању понављања."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Покрените вишеокретну разговор да бисте видели трендове квалитета."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Временски ред грешака"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Није забележена ниједна грешка."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Волумен захтева"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Дистрибуција модела"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Активне сате"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података сесије."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Температура вс. Брзина"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Сваки тачка је сесија. Приказује како температура утиче на генерисање брзине."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Треба најмање 2 сесије са експлицитно постављеним температурама."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Историја учитавања модела"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"хладно"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података сесије."}}}},Hy={title:{t:0,b:{t:2,i:[{t:3}],s:"Допуна у средини (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Тестирајте допуну кода са префиксом + суфиксом. Модел попуњава празнину."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Неки Ollama модели (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) подржавају `suffix` поље на /api/generate. Унесите код пре и после курсора — модел допуњава средину."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Модели за код (FIM-компатибилни)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Остали модели (можда не подржавају FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Овај модел није познати модел за код — `suffix` може бити игнорисан."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Префикс (код пре курсора)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Суфикс (код после курсора)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генериши"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Допуна"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Спојени приказ"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Стримовање…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Брзина"}}}},Gy={title:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљите један промпт кроз три протокола послуживања. Исти модел, исти Ollama демон — различити жичани формати. Упоредите шта вам сваки протокол пружа."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama излаже /api/chat (нативни NDJSON), /v1/chat/completions (OpenAI-компатибилан SSE) и /v1/messages (Anthropic-компатибилан SSE). Сва три циљају исти локални модел — без облака, без API кључева. Ова страница покреће исти промпт на сва три паралелно и показује шта се разликује."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите промпт на који ће сва три протокола одговорити…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Макс. токена"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Покрени сва 3 протокола"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Још није покренуто."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Чекање првог токена…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Инспекција envelope"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Први chunk / догађај"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Последњи chunk / догађај"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"знак."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Нативни"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama нативни"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-комп."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (комп)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Anthropic-комп."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (комп)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Крај"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Поређење одговора"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff envelope"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Аспект"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Омотач стрима"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Кључеви врха (опажени)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Носач разлога завршетка"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Разлог завршетка (овај run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Носач броја токена"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени (овај run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Облик envelope грешке"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Опажене вредности су из овог рана на вашем локалном Ollama. Неки носачи (нпр. NDJSON нативни `done_reason`) појављују се само на последњем chunk-у, други (нпр. Anthropic `message_stop`) су наменски догађаји."}}}},Wy={common:My,dashboard:Dy,settings:Oy,benchmark:Ry,embeddings:Ny,rag:Iy,tools:Ly,training:Fy,system:zy,comparison:By,session:Uy,feedback:qy,quality:$y,cost:Vy,analytics:Ky,fim:Hy,protocols:Gy},Jy=["en","fr","zh","ar","sr","sr-Cyrl"];function Qy(){const t=localStorage.getItem("llmxray-locale");if(t&&Jy.includes(t))return t;const e=navigator.language;return e.startsWith("fr")?"fr":e.startsWith("zh")?"zh":e.startsWith("ar")?"ar":e==="sr-Latn"||e.startsWith("sr-Latn")?"sr":e.startsWith("sr")?"sr-Cyrl":"en"}const sl=Ch({locale:Qy(),fallbackLocale:"en",globalInjection:!0,messages:{en:hv,fr:Rv,zh:Qv,ar:dy,sr:jy,"sr-Cyrl":Wy},numberFormats:{en:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},fr:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},zh:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},ar:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},sr:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},"sr-Cyrl":{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}}},datetimeFormats:{en:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},fr:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},zh:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},ar:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},sr:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},"sr-Cyrl":{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}}}}),eb=new Set(["ar","he","fa","ur"]),sb=[{code:"en",label:"English",flag:"gb"},{code:"fr",label:"Français",flag:"fr"},{code:"zh",label:"中文",flag:"cn"},{code:"ar",label:"العربية",flag:"sa"},{code:"sr",label:"Srpski",flag:"rs"},{code:"sr-Cyrl",label:"Српски",flag:"rs"}],Yy=_r("locale",()=>{const t=he(sl.global.locale.value);function e(s){t.value=s,sl.global.locale.value=s,localStorage.setItem("llmxray-locale",s),document.documentElement.lang=s,document.documentElement.dir=eb.has(s)?"rtl":"ltr"}return document.documentElement.lang=t.value,document.documentElement.dir=eb.has(t.value)?"rtl":"ltr",{locale:t,setLocale:e}}),Xy={class:"flex h-14 items-center justify-between border-b border-border-default bg-surface-raised px-6"},Zy={class:"text-lg font-semibold text-text-primary"},tk={class:"flex items-center gap-3"},ek=["title"],sk=["title","aria-expanded"],ik={key:0,role:"listbox",class:"absolute right-0 top-full z-50 mt-1 min-w-[10rem] overflow-hidden rounded-lg border border-border-default bg-surface-raised py-1 shadow-lg"},nk=["aria-selected","onClick"],ok={class:"flex items-center gap-2 text-sm text-text-secondary"},rk=Os({__name:"AppHeader",setup(t){const e=_l(),{t:s}=to(),i=Xg(),o=Yy(),a=he(!1),l=he(null),b=ne(()=>sb.find(_=>_.code===o.locale)?.flag??"xx");function u(_){o.setLocale(_),a.value=!1}function f(_){a.value&&l.value&&!l.value.contains(_.target)&&(a.value=!1)}const p=ne(()=>{const _=e.name;return{dashboard:s("common.header.chatDiagnostics"),session:s("common.header.session"),comparison:s("common.header.compareModels"),embeddings:s("common.header.embeddings"),rag:s("common.header.knowledgeBase"),models:s("common.header.models"),benchmark:s("common.header.benchmark"),costs:s("common.header.costDashboard"),analytics:s("common.header.analytics"),tools:s("common.header.toolWorkshop"),fim:s("common.header.fim"),protocols:s("common.header.protocols"),system:s("common.header.mySystem"),settings:s("common.header.settings")}[_??""]??s("common.header.default")}),g=he(!1);async function y(){try{const _=await fetch("/api/tags");g.value=_.ok}catch{g.value=!1}}return Yn(()=>{y(),setInterval(y,15e3),document.addEventListener("click",f)}),pl(()=>{document.removeEventListener("click",f)}),(_,z)=>{const I=yr("RouterLink");return me(),rs("header",Xy,[Et("h1",Zy,[ie(e).name==="session"?(me(),rs(ke,{key:0},[oe(I,{to:"/",class:"text-text-secondary hover:text-accent transition-colors"},{default:Fn(()=>[Dn(De(_.$t("common.header.chatDiagnostics")),1)]),_:1}),z[2]||(z[2]=Et("span",{class:"mx-2 text-text-muted"},"/",-1)),Et("span",null,"Session "+De(ie(e).params.id?.slice(0,8)),1)],64)):(me(),rs(ke,{key:1},[Dn(De(p.value),1)],64))]),Et("div",tk,[Et("button",{class:"flex items-center justify-center rounded-lg p-1.5 text-text-secondary hover:bg-surface-overlay hover:text-text-primary transition-colors",title:`Theme: ${ie(i).mode}`,onClick:z[0]||(z[0]=$=>ie(i).setMode(ie(i).resolvedTheme==="dark"?"light":"dark"))},[ie(i).resolvedTheme==="dark"?(me(),ps(ie(lg),{key:0,class:"h-4 w-4"})):(me(),ps(ie(og),{key:1,class:"h-4 w-4"}))],8,ek),Et("div",{ref_key:"localeMenuRef",ref:l,class:"relative"},[Et("button",{class:"flex items-center gap-1.5 rounded-lg px-1.5 py-1 text-xs font-medium text-text-secondary hover:bg-surface-overlay hover:text-text-primary transition-colors",title:_.$t("settings.general.language"),"aria-expanded":a.value,"aria-haspopup":"listbox",onClick:z[1]||(z[1]=Ed($=>a.value=!a.value,["stop"]))},[Et("span",{class:ls([`fi fi-${b.value}`,"!h-3.5 !w-5 rounded-sm"])},null,2),oe(ie(Gh),{class:ls(["h-3 w-3",{"rotate-180":a.value}])},null,8,["class"])],8,sk),oe(Wf,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:Fn(()=>[a.value?(me(),rs("ul",ik,[(me(!0),rs(ke,null,gl(ie(sb),$=>(me(),rs("li",{key:$.code,role:"option","aria-selected":$.code===ie(o).locale,class:ls(["flex cursor-pointer items-center gap-2.5 px-3 py-1.5 text-sm text-text-secondary hover:bg-surface-overlay hover:text-text-primary",{"bg-surface-overlay text-text-primary":$.code===ie(o).locale}]),onClick:P=>u($.code)},[Et("span",{class:ls([`fi fi-${$.flag}`,"!h-3.5 !w-5 rounded-sm"])},null,2),Et("span",null,De($.label),1)],10,nk))),128))])):Td("",!0)]),_:1})],512),Et("div",ok,[Et("span",{class:ls(["inline-block h-2 w-2 rounded-full",g.value?"bg-success":"bg-error"])},null,2),Dn(" "+De(g.value?_.$t("common.status.ollamaConnected"):_.$t("common.status.ollamaDisconnected")),1)])])])}}}),ak={class:"flex h-screen overflow-hidden"},lk={class:"flex flex-1 flex-col overflow-hidden"},ck={class:"flex-1 overflow-hidden"},uk=Os({__name:"DefaultLayout",setup(t){return(e,s)=>{const i=yr("RouterView");return me(),rs("div",ak,[oe(Yg),Et("div",lk,[oe(rk),Et("main",ck,[oe(i,null,{default:Fn(({Component:o,route:a})=>[Et("div",{class:ls(["h-full",a.name==="dashboard"||a.name==="tools"?"":"overflow-auto p-6"])},[(me(),ps(Zb(o)))],2)]),_:1})])])])}}}),bk=I3({history:f3(),routes:[{path:"/",component:uk,children:[{path:"",name:"dashboard",component:()=>Ke(()=>import("./DashboardPage-C7HpWzo0.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))},{path:"session/:id",name:"session",component:()=>Ke(()=>import("./SessionPage-D9yVmDvL.js"),__vite__mapDeps([16,3,1,6,17,18,5,19,2,20,21,8,9,22,23,24,15])),props:!0},{path:"compare",name:"comparison",component:()=>Ke(()=>import("./ComparisonPage-yjlQyMSr.js"),__vite__mapDeps([25,3,1,4,5,6,7,8,17,2,19,26,15,27]))},{path:"embeddings",name:"embeddings",component:()=>Ke(()=>import("./EmbeddingsPage-BjI-MRAa.js"),__vite__mapDeps([28,2,29,30,31,23,32]))},{path:"rag",name:"rag",component:()=>Ke(()=>import("./RAGPage-DhajwBAP.js"),__vite__mapDeps([33,10,11,29,30,2,31]))},{path:"models",redirect:{path:"/settings",query:{tab:"models"}}},{path:"benchmark",name:"benchmark",component:()=>Ke(()=>import("./BenchmarkPage-D0OBLy2p.js"),__vite__mapDeps([34,35,7,3,6,1,8,13,36,15,37,14,20,17,27]))},{path:"tools",name:"tools",component:()=>Ke(()=>import("./ToolWorkshopPage-Bi-P9pPj.js"),__vite__mapDeps([38,9,17,8,3,39,22,23,24,26,15,36,40]))},{path:"fim",name:"fim",component:()=>Ke(()=>import("./FimPlaygroundPage-DFbVhKk_.js"),__vite__mapDeps([41,21,42,37]))},{path:"protocols",name:"protocols",component:()=>Ke(()=>import("./ProtocolObservatoryPage-BCBMa4BZ.js"),__vite__mapDeps([43,7,3,6,1,8,21,42,37]))},{path:"training",name:"training",component:()=>Ke(()=>import("./AITrainingPage-CsvXVCl4.js"),__vite__mapDeps([44,39,2,30,31]))},{path:"costs",name:"costs",component:()=>Ke(()=>import("./CostDashboardPage--NlorE5h.js"),__vite__mapDeps([45,1,20,21]))},{path:"analytics",name:"analytics",component:()=>Ke(()=>import("./AnalyticsPage-vkaPSUTM.js"),__vite__mapDeps([46,20,1,3]))},{path:"system",name:"system",component:()=>Ke(()=>import("./SystemPage-D4Zziyum.js"),__vite__mapDeps([47,17,1,2,29,30,31,15]))},{path:"settings",name:"settings",component:()=>Ke(()=>import("./SettingsPage-CMAnCevk.js"),__vite__mapDeps([48,18,2,13,36,49,50,23,20,17]))},{path:"auth/google/callback",name:"google-oauth-callback",component:()=>Ke(()=>import("./GoogleCallbackPage-CtnaMbov.js"),__vite__mapDeps([51,49,50]))}]}]}),dk="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let mk=(t=21)=>{let e="",s=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=dk[s[t]&63];return e};const fk="llmxray-conversations",pk=1,bs="conversations",Ze="messages",ds="sessions",Us="tokens";function os(){return new Promise((t,e)=>{const s=indexedDB.open(fk,pk);s.onupgradeneeded=()=>{const i=s.result;i.objectStoreNames.contains(bs)||i.createObjectStore(bs,{keyPath:"id"}),i.objectStoreNames.contains(Ze)||i.createObjectStore(Ze,{keyPath:"id"}).createIndex("byConversation","conversationId",{unique:!1}),i.objectStoreNames.contains(ds)||i.createObjectStore(ds,{keyPath:"id"}).createIndex("byConversation","conversationId",{unique:!1}),i.objectStoreNames.contains(Us)||i.createObjectStore(Us,{keyPath:"sessionId"}).createIndex("bySession","sessionId",{unique:!0})},s.onsuccess=()=>t(s.result),s.onerror=()=>e(s.error)})}function Ei(t){return new Promise((e,s)=>{t.oncomplete=()=>e(),t.onerror=()=>s(t.error)})}function ib(t,e){return new Promise((s,i)=>{const o=t.get(e);o.onsuccess=()=>s(o.result),o.onerror=()=>i(o.error)})}function hk(t){return new Promise((e,s)=>{const i=t.getAll();i.onsuccess=()=>e(i.result),i.onerror=()=>s(i.error)})}function Aa(t,e,s){return new Promise((i,o)=>{const l=t.index(e).getAll(s);l.onsuccess=()=>i(l.result),l.onerror=()=>o(l.error)})}const us={async saveConversation(t){const e=await os(),s=e.transaction([bs,Ze],"readwrite"),i={id:t.id,name:t.name,title:t.title,model:t.model,options:t.options,createdAt:t.createdAt,updatedAt:t.updatedAt};s.objectStore(bs).put(i);const o=s.objectStore(Ze);for(const a of t.messages)o.put(a);await Ei(s),e.close()},async saveConversationMeta(t){const e=await os(),s=e.transaction(bs,"readwrite"),i={id:t.id,name:t.name,title:t.title,model:t.model,options:t.options,createdAt:t.createdAt,updatedAt:t.updatedAt};s.objectStore(bs).put(i),await Ei(s),e.close()},async saveMessage(t){const e=await os(),s=e.transaction(Ze,"readwrite");s.objectStore(Ze).put(t),await Ei(s),e.close()},async getAllConversations(){const t=await os(),e=t.transaction(bs,"readonly"),s=await hk(e.objectStore(bs));return t.close(),s},async getMessages(t){const e=await os(),s=e.transaction(Ze,"readonly"),i=await Aa(s.objectStore(Ze),"byConversation",t);return e.close(),i.sort((o,a)=>o.timestamp-a.timestamp)},async deleteConversation(t){const e=await os(),s=e.transaction(Ze,"readonly"),i=await Aa(s.objectStore(Ze),"byConversation",t),o=i.map(g=>g.sessionId).filter(g=>!!g),a=[...new Set(o)],l=[bs,Ze,ds,Us],b=e.transaction(l,"readwrite");b.objectStore(bs).delete(t);const u=b.objectStore(Ze);for(const g of i)u.delete(g.id);const f=b.objectStore(ds),p=b.objectStore(Us);for(const g of a)f.delete(g),p.delete(g);await Ei(b),e.close()},async saveSession(t,e){const s=await os(),i=s.transaction(ds,"readwrite"),o={...t,conversationId:e};i.objectStore(ds).put(o),await Ei(i),s.close()},async getSession(t){const e=await os(),s=e.transaction(ds,"readonly"),i=await ib(s.objectStore(ds),t);return e.close(),i},async getSessionsByConversation(t){const e=await os(),s=e.transaction(ds,"readonly"),i=await Aa(s.objectStore(ds),"byConversation",t);return e.close(),i},async saveTokens(t,e){const s=await os(),i=s.transaction(Us,"readwrite"),o={sessionId:t,tokens:e};i.objectStore(Us).put(o),await Ei(i),s.close()},async getTokens(t){const e=await os(),s=e.transaction(Us,"readonly"),i=await ib(s.objectStore(Us),t);return e.close(),i?.tokens??[]},async clear(){const t=await os(),e=[bs,Ze,ds,Us],s=t.transaction(e,"readwrite");for(const i of e)s.objectStore(i).clear();await Ei(s),t.close()}},$k=Object.freeze(Object.defineProperty({__proto__:null,conversationDB:us},Symbol.toStringTag,{value:"Module"}));var gk=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function vk(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Vk(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var s=function i(){var o=!1;try{o=this instanceof i}catch{}return o?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};s.prototype=e.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(t).forEach(function(i){var o=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(s,i,o.get?o:{enumerable:!0,get:function(){return t[i]}})}),s}var Uo={exports:{}},yk=Uo.exports,nb;function kk(){return nb||(nb=1,(function(t,e){((s,i)=>{t.exports=i()})(yk,function(){var s=function(n,r){return(s=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(c,d){c.__proto__=d}:function(c,d){for(var m in d)Object.prototype.hasOwnProperty.call(d,m)&&(c[m]=d[m])}))(n,r)},i=function(){return(i=Object.assign||function(n){for(var r,c=1,d=arguments.length;c<d;c++)for(var m in r=arguments[c])Object.prototype.hasOwnProperty.call(r,m)&&(n[m]=r[m]);return n}).apply(this,arguments)};function o(n,r,c){for(var d,m=0,h=r.length;m<h;m++)!d&&m in r||((d=d||Array.prototype.slice.call(r,0,m))[m]=r[m]);return n.concat(d||Array.prototype.slice.call(r))}var a=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:gk,l=Object.keys,b=Array.isArray;function u(n,r){return typeof r=="object"&&l(r).forEach(function(c){n[c]=r[c]}),n}typeof Promise>"u"||a.Promise||(a.Promise=Promise);var f=Object.getPrototypeOf,p={}.hasOwnProperty;function g(n,r){return p.call(n,r)}function y(n,r){typeof r=="function"&&(r=r(f(n))),(typeof Reflect>"u"?l:Reflect.ownKeys)(r).forEach(function(c){z(n,c,r[c])})}var _=Object.defineProperty;function z(n,r,c,d){_(n,r,u(c&&g(c,"get")&&typeof c.get=="function"?{get:c.get,set:c.set,configurable:!0}:{value:c,configurable:!0,writable:!0},d))}function I(n){return{from:function(r){return n.prototype=Object.create(r.prototype),z(n.prototype,"constructor",n),{extend:y.bind(null,n.prototype)}}}}var $=Object.getOwnPropertyDescriptor,P=[].slice;function x(n,r,c){return P.call(n,r,c)}function G(n,r){return r(n)}function N(n){if(!n)throw new Error("Assertion Failed")}function X(n){a.setImmediate?setImmediate(n):setTimeout(n,0)}function W(n,r){if(typeof r=="string"&&g(n,r))return n[r];if(!r)return n;if(typeof r!="string"){for(var c=[],d=0,m=r.length;d<m;++d){var h=W(n,r[d]);c.push(h)}return c}var v,k=r.indexOf(".");return k===-1||(v=n[r.substr(0,k)])==null?void 0:W(v,r.substr(k+1))}function H(n,r,c){if(n&&r!==void 0&&!("isFrozen"in Object&&Object.isFrozen(n)))if(typeof r!="string"&&"length"in r){N(typeof c!="string"&&"length"in c);for(var d=0,m=r.length;d<m;++d)H(n,r[d],c[d])}else{var h,v,k=r.indexOf(".");k!==-1?(h=r.substr(0,k),(k=r.substr(k+1))===""?c===void 0?b(n)&&!isNaN(parseInt(h))?n.splice(h,1):delete n[h]:n[h]=c:H(v=(v=n[h])&&g(n,h)?v:n[h]={},k,c)):c===void 0?b(n)&&!isNaN(parseInt(r))?n.splice(r,1):delete n[r]:n[r]=c}}function rt(n){var r,c={};for(r in n)g(n,r)&&(c[r]=n[r]);return c}var st=[].concat;function yt(n){return st.apply([],n)}var Jt="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(yt([8,16,32,64].map(function(n){return["Int","Uint","Float"].map(function(r){return r+n+"Array"})}))).filter(function(n){return a[n]}),Pt=new Set(Jt.map(function(n){return a[n]})),lt=null;function Ct(n){return lt=new WeakMap,n=(function r(c){if(!c||typeof c!="object")return c;var d=lt.get(c);if(d)return d;if(b(c)){d=[],lt.set(c,d);for(var m=0,h=c.length;m<h;++m)d.push(r(c[m]))}else if(Pt.has(c.constructor))d=c;else{var v,k=f(c);for(v in d=k===Object.prototype?{}:Object.create(k),lt.set(c,d),c)g(c,v)&&(d[v]=r(c[v]))}return d})(n),lt=null,n}var Yt={}.toString;function ue(n){return Yt.call(n).slice(8,-1)}var It=typeof Symbol<"u"?Symbol.iterator:"@@iterator",jt=typeof It=="symbol"?function(n){var r;return n!=null&&(r=n[It])&&r.apply(n)}:function(){return null};function Dt(n,r){r=n.indexOf(r),0<=r&&n.splice(r,1)}var Xt={};function be(n){var r,c,d,m;if(arguments.length===1){if(b(n))return n.slice();if(this===Xt&&typeof n=="string")return[n];if(m=jt(n))for(c=[];!(d=m.next()).done;)c.push(d.value);else{if(n==null)return[n];if(typeof(r=n.length)!="number")return[n];for(c=new Array(r);r--;)c[r]=n[r]}}else for(r=arguments.length,c=new Array(r);r--;)c[r]=arguments[r];return c}var Pe=typeof Symbol<"u"?function(n){return n[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},Jt=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],ft=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(Jt),ss={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function Re(n,r){this.name=n,this.message=r}function Ye(n,r){return n+". Errors: "+Object.keys(r).map(function(c){return r[c].toString()}).filter(function(c,d,m){return m.indexOf(c)===d}).join(`
|
|
34
|
+
`},{t:4,k:"list"}]}},copiedToClipboard:{t:0,b:{t:2,i:[{t:3}],s:"Копирано у привремену меморију."}},noAssistantResponseToCopy:{t:0,b:{t:2,i:[{t:3}],s:"Нема одговора асистента за копирање."}},noConversationToExport:{t:0,b:{t:2,i:[{t:3}],s:"Нема разговора за извоз."}},jsonFormatToggled:{t:0,b:{t:2,i:[{t:3}],s:"JSON формат пребачен. То утиче на следећи захтев."}},none:{t:0,b:{t:2,i:[{t:3}],s:"(нема)"}}}}},Ly={tabs:{general:{t:0,b:{t:2,i:[{t:3}],s:"Генерал"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Моделс"}},integrations:{t:0,b:{t:2,i:[{t:3}],s:"Интегратионс"}},about:{t:0,b:{t:2,i:[{t:3}],s:"Абоут"}},history:{t:0,b:{t:2,i:[{t:3}],s:"Хисторy"}}},general:{ollamaConnection:{t:0,b:{t:2,i:[{t:3}],s:"Ollama веза"}},ollamaUrl:{t:0,b:{t:2,i:[{t:3}],s:"Ollama URL"}},testConnection:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај везу"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај"}},connectionSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Веза успјешна"}},connectionFailed:{t:0,b:{t:2,i:[{t:3}],s:"Веза није успјела"}},connectionConnected:{t:0,b:{t:2,i:[{t:3}],s:"Повезивање..."}},connectionTesting:{t:0,b:{t:2,i:[{t:3}],s:"Одспојен"}},connectionDisconnected:{t:0,b:{t:2,i:[{t:3}],s:"Подразумијевани параметри"}},defaultParameters:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Што је Температура?"}},temperatureTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:'Контролише колико "креативно" или "случајно" одговори модела су.'}},temperatureTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Увек бира највероватнију реч. Добар за чињенице, математику и код."}},temperatureTooltipZero:{t:0,b:{t:2,i:[{t:3}],s:"Добар баланс. То је подразумевано."}},temperatureTooltipDefault:{t:0,b:{t:2,i:[{t:3}],s:"Изненађујуће и креативније."}},temperatureTooltipHigh:{t:0,b:{t:2,i:[{t:3}],s:"Детерминистички"}},temperatureDeterministic:{t:0,b:{t:2,i:[{t:3}],s:"Фокусиран"}},temperatureFocused:{t:0,b:{t:2,i:[{t:3}],s:"Балансиран"}},temperatureBalanced:{t:0,b:{t:2,i:[{t:3}],s:"Креативан"}},temperatureCreative:{t:0,b:{t:2,i:[{t:3}],s:"Веома случајан"}},temperatureVeryRandom:{t:0,b:{t:2,i:[{t:3}],s:"Дивљи"}},temperatureWild:{t:0,b:{t:2,i:[{t:3}],s:"Дуљина контекста"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Што је Дуљина контекста?"}},contextLengthTooltipTitle:{t:0,b:{t:2,i:[{t:3}],s:"Колико разговора модел може видети одједном, изражено у токенима."}},contextLengthTooltipDesc:{t:0,b:{t:2,i:[{t:3}],s:"Већа дужина користи више RAM/VRAM."}},contextLengthTooltipNote:{t:0,b:{t:2,i:[{t:3,v:"≈ "},{t:4,k:"count"},{t:3,v:" речи"}]}},approximateWords:{t:0,b:{t:2,i:[{t:3}],s:"Језик"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Одабери језик"}},selectLanguage:{t:0,b:{t:2,i:[{t:3}],s:"Селецт лангуаге"}}},models:{installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},pullNewModel:{t:0,b:{t:2,i:[{t:3}],s:"Повуци нови модел"}},modelName:{t:0,b:{t:2,i:[{t:3}],s:"Име модела"}},pull:{t:0,b:{t:2,i:[{t:3}],s:"Повуци"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Брисање"}},deleteConfirm:{t:0,b:{t:2,i:[{t:3}],s:"Јеси ли сигуран да желиш да обришеш овај модел?"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Величина"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Породица"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Квалификација"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},capabilities:{t:0,b:{t:2,i:[{t:3}],s:"Способности"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},downloadModels:{t:0,b:{t:2,i:[{t:3}],s:"Преузми моделе"}},searchModels:{t:0,b:{t:2,i:[{t:3}],s:"Претражи моделе..."}},noModelsInstalled:{t:0,b:{t:2,i:[{t:3}],s:"Није инсталирано ниједан модел. Повуци један из каталога."}},noModelsMatch:{t:0,b:{t:2,i:[{t:3}],s:"Нема модела који одговарају вашој претрази."}},pullByName:{t:0,b:{t:2,i:[{t:3}],s:"Повуци било који модел по имену"}},installed:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирано"}},confirmDeletePrompt:{t:0,b:{t:2,i:[{t:3}],s:"Потврда брисања?"}}},integrations:{googleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Гоогле рачун"}},connect:{t:0,b:{t:2,i:[{t:3}],s:"Повежи"}},disconnect:{t:0,b:{t:2,i:[{t:3}],s:"Одспоји"}},connectedAs:{t:0,b:{t:2,i:[{t:3}],s:"Повезан као"}},googleIntegration:{t:0,b:{t:2,i:[{t:3}],s:"Интеграција LLM"}},googleIntegrationDesc:{t:0,b:{t:2,i:[{t:3}],s:"Повежите свој Гоогле рачун да омогућите календар и Гмаил алате у Радионици. "}},oauthClientId:{t:0,b:{t:2,i:[{t:3}],s:"ОАутх2 Цлиент ИД"}},authenticating:{t:0,b:{t:2,i:[{t:3}],s:"Аутентификација..."}},notConnected:{t:0,b:{t:2,i:[{t:3}],s:"Није повезан"}},connectGoogleAccount:{t:0,b:{t:2,i:[{t:3}],s:"Повежите свој Гоогле рачун"}},showSetup:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи поставке"}},hideSetup:{t:0,b:{t:2,i:[{t:3}],s:"Скриј поставке"}}},about:{version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},license:{t:0,b:{t:2,i:[{t:3}],s:"Лиценца"}},repository:{t:0,b:{t:2,i:[{t:3}],s:"Репоизиторијум"}},techStack:{t:0,b:{t:2,i:[{t:3}],s:"Тецх Стацк"}},localLlmObservatory:{t:0,b:{t:2,i:[{t:3}],s:"Локални LLM Посматрач"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Локална AI Историја"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Ваш истраживачки архив — сви експерименти, претраживи"}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Како се ваше подаци чувају"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Сва ваша дата је складиштена локално у вашем прегледнику користећи IndexedDB — трајни, прегледник-нативе базу података. Ваша дата преживи затварање прегледника, поновну покретање рачунара и софтверске ажурирања. Ништа се шаље на сервер."}},indexedDb:{t:0,b:{t:2,i:[{t:3}],s:"Оригинални подаци (бенцхмаркови, разговори, поређења, обука) су складиштени у 6 одвојене IndexedDB базе података — једна за сваку функционалност. IndexedDB није сесијска меморија — она траје до следећег преласка прегледника."}},historyDb:{t:0,b:{t:2,i:[{t:3}],s:"Историјски индекс је моћни истраживачки алат који користи Деxие.јс за брзо претраживање и анализу свих LLMxRay активности. Мисли на њега као на претрагу унутар вашег LLMxRay профила."}},privacy:{t:0,b:{t:2,i:[{t:3}],s:"Све остаје на вашем рачунару. Једини начин да се подаци избришу је да обришете прегледник сите дата или користите Цлеар дугмад у овој апликацији. Нема налога, нема цлоуд синкронизације, нема телеметрије."}}},filters:{type:{t:0,b:{t:2,i:[{t:3}],s:"Тип"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},language:{t:0,b:{t:2,i:[{t:3}],s:"Лангуажа"}},dateRange:{t:0,b:{t:2,i:[{t:3}],s:"Датум распон"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Тагови"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Све"}},last7days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 7 дана"}},last30days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 30 дана"}},last90days:{t:0,b:{t:2,i:[{t:3}],s:"Последњих 90 дана"}},allTime:{t:0,b:{t:2,i:[{t:3}],s:"Сви времена"}}},results:{entries:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" улазака"}]}},noEntries:{t:0,b:{t:2,i:[{t:3}],s:"Нема историјских уноса. Покрените експеримент, поређење или разговор да бисте започели своју истраживачку архиву."}}},trends:{title:{t:0,b:{t:2,i:[{t:3}],s:"Трендови"}},activity:{t:0,b:{t:2,i:[{t:3}],s:"Активност (последњих 30 дана)"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Модели коришћени"}}},management:{title:{t:0,b:{t:2,i:[{t:3}],s:"База података управљања"}},totalEntries:{t:0,b:{t:2,i:[{t:3}],s:"Укупан број улазака"}},estimatedSize:{t:0,b:{t:2,i:[{t:3}],s:"Процјењена величина"}},exportAll:{t:0,b:{t:2,i:[{t:3}],s:"Извози све (JSON)"}},exportFiltered:{t:0,b:{t:2,i:[{t:3}],s:"Извози Филтрирано (CSV)"}},retention:{t:0,b:{t:2,i:[{t:3}],s:"Задржавање"}},keepForever:{t:0,b:{t:2,i:[{t:3}],s:"Заувек"}},days30:{t:0,b:{t:2,i:[{t:3}],s:"30 дана"}},days90:{t:0,b:{t:2,i:[{t:3}],s:"90 дана"}},year1:{t:0,b:{t:2,i:[{t:3}],s:"Година"}},clearHistory:{t:0,b:{t:2,i:[{t:3}],s:"Чисти Историју"}},confirmClear:{t:0,b:{t:2,i:[{t:3}],s:"Ово ће избрисати све историјске уносе. Остале податке (бенцхмаркови, разговори, итд.) није погођено."}}},types:{benchmark:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},comparison:{t:0,b:{t:2,i:[{t:3}],s:"Поређење"}},chat:{t:0,b:{t:2,i:[{t:3}],s:"Разговор"}},training:{t:0,b:{t:2,i:[{t:3}],s:"Траинг"}},session:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}}}}},Fy={title:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark"}},surgicalBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Хирургички Benchmark"}},surgicalBenchmarkDesc:{t:0,b:{t:2,i:[{t:3}],s:"Процјените моделе користећи креиране скупове питања - стварне логпробније повјерење, пер-категоријске дијагнозе"}},resultDetails:{t:0,b:{t:2,i:[{t:3}],s:"Детаљи резултата"}},latestResult:{t:0,b:{t:2,i:[{t:3}],s:"Најновији резултат"}},comparisonLedger:{t:0,b:{t:2,i:[{t:3}],s:"Поређење табеле"}},configurator:{selectModels:{t:0,b:{t:2,i:[{t:3}],s:"Одабери моделе"}},selectSuites:{t:0,b:{t:2,i:[{t:3}],s:"Одабери скуп питања"}},contextSize:{t:0,b:{t:2,i:[{t:3}],s:"Величина контекста"}},startBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Покрени benchmark"}},estimatedTime:{t:0,b:{t:2,i:[{t:3}],s:"Процјењена временска трајање"}},maxModels:{t:0,b:{t:2,i:[{t:3}],s:"Максимални број модела"}},models:{t:0,b:{t:2,i:[{t:3}],s:"Модели"}},selected:{t:0,b:{t:2,i:[{t:3}],s:"Одабрано"}},benchmarkSuites:{t:0,b:{t:2,i:[{t:3}],s:"Benchmark скупови питања"}},importCustom:{t:0,b:{t:2,i:[{t:3}],s:"+ Увоз прилагођено"}},context:{t:0,b:{t:2,i:[{t:3}],s:"Контекст:"}},runBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Покрени Benchmark"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"прилагодити"}}},suites:{arc:{t:0,b:{t:2,i:[{t:3}],s:"АРЦ изазов"}},mmlupro:{t:0,b:{t:2,i:[{t:3}],s:"ММЛУ-Про"}},hellaswag:{t:0,b:{t:2,i:[{t:3}],s:"ХелласСwаг"}},gsm8k:{t:0,b:{t:2,i:[{t:3}],s:"ГСМ-8К"}},truthfulqa:{t:0,b:{t:2,i:[{t:3}],s:"ТрутхфулQА"}}},live:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Напредак"}},currentQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Тренутно питање"}},lastAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Последњи одговор"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Тачно"}},incorrect:{t:0,b:{t:2,i:[{t:3}],s:"Неисправно"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Прецизност"}},avgLatency:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна латенција"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна сигурност"}},categoryProgress:{t:0,b:{t:2,i:[{t:3}],s:"Категоријски напредак"}},stop:{t:0,b:{t:2,i:[{t:3}],s:"Заустави"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Мисли"}},standard:{t:0,b:{t:2,i:[{t:3}],s:"Стандардно"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},waitingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Чекање на питање..."}},waitingFirstAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Чекање први одговор..."}},processingQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Обради питање..."}},stopBenchmark:{t:0,b:{t:2,i:[{t:3}],s:"Заустави Benchmark"}},benchmarkProgress:{t:0,b:{t:2,i:[{t:3}],s:"Напредак бенцхмарка"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно TTF"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно укупно"}},suites:{t:0,b:{t:2,i:[{t:3}],s:"Скупови питања"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},expected:{t:0,b:{t:2,i:[{t:3}],s:"Очекивано:"}}},results:{overallAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Општа прецизност"}},perCategory:{t:0,b:{t:2,i:[{t:3}],s:"Пер категорија"}},confidenceVsAccuracy:{t:0,b:{t:2,i:[{t:3}],s:"Сигурност вс. Прецизност - X-Раy Сцаттер"}},questionDetails:{t:0,b:{t:2,i:[{t:3}],s:"Збуњен (ниско сигурност, погрешно)"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Калибрирано (висока сигурност, тачно)"}},confidenceVsAccuracyScatter:{t:0,b:{t:2,i:[{t:3}],s:"Превише сигурно (висока сигурност, погрешно)"}},confused:{t:0,b:{t:2,i:[{t:3}],s:"Сретан (ниска сигурност, тачно)"}},calibrated:{t:0,b:{t:2,i:[{t:3}],s:"Пер-Категоријско укупно време"}},overconfident:{t:0,b:{t:2,i:[{t:3}],s:"Притисак контекста - Прецизност деградација"}},lucky:{t:0,b:{t:2,i:[{t:3}],s:"Категоријска разбијања"}},perCategoryTotalTime:{t:0,b:{t:2,i:[{t:3}],s:"Категорија"}},contextPressure:{t:0,b:{t:2,i:[{t:3}],s:"Тачно"}},categoryBreakdown:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно TTF"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно укупно"}},correct:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна сигурност"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Пер-Питање Детаљи"}},avgTotal:{t:0,b:{t:2,i:[{t:3}],s:"Све"}},avgConfidence:{t:0,b:{t:2,i:[{t:3}],s:"Погрешно"}},perQuestionDetail:{t:0,b:{t:2,i:[{t:3}],s:"Размишљање"}},all:{t:0,b:{t:2,i:[{t:3}],s:"Одговор"}},wrong:{t:0,b:{t:2,i:[{t:3}],s:"Прецизност"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Реасонинг"}},response:{t:0,b:{t:2,i:[{t:3}],s:"Респонсе"}},accuracy:{t:0,b:{t:2,i:[{t:3}],s:"Аццурацy"}}},comparison:{compareResults:{t:0,b:{t:2,i:[{t:3}],s:"Пореди резултате"}},radarChart:{t:0,b:{t:2,i:[{t:3}],s:"Радар графикон"}},heatmap:{t:0,b:{t:2,i:[{t:3}],s:"Топографска карта"}},resume:{t:0,b:{t:2,i:[{t:3}],s:"Настави"}},deleteResult:{t:0,b:{t:2,i:[{t:3}],s:"Избриши резултат"}},savedResults:{t:0,b:{t:2,i:[{t:3}],s:"Сачувани Резултати"}},noSavedResults:{t:0,b:{t:2,i:[{t:3}],s:"Још нема сачуваних резултата."}},clickToCompare:{t:0,b:{t:2,i:[{t:3}],s:"Кликни за селекцију за поређење"}},incomplete:{t:0,b:{t:2,i:[{t:3}],s:"Недовршено"}},viewDetails:{t:0,b:{t:2,i:[{t:3}],s:"Погледајте детаље"}},resumeIncomplete:{t:0,b:{t:2,i:[{t:3}],s:"Настави недовршени benchmark"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadCsv:{t:0,b:{t:2,i:[{t:3}],s:"Преузми CSV"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдоwн"}}},builder:{createTitle:{t:0,b:{t:2,i:[{t:3}],s:"Креирајте Benchmark Суите"}},editTitle:{t:0,b:{t:2,i:[{t:3}],s:"Уредите Benchmark Суите"}},suiteName:{t:0,b:{t:2,i:[{t:3}],s:"Скуп питања"}},suiteNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр., Француска историја квиз"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта ово скуп питања тестира?"}},defaultCategory:{t:0,b:{t:2,i:[{t:3}],s:"Подразумевана категорија"}},questions:{t:0,b:{t:2,i:[{t:3}],s:"Питања"}},addQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Додај Питање"}},editQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Уреди Питање"}},noQuestions:{t:0,b:{t:2,i:[{t:3}],s:"Нема питања још. Додајте своје прво питање или користите AI да их генеришете."}},questionText:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},questionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите своје питање овде..."}},choices:{t:0,b:{t:2,i:[{t:3}],s:"Одговори"}},addChoice:{t:0,b:{t:2,i:[{t:3}],s:"Додај Одговор"}},correctAnswer:{t:0,b:{t:2,i:[{t:3}],s:"Тачан одговор"}},category:{t:0,b:{t:2,i:[{t:3}],s:"Категорија"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Тежина"}},easy:{t:0,b:{t:2,i:[{t:3}],s:"Лако"}},medium:{t:0,b:{t:2,i:[{t:3}],s:"Средње"}},hard:{t:0,b:{t:2,i:[{t:3}],s:"Тешко"}},saveSuite:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај Скуп питања"}},createSuite:{t:0,b:{t:2,i:[{t:3}],s:"Креирајте Суите"}},choiceCount:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" одговора"}]}},aiGenerate:{title:{t:0,b:{t:2,i:[{t:3}],s:"Генеришите са AI"}},topic:{t:0,b:{t:2,i:[{t:3}],s:"Тема"}},topicPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"нпр., Француска историја, Пyтхон програмирање, Органски хемија"}},count:{t:0,b:{t:2,i:[{t:3}],s:"Број питања"}},difficulty:{t:0,b:{t:2,i:[{t:3}],s:"Тежина"}},mixed:{t:0,b:{t:2,i:[{t:3}],s:"Мјешовито"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генеришите Питања"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Генерирање..."}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи генерацију"}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Генерисана питања"}},selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Изабери све"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Поништи избор"}},addSelected:{t:0,b:{t:2,i:[{t:3}],s:"Додај Изабрано"}},errors:{t:0,b:{t:2,i:[{t:3}],s:"Нека питања нису могла бити парсирана"}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Није генерисано валидних питања. Покушајте другу тему или модел."}}}},import:{importSuite:{t:0,b:{t:2,i:[{t:3}],s:"Увоз Скуп питања"}},importCustomBenchmarkSuite:{t:0,b:{t:2,i:[{t:3}],s:"Увоз Прилагођени Benchmark Суите"}},dragDrop:{t:0,b:{t:2,i:[{t:3}],s:"Повуци и отпусти датотеку овде"}},dropJsonFile:{t:0,b:{t:2,i:[{t:3}],s:"Повуци .јсон датотеку овдје"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Бровс"}},maxSize:{t:0,b:{t:2,i:[{t:3}],s:"Максимална величина"}},invalidFormat:{t:0,b:{t:2,i:[{t:3}],s:"Невалидан формат"}},importSuccess:{t:0,b:{t:2,i:[{t:3}],s:"Увоз успешан"}},importing:{t:0,b:{t:2,i:[{t:3}],s:"Увоз..."}},requirements:{t:0,b:{t:2,i:[{t:3}],s:"Захтеви: JSON са именом, питање низ (2-500 ставки)."}},questionReqs:{t:0,b:{t:2,i:[{t:3}],s:"Свако питање мора имати: ид, питање, одговори (2-6), тачан одговор."}},maxSizeNote:{t:0,b:{t:2,i:[{t:3}],s:"Максимална величина 1МБ. HTML ознаке ће се уклонити. ИД-ови ће се дедуплицирати."}},fileTooLarge:{t:0,b:{t:2,i:[{t:3}],s:"Датотека је превелика (максимално 1МБ)"}}}},zy={title:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђења"}},modelSelector:{noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема доступних модела"}},noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Није пронађен ниједан модел за угњежђивање. Преузмите један: ollama pull nomic-embed-text"}}},storage:{embeddingMemory:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђена меморија"}},records:{t:0,b:{t:2,i:[{t:3}],s:"записи"}}},playground:{title:{t:0,b:{t:2,i:[{t:3}],s:"Играј са угњежђењима"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст да бисте генерисали његов вектор угњежђивања и прегледали димензије."}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст за угњежђивање..."}},embed:{t:0,b:{t:2,i:[{t:3}],s:"Угњезди"}},embedding:{t:0,b:{t:2,i:[{t:3}],s:"Угњежђујем..."}},showRawValues:{t:0,b:{t:2,i:[{t:3,v:"Прикажи сирове вредности (првих 50 од "},{t:4,k:"ukupno"},{t:3,v:")"}]}}},similarity:{title:{t:0,b:{t:2,i:[{t:3}],s:"Калкулатор сличности"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Упоредите два текста да бисте измерили њихову семантичку сличност користећи косинусну удаљеност."}},textA:{t:0,b:{t:2,i:[{t:3}],s:"Текст А"}},textB:{t:0,b:{t:2,i:[{t:3}],s:"Текст Б"}},placeholderA:{t:0,b:{t:2,i:[{t:3}],s:"Први текст..."}},placeholderB:{t:0,b:{t:2,i:[{t:3}],s:"Други текст..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Пореди"}},comparing:{t:0,b:{t:2,i:[{t:3}],s:"Поређење..."}}},modelComparison:{title:{t:0,b:{t:2,i:[{t:3}],s:"Поређење модела"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Угњежди исти текст са два модела да бисте упоредили како представљају значење."}},modelA:{t:0,b:{t:2,i:[{t:3}],s:"Модел А"}},modelB:{t:0,b:{t:2,i:[{t:3}],s:"Модел Б"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите текст за угњежђивање са оба модела..."}},compareModels:{t:0,b:{t:2,i:[{t:3}],s:"Пореди моделе"}},comparingModels:{t:0,b:{t:2,i:[{t:3}],s:"Поређење модела..."}},crossModelSimilarity:{t:0,b:{t:2,i:[{t:3}],s:"Унакрсна сличност — ови модели представљају значење веома различито."}},veryDifferent:{t:0,b:{t:2,i:[{t:3}],s:"Веома различито — модели деле само минималну семантичку структуру."}},moderateAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Умерено слагање — модели деле део семантичке структуре."}},highAgreement:{t:0,b:{t:2,i:[{t:3}],s:"Високо слагање — ови модели представљају овај текст слично."}},dimensionsMismatch:{t:0,b:{t:2,i:[{t:3,v:"Димензије се разликују ("},{t:4,k:"dimA"},{t:3,v:" вс "},{t:4,k:"dimB"},{t:3,v:") — директна косинусна сличност није могућа."}]}},compareStats:{t:0,b:{t:2,i:[{t:3}],s:"Упоредите статистику изнад да бисте проценили квалитет репрезентације сваког модела."}}},stats:{dims:{t:0,b:{t:2,i:[{t:3}],s:"Димензије"}},l2Norm:{t:0,b:{t:2,i:[{t:3}],s:"Л2 норма"}},sparsity:{t:0,b:{t:2,i:[{t:3}],s:"Спарзитет"}},time:{t:0,b:{t:2,i:[{t:3}],s:"Време"}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Недавно угњежђено"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}}}},By={title:{t:0,b:{t:2,i:[{t:3}],s:"База знања"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Учитај документе за RAG-покрећене разговоре"}},modelSelector:{noEmbeddingModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема уметнутих модела"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиштење знања"}},documents:{t:0,b:{t:2,i:[{t:3}],s:"документи"}},chunks:{t:0,b:{t:2,i:[{t:3}],s:"комади"}},stored:{t:0,b:{t:2,i:[{t:3}],s:"складиштено"}},ragStorage:{t:0,b:{t:2,i:[{t:3}],s:"РАЗ Складиштење"}}},upload:{dropZone:{t:0,b:{t:2,i:[{t:3}],s:"Повуци и одложите датотеке овде"}},browse:{t:0,b:{t:2,i:[{t:3}],s:"Бровс"}},dropText:{t:0,b:{t:2,i:[{t:3}],s:"Одложите датотеке овдје или кликните да бисте претражили"}},supportedFormats:{t:0,b:{t:2,i:[{t:3}],s:"Подржава PDF, ДОЦX, ТXТ, Маркдоwн, CSV"}}},documents:{title:{t:0,b:{t:2,i:[{t:3}],s:"Документи"}},noDocuments:{t:0,b:{t:2,i:[{t:3}],s:"Нема докумената учитано још"}},toggleContext:{t:0,b:{t:2,i:[{t:3}],s:"Подеси RAG контекст"}},removeDocument:{t:0,b:{t:2,i:[{t:3}],s:"Уклони документ"}}},search:{title:{t:0,b:{t:2,i:[{t:3}],s:"Семантичко претраживање"}},placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Претражите своје документе..."}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема резултата претраге"}},searching:{t:0,b:{t:2,i:[{t:3}],s:"Претражујем..."}},button:{t:0,b:{t:2,i:[{t:3}],s:"Претражи"}},results:{t:0,b:{t:2,i:[{t:3}],s:"резултати"}},showLess:{t:0,b:{t:2,i:[{t:3}],s:"Покажи мање"}},showFullChunk:{t:0,b:{t:2,i:[{t:3}],s:"Прикажи цијели комад"}}},ingest:{progress:{t:0,b:{t:2,i:[{t:3}],s:"Ингештај напредак"}},ingesting:{t:0,b:{t:2,i:[{t:3}],s:"Ингештајуће..."}}}},Uy={title:{t:0,b:{t:2,i:[{t:3}],s:"Радионица алата"}},canvas:{addTool:{t:0,b:{t:2,i:[{t:3}],s:"Додај алат"}},addFromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Додај из шаблона"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Нема конфигурисаних алата. Додај један да бисте почели."}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Име алата"}},toolDescription:{t:0,b:{t:2,i:[{t:3}],s:"Опис алата"}},functionName:{t:0,b:{t:2,i:[{t:3}],s:"Име функције"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},implementation:{t:0,b:{t:2,i:[{t:3}],s:"Имплементација"}},code:{t:0,b:{t:2,i:[{t:3}],s:"Код"}},testTool:{t:0,b:{t:2,i:[{t:3}],s:"Тестирај алат"}},deleteTool:{t:0,b:{t:2,i:[{t:3}],s:"Обриши алат"}},codePanel:{t:0,b:{t:2,i:[{t:3}],s:"Панел кода"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}},source:{t:0,b:{t:2,i:[{t:3}],s:"Извор"}},schema:{t:0,b:{t:2,i:[{t:3}],s:"Сцхема"}},schemaManifest:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-компатибилни манифест алата"}},copy:{t:0,b:{t:2,i:[{t:3}],s:"Копирај"}},warnings:{t:0,b:{t:2,i:[{t:3}],s:"Упозорења"}},emptyState:{t:0,b:{t:2,i:[{t:3}],s:"Нема још алата. Направи свој први алат или почни од шаблона."}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Нови алат"}},fromTemplate:{t:0,b:{t:2,i:[{t:3}],s:"Из шаблона..."}},exportTitle:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј тренинг податке (JSONL)"}},export:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј"}},toolLibrary:{t:0,b:{t:2,i:[{t:3}],s:"Библиотека алата"}},clearAllTitle:{t:0,b:{t:2,i:[{t:3}],s:"Уклони све алате са платна"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},clearAllConfirm:{t:0,b:{t:2,i:[{t:3,v:"Да ли желите да уклоните све "},{t:4,k:"count"},{t:3,v:" алат(а) са платна? Ово не може бити повучено."}]}},clearAllWarning:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},deleteAll:{t:0,b:{t:2,i:[{t:3}],s:"Онемогући за разговор"}},disableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Омогући за разговор"}},enableForChat:{t:0,b:{t:2,i:[{t:3}],s:"Уклони алат"}},deleteToolTitle:{t:0,b:{t:2,i:[{t:3}],s:"Избрисати алат"}},noToolsYet:{t:0,b:{t:2,i:[{t:3}],s:"Нема још алата"}},enabledForChat:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј све алате (JSON)"}},exportAllJson:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј алат као JSON"}},exportToolJson:{t:0,b:{t:2,i:[{t:3}],s:"Извоз алата као JSON"}}},templates:{title:{t:0,b:{t:2,i:[{t:3}],s:"Шаблони алата"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Почни са функционалним шаблоном и прилагоди га"}},categories:{utility:{t:0,b:{t:2,i:[{t:3}],s:"Утичишта"}},api:{t:0,b:{t:2,i:[{t:3}],s:"API"}},data:{t:0,b:{t:2,i:[{t:3}],s:"Подаци"}},google:{t:0,b:{t:2,i:[{t:3}],s:"Гоогле (Календар & Гмаил)"}},custom:{t:0,b:{t:2,i:[{t:3}],s:"Прилагођено"}}}},builder:{functionName:{t:0,b:{t:2,i:[{t:3}],s:"Име функције"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Добијај тренутну временску прогнозу за дато место"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},visualBuilder:{t:0,b:{t:2,i:[{t:3}],s:"Визуелни градитељ"}},rawJson:{t:0,b:{t:2,i:[{t:3}],s:"Раw JSON"}},addParameter:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај параметар"}},removeParameter:{t:0,b:{t:2,i:[{t:3}],s:"Уклони параметар"}},saveTool:{t:0,b:{t:2,i:[{t:3}],s:"Сачувај алат"}}},list:{editTool:{t:0,b:{t:2,i:[{t:3}],s:"Уреди алат"}},newTool:{t:0,b:{t:2,i:[{t:3}],s:"Нови алат"}},noTools:{t:0,b:{t:2,i:[{t:3}],s:"Још нема дефинисаних алата."}},addTool:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај алат"}}},execution:{running:{t:0,b:{t:2,i:[{t:3}],s:"Ради..."}},success:{t:0,b:{t:2,i:[{t:3}],s:"Успјех"}},error:{t:0,b:{t:2,i:[{t:3}],s:"Грешка"}},result:{t:0,b:{t:2,i:[{t:3}],s:"Резултат"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Трајање"}}},node:{badge:{t:0,b:{t:2,i:[{t:3}],s:"LLM алат"}},functionNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"фунцНаме"}},draftWithAi:{t:0,b:{t:2,i:[{t:3}],s:"Нацртај са AI"}},aiInsights:{t:0,b:{t:2,i:[{t:3}],s:"AI увиди"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Ради..."}},done:{t:0,b:{t:2,i:[{t:3}],s:"Готово"}},failed:{t:0,b:{t:2,i:[{t:3}],s:"Неуспјех"}},aiFix:{t:0,b:{t:2,i:[{t:3}],s:"AI поправка"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Опис"}},descriptionPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта овај алат ради?"}},intent:{t:0,b:{t:2,i:[{t:3}],s:"Намјена"}},intentPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Опишите што би овај алат требао да ради..."}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генерирај"}},generating:{t:0,b:{t:2,i:[{t:3}],s:"Генерирање..."}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},addParam:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај"}},paramNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"наме"}},paramTypePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"тип"}},noParameters:{t:0,b:{t:2,i:[{t:3}],s:"Нема параметара"}},probeAndPick:{t:0,b:{t:2,i:[{t:3}],s:"Пробај и изабери"}},apiBadge:{t:0,b:{t:2,i:[{t:3}],s:"API"}},urlPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"хттпс://апи.еxампле.цом/..."}},probe:{t:0,b:{t:2,i:[{t:3}],s:"Пробај"}},headers:{t:0,b:{t:2,i:[{t:3}],s:"Главе"}},addHeader:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај"}},headerNamePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Име главе"}},headerValuePlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"вриједност"}},markAsSecret:{t:0,b:{t:2,i:[{t:3}],s:"Означи као тајни (користи варијаблу окружења у генерисаним коду)"}},requestBody:{t:0,b:{t:2,i:[{t:3}],s:"Тело захтјева"}},endpoints:{t:0,b:{t:2,i:[{t:3}],s:"Крајња тачка"}},searchEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Претражи крајње тачке..."}},noMatchingEndpoints:{t:0,b:{t:2,i:[{t:3}],s:"Нема одговарајућих крајњих тачака"}},aiSuggest:{t:0,b:{t:2,i:[{t:3}],s:"AI сугестија"}},thinking:{t:0,b:{t:2,i:[{t:3}],s:"Размишља..."}},field:{t:0,b:{t:2,i:[{t:3}],s:"поље"}},fields:{t:0,b:{t:2,i:[{t:3}],s:"поља"}},apply:{t:0,b:{t:2,i:[{t:3}],s:"Примјени"}},mappings:{t:0,b:{t:2,i:[{t:3}],s:"Мапирање"}},outOfSync:{t:0,b:{t:2,i:[{t:3}],s:"Изван синхронизације"}},bodyLabel:{t:0,b:{t:2,i:[{t:3}],s:"Тело (Типскрипт)"}},bodyPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"/ / Алат имплементација..."}},insightSuggestionLabel:{t:0,b:{t:2,i:[{t:3}],s:"AI-сугестирана поправка (прегледајте прије примјене):"}},applyFix:{t:0,b:{t:2,i:[{t:3}],s:"Примјени поправку"}},closeInsight:{t:0,b:{t:2,i:[{t:3}],s:"Затвори"}}},aiDiff:{accept:{t:0,b:{t:2,i:[{t:3}],s:"Прихвати"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Одбаци"}}}},qy={title:{t:0,b:{t:2,i:[{t:3}],s:"AI Траининг"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Браузирајте, курирајте и извозите своје податке за обуку из алата у радионици."}},dashboard:{totalPairs:{t:0,b:{t:2,i:[{t:3}],s:"Укупан парови"}},accepted:{t:0,b:{t:2,i:[{t:3}],s:"прихваћено"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"одбијено"}},pending:{t:0,b:{t:2,i:[{t:3}],s:"Очекује се"}},trainingPairs:{t:0,b:{t:2,i:[{t:3}],s:"Парови за обуку"}},acceptanceRate:{t:0,b:{t:2,i:[{t:3}],s:"Стопа прихватања"}},byPhase:{t:0,b:{t:2,i:[{t:3}],s:"По фази"}},topModels:{t:0,b:{t:2,i:[{t:3}],s:"Најбољи модели"}}},filters:{search:{t:0,b:{t:2,i:[{t:3}],s:"Претрага..."}},searchPrompts:{t:0,b:{t:2,i:[{t:3}],s:"Претражите промпте..."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},toolName:{t:0,b:{t:2,i:[{t:3}],s:"Име алата"}},tag:{t:0,b:{t:2,i:[{t:3}],s:"Ознака"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Статус"}},allModels:{t:0,b:{t:2,i:[{t:3}],s:"Сви модели"}},allTools:{t:0,b:{t:2,i:[{t:3}],s:"Сви алати"}},allTags:{t:0,b:{t:2,i:[{t:3}],s:"Све ознаке"}},allStatuses:{t:0,b:{t:2,i:[{t:3}],s:"Сви статуси"}}},bulk:{selected:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" изабрано"}]}},export:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},exportJsonl:{t:0,b:{t:2,i:[{t:3}],s:"Извоз JSONL"}},markAccepted:{t:0,b:{t:2,i:[{t:3}],s:"Ознаци као прихваћено"}},markRejected:{t:0,b:{t:2,i:[{t:3}],s:"Ознаци као одбијено"}},addTag:{t:0,b:{t:2,i:[{t:3}],s:"Додај ознаку"}},tagPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Име ознаке..."}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Обриши"}},confirm:{t:0,b:{t:2,i:[{t:3}],s:"Потврди?"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Одабери све"}}},tags:{addPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Додај ознаку..."}}},table:{selectAll:{t:0,b:{t:2,i:[{t:3}],s:"Изабери све"}},deselectAll:{t:0,b:{t:2,i:[{t:3}],s:"Одабери ништа"}},pairsShown:{t:0,b:{t:2,i:[{t:4,k:"shown"},{t:3,v:" од "},{t:4,k:"total"},{t:3,v:" парова приказано"}]}},noResults:{t:0,b:{t:2,i:[{t:3}],s:"Нема обучних парова који одговарају вашим филтрима."}}},detail:{accepted:{t:0,b:{t:2,i:[{t:3}],s:"Прихваћено"}},rejected:{t:0,b:{t:2,i:[{t:3}],s:"Одбијено"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},userPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Кориснички промпт"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},aiResponse:{t:0,b:{t:2,i:[{t:3}],s:"AI одговор"}},editResponse:{t:0,b:{t:2,i:[{t:3}],s:"Уреди одговор"}},tags:{t:0,b:{t:2,i:[{t:3}],s:"Ознаке"}},deletePair:{t:0,b:{t:2,i:[{t:3}],s:"Обриши пар"}},confirmDelete:{t:0,b:{t:2,i:[{t:3}],s:"Потврди брисање?"}}},empty:{title:{t:0,b:{t:2,i:[{t:3}],s:"Још нема прикупљених података за обуку."}},description:{t:0,b:{t:2,i:[{t:3}],s:"Парови за обуку се генеришу аутоматски када користите AI функције у алату (генерисање нацрта, анализа кода, аутомапирање и поправка AI)."}}}},$y={title:{t:0,b:{t:2,i:[{t:3}],s:"Мој систем"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Хардвер, рунтиме и инфереција преглед"}},refresh:{t:0,b:{t:2,i:[{t:3}],s:"Ажурирај"}},detecting:{t:0,b:{t:2,i:[{t:3}],s:"Детектовање хардвера..."}},detectingDetail:{t:0,b:{t:2,i:[{t:3}],s:"Упит CPU-а, меморије, GPU-а и складишта"}},unavailable:{t:0,b:{t:2,i:[{t:3}],s:"Недоступно детектовање хардвера. Поново покрените сервер за дев да омогућите плугин систем информација."}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Експорат"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми извештај о систему (Маркдовн)"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми систем инфо (JSON)"}}},os:{title:{t:0,b:{t:2,i:[{t:3}],s:"Оперативни систем"}},os:{t:0,b:{t:2,i:[{t:3}],s:"ОС"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},build:{t:0,b:{t:2,i:[{t:3}],s:"Буилд"}},architecture:{t:0,b:{t:2,i:[{t:3}],s:"Арцхитецтуре"}}},device:{title:{t:0,b:{t:2,i:[{t:3}],s:"Уређај"}},name:{t:0,b:{t:2,i:[{t:3}],s:"Име"}},manufacturer:{t:0,b:{t:2,i:[{t:3}],s:"Произвођач"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Фамилија"}}},cpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Процесор"}},cpu:{t:0,b:{t:2,i:[{t:3}],s:"CPU"}},physicalCores:{t:0,b:{t:2,i:[{t:3}],s:"Физички језгро"}},logicalProcessors:{t:0,b:{t:2,i:[{t:3}],s:"Логички процесори"}},maxClock:{t:0,b:{t:2,i:[{t:3}],s:"Максимална фреквенција"}}},memory:{title:{t:0,b:{t:2,i:[{t:3}],s:"Меморија"}},totalRam:{t:0,b:{t:2,i:[{t:3}],s:"Укупан RAM"}},available:{t:0,b:{t:2,i:[{t:3}],s:"Доступно"}},inUse:{t:0,b:{t:2,i:[{t:3}],s:"Коришћено"}}},gpu:{title:{t:0,b:{t:2,i:[{t:3}],s:"Графика"}},gpu:{t:0,b:{t:2,i:[{t:3}],s:"GPU"}},adapterRam:{t:0,b:{t:2,i:[{t:3}],s:"Адаптер RAM"}},sharedNotReported:{t:0,b:{t:2,i:[{t:3}],s:"Дељено / Није извештено"}},driver:{t:0,b:{t:2,i:[{t:3}],s:"Возач"}}},storage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиште"}},drive:{t:0,b:{t:2,i:[{t:3}],s:"Дриве"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},free:{t:0,b:{t:2,i:[{t:3}],s:"Слободно"}},used:{t:0,b:{t:2,i:[{t:3}],s:"Коришћено"}}},browserStorage:{title:{t:0,b:{t:2,i:[{t:3}],s:"Складиште у прегледачу"}},persistent:{t:0,b:{t:2,i:[{t:3}],s:"Персистентно"}},bestEffort:{t:0,b:{t:2,i:[{t:3}],s:"Најбољи напор"}},scanning:{t:0,b:{t:2,i:[{t:3}],s:"Скенирање..."}},indexedDbQuota:{t:0,b:{t:2,i:[{t:3}],s:"Квота IndexedDB"}},totalRecords:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" укупних записа преко "},{t:4,k:"database"},{t:3,v:" база података"}]}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све податке"}},empty:{t:0,b:{t:2,i:[{t:3}],s:"Празно"}}},ollama:{title:{t:0,b:{t:2,i:[{t:3}],s:"Ollama Рунтиме"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Статус"}},version:{t:0,b:{t:2,i:[{t:3}],s:"Верзија"}},installedModels:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},totalModelStorage:{t:0,b:{t:2,i:[{t:3}],s:"Укупно складиштење модела"}},modelsLoaded:{t:0,b:{t:2,i:[{t:3}],s:"Модели учитани"}}},inference:{title:{t:0,b:{t:2,i:[{t:3}],s:"Инфереција"}},thisSession:{t:0,b:{t:2,i:[{t:3}],s:"Ова сесија"}},noSessions:{t:0,b:{t:2,i:[{t:3}],s:"Нема инферецијских сесија још. Пошаљи поруку да бисте учитали један."}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},avgSpeed:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна брзина"}},tokensGenerated:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени"}},avgTtft:{t:0,b:{t:2,i:[{t:3}],s:"Просјечно вријеме одговора"}},modelsUsed:{t:0,b:{t:2,i:[{t:3}],s:"Користени модели"}}},activeModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Активни модели"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема тренутно учитани модел у меморији. Пошаљи поруку да бисте га учитали."}},vram:{t:0,b:{t:2,i:[{t:3}],s:"VRAM"}},ram:{t:0,b:{t:2,i:[{t:3}],s:"RAM"}},total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},ctx:{t:0,b:{t:2,i:[{t:3}],s:"Контекст"}}},installedModels:{title:{t:0,b:{t:2,i:[{t:3}],s:"Инсталирани модели"}},noModels:{t:0,b:{t:2,i:[{t:3}],s:"Нема инсталираних модела."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},family:{t:0,b:{t:2,i:[{t:3}],s:"Фамилија"}},parameters:{t:0,b:{t:2,i:[{t:3}],s:"Параметри"}},quantization:{t:0,b:{t:2,i:[{t:3}],s:"Квантизација"}},size:{t:0,b:{t:2,i:[{t:3}],s:"Величина"}}}},Vy={title:{t:0,b:{t:2,i:[{t:3}],s:"Упореди резултате модела"}},configurator:{title:{t:0,b:{t:2,i:[{t:3}],s:"Слотови за поређење"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Сваки слот је комбинација модела и подешавања. Додај исти модел више пута са различитим подешавањима да упоредиш понашање."}},addSlot:{t:0,b:{t:2,i:[{t:3}],s:"Додај слот"}},removeSlot:{t:0,b:{t:2,i:[{t:3}],s:"Уклони слот"}},clearAll:{t:0,b:{t:2,i:[{t:3}],s:"Обриши све"}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},systemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Системски промпт"}},optionalSystemPrompt:{t:0,b:{t:2,i:[{t:3}],s:"Опциони системски промпт..."}},options:{t:0,b:{t:2,i:[{t:3}],s:"Опције"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Подешавања"}},temperature:{t:0,b:{t:2,i:[{t:3}],s:"Температура"}},topP:{t:0,b:{t:2,i:[{t:3}],s:"Top-P"}},seed:{t:0,b:{t:2,i:[{t:3}],s:"Seed"}},seedPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Насумично (остави празно)"}},advanced:{t:0,b:{t:2,i:[{t:3}],s:"Напредно"}},topK:{t:0,b:{t:2,i:[{t:3}],s:"Top-K"}},repeatPenalty:{t:0,b:{t:2,i:[{t:3}],s:"Казна понављања"}},mirostat:{t:0,b:{t:2,i:[{t:3}],s:"Mirostat"}},mirostatOff:{t:0,b:{t:2,i:[{t:3}],s:"Искључено"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Максимално токена"}},contextLength:{t:0,b:{t:2,i:[{t:3}],s:"Дужина контекста"}},defaultPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Подразумевано"}},slotsConfigured:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" слот(ова) подешено"}]}},emptyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Још нема подешених слотова"}},emptyDescription:{t:0,b:{t:2,i:[{t:3}],s:"Додај слот да изабереш модел и подешавања, или користи брзи почетни пресет изнад."}},addFirstSlot:{t:0,b:{t:2,i:[{t:3}],s:"+ Додај први слот"}},addSlotCount:{t:0,b:{t:2,i:[{t:3,v:"+ Додај слот ("},{t:4,k:"current"},{t:3,v:"/4)"}]}},presets:{quickStart:{t:0,b:{t:2,i:[{t:3}],s:"Брзи почетак:"}},tempSweep:{t:0,b:{t:2,i:[{t:3}],s:"Температурни опсег"}},tempSweepDesc:{t:0,b:{t:2,i:[{t:3}],s:"Креира 3 слота истог модела на температурама 0.2 (фокусирано), 0.7 (уравнотежено) и 1.2 (креативно). Погледај како температура мења резултат за исти промпт."}},deterministicPair:{t:0,b:{t:2,i:[{t:3}],s:"Детерминистички пар"}},deterministicPairDesc:{t:0,b:{t:2,i:[{t:3}],s:"Креира 2 слота истог модела са истим seed‑ом, али различитим температурама (0.3 и 1.0). Заједнички seed значи да је разлика у излазу искључиво због температуре, а не насумичности."}},languageCompare:{t:0,b:{t:2,i:[{t:3}],s:"Поређење језика"}},languageCompareTooltip:{t:0,b:{t:2,i:[{t:3}],s:"Упореди како различити језици утичу на цену токена и понашање модела"}}}},prompt:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Унеси промпт за поређење између слотова..."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Упореди"}},running:{t:0,b:{t:2,i:[{t:3}],s:"Покрећем..."}}},results:{title:{t:0,b:{t:2,i:[{t:3}],s:"Резултати"}},grid:{t:0,b:{t:2,i:[{t:3}],s:"Мрежа"}},diff:{t:0,b:{t:2,i:[{t:3}],s:"Разлике"}}},diff:{needTwoResults:{t:0,b:{t:2,i:[{t:3}],s:"Потребна су најмање 2 завршена резултата да би се приказала разлика."}},compare:{t:0,b:{t:2,i:[{t:3}],s:"Упореди:"}},vs:{t:0,b:{t:2,i:[{t:3}],s:"вс"}},only:{t:0,b:{t:2,i:[{t:3,v:"само "},{t:4,k:"label"}]}}},metrics:{performanceComparison:{t:0,b:{t:2,i:[{t:3}],s:"Поређење перформанси"}},timeToFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Време до првог токена"}},lowerBetter:{t:0,b:{t:2,i:[{t:3}],s:"ниже је боље"}},tokensPerSec:{t:0,b:{t:2,i:[{t:3}],s:"Токена/сек"}},higherBetter:{t:0,b:{t:2,i:[{t:3}],s:"више је боље"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Укупно токена"}},speed:{t:0,b:{t:2,i:[{t:3}],s:"Брзина"}},ttft:{t:0,b:{t:2,i:[{t:3}],s:"TTFT"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},duration:{t:0,b:{t:2,i:[{t:3}],s:"Трајање"}}},column:{tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}}},language:{mismatchTitle:{t:0,b:{t:2,i:[{t:3}],s:"Откривен језички несклад"}},mismatchDescription:{t:0,b:{t:2,i:[{t:3,v:"Чини се да је твој промпт на језику: "},{t:4,k:"detected"},{t:3,v:"."}]}},targetIs:{t:0,b:{t:2,i:[{t:3,v:"циљни језик је "},{t:4,k:"languae"}]}},translateTo:{t:0,b:{t:2,i:[{t:3,v:"Преведи на "},{t:4,k:"languae"}]}},keepDetected:{t:0,b:{t:2,i:[{t:3,v:"Задржи "},{t:4,k:"languae"}]}},translateAll:{t:0,b:{t:2,i:[{t:3}],s:"Преведи све"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Откажи"}},tokenTaxTitle:{t:0,b:{t:2,i:[{t:3}],s:"Порез на токене"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени промпта"}},promptText:{t:0,b:{t:2,i:[{t:3}],s:"Преведени промпт"}},translated:{t:0,b:{t:2,i:[{t:3}],s:"Преведено"}},unsupported:{t:0,b:{t:2,i:[{t:3}],s:"Језик још није подржан"}},translating:{t:0,b:{t:2,i:[{t:3}],s:"Преводим... може потрајати у зависности од величине модела"}},qualityWarning:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет превода зависи од језичких способности модела. Већи модели дају бољи превод."}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3,v:"Укуцај или налепи свој промпт на језику "},{t:4,k:"lang"},{t:3,v:"..."}]}}},history:{title:{t:0,b:{t:2,i:[{t:3}],s:"Сачувана поређења"}},load:{t:0,b:{t:2,i:[{t:3}],s:"Учитај"}},noSavedRuns:{t:0,b:{t:2,i:[{t:3}],s:"Још нема сачуваних поређења"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Извоз"}},json:{t:0,b:{t:2,i:[{t:3}],s:"Преузми као JSON"}},markdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми као Маркдоwн"}}},share:{toDiscussions:{t:0,b:{t:2,i:[{t:3}],s:"Подели на GitHub Дисцуссионс"}},dialogTitle:{t:0,b:{t:2,i:[{t:3}],s:"Подели своја открића"}},commentaryLabel:{t:0,b:{t:2,i:[{t:3}],s:"Додај коментар"}},commentaryPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Шта си открио? Подели своје увиде..."}},preview:{t:0,b:{t:2,i:[{t:3}],s:"Преглед извештаја"}},openGithub:{t:0,b:{t:2,i:[{t:3}],s:"Отвори GitHub Дисцуссионс"}},copyMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Копирај Маркдоwн"}},copied:{t:0,b:{t:2,i:[{t:3}],s:"Копирано!"}},note:{t:0,b:{t:2,i:[{t:3}],s:"Бићеш преусмерен на GitHub да прегледаш и објавиш своје налазе."}}}},Ky={title:{t:0,b:{t:2,i:[{t:3}],s:"Сесија"}},sessionId:{t:0,b:{t:2,i:[{t:3,v:"Сесија "},{t:4,k:"id"}]}},notFound:{t:0,b:{t:2,i:[{t:3}],s:"Сесија није пронађена."}},tabs:{stream:{t:0,b:{t:2,i:[{t:3}],s:"Стрим"}},reasoning:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},introspection:{t:0,b:{t:2,i:[{t:3}],s:"Интроспекција"}},tools:{t:0,b:{t:2,i:[{t:3}],s:"Алати"}},agent:{t:0,b:{t:2,i:[{t:3}],s:"Агент Графикон"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}}},export:{title:{t:0,b:{t:2,i:[{t:3}],s:"Експортуј"}},downloadJson:{t:0,b:{t:2,i:[{t:3}],s:"Преузми JSON"}},downloadMarkdown:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Маркдовн"}},downloadTokenCsv:{t:0,b:{t:2,i:[{t:3}],s:"Преузми Token Стреам CSV"}}},stream:{tokenStream:{t:0,b:{t:2,i:[{t:3}],s:"Token Стрим"}},metrics:{t:0,b:{t:2,i:[{t:3}],s:"Мертрики"}}},tokenStream:{promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите свој промпт..."}}},reasoning:{title:{t:0,b:{t:2,i:[{t:3}],s:"Разумевање"}},noReasoning:{t:0,b:{t:2,i:[{t:3}],s:"Нема података о разумевању за ову сесију."}}},introspection:{title:{t:0,b:{t:2,i:[{t:3}],s:"Интроспекција"}},illustrative:{t:0,b:{t:2,i:[{t:3}],s:"Илуструј"}}},toolCalls:{title:{t:0,b:{t:2,i:[{t:3}],s:"Позиви алата"}},timeline:{t:0,b:{t:2,i:[{t:3}],s:"Временска линија"}},optimize:{t:0,b:{t:2,i:[{t:3}],s:"Оптимизуј"}}},agentGraph:{title:{t:0,b:{t:2,i:[{t:3}],s:"Агент Графикон"}}},promptInspector:{title:{t:0,b:{t:2,i:[{t:3}],s:"Промпт Инспецтор"}}}},Hy={title:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи повратну информацију"}},thankYou:{t:0,b:{t:2,i:[{t:3}],s:"Хвала вам на повратној информацији!"}},thankYouDetail:{t:0,b:{t:2,i:[{t:3}],s:"Ваше учешће помаже да LLMxRay постане бољи."}},typeQuestion:{t:0,b:{t:2,i:[{t:3}],s:"Које врсте повратних информација?"}},types:{bug:{t:0,b:{t:2,i:[{t:3}],s:"Буг"}},idea:{t:0,b:{t:2,i:[{t:3}],s:"Идеја"}},question:{t:0,b:{t:2,i:[{t:3}],s:"Питање"}},other:{t:0,b:{t:2,i:[{t:3}],s:"Друго"}}},message:{placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Реците нам шта је на вашем уму..."}}},email:{label:{t:0,b:{t:2,i:[{t:3}],s:"Е-пошта"}},optional:{t:0,b:{t:2,i:[{t:3}],s:"(опционо - само ако желите одговор)"}},placeholder:{t:0,b:{t:2,i:[{t:3},{t:9},{t:3}],s:"ваш@емаил.цом"}}},submit:{send:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљи повратну информацију"}},sending:{t:0,b:{t:2,i:[{t:3}],s:"Слање..."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Укључује контекст апликације (страница, модел, систем) да бисмо разумели ваше повратне информације."}}},Gy={issuesDetected:{t:0,b:{t:2,i:[{t:3}],s:"Пронађене проблеме са квалитетом"}},repetition:{label:{t:0,b:{t:2,i:[{t:3}],s:"Репетиитивни"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор садржи превише понављаних фраза"}}},refusal:{label:{t:0,b:{t:2,i:[{t:3}],s:"Рефуз"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор изгледа као одбијање"}}},gibberish:{label:{t:0,b:{t:2,i:[{t:3}],s:"Гииблериш"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор има висок однос нечитљивих знакова"}}},empty:{label:{t:0,b:{t:2,i:[{t:3}],s:"Празан"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор садржи врло мало садржаја"}}},truncation:{label:{t:0,b:{t:2,i:[{t:3}],s:"Прекинут"}},reason:{t:0,b:{t:2,i:[{t:3}],s:"Одговор може бити прекинут"}}}},Wy={title:{t:0,b:{t:2,i:[{t:3}],s:"Трошкови контролне табле"}},summary:{totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Тотал Токена"}},totalSessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},avgCostPerSession:{t:0,b:{t:2,i:[{t:3}],s:"Просјечна Цена/Сесија"}}},charts:{tokensByModel:{t:0,b:{t:2,i:[{t:3}],s:"Token Упораба по Моделу"}},dailyUsage:{t:0,b:{t:2,i:[{t:3}],s:"Дневна Упораба"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Промпт Токена"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Цомплетион Токена"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},costTrend:{t:0,b:{t:2,i:[{t:3}],s:"Тренд Цене"}}},table:{model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},sessions:{t:0,b:{t:2,i:[{t:3}],s:"Сесије"}},promptTokens:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}},completionTokens:{t:0,b:{t:2,i:[{t:3}],s:"Цомплетион"}},totalTokens:{t:0,b:{t:2,i:[{t:3}],s:"Тотал"}},estimatedCost:{t:0,b:{t:2,i:[{t:3}],s:"Процењена Цена"}},pricingSource:{t:0,b:{t:2,i:[{t:3}],s:"Извор"}}},percentiles:{latencyTitle:{t:0,b:{t:2,i:[{t:3}],s:"Захтев Латенција (П50 / П95 / П99)"}},ttftTitle:{t:0,b:{t:2,i:[{t:3}],s:"Време до Први Token (П50 / П95 / П99)"}},histogramTitle:{t:0,b:{t:2,i:[{t:3}],s:"Интер-Token Латенција Дистрибуција"}},histogramHint:{t:0,b:{t:2,i:[{t:3}],s:"Букети граница прате ОТеЛ ГенАИ конвенције. Аггрегирано преко свих сесија."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Недовољно података о сесијама за анализу перцентила."}}},errors:{title:{t:0,b:{t:2,i:[{t:3}],s:"Греске по Моделу"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Нема забележених грешака."}}},loadDuration:{title:{t:0,b:{t:2,i:[{t:3}],s:"Време Уцитавања Модела"}},coldStarts:{t:0,b:{t:2,i:[{t:3}],s:"Хладни Покрети"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Оранге тачке означавају хладне покрете (модел учитан са диска, > 500мс)."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема сесијских података још."}}},disclaimer:{t:0,b:{t:2,i:[{t:3}],s:"Ове цене су процјене на основу еквивалентних цијена API-ја у облаку. Оламма ради локално без трошкова."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема употребе података још. Почните да разговарате да бисте видјели token употребу и процјењене цијене."}}},Jy={title:{t:0,b:{t:2,i:[{t:3}],s:"Аналитика"}},sections:{quality:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет одговора"}},latency:{t:0,b:{t:2,i:[{t:3}],s:"Анализа латенције"}},reliability:{t:0,b:{t:2,i:[{t:3}],s:"Поузданост"}},usage:{t:0,b:{t:2,i:[{t:3}],s:"Обрасци корисничког понашања"}},settings:{t:0,b:{t:2,i:[{t:3}],s:"Утицај поставки"}},modelMemory:{t:0,b:{t:2,i:[{t:3}],s:"Меморија модела"}}},quality:{title:{t:0,b:{t:2,i:[{t:3}],s:"Квалитет преко окретаја"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Зелена = добра (3,5+), жута = средња (2-3,5), црвена = лоша (< 2). Оцена заснована на броју речи, разноликости лексике и недопуштању понављања."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Покрените вишеокретну разговор да бисте видели трендове квалитета."}}},errors:{timelineTitle:{t:0,b:{t:2,i:[{t:3}],s:"Временски ред грешака"}},noErrors:{t:0,b:{t:2,i:[{t:3}],s:"Није забележена ниједна грешка."}}},usage:{requestVolume:{t:0,b:{t:2,i:[{t:3}],s:"Волумен захтева"}},modelDistribution:{t:0,b:{t:2,i:[{t:3}],s:"Дистрибуција модела"}},activeHours:{t:0,b:{t:2,i:[{t:3}],s:"Активне сате"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података сесије."}}},settings:{title:{t:0,b:{t:2,i:[{t:3}],s:"Температура вс. Брзина"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Сваки тачка је сесија. Приказује како температура утиче на генерисање брзине."}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Треба најмање 2 сесије са експлицитно постављеним температурама."}}},modelLoad:{title:{t:0,b:{t:2,i:[{t:3}],s:"Историја учитавања модела"}},cold:{t:0,b:{t:2,i:[{t:3}],s:"хладно"}},noData:{t:0,b:{t:2,i:[{t:3}],s:"Нема података сесије."}}}},Qy={title:{t:0,b:{t:2,i:[{t:3}],s:"Допуна у средини (FIM)"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Тестирајте допуну кода са префиксом + суфиксом. Модел попуњава празнину."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Неки Ollama модели (Qwen-Coder, CodeLlama, Codestral, DeepSeek-Coder, StarCoder) подржавају `suffix` поље на /api/generate. Унесите код пре и после курсора — модел допуњава средину."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},codingModels:{t:0,b:{t:2,i:[{t:3}],s:"Модели за код (FIM-компатибилни)"}},otherModels:{t:0,b:{t:2,i:[{t:3}],s:"Остали модели (можда не подржавају FIM)"}},notCodingModelWarning:{t:0,b:{t:2,i:[{t:3}],s:"Овај модел није познати модел за код — `suffix` може бити игнорисан."}},prefix:{t:0,b:{t:2,i:[{t:3}],s:"Префикс (код пре курсора)"}},suffix:{t:0,b:{t:2,i:[{t:3}],s:"Суфикс (код после курсора)"}},prefixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"function fibonacci(n) "}},suffixPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"console.log(fibonacci(10));"}},generate:{t:0,b:{t:2,i:[{t:3}],s:"Генериши"}},completion:{t:0,b:{t:2,i:[{t:3}],s:"Допуна"}},stitched:{t:0,b:{t:2,i:[{t:3}],s:"Спојени приказ"}},streaming:{t:0,b:{t:2,i:[{t:3}],s:"Стримовање…"}},metrics:{totalDuration:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},loadDuration:{t:0,b:{t:2,i:[{t:3}],s:"Учитавање"}},evalCount:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени"}},tokensPerSecond:{t:0,b:{t:2,i:[{t:3}],s:"Брзина"}}}},Yy={title:{t:0,b:{t:2,i:[{t:3}],s:"Опсерваторија протокола"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Пошаљите један промпт кроз три протокола послуживања. Исти модел, исти Ollama демон — различити жичани формати. Упоредите шта вам сваки протокол пружа."}},explainer:{t:0,b:{t:2,i:[{t:3}],s:"Ollama излаже /api/chat (нативни NDJSON), /v1/chat/completions (OpenAI-компатибилан SSE) и /v1/messages (Anthropic-компатибилан SSE). Сва три циљају исти локални модел — без облака, без API кључева. Ова страница покреће исти промпт на сва три паралелно и показује шта се разликује."}},model:{t:0,b:{t:2,i:[{t:3}],s:"Модел"}},prompt:{t:0,b:{t:2,i:[{t:3}],s:"Промпт"}},promptPlaceholder:{t:0,b:{t:2,i:[{t:3}],s:"Унесите промпт на који ће сва три протокола одговорити…"}},maxTokens:{t:0,b:{t:2,i:[{t:3}],s:"Макс. токена"}},runAll:{t:0,b:{t:2,i:[{t:3}],s:"Покрени сва 3 протокола"}},notRunYet:{t:0,b:{t:2,i:[{t:3}],s:"Још није покренуто."}},waitingForFirstToken:{t:0,b:{t:2,i:[{t:3}],s:"Чекање првог токена…"}},inspectEnvelope:{t:0,b:{t:2,i:[{t:3}],s:"Инспекција envelope"}},firstChunk:{t:0,b:{t:2,i:[{t:3}],s:"Први chunk / догађај"}},finalChunk:{t:0,b:{t:2,i:[{t:3}],s:"Последњи chunk / догађај"}},chars:{t:0,b:{t:2,i:[{t:3}],s:"знак."}},native:{label:{t:0,b:{t:2,i:[{t:3}],s:"Нативни"}},badge:{t:0,b:{t:2,i:[{t:3}],s:"Ollama нативни"}}},openai:{label:{t:0,b:{t:2,i:[{t:3}],s:"OpenAI-комп."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (комп)"}}},anthropic:{label:{t:0,b:{t:2,i:[{t:3}],s:"Anthropic-комп."}},badge:{t:0,b:{t:2,i:[{t:3}],s:"/v1 (комп)"}}},metrics:{total:{t:0,b:{t:2,i:[{t:3}],s:"Укупно"}},tokens:{t:0,b:{t:2,i:[{t:3}],s:"Токени"}},finish:{t:0,b:{t:2,i:[{t:3}],s:"Крај"}}},tabs:{responseDiff:{t:0,b:{t:2,i:[{t:3}],s:"Поређење одговора"}},envelopeDiff:{t:0,b:{t:2,i:[{t:3}],s:"Diff envelope"}}},envelopeDiff:{aspect:{t:0,b:{t:2,i:[{t:3}],s:"Аспект"}},streamWrapper:{t:0,b:{t:2,i:[{t:3}],s:"Омотач стрима"}},topLevelFields:{t:0,b:{t:2,i:[{t:3}],s:"Кључеви врха (опажени)"}},finishField:{t:0,b:{t:2,i:[{t:3}],s:"Носач разлога завршетка"}},finishValue:{t:0,b:{t:2,i:[{t:3}],s:"Разлог завршетка (овај run)"}},usageField:{t:0,b:{t:2,i:[{t:3}],s:"Носач броја токена"}},tokensReported:{t:0,b:{t:2,i:[{t:3}],s:"Генерисани токени (овај run)"}},errorShape:{t:0,b:{t:2,i:[{t:3}],s:"Облик envelope грешке"}},footnote:{t:0,b:{t:2,i:[{t:3}],s:"Опажене вредности су из овог рана на вашем локалном Ollama. Неки носачи (нпр. NDJSON нативни `done_reason`) појављују се само на последњем chunk-у, други (нпр. Anthropic `message_stop`) су наменски догађаји."}}}},Xy={common:Ny,dashboard:Iy,settings:Ly,benchmark:Fy,embeddings:zy,rag:By,tools:Uy,training:qy,system:$y,comparison:Vy,session:Ky,feedback:Hy,quality:Gy,cost:Wy,analytics:Jy,fim:Qy,protocols:Yy},Zy=["en","fr","zh","ar","sr","sr-Cyrl"];function tk(){const t=localStorage.getItem("llmxray-locale");if(t&&Zy.includes(t))return t;const e=navigator.language;return e.startsWith("fr")?"fr":e.startsWith("zh")?"zh":e.startsWith("ar")?"ar":e==="sr-Latn"||e.startsWith("sr-Latn")?"sr":e.startsWith("sr")?"sr-Cyrl":"en"}const sl=Ch({locale:tk(),fallbackLocale:"en",globalInjection:!0,messages:{en:hv,fr:Rv,zh:Xv,ar:hy,sr:Ry,"sr-Cyrl":Xy},numberFormats:{en:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},fr:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},zh:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},ar:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},sr:{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}},"sr-Cyrl":{decimal:{minimumFractionDigits:0,maximumFractionDigits:2},percent:{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1}}},datetimeFormats:{en:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},fr:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},zh:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},ar:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},sr:{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}},"sr-Cyrl":{short:{year:"numeric",month:"short",day:"numeric"},long:{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"}}}}),eb=new Set(["ar","he","fa","ur"]),sb=[{code:"en",label:"English",flag:"gb"},{code:"fr",label:"Français",flag:"fr"},{code:"zh",label:"中文",flag:"cn"},{code:"ar",label:"العربية",flag:"sa"},{code:"sr",label:"Srpski",flag:"rs"},{code:"sr-Cyrl",label:"Српски",flag:"rs"}],ek=_r("locale",()=>{const t=he(sl.global.locale.value);function e(s){t.value=s,sl.global.locale.value=s,localStorage.setItem("llmxray-locale",s),document.documentElement.lang=s,document.documentElement.dir=eb.has(s)?"rtl":"ltr"}return document.documentElement.lang=t.value,document.documentElement.dir=eb.has(t.value)?"rtl":"ltr",{locale:t,setLocale:e}}),sk={class:"flex h-14 items-center justify-between border-b border-border-default bg-surface-raised px-6"},ik={class:"text-lg font-semibold text-text-primary"},nk={class:"flex items-center gap-3"},ok=["title"],rk=["title","aria-expanded"],ak={key:0,role:"listbox",class:"absolute right-0 top-full z-50 mt-1 min-w-[10rem] overflow-hidden rounded-lg border border-border-default bg-surface-raised py-1 shadow-lg"},lk=["aria-selected","onClick"],ck={class:"flex items-center gap-2 text-sm text-text-secondary"},uk=Os({__name:"AppHeader",setup(t){const e=_l(),{t:s}=to(),i=Xg(),o=ek(),a=he(!1),l=he(null),b=ne(()=>sb.find(_=>_.code===o.locale)?.flag??"xx");function u(_){o.setLocale(_),a.value=!1}function f(_){a.value&&l.value&&!l.value.contains(_.target)&&(a.value=!1)}const p=ne(()=>{const _=e.name;return{dashboard:s("common.header.chatDiagnostics"),session:s("common.header.session"),comparison:s("common.header.compareModels"),embeddings:s("common.header.embeddings"),rag:s("common.header.knowledgeBase"),models:s("common.header.models"),benchmark:s("common.header.benchmark"),costs:s("common.header.costDashboard"),analytics:s("common.header.analytics"),tools:s("common.header.toolWorkshop"),fim:s("common.header.fim"),protocols:s("common.header.protocols"),system:s("common.header.mySystem"),settings:s("common.header.settings")}[_??""]??s("common.header.default")}),g=he(!1);async function y(){try{const _=await fetch("/api/tags");g.value=_.ok}catch{g.value=!1}}return Yn(()=>{y(),setInterval(y,15e3),document.addEventListener("click",f)}),pl(()=>{document.removeEventListener("click",f)}),(_,z)=>{const I=yr("RouterLink");return me(),rs("header",sk,[Et("h1",ik,[ie(e).name==="session"?(me(),rs(ke,{key:0},[oe(I,{to:"/",class:"text-text-secondary hover:text-accent transition-colors"},{default:Fn(()=>[Dn(De(_.$t("common.header.chatDiagnostics")),1)]),_:1}),z[2]||(z[2]=Et("span",{class:"mx-2 text-text-muted"},"/",-1)),Et("span",null,"Session "+De(ie(e).params.id?.slice(0,8)),1)],64)):(me(),rs(ke,{key:1},[Dn(De(p.value),1)],64))]),Et("div",nk,[Et("button",{class:"flex items-center justify-center rounded-lg p-1.5 text-text-secondary hover:bg-surface-overlay hover:text-text-primary transition-colors",title:`Theme: ${ie(i).mode}`,onClick:z[0]||(z[0]=$=>ie(i).setMode(ie(i).resolvedTheme==="dark"?"light":"dark"))},[ie(i).resolvedTheme==="dark"?(me(),ps(ie(lg),{key:0,class:"h-4 w-4"})):(me(),ps(ie(og),{key:1,class:"h-4 w-4"}))],8,ok),Et("div",{ref_key:"localeMenuRef",ref:l,class:"relative"},[Et("button",{class:"flex items-center gap-1.5 rounded-lg px-1.5 py-1 text-xs font-medium text-text-secondary hover:bg-surface-overlay hover:text-text-primary transition-colors",title:_.$t("settings.general.language"),"aria-expanded":a.value,"aria-haspopup":"listbox",onClick:z[1]||(z[1]=Ed($=>a.value=!a.value,["stop"]))},[Et("span",{class:ls([`fi fi-${b.value}`,"!h-3.5 !w-5 rounded-sm"])},null,2),oe(ie(Gh),{class:ls(["h-3 w-3",{"rotate-180":a.value}])},null,8,["class"])],8,rk),oe(Wf,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-100 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:Fn(()=>[a.value?(me(),rs("ul",ak,[(me(!0),rs(ke,null,gl(ie(sb),$=>(me(),rs("li",{key:$.code,role:"option","aria-selected":$.code===ie(o).locale,class:ls(["flex cursor-pointer items-center gap-2.5 px-3 py-1.5 text-sm text-text-secondary hover:bg-surface-overlay hover:text-text-primary",{"bg-surface-overlay text-text-primary":$.code===ie(o).locale}]),onClick:P=>u($.code)},[Et("span",{class:ls([`fi fi-${$.flag}`,"!h-3.5 !w-5 rounded-sm"])},null,2),Et("span",null,De($.label),1)],10,lk))),128))])):Td("",!0)]),_:1})],512),Et("div",ck,[Et("span",{class:ls(["inline-block h-2 w-2 rounded-full",g.value?"bg-success":"bg-error"])},null,2),Dn(" "+De(g.value?_.$t("common.status.ollamaConnected"):_.$t("common.status.ollamaDisconnected")),1)])])])}}}),bk={class:"flex h-screen overflow-hidden"},dk={class:"flex flex-1 flex-col overflow-hidden"},mk={class:"flex-1 overflow-hidden"},fk=Os({__name:"DefaultLayout",setup(t){return(e,s)=>{const i=yr("RouterView");return me(),rs("div",bk,[oe(Yg),Et("div",dk,[oe(uk),Et("main",mk,[oe(i,null,{default:Fn(({Component:o,route:a})=>[Et("div",{class:ls(["h-full",a.name==="dashboard"||a.name==="tools"?"":"overflow-auto p-6"])},[(me(),ps(Zb(o)))],2)]),_:1})])])])}}}),pk=I3({history:f3(),routes:[{path:"/",component:fk,children:[{path:"",name:"dashboard",component:()=>Ke(()=>import("./DashboardPage-CMZSfb4t.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))},{path:"session/:id",name:"session",component:()=>Ke(()=>import("./SessionPage-12S3fV1c.js"),__vite__mapDeps([16,3,1,6,17,18,5,19,2,20,21,8,9,22,23,24,15])),props:!0},{path:"compare",name:"comparison",component:()=>Ke(()=>import("./ComparisonPage-C9o6y6vj.js"),__vite__mapDeps([25,3,1,4,5,6,7,8,17,2,19,26,15,27]))},{path:"embeddings",name:"embeddings",component:()=>Ke(()=>import("./EmbeddingsPage-DdbGCntf.js"),__vite__mapDeps([28,2,29,30,31,23,32]))},{path:"rag",name:"rag",component:()=>Ke(()=>import("./RAGPage-HwnlHxQ0.js"),__vite__mapDeps([33,10,11,29,30,2,31]))},{path:"models",redirect:{path:"/settings",query:{tab:"models"}}},{path:"benchmark",name:"benchmark",component:()=>Ke(()=>import("./BenchmarkPage-BVmzrGF3.js"),__vite__mapDeps([34,35,7,3,6,1,8,13,36,15,37,14,20,17,27]))},{path:"tools",name:"tools",component:()=>Ke(()=>import("./ToolWorkshopPage-BRXtDJIQ.js"),__vite__mapDeps([38,9,17,8,3,39,22,23,24,26,15,36,40]))},{path:"fim",name:"fim",component:()=>Ke(()=>import("./FimPlaygroundPage-BcrmoLxo.js"),__vite__mapDeps([41,21,42,37]))},{path:"protocols",name:"protocols",component:()=>Ke(()=>import("./ProtocolObservatoryPage-CXoj3a1O.js"),__vite__mapDeps([43,7,3,6,1,8,21,42,37]))},{path:"training",name:"training",component:()=>Ke(()=>import("./AITrainingPage-DKjKWcx-.js"),__vite__mapDeps([44,39,2,30,31]))},{path:"costs",name:"costs",component:()=>Ke(()=>import("./CostDashboardPage-CHoN2eQ2.js"),__vite__mapDeps([45,1,20,21]))},{path:"analytics",name:"analytics",component:()=>Ke(()=>import("./AnalyticsPage-jTBXre2c.js"),__vite__mapDeps([46,20,1,3]))},{path:"system",name:"system",component:()=>Ke(()=>import("./SystemPage-BtFTvlZl.js"),__vite__mapDeps([47,17,1,2,29,30,31,15]))},{path:"settings",name:"settings",component:()=>Ke(()=>import("./SettingsPage-B_hBcAPj.js"),__vite__mapDeps([48,18,2,13,36,49,50,23,20,17]))},{path:"auth/google/callback",name:"google-oauth-callback",component:()=>Ke(()=>import("./GoogleCallbackPage-C9_rQxue.js"),__vite__mapDeps([51,49,50]))}]}]}),hk="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let gk=(t=21)=>{let e="",s=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=hk[s[t]&63];return e};const vk="llmxray-conversations",yk=1,bs="conversations",Ze="messages",ds="sessions",Us="tokens";function os(){return new Promise((t,e)=>{const s=indexedDB.open(vk,yk);s.onupgradeneeded=()=>{const i=s.result;i.objectStoreNames.contains(bs)||i.createObjectStore(bs,{keyPath:"id"}),i.objectStoreNames.contains(Ze)||i.createObjectStore(Ze,{keyPath:"id"}).createIndex("byConversation","conversationId",{unique:!1}),i.objectStoreNames.contains(ds)||i.createObjectStore(ds,{keyPath:"id"}).createIndex("byConversation","conversationId",{unique:!1}),i.objectStoreNames.contains(Us)||i.createObjectStore(Us,{keyPath:"sessionId"}).createIndex("bySession","sessionId",{unique:!0})},s.onsuccess=()=>t(s.result),s.onerror=()=>e(s.error)})}function Ei(t){return new Promise((e,s)=>{t.oncomplete=()=>e(),t.onerror=()=>s(t.error)})}function ib(t,e){return new Promise((s,i)=>{const o=t.get(e);o.onsuccess=()=>s(o.result),o.onerror=()=>i(o.error)})}function kk(t){return new Promise((e,s)=>{const i=t.getAll();i.onsuccess=()=>e(i.result),i.onerror=()=>s(i.error)})}function Aa(t,e,s){return new Promise((i,o)=>{const l=t.index(e).getAll(s);l.onsuccess=()=>i(l.result),l.onerror=()=>o(l.error)})}const us={async saveConversation(t){const e=await os(),s=e.transaction([bs,Ze],"readwrite"),i={id:t.id,name:t.name,title:t.title,model:t.model,options:t.options,createdAt:t.createdAt,updatedAt:t.updatedAt};s.objectStore(bs).put(i);const o=s.objectStore(Ze);for(const a of t.messages)o.put(a);await Ei(s),e.close()},async saveConversationMeta(t){const e=await os(),s=e.transaction(bs,"readwrite"),i={id:t.id,name:t.name,title:t.title,model:t.model,options:t.options,createdAt:t.createdAt,updatedAt:t.updatedAt};s.objectStore(bs).put(i),await Ei(s),e.close()},async saveMessage(t){const e=await os(),s=e.transaction(Ze,"readwrite");s.objectStore(Ze).put(t),await Ei(s),e.close()},async getAllConversations(){const t=await os(),e=t.transaction(bs,"readonly"),s=await kk(e.objectStore(bs));return t.close(),s},async getMessages(t){const e=await os(),s=e.transaction(Ze,"readonly"),i=await Aa(s.objectStore(Ze),"byConversation",t);return e.close(),i.sort((o,a)=>o.timestamp-a.timestamp)},async deleteConversation(t){const e=await os(),s=e.transaction(Ze,"readonly"),i=await Aa(s.objectStore(Ze),"byConversation",t),o=i.map(g=>g.sessionId).filter(g=>!!g),a=[...new Set(o)],l=[bs,Ze,ds,Us],b=e.transaction(l,"readwrite");b.objectStore(bs).delete(t);const u=b.objectStore(Ze);for(const g of i)u.delete(g.id);const f=b.objectStore(ds),p=b.objectStore(Us);for(const g of a)f.delete(g),p.delete(g);await Ei(b),e.close()},async saveSession(t,e){const s=await os(),i=s.transaction(ds,"readwrite"),o={...t,conversationId:e};i.objectStore(ds).put(o),await Ei(i),s.close()},async getSession(t){const e=await os(),s=e.transaction(ds,"readonly"),i=await ib(s.objectStore(ds),t);return e.close(),i},async getSessionsByConversation(t){const e=await os(),s=e.transaction(ds,"readonly"),i=await Aa(s.objectStore(ds),"byConversation",t);return e.close(),i},async saveTokens(t,e){const s=await os(),i=s.transaction(Us,"readwrite"),o={sessionId:t,tokens:e};i.objectStore(Us).put(o),await Ei(i),s.close()},async getTokens(t){const e=await os(),s=e.transaction(Us,"readonly"),i=await ib(s.objectStore(Us),t);return e.close(),i?.tokens??[]},async clear(){const t=await os(),e=[bs,Ze,ds,Us],s=t.transaction(e,"readwrite");for(const i of e)s.objectStore(i).clear();await Ei(s),t.close()}},Gk=Object.freeze(Object.defineProperty({__proto__:null,conversationDB:us},Symbol.toStringTag,{value:"Module"}));var Sk=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Tk(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Wk(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var s=function i(){var o=!1;try{o=this instanceof i}catch{}return o?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};s.prototype=e.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(t).forEach(function(i){var o=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(s,i,o.get?o:{enumerable:!0,get:function(){return t[i]}})}),s}var Uo={exports:{}},_k=Uo.exports,nb;function wk(){return nb||(nb=1,(function(t,e){((s,i)=>{t.exports=i()})(_k,function(){var s=function(n,r){return(s=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(c,d){c.__proto__=d}:function(c,d){for(var m in d)Object.prototype.hasOwnProperty.call(d,m)&&(c[m]=d[m])}))(n,r)},i=function(){return(i=Object.assign||function(n){for(var r,c=1,d=arguments.length;c<d;c++)for(var m in r=arguments[c])Object.prototype.hasOwnProperty.call(r,m)&&(n[m]=r[m]);return n}).apply(this,arguments)};function o(n,r,c){for(var d,m=0,h=r.length;m<h;m++)!d&&m in r||((d=d||Array.prototype.slice.call(r,0,m))[m]=r[m]);return n.concat(d||Array.prototype.slice.call(r))}var a=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Sk,l=Object.keys,b=Array.isArray;function u(n,r){return typeof r=="object"&&l(r).forEach(function(c){n[c]=r[c]}),n}typeof Promise>"u"||a.Promise||(a.Promise=Promise);var f=Object.getPrototypeOf,p={}.hasOwnProperty;function g(n,r){return p.call(n,r)}function y(n,r){typeof r=="function"&&(r=r(f(n))),(typeof Reflect>"u"?l:Reflect.ownKeys)(r).forEach(function(c){z(n,c,r[c])})}var _=Object.defineProperty;function z(n,r,c,d){_(n,r,u(c&&g(c,"get")&&typeof c.get=="function"?{get:c.get,set:c.set,configurable:!0}:{value:c,configurable:!0,writable:!0},d))}function I(n){return{from:function(r){return n.prototype=Object.create(r.prototype),z(n.prototype,"constructor",n),{extend:y.bind(null,n.prototype)}}}}var $=Object.getOwnPropertyDescriptor,P=[].slice;function x(n,r,c){return P.call(n,r,c)}function G(n,r){return r(n)}function N(n){if(!n)throw new Error("Assertion Failed")}function X(n){a.setImmediate?setImmediate(n):setTimeout(n,0)}function W(n,r){if(typeof r=="string"&&g(n,r))return n[r];if(!r)return n;if(typeof r!="string"){for(var c=[],d=0,m=r.length;d<m;++d){var h=W(n,r[d]);c.push(h)}return c}var v,k=r.indexOf(".");return k===-1||(v=n[r.substr(0,k)])==null?void 0:W(v,r.substr(k+1))}function H(n,r,c){if(n&&r!==void 0&&!("isFrozen"in Object&&Object.isFrozen(n)))if(typeof r!="string"&&"length"in r){N(typeof c!="string"&&"length"in c);for(var d=0,m=r.length;d<m;++d)H(n,r[d],c[d])}else{var h,v,k=r.indexOf(".");k!==-1?(h=r.substr(0,k),(k=r.substr(k+1))===""?c===void 0?b(n)&&!isNaN(parseInt(h))?n.splice(h,1):delete n[h]:n[h]=c:H(v=(v=n[h])&&g(n,h)?v:n[h]={},k,c)):c===void 0?b(n)&&!isNaN(parseInt(r))?n.splice(r,1):delete n[r]:n[r]=c}}function rt(n){var r,c={};for(r in n)g(n,r)&&(c[r]=n[r]);return c}var st=[].concat;function yt(n){return st.apply([],n)}var Jt="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(yt([8,16,32,64].map(function(n){return["Int","Uint","Float"].map(function(r){return r+n+"Array"})}))).filter(function(n){return a[n]}),Pt=new Set(Jt.map(function(n){return a[n]})),lt=null;function Ct(n){return lt=new WeakMap,n=(function r(c){if(!c||typeof c!="object")return c;var d=lt.get(c);if(d)return d;if(b(c)){d=[],lt.set(c,d);for(var m=0,h=c.length;m<h;++m)d.push(r(c[m]))}else if(Pt.has(c.constructor))d=c;else{var v,k=f(c);for(v in d=k===Object.prototype?{}:Object.create(k),lt.set(c,d),c)g(c,v)&&(d[v]=r(c[v]))}return d})(n),lt=null,n}var Yt={}.toString;function ue(n){return Yt.call(n).slice(8,-1)}var It=typeof Symbol<"u"?Symbol.iterator:"@@iterator",jt=typeof It=="symbol"?function(n){var r;return n!=null&&(r=n[It])&&r.apply(n)}:function(){return null};function Dt(n,r){r=n.indexOf(r),0<=r&&n.splice(r,1)}var Xt={};function be(n){var r,c,d,m;if(arguments.length===1){if(b(n))return n.slice();if(this===Xt&&typeof n=="string")return[n];if(m=jt(n))for(c=[];!(d=m.next()).done;)c.push(d.value);else{if(n==null)return[n];if(typeof(r=n.length)!="number")return[n];for(c=new Array(r);r--;)c[r]=n[r]}}else for(r=arguments.length,c=new Array(r);r--;)c[r]=arguments[r];return c}var Pe=typeof Symbol<"u"?function(n){return n[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},Jt=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],ft=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"].concat(Jt),ss={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function Re(n,r){this.name=n,this.message=r}function Ye(n,r){return n+". Errors: "+Object.keys(r).map(function(c){return r[c].toString()}).filter(function(c,d,m){return m.indexOf(c)===d}).join(`
|
|
35
35
|
`)}function Se(n,r,c,d){this.failures=r,this.failedKeys=d,this.successCount=c,this.message=Ye(n,r)}function tt(n,r){this.name="BulkError",this.failures=Object.keys(r).map(function(c){return r[c]}),this.failuresByPos=r,this.message=Ye(n,this.failures)}I(Re).from(Error).extend({toString:function(){return this.name+": "+this.message}}),I(Se).from(Re),I(tt).from(Re);var gt=ft.reduce(function(n,r){return n[r]=r+"Error",n},{}),mt=Re,ot=ft.reduce(function(n,r){var c=r+"Error";function d(m,h){this.name=c,m?typeof m=="string"?(this.message="".concat(m).concat(h?`
|
|
36
|
-
`+h:""),this.inner=h||null):typeof m=="object"&&(this.message="".concat(m.name," ").concat(m.message),this.inner=m):(this.message=ss[r]||c,this.inner=null)}return I(d).from(mt),n[r]=d,n},{}),Ot=(ot.Syntax=SyntaxError,ot.Type=TypeError,ot.Range=RangeError,Jt.reduce(function(n,r){return n[r+"Error"]=ot[r],n},{}));Jt=ft.reduce(function(n,r){return["Syntax","Type","Range"].indexOf(r)===-1&&(n[r+"Error"]=ot[r]),n},{});function S(){}function A(n){return n}function B(n,r){return n==null||n===A?r:function(c){return r(n(c))}}function Y(n,r){return function(){n.apply(this,arguments),r.apply(this,arguments)}}function it(n,r){return n===S?r:function(){var c=n.apply(this,arguments),d=(c!==void 0&&(arguments[0]=c),this.onsuccess),m=this.onerror,h=(this.onsuccess=null,this.onerror=null,r.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?Y(d,this.onsuccess):d),m&&(this.onerror=this.onerror?Y(m,this.onerror):m),h!==void 0?h:c}}function et(n,r){return n===S?r:function(){n.apply(this,arguments);var c=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,r.apply(this,arguments),c&&(this.onsuccess=this.onsuccess?Y(c,this.onsuccess):c),d&&(this.onerror=this.onerror?Y(d,this.onerror):d)}}function T(n,r){return n===S?r:function(m){var d=n.apply(this,arguments),m=(u(m,d),this.onsuccess),h=this.onerror,v=(this.onsuccess=null,this.onerror=null,r.apply(this,arguments));return m&&(this.onsuccess=this.onsuccess?Y(m,this.onsuccess):m),h&&(this.onerror=this.onerror?Y(h,this.onerror):h),d===void 0?v===void 0?void 0:v:u(d,v)}}function w(n,r){return n===S?r:function(){return r.apply(this,arguments)!==!1&&n.apply(this,arguments)}}function L(n,r){return n===S?r:function(){var c=n.apply(this,arguments);if(c&&typeof c.then=="function"){for(var d=this,m=arguments.length,h=new Array(m);m--;)h[m]=arguments[m];return c.then(function(){return r.apply(d,h)})}return r.apply(this,arguments)}}Jt.ModifyError=Se,Jt.DexieError=Re,Jt.BulkError=tt;var V=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function pt(n){V=n}var nt={},F=100,Q=typeof Promise>"u"?[]:(ft=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Q=crypto.subtle.digest("SHA-512",new Uint8Array([0])),f(Q),ft]:[ft,f(ft),ft]),ft=Q[0],Vi=Q[1],Vi=Vi&&Vi.then,wt=ft&&ft.constructor,Rt=!!Q[2],ee=function(n,r){ti.push([n,r]),Ne&&(queueMicrotask(S0),Ne=!1)},se=!0,Ne=!0,xe=[],Ss=[],Ii=A,ge={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:S,pgp:!1,env:{},finalize:S},kt=ge,ti=[],Ts=0,eo=[];function ht(n){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var r=this._PSD=kt;if(typeof n!="function"){if(n!==nt)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Dr(this,this._value)}else this._state=null,this._value=null,++r.ref,(function c(d,m){try{m(function(h){if(d._state===null){if(h===d)throw new TypeError("A promise cannot be resolved with itself.");var v=d._lib&&Li();h&&typeof h.then=="function"?c(d,function(k,j){h instanceof ht?h._then(k,j):h.then(k,j)}):(d._state=!0,d._value=h,Rl(d)),v&&Fi()}},Dr.bind(null,d))}catch(h){Dr(d,h)}})(this,n)}var Mr={get:function(){var n=kt,r=oo;function c(d,m){var h=this,v=!n.global&&(n!==kt||r!==oo),k=v&&!si(),j=new ht(function(q,M){Or(h,new Ol(Il(d,n,v,k),Il(m,n,v,k),q,M,n))});return this._consoleTask&&(j._consoleTask=this._consoleTask),j}return c.prototype=nt,c},set:function(n){z(this,"then",n&&n.prototype===nt?Mr:{get:function(){return n},set:Mr.set})}};function Ol(n,r,c,d,m){this.onFulfilled=typeof n=="function"?n:null,this.onRejected=typeof r=="function"?r:null,this.resolve=c,this.reject=d,this.psd=m}function Dr(n,r){var c,d;Ss.push(r),n._state===null&&(c=n._lib&&Li(),r=Ii(r),n._state=!1,n._value=r,d=n,xe.some(function(m){return m._value===d._value})||xe.push(d),Rl(n),c)&&Fi()}function Rl(n){var r=n._listeners;n._listeners=[];for(var c=0,d=r.length;c<d;++c)Or(n,r[c]);var m=n._PSD;--m.ref||m.finalize(),Ts===0&&(++Ts,ee(function(){--Ts==0&&Rr()},[]))}function Or(n,r){if(n._state===null)n._listeners.push(r);else{var c=n._state?r.onFulfilled:r.onRejected;if(c===null)return(n._state?r.resolve:r.reject)(n._value);++r.psd.ref,++Ts,ee(k0,[c,n,r])}}function k0(n,r,c){try{var d,m=r._value;!r._state&&Ss.length&&(Ss=[]),d=V&&r._consoleTask?r._consoleTask.run(function(){return n(m)}):n(m),r._state||Ss.indexOf(m)!==-1||(h=>{for(var v=xe.length;v;)if(xe[--v]._value===h._value)return xe.splice(v,1)})(r),c.resolve(d)}catch(h){c.reject(h)}finally{--Ts==0&&Rr(),--c.psd.ref||c.psd.finalize()}}function S0(){yi(ge,function(){Li()&&Fi()})}function Li(){var n=se;return Ne=se=!1,n}function Fi(){var n,r,c;do for(;0<ti.length;)for(n=ti,ti=[],c=n.length,r=0;r<c;++r){var d=n[r];d[0].apply(null,d[1])}while(0<ti.length);Ne=se=!0}function Rr(){for(var n=xe,r=(xe=[],n.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),eo.slice(0)),c=r.length;c;)r[--c]()}function so(n){return new ht(nt,!1,n)}function ae(n,r){var c=kt;return function(){var d=Li(),m=kt;try{return ii(c,!0),n.apply(this,arguments)}catch(h){r&&r(h)}finally{ii(m,!1),d&&Fi()}}}y(ht.prototype,{then:Mr,_then:function(n,r){Or(this,new Ol(null,null,n,r,kt))},catch:function(n){var r,c;return arguments.length===1?this.then(null,n):(r=n,c=arguments[1],typeof r=="function"?this.then(null,function(d){return(d instanceof r?c:so)(d)}):this.then(null,function(d){return(d&&d.name===r?c:so)(d)}))},finally:function(n){return this.then(function(r){return ht.resolve(n()).then(function(){return r})},function(r){return ht.resolve(n()).then(function(){return so(r)})})},timeout:function(n,r){var c=this;return n<1/0?new ht(function(d,m){var h=setTimeout(function(){return m(new ot.Timeout(r))},n);c.then(d,m).finally(clearTimeout.bind(null,h))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&z(ht.prototype,Symbol.toStringTag,"Dexie.Promise"),ge.env=Nl(),y(ht,{all:function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.length===0&&r([]);var d=n.length;n.forEach(function(m,h){return ht.resolve(m).then(function(v){n[h]=v,--d||r(n)},c)})})},resolve:function(n){return n instanceof ht?n:n&&typeof n.then=="function"?new ht(function(r,c){n.then(r,c)}):new ht(nt,!0,n)},reject:so,race:function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.map(function(d){return ht.resolve(d).then(r,c)})})},PSD:{get:function(){return kt},set:function(n){return kt=n}},totalEchoes:{get:function(){return oo}},newPSD:ei,usePSD:yi,scheduler:{get:function(){return ee},set:function(n){ee=n}},rejectionMapper:{get:function(){return Ii},set:function(n){Ii=n}},follow:function(n,r){return new ht(function(c,d){return ei(function(m,h){var v=kt;v.unhandleds=[],v.onunhandled=h,v.finalize=Y(function(){var k,j=this;k=function(){j.unhandleds.length===0?m():h(j.unhandleds[0])},eo.push(function q(){k(),eo.splice(eo.indexOf(q),1)}),++Ts,ee(function(){--Ts==0&&Rr()},[])},v.finalize),n()},r,c,d)})}}),wt&&(wt.allSettled&&z(ht,"allSettled",function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r){n.length===0&&r([]);var c=n.length,d=new Array(c);n.forEach(function(m,h){return ht.resolve(m).then(function(v){return d[h]={status:"fulfilled",value:v}},function(v){return d[h]={status:"rejected",reason:v}}).then(function(){return--c||r(d)})})})}),wt.any&&typeof AggregateError<"u"&&z(ht,"any",function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.length===0&&c(new AggregateError([]));var d=n.length,m=new Array(d);n.forEach(function(h,v){return ht.resolve(h).then(function(k){return r(k)},function(k){m[v]=k,--d||c(new AggregateError(m))})})})}),wt.withResolvers)&&(ht.withResolvers=wt.withResolvers);var je={awaits:0,echoes:0,id:0},T0=0,io=[],no=0,oo=0,_0=0;function ei(n,v,c,d){var m=kt,h=Object.create(m),v=(h.parent=m,h.ref=0,h.global=!1,h.id=++_0,ge.env,h.env=Rt?{Promise:ht,PromiseProp:{value:ht,configurable:!0,writable:!0},all:ht.all,race:ht.race,allSettled:ht.allSettled,any:ht.any,resolve:ht.resolve,reject:ht.reject}:{},v&&u(h,v),++m.ref,h.finalize=function(){--this.parent.ref||this.parent.finalize()},yi(h,n,c,d));return h.ref===0&&h.finalize(),v}function zi(){return je.id||(je.id=++T0),++je.awaits,je.echoes+=F,je.id}function si(){return!!je.awaits&&(--je.awaits==0&&(je.id=0),je.echoes=je.awaits*F,!0)}function ro(n){return je.echoes&&n&&n.constructor===wt?(zi(),n.then(function(r){return si(),r},function(r){return si(),Te(r)})):n}function w0(){var n=io[io.length-1];io.pop(),ii(n,!1)}function ii(n,r){var c,d,m=kt;(r?!je.echoes||no++&&n===kt:!no||--no&&n===kt)||queueMicrotask(r?(function(h){++oo,je.echoes&&--je.echoes!=0||(je.echoes=je.awaits=je.id=0),io.push(kt),ii(h,!0)}).bind(null,n):w0),n!==kt&&(kt=n,m===ge&&(ge.env=Nl()),Rt)&&(c=ge.env.Promise,d=n.env,m.global||n.global)&&(Object.defineProperty(a,"Promise",d.PromiseProp),c.all=d.all,c.race=d.race,c.resolve=d.resolve,c.reject=d.reject,d.allSettled&&(c.allSettled=d.allSettled),d.any)&&(c.any=d.any)}function Nl(){var n=a.Promise;return Rt?{Promise:n,PromiseProp:Object.getOwnPropertyDescriptor(a,"Promise"),all:n.all,race:n.race,allSettled:n.allSettled,any:n.any,resolve:n.resolve,reject:n.reject}:{}}function yi(n,r,c,d,m){var h=kt;try{return ii(n,!0),r(c,d,m)}finally{ii(h,!1)}}function Il(n,r,c,d){return typeof n!="function"?n:function(){var m=kt;c&&zi(),ii(r,!0);try{return n.apply(this,arguments)}finally{ii(m,!1),d&&queueMicrotask(si)}}}function Nr(n){Promise===wt&&je.echoes===0?no===0?n():enqueueNativeMicroTask(n):setTimeout(n,0)}(""+Vi).indexOf("[native code]")===-1&&(zi=si=S);var Te=ht.reject,ki="",Rs="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Ll="String expected.",Bi=[],ao="__dbnames",Ir="readonly",Lr="readwrite";function Si(n,r){return n?r?function(){return n.apply(this,arguments)&&r.apply(this,arguments)}:n:r}var Fl={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function lo(n){return typeof n!="string"||/\./.test(n)?function(r){return r}:function(r){return r[n]===void 0&&n in r&&delete(r=Ct(r))[n],r}}function zl(){throw ot.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function Lt(n,r){try{var c=Bl(n),d=Bl(r);if(c!==d)return c==="Array"?1:d==="Array"?-1:c==="binary"?1:d==="binary"?-1:c==="string"?1:d==="string"?-1:c==="Date"?1:d!=="Date"?NaN:-1;switch(c){case"number":case"Date":case"string":return r<n?1:n<r?-1:0;case"binary":for(var m=Ul(n),h=Ul(r),v=m.length,k=h.length,j=v<k?v:k,q=0;q<j;++q)if(m[q]!==h[q])return m[q]<h[q]?-1:1;return v===k?0:v<k?-1:1;case"Array":for(var M=n,C=r,O=M.length,R=C.length,D=O<R?O:R,E=0;E<D;++E){var K=Lt(M[E],C[E]);if(K!==0)return K}return O===R?0:O<R?-1:1}}catch{}return NaN}function Bl(n){var r=typeof n;return r=="object"&&(ArrayBuffer.isView(n)||(r=ue(n))==="ArrayBuffer")?"binary":r}function Ul(n){return n instanceof Uint8Array?n:ArrayBuffer.isView(n)?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n)}function co(n,r,c){var d=n.schema.yProps;return d?(r&&0<c.numFailures&&(r=r.filter(function(m,h){return!c.failures[h]})),Promise.all(d.map(function(m){return m=m.updatesTable,r?n.db.table(m).where("k").anyOf(r).delete():n.db.table(m).clear()})).then(function(){return c})):c}ql.prototype.execute=function(n){var r=this["@@propmod"];if(r.add!==void 0){var c=r.add;if(b(c))return o(o([],b(n)?n:[],!0),c).sort();if(typeof c=="number")return(Number(n)||0)+c;if(typeof c=="bigint")try{return BigInt(n)+c}catch{return BigInt(0)+c}throw new TypeError("Invalid term ".concat(c))}if(r.remove!==void 0){var d=r.remove;if(b(d))return b(n)?n.filter(function(m){return!d.includes(m)}).sort():[];if(typeof d=="number")return Number(n)-d;if(typeof d=="bigint")try{return BigInt(n)-d}catch{return BigInt(0)-d}throw new TypeError("Invalid subtrahend ".concat(d))}return c=(c=r.replacePrefix)==null?void 0:c[0],c&&typeof n=="string"&&n.startsWith(c)?r.replacePrefix[1]+n.substring(c.length):n};var ln=ql;function ql(n){this["@@propmod"]=n}function $l(n,r){for(var c=l(r),d=c.length,m=!1,h=0;h<d;++h){var v=c[h],k=r[v],j=W(n,v);k instanceof ln?(H(n,v,k.execute(j)),m=!0):j!==k&&(H(n,v,k),m=!0)}return m}Zt.prototype._trans=function(n,r,c){var d=this._tx||kt.trans,m=this.name,h=V&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(n==="readonly"?"read":"write"," ").concat(this.name));function v(q,M,C){if(C.schema[m])return r(C.idbtrans,C);throw new ot.NotFound("Table "+m+" not part of transaction")}var k=Li();try{var j=d&&d.db._novip===this.db._novip?d===kt.trans?d._promise(n,v,c):ei(function(){return d._promise(n,v,c)},{trans:d,transless:kt.transless||kt}):(function q(M,C,O,R){if(M.idbdb&&(M._state.openComplete||kt.letThrough||M._vip)){var D=M._createTransaction(C,O,M._dbSchema);try{D.create(),M._state.PR1398_maxLoop=3}catch(E){return E.name===gt.InvalidState&&M.isOpen()&&0<--M._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),M.close({disableAutoOpen:!1}),M.open().then(function(){return q(M,C,O,R)})):Te(E)}return D._promise(C,function(E,K){return ei(function(){return kt.trans=D,R(E,K,D)})}).then(function(E){if(C==="readwrite")try{D.idbtrans.commit()}catch{}return C==="readonly"?E:D._completion.then(function(){return E})})}if(M._state.openComplete)return Te(new ot.DatabaseClosed(M._state.dbOpenError));if(!M._state.isBeingOpened){if(!M._state.autoOpen)return Te(new ot.DatabaseClosed);M.open().catch(S)}return M._state.dbReadyPromise.then(function(){return q(M,C,O,R)})})(this.db,n,[this.name],v);return h&&(j._consoleTask=h,j=j.catch(function(q){return console.trace(q),Te(q)})),j}finally{k&&Fi()}},Zt.prototype.get=function(n,r){var c=this;return n&&n.constructor===Object?this.where(n).first(r):n==null?Te(new ot.Type("Invalid argument to Table.get()")):this._trans("readonly",function(d){return c.core.get({trans:d,key:n}).then(function(m){return c.hook.reading.fire(m)})}).then(r)},Zt.prototype.where=function(n){if(typeof n=="string")return new this.db.WhereClause(this,n);if(b(n))return new this.db.WhereClause(this,"[".concat(n.join("+"),"]"));var r=l(n);if(r.length===1)return this.where(r[0]).equals(n[r[0]]);var c=this.schema.indexes.concat(this.schema.primKey).filter(function(k){if(k.compound&&r.every(function(q){return 0<=k.keyPath.indexOf(q)})){for(var j=0;j<r.length;++j)if(r.indexOf(k.keyPath[j])===-1)return!1;return!0}return!1}).sort(function(k,j){return k.keyPath.length-j.keyPath.length})[0];if(c&&this.db._maxKey!==ki)return v=c.keyPath.slice(0,r.length),this.where(v).equals(v.map(function(k){return n[k]}));!c&&V&&console.warn("The query ".concat(JSON.stringify(n)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(r.join("+"),"]"));var d=this.schema.idxByName;function m(k,j){return Lt(k,j)===0}var v=r.reduce(function(M,j){var q=M[0],M=M[1],C=d[j],O=n[j];return[q||C,q||!C?Si(M,C&&C.multi?function(R){return R=W(R,j),b(R)&&R.some(function(D){return m(O,D)})}:function(R){return m(O,W(R,j))}):M]},[null,null]),h=v[0],v=v[1];return h?this.where(h.name).equals(n[h.keyPath]).filter(v):c?this.filter(v):this.where(r).equals("")},Zt.prototype.filter=function(n){return this.toCollection().and(n)},Zt.prototype.count=function(n){return this.toCollection().count(n)},Zt.prototype.offset=function(n){return this.toCollection().offset(n)},Zt.prototype.limit=function(n){return this.toCollection().limit(n)},Zt.prototype.each=function(n){return this.toCollection().each(n)},Zt.prototype.toArray=function(n){return this.toCollection().toArray(n)},Zt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Zt.prototype.orderBy=function(n){return new this.db.Collection(new this.db.WhereClause(this,b(n)?"[".concat(n.join("+"),"]"):n))},Zt.prototype.reverse=function(){return this.toCollection().reverse()},Zt.prototype.mapToClass=function(n){for(var r=this.db,c=this.name,d=((this.schema.mappedClass=n).prototype instanceof zl&&(n=(v=>{var k=M,j=v;if(typeof j!="function"&&j!==null)throw new TypeError("Class extends value "+String(j)+" is not a constructor or null");function q(){this.constructor=k}function M(){return v!==null&&v.apply(this,arguments)||this}return s(k,j),k.prototype=j===null?Object.create(j):(q.prototype=j.prototype,new q),Object.defineProperty(M.prototype,"db",{get:function(){return r},enumerable:!1,configurable:!0}),M.prototype.table=function(){return c},M})(n)),new Set),m=n.prototype;m;m=f(m))Object.getOwnPropertyNames(m).forEach(function(v){return d.add(v)});function h(v){if(!v)return v;var k,j=Object.create(n.prototype);for(k in v)if(!d.has(k))try{j[k]=v[k]}catch{}return j}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=h,this.hook("reading",h),n},Zt.prototype.defineClass=function(){return this.mapToClass(function(n){u(this,n)})},Zt.prototype.add=function(n,r){var c=this,d=this.schema.primKey,m=d.auto,h=d.keyPath,v=n;return h&&m&&(v=lo(h)(n)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"add",keys:r!=null?[r]:null,values:[v]})}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{H(n,h,k)}catch{}return k})},Zt.prototype.upsert=function(n,r){var c=this,d=this.schema.primKey.keyPath;return this._trans("readwrite",function(m){return c.core.get({trans:m,key:n}).then(function(h){var v=h??{};return $l(v,r),d&&H(v,d,n),c.core.mutate({trans:m,type:"put",values:[v],keys:[n],upsert:!0,updates:{keys:[n],changeSpecs:[r]}}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):!!h})})})},Zt.prototype.update=function(n,r){return typeof n!="object"||b(n)?this.where(":id").equals(n).modify(r):(n=W(n,this.schema.primKey.keyPath))===void 0?Te(new ot.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(n).modify(r)},Zt.prototype.put=function(n,r){var c=this,d=this.schema.primKey,m=d.auto,h=d.keyPath,v=n;return h&&m&&(v=lo(h)(n)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"put",values:[v],keys:r!=null?[r]:null})}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{H(n,h,k)}catch{}return k})},Zt.prototype.delete=function(n){var r=this;return this._trans("readwrite",function(c){return r.core.mutate({trans:c,type:"delete",keys:[n]}).then(function(d){return co(r,[n],d)}).then(function(d){return d.numFailures?ht.reject(d.failures[0]):void 0})})},Zt.prototype.clear=function(){var n=this;return this._trans("readwrite",function(r){return n.core.mutate({trans:r,type:"deleteRange",range:Fl}).then(function(c){return co(n,null,c)})}).then(function(r){return r.numFailures?ht.reject(r.failures[0]):void 0})},Zt.prototype.bulkGet=function(n){var r=this;return this._trans("readonly",function(c){return r.core.getMany({keys:n,trans:c}).then(function(d){return d.map(function(m){return r.hook.reading.fire(m)})})})},Zt.prototype.bulkAdd=function(n,r,c){var d=this,m=Array.isArray(r)?r:void 0,h=(c=c||(m?void 0:r))?c.allKeys:void 0;return this._trans("readwrite",function(v){var k=d.schema.primKey,q=k.auto,k=k.keyPath;if(k&&m)throw new ot.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(m&&m.length!==n.length)throw new ot.InvalidArgument("Arguments objects and keys must have the same length");var j=n.length,q=k&&q?n.map(lo(k)):n;return d.core.mutate({trans:v,type:"add",keys:m,values:q,wantResults:h}).then(function(M){var C=M.numFailures,O=M.failures;if(C===0)return h?M.results:M.lastResult;throw new tt("".concat(d.name,".bulkAdd(): ").concat(C," of ").concat(j," operations failed"),O)})})},Zt.prototype.bulkPut=function(n,r,c){var d=this,m=Array.isArray(r)?r:void 0,h=(c=c||(m?void 0:r))?c.allKeys:void 0;return this._trans("readwrite",function(v){var k=d.schema.primKey,q=k.auto,k=k.keyPath;if(k&&m)throw new ot.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(m&&m.length!==n.length)throw new ot.InvalidArgument("Arguments objects and keys must have the same length");var j=n.length,q=k&&q?n.map(lo(k)):n;return d.core.mutate({trans:v,type:"put",keys:m,values:q,wantResults:h}).then(function(M){var C=M.numFailures,O=M.failures;if(C===0)return h?M.results:M.lastResult;throw new tt("".concat(d.name,".bulkPut(): ").concat(C," of ").concat(j," operations failed"),O)})})},Zt.prototype.bulkUpdate=function(n){var r=this,c=this.core,d=n.map(function(v){return v.key}),m=n.map(function(v){return v.changes}),h=[];return this._trans("readwrite",function(v){return c.getMany({trans:v,keys:d,cache:"clone"}).then(function(k){var j=[],q=[],M=(n.forEach(function(C,O){var R=C.key,D=C.changes,E=k[O];if(E){for(var K=0,J=Object.keys(D);K<J.length;K++){var U=J[K],Z=D[U];if(U===r.schema.primKey.keyPath){if(Lt(Z,R)!==0)throw new ot.Constraint("Cannot update primary key in bulkUpdate()")}else H(E,U,Z)}h.push(O),j.push(R),q.push(E)}}),j.length);return c.mutate({trans:v,type:"put",keys:j,values:q,updates:{keys:d,changeSpecs:m}}).then(function(C){var O=C.numFailures,R=C.failures;if(O===0)return M;for(var D=0,E=Object.keys(R);D<E.length;D++){var K,J=E[D],U=h[Number(J)];U!=null&&(K=R[J],delete R[J],R[U]=K)}throw new tt("".concat(r.name,".bulkUpdate(): ").concat(O," of ").concat(M," operations failed"),R)})})})},Zt.prototype.bulkDelete=function(n){var r=this,c=n.length;return this._trans("readwrite",function(d){return r.core.mutate({trans:d,type:"delete",keys:n}).then(function(m){return co(r,n,m)})}).then(function(d){var m=d.numFailures,h=d.failures;if(m===0)return d.lastResult;throw new tt("".concat(r.name,".bulkDelete(): ").concat(m," of ").concat(c," operations failed"),h)})};var Vl=Zt;function Zt(){}function cn(n){function r(v,k){if(k){for(var j=arguments.length,q=new Array(j-1);--j;)q[j-1]=arguments[j];return c[v].subscribe.apply(null,q),n}if(typeof v=="string")return c[v]}var c={};r.addEventType=h;for(var d=1,m=arguments.length;d<m;++d)h(arguments[d]);return r;function h(v,k,j){var q,M;if(typeof v!="object")return k=k||w,M={subscribers:[],fire:j=j||S,subscribe:function(C){M.subscribers.indexOf(C)===-1&&(M.subscribers.push(C),M.fire=k(M.fire,C))},unsubscribe:function(C){M.subscribers=M.subscribers.filter(function(O){return O!==C}),M.fire=M.subscribers.reduce(k,j)}},c[v]=r[v]=M;l(q=v).forEach(function(C){var O=q[C];if(b(O))h(C,q[C][0],q[C][1]);else{if(O!=="asap")throw new ot.InvalidArgument("Invalid event config");var R=h(C,A,function(){for(var D=arguments.length,E=new Array(D);D--;)E[D]=arguments[D];R.subscribers.forEach(function(K){X(function(){K.apply(null,E)})})})}})}}function un(n,r){return I(r).from({prototype:n}),r}function Ui(n,r){return!(n.filter||n.algorithm||n.or)&&(r?n.justLimit:!n.replayFilter)}function Fr(n,r){n.filter=Si(n.filter,r)}function zr(n,r,c){var d=n.replayFilter;n.replayFilter=d?function(){return Si(d(),r())}:r,n.justLimit=c&&!d}function uo(n,r){if(n.isPrimKey)return r.primaryKey;var c=r.getIndexByKeyPath(n.index);if(c)return c;throw new ot.Schema("KeyPath "+n.index+" on object store "+r.name+" is not indexed")}function Kl(n,r,c){var d=uo(n,r.schema);return r.openCursor({trans:c,values:!n.keysOnly,reverse:n.dir==="prev",unique:!!n.unique,query:{index:d,range:n.range}})}function bo(n,r,c,d){var m,h,v=n.replayFilter?Si(n.filter,n.replayFilter()):n.filter;return n.or?(m={},h=function(k,j,q){var M,C;v&&!v(j,q,function(O){return j.stop(O)},function(O){return j.fail(O)})||((C=""+(M=j.primaryKey))=="[object ArrayBuffer]"&&(C=""+new Uint8Array(M)),g(m,C))||(m[C]=!0,r(k,j,q))},Promise.all([n.or._iterate(h,c),Hl(Kl(n,d,c),n.algorithm,h,!n.keysOnly&&n.valueMapper)])):Hl(Kl(n,d,c),Si(n.algorithm,v),r,!n.keysOnly&&n.valueMapper)}function Hl(n,r,c,d){var m=ae(d?function(h,v,k){return c(d(h),v,k)}:c);return n.then(function(h){if(h)return h.start(function(){var v=function(){return h.continue()};r&&!r(h,function(k){return v=k},function(k){h.stop(k),v=S},function(k){h.fail(k),v=S})||m(h.value,h,function(k){return v=k}),v()})})}Ut.prototype._read=function(n,r){var c=this._ctx;return c.error?c.table._trans(null,Te.bind(null,c.error)):c.table._trans("readonly",n).then(r)},Ut.prototype._write=function(n){var r=this._ctx;return r.error?r.table._trans(null,Te.bind(null,r.error)):r.table._trans("readwrite",n,"locked")},Ut.prototype._addAlgorithm=function(n){var r=this._ctx;r.algorithm=Si(r.algorithm,n)},Ut.prototype._iterate=function(n,r){return bo(this._ctx,n,r,this._ctx.table.core)},Ut.prototype.clone=function(n){var r=Object.create(this.constructor.prototype),c=Object.create(this._ctx);return n&&u(c,n),r._ctx=c,r},Ut.prototype.raw=function(){return this._ctx.valueMapper=null,this},Ut.prototype.each=function(n){var r=this._ctx;return this._read(function(c){return bo(r,n,c,r.table.core)})},Ut.prototype.count=function(n){var r=this;return this._read(function(c){var d,m=r._ctx,h=m.table.core;return Ui(m,!0)?h.count({trans:c,query:{index:uo(m,h.schema),range:m.range}}).then(function(v){return Math.min(v,m.limit)}):(d=0,bo(m,function(){return++d,!1},c,h).then(function(){return d}))}).then(n)},Ut.prototype.sortBy=function(n,r){var c=n.split(".").reverse(),d=c[0],m=c.length-1;function h(j,q){return q?h(j[c[q]],q-1):j[d]}var v=this._ctx.dir==="next"?1:-1;function k(j,q){return Lt(h(j,m),h(q,m))*v}return this.toArray(function(j){return j.sort(k)}).then(r)},Ut.prototype.toArray=function(n){var r=this;return this._read(function(c){var d,m,h,v=r._ctx;return v.dir==="next"&&Ui(v,!0)&&0<v.limit?(d=v.valueMapper,m=uo(v,v.table.core.schema),v.table.core.query({trans:c,limit:v.limit,values:!0,query:{index:m,range:v.range}}).then(function(k){return k=k.result,d?k.map(d):k})):(h=[],bo(v,function(k){return h.push(k)},c,v.table.core).then(function(){return h}))},n)},Ut.prototype.offset=function(n){var r=this._ctx;return n<=0||(r.offset+=n,Ui(r)?zr(r,function(){var c=n;return function(d,m){return c===0||(c===1?--c:m(function(){d.advance(c),c=0}),!1)}}):zr(r,function(){var c=n;return function(){return--c<0}})),this},Ut.prototype.limit=function(n){return this._ctx.limit=Math.min(this._ctx.limit,n),zr(this._ctx,function(){var r=n;return function(c,d,m){return--r<=0&&d(m),0<=r}},!0),this},Ut.prototype.until=function(n,r){return Fr(this._ctx,function(c,d,m){return!n(c.value)||(d(m),r)}),this},Ut.prototype.first=function(n){return this.limit(1).toArray(function(r){return r[0]}).then(n)},Ut.prototype.last=function(n){return this.reverse().first(n)},Ut.prototype.filter=function(n){var r;return Fr(this._ctx,function(c){return n(c.value)}),(r=this._ctx).isMatch=Si(r.isMatch,n),this},Ut.prototype.and=function(n){return this.filter(n)},Ut.prototype.or=function(n){return new this.db.WhereClause(this._ctx.table,n,this)},Ut.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},Ut.prototype.desc=function(){return this.reverse()},Ut.prototype.eachKey=function(n){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(c,d){n(d.key,d)})},Ut.prototype.eachUniqueKey=function(n){return this._ctx.unique="unique",this.eachKey(n)},Ut.prototype.eachPrimaryKey=function(n){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(c,d){n(d.primaryKey,d)})},Ut.prototype.keys=function(n){var r=this._ctx,c=(r.keysOnly=!r.isMatch,[]);return this.each(function(d,m){c.push(m.key)}).then(function(){return c}).then(n)},Ut.prototype.primaryKeys=function(n){var r=this._ctx;if(r.dir==="next"&&Ui(r,!0)&&0<r.limit)return this._read(function(d){var m=uo(r,r.table.core.schema);return r.table.core.query({trans:d,values:!1,limit:r.limit,query:{index:m,range:r.range}})}).then(function(d){return d.result}).then(n);r.keysOnly=!r.isMatch;var c=[];return this.each(function(d,m){c.push(m.primaryKey)}).then(function(){return c}).then(n)},Ut.prototype.uniqueKeys=function(n){return this._ctx.unique="unique",this.keys(n)},Ut.prototype.firstKey=function(n){return this.limit(1).keys(function(r){return r[0]}).then(n)},Ut.prototype.lastKey=function(n){return this.reverse().firstKey(n)},Ut.prototype.distinct=function(){var n,r=this._ctx,r=r.index&&r.table.schema.idxByName[r.index];return r&&r.multi&&(n={},Fr(this._ctx,function(d){var d=d.primaryKey.toString(),m=g(n,d);return n[d]=!0,!m})),this},Ut.prototype.modify=function(n){var r=this,c=this._ctx;return this._write(function(d){function m(E,K){var J=K.failures;O+=E-K.numFailures;for(var U=0,Z=l(J);U<Z.length;U++){var at=Z[U];C.push(J[at])}}var h=typeof n=="function"?n:function(E){return $l(E,n)},v=c.table.core,M=v.schema.primaryKey,k=M.outbound,j=M.extractKey,q=200,M=r.db._options.modifyChunkSize,C=(M&&(q=typeof M=="object"?M[v.name]||M["*"]||200:M),[]),O=0,R=[],D=n===Gl;return r.clone().primaryKeys().then(function(E){function K(U){var Z=Math.min(q,E.length-U),at=E.slice(U,U+Z);return(D?Promise.resolve([]):v.getMany({trans:d,keys:at,cache:"immutable"})).then(function(bt){var dt=[],ct=[],St=k?[]:null,vt=D?at:[];if(!D)for(var ut=0;ut<Z;++ut){var Tt=bt[ut],Ft={value:Ct(Tt),primKey:E[U+ut]};h.call(Ft,Ft.value,Ft)!==!1&&(Ft.value==null?vt.push(E[U+ut]):k||Lt(j(Tt),j(Ft.value))===0?(ct.push(Ft.value),k&&St.push(E[U+ut])):(vt.push(E[U+ut]),dt.push(Ft.value)))}return Promise.resolve(0<dt.length&&v.mutate({trans:d,type:"add",values:dt}).then(function(qt){for(var xt in qt.failures)vt.splice(parseInt(xt),1);m(dt.length,qt)})).then(function(){return(0<ct.length||J&&typeof n=="object")&&v.mutate({trans:d,type:"put",keys:St,values:ct,criteria:J,changeSpec:typeof n!="function"&&n,isAdditionalChunk:0<U}).then(function(qt){return m(ct.length,qt)})}).then(function(){return(0<vt.length||J&&D)&&v.mutate({trans:d,type:"delete",keys:vt,criteria:J,isAdditionalChunk:0<U}).then(function(qt){return co(c.table,vt,qt)}).then(function(qt){return m(vt.length,qt)})}).then(function(){return E.length>U+Z&&K(U+q)})})}var J=Ui(c)&&c.limit===1/0&&(typeof n!="function"||D)&&{index:c.index,range:c.range};return K(0).then(function(){if(0<C.length)throw new Se("Error modifying one or more objects",C,O,R);return E.length})})})},Ut.prototype.delete=function(){var n=this._ctx,r=n.range;return!Ui(n)||n.table.schema.yProps||!n.isPrimKey&&r.type!==3?this.modify(Gl):this._write(function(c){var d=n.table.core.schema.primaryKey,m=r;return n.table.core.count({trans:c,query:{index:d,range:m}}).then(function(h){return n.table.core.mutate({trans:c,type:"deleteRange",range:m}).then(function(j){var k=j.failures,j=j.numFailures;if(j)throw new Se("Could not delete some values",Object.keys(k).map(function(q){return k[q]}),h-j);return h-j})})})};var P0=Ut;function Ut(){}var Gl=function(n,r){return r.value=null};function x0(n,r){return n<r?-1:n===r?0:1}function A0(n,r){return r<n?-1:n===r?0:1}function Xe(n,r,c){return n=n instanceof Jl?new n.Collection(n):n,n._ctx.error=new(c||TypeError)(r),n}function qi(n){return new n.Collection(n,function(){return Wl("")}).limit(0)}function mo(R,r,c,d){var m,h,v,k,j,q,M,C=c.length;if(!c.every(function(E){return typeof E=="string"}))return Xe(R,Ll);function O(E){m=E==="next"?function(J){return J.toUpperCase()}:function(J){return J.toLowerCase()},h=E==="next"?function(J){return J.toLowerCase()}:function(J){return J.toUpperCase()},v=E==="next"?x0:A0;var K=c.map(function(J){return{lower:h(J),upper:m(J)}}).sort(function(J,U){return v(J.lower,U.lower)});k=K.map(function(J){return J.upper}),j=K.map(function(J){return J.lower}),M=(q=E)==="next"?"":d}O("next");var R=new R.Collection(R,function(){return ni(k[0],j[C-1]+d)}),D=(R._ondirectionchange=function(E){O(E)},0);return R._addAlgorithm(function(E,K,J){var U=E.key;if(typeof U=="string"){var Z=h(U);if(r(Z,j,D))return!0;for(var at=null,bt=D;bt<C;++bt){var dt=((ct,St,vt,ut,Tt,Ft)=>{for(var qt=Math.min(ct.length,ut.length),xt=-1,Nt=0;Nt<qt;++Nt){var de=St[Nt];if(de!==ut[Nt])return Tt(ct[Nt],vt[Nt])<0?ct.substr(0,Nt)+vt[Nt]+vt.substr(Nt+1):Tt(ct[Nt],ut[Nt])<0?ct.substr(0,Nt)+ut[Nt]+vt.substr(Nt+1):0<=xt?ct.substr(0,xt)+St[xt]+vt.substr(xt+1):null;Tt(ct[Nt],de)<0&&(xt=Nt)}return qt<ut.length&&Ft==="next"?ct+vt.substr(ct.length):qt<ct.length&&Ft==="prev"?ct.substr(0,vt.length):xt<0?null:ct.substr(0,xt)+ut[xt]+vt.substr(xt+1)})(U,Z,k[bt],j[bt],v,q);dt===null&&at===null?D=bt+1:(at===null||0<v(at,dt))&&(at=dt)}K(at!==null?function(){E.continue(at+M)}:J)}return!1}),R}function ni(n,r,c,d){return{type:2,lower:n,upper:r,lowerOpen:c,upperOpen:d}}function Wl(n){return{type:1,lower:n,upper:n}}Object.defineProperty(Me.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Me.prototype.between=function(n,r,c,d){c=c!==!1,d=d===!0;try{return 0<this._cmp(n,r)||this._cmp(n,r)===0&&(c||d)&&(!c||!d)?qi(this):new this.Collection(this,function(){return ni(n,r,!c,!d)})}catch{return Xe(this,Rs)}},Me.prototype.equals=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return Wl(n)})},Me.prototype.above=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(n,void 0,!0)})},Me.prototype.aboveOrEqual=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(n,void 0,!1)})},Me.prototype.below=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(void 0,n,!1,!0)})},Me.prototype.belowOrEqual=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(void 0,n)})},Me.prototype.startsWith=function(n){return typeof n!="string"?Xe(this,Ll):this.between(n,n+ki,!0,!0)},Me.prototype.startsWithIgnoreCase=function(n){return n===""?this.startsWith(n):mo(this,function(r,c){return r.indexOf(c[0])===0},[n],ki)},Me.prototype.equalsIgnoreCase=function(n){return mo(this,function(r,c){return r===c[0]},[n],"")},Me.prototype.anyOfIgnoreCase=function(){var n=be.apply(Xt,arguments);return n.length===0?qi(this):mo(this,function(r,c){return c.indexOf(r)!==-1},n,"")},Me.prototype.startsWithAnyOfIgnoreCase=function(){var n=be.apply(Xt,arguments);return n.length===0?qi(this):mo(this,function(r,c){return c.some(function(d){return r.indexOf(d)===0})},n,ki)},Me.prototype.anyOf=function(){var n,r,c=this,d=be.apply(Xt,arguments),m=this._cmp;try{d.sort(m)}catch{return Xe(this,Rs)}return d.length===0?qi(this):((n=new this.Collection(this,function(){return ni(d[0],d[d.length-1])}))._ondirectionchange=function(h){m=h==="next"?c._ascending:c._descending,d.sort(m)},r=0,n._addAlgorithm(function(h,v,k){for(var j=h.key;0<m(j,d[r]);)if(++r===d.length)return v(k),!1;return m(j,d[r])===0||(v(function(){h.continue(d[r])}),!1)}),n)},Me.prototype.notEqual=function(n){return this.inAnyRange([[-1/0,n],[n,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Me.prototype.noneOf=function(){var n=be.apply(Xt,arguments);if(n.length===0)return new this.Collection(this);try{n.sort(this._ascending)}catch{return Xe(this,Rs)}var r=n.reduce(function(c,d){return c?c.concat([[c[c.length-1][1],d]]):[[-1/0,d]]},null);return r.push([n[n.length-1],this.db._maxKey]),this.inAnyRange(r,{includeLowers:!1,includeUppers:!1})},Me.prototype.inAnyRange=function(n,J){var c=this,d=this._cmp,m=this._ascending,h=this._descending,v=this._min,k=this._max;if(n.length===0)return qi(this);if(!n.every(function(U){return U[0]!==void 0&&U[1]!==void 0&&m(U[0],U[1])<=0}))return Xe(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ot.InvalidArgument);var j=!J||J.includeLowers!==!1,q=J&&J.includeUppers===!0,M,C=m;function O(U,Z){return C(U[0],Z[0])}try{(M=n.reduce(function(U,Z){for(var at=0,bt=U.length;at<bt;++at){var dt=U[at];if(d(Z[0],dt[1])<0&&0<d(Z[1],dt[0])){dt[0]=v(dt[0],Z[0]),dt[1]=k(dt[1],Z[1]);break}}return at===bt&&U.push(Z),U},[])).sort(O)}catch{return Xe(this,Rs)}var R=0,D=q?function(U){return 0<m(U,M[R][1])}:function(U){return 0<=m(U,M[R][1])},E=j?function(U){return 0<h(U,M[R][0])}:function(U){return 0<=h(U,M[R][0])},K=D,J=new this.Collection(this,function(){return ni(M[0][0],M[M.length-1][1],!j,!q)});return J._ondirectionchange=function(U){C=U==="next"?(K=D,m):(K=E,h),M.sort(O)},J._addAlgorithm(function(U,Z,at){for(var bt,dt=U.key;K(dt);)if(++R===M.length)return Z(at),!1;return!D(bt=dt)&&!E(bt)||(c._cmp(dt,M[R][1])===0||c._cmp(dt,M[R][0])===0||Z(function(){C===m?U.continue(M[R][0]):U.continue(M[R][1])}),!1)}),J},Me.prototype.startsWithAnyOf=function(){var n=be.apply(Xt,arguments);return n.every(function(r){return typeof r=="string"})?n.length===0?qi(this):this.inAnyRange(n.map(function(r){return[r,r+ki]})):Xe(this,"startsWithAnyOf() only works with strings")};var Jl=Me;function Me(){}function _s(n){return ae(function(r){return bn(r),n(r.target.error),!1})}function bn(n){n.stopPropagation&&n.stopPropagation(),n.preventDefault&&n.preventDefault()}var dn="storagemutated",Br="x-storagemutated-1",oi=cn(null,dn),C0=(ws.prototype._lock=function(){return N(!kt.global),++this._reculock,this._reculock!==1||kt.global||(kt.lockOwnerFor=this),this},ws.prototype._unlock=function(){if(N(!kt.global),--this._reculock==0)for(kt.global||(kt.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var n=this._blockedFuncs.shift();try{yi(n[1],n[0])}catch{}}return this},ws.prototype._locked=function(){return this._reculock&&kt.lockOwnerFor!==this},ws.prototype.create=function(n){var r=this;if(this.mode){var c=this.db.idbdb,d=this.db._state.dbOpenError;if(N(!this.idbtrans),!n&&!c)switch(d&&d.name){case"DatabaseClosedError":throw new ot.DatabaseClosed(d);case"MissingAPIError":throw new ot.MissingAPI(d.message,d);default:throw new ot.OpenFailed(d)}if(!this.active)throw new ot.TransactionInactive;N(this._completion._state===null),(n=this.idbtrans=n||(this.db.core||c).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=ae(function(m){bn(m),r._reject(n.error)}),n.onabort=ae(function(m){bn(m),r.active&&r._reject(new ot.Abort(n.error)),r.active=!1,r.on("abort").fire(m)}),n.oncomplete=ae(function(){r.active=!1,r._resolve(),"mutatedParts"in n&&oi.storagemutated.fire(n.mutatedParts)})}return this},ws.prototype._promise=function(n,r,c){var d,m=this;return n==="readwrite"&&this.mode!=="readwrite"?Te(new ot.ReadOnly("Transaction is readonly")):this.active?this._locked()?new ht(function(h,v){m._blockedFuncs.push([function(){m._promise(n,r,c).then(h,v)},kt])}):c?ei(function(){var h=new ht(function(v,k){m._lock();var j=r(v,k,m);j&&j.then&&j.then(v,k)});return h.finally(function(){return m._unlock()}),h._lib=!0,h}):((d=new ht(function(h,v){var k=r(h,v,m);k&&k.then&&k.then(h,v)}))._lib=!0,d):Te(new ot.TransactionInactive)},ws.prototype._root=function(){return this.parent?this.parent._root():this},ws.prototype.waitFor=function(n){var r,c=this._root(),d=ht.resolve(n),m=(c._waitingFor?c._waitingFor=c._waitingFor.then(function(){return d}):(c._waitingFor=d,c._waitingQueue=[],r=c.idbtrans.objectStore(c.storeNames[0]),(function h(){for(++c._spinCount;c._waitingQueue.length;)c._waitingQueue.shift()();c._waitingFor&&(r.get(-1/0).onsuccess=h)})()),c._waitingFor);return new ht(function(h,v){d.then(function(k){return c._waitingQueue.push(ae(h.bind(null,k)))},function(k){return c._waitingQueue.push(ae(v.bind(null,k)))}).finally(function(){c._waitingFor===m&&(c._waitingFor=null)})})},ws.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ot.Abort))},ws.prototype.table=function(n){var r=this._memoizedTables||(this._memoizedTables={});if(g(r,n))return r[n];var c=this.schema[n];if(c)return(c=new this.db.Table(n,c,this)).core=this.db.core.table(n),r[n]=c;throw new ot.NotFound("Table "+n+" not part of transaction")},ws);function ws(){}function Ur(n,r,c,d,m,h,v,k){return{name:n,keyPath:r,unique:c,multi:d,auto:m,compound:h,src:(c&&!v?"&":"")+(d?"*":"")+(m?"++":"")+Ql(r),type:k}}function Ql(n){return typeof n=="string"?n:n?"["+[].join.call(n,"+")+"]":""}function qr(n,r,c){return{name:n,primKey:r,indexes:c,mappedClass:null,idxByName:(d=function(m){return[m.name,m]},c.reduce(function(m,h,v){return h=d(h,v),h&&(m[h[0]]=h[1]),m},{}))};var d}var mn=function(n){try{return n.only([[]]),mn=function(){return[[]]},[[]]}catch{return mn=function(){return ki},ki}};function $r(n){return n==null?function(){}:typeof n=="string"?(r=n).split(".").length===1?function(c){return c[r]}:function(c){return W(c,r)}:function(c){return W(c,n)};var r}function Yl(n){return[].slice.call(n)}var E0=0;function fn(n){return n==null?":id":typeof n=="string"?n:"[".concat(n.join("+"),"]")}function j0(n,r,j){function d(D){if(D.type===3)return null;if(D.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var C=D.lower,O=D.upper,R=D.lowerOpen,D=D.upperOpen;return C===void 0?O===void 0?null:r.upperBound(O,!!D):O===void 0?r.lowerBound(C,!!R):r.bound(C,O,!!R,!!D)}function m(M){var C,O=M.name;return{name:O,schema:M,mutate:function(R){var D=R.trans,E=R.type,K=R.keys,J=R.values,U=R.range;return new Promise(function(Z,at){Z=ae(Z);var bt=D.objectStore(O),dt=bt.keyPath==null,ct=E==="put"||E==="add";if(!ct&&E!=="delete"&&E!=="deleteRange")throw new Error("Invalid operation type: "+E);var St,vt=(K||J||{length:1}).length;if(K&&J&&K.length!==J.length)throw new Error("Given keys array must have same length as given values array.");if(vt===0)return Z({numFailures:0,failures:{},results:[],lastResult:void 0});function ut(ve){++qt,bn(ve)}var Tt=[],Ft=[],qt=0;if(E==="deleteRange"){if(U.type===4)return Z({numFailures:qt,failures:Ft,results:[],lastResult:void 0});U.type===3?Tt.push(St=bt.clear()):Tt.push(St=bt.delete(d(U)))}else{var dt=ct?dt?[J,K]:[J,null]:[K,null],xt=dt[0],Nt=dt[1];if(ct)for(var de=0;de<vt;++de)Tt.push(St=Nt&&Nt[de]!==void 0?bt[E](xt[de],Nt[de]):bt[E](xt[de])),St.onerror=ut;else for(de=0;de<vt;++de)Tt.push(St=bt[E](xt[de])),St.onerror=ut}function is(ve){ve=ve.target.result,Tt.forEach(function(wi,aa){return wi.error!=null&&(Ft[aa]=wi.error)}),Z({numFailures:qt,failures:Ft,results:E==="delete"?K:Tt.map(function(wi){return wi.result}),lastResult:ve})}St.onerror=function(ve){ut(ve),is(ve)},St.onsuccess=is})},getMany:function(R){var D=R.trans,E=R.keys;return new Promise(function(K,J){K=ae(K);for(var U,Z=D.objectStore(O),at=E.length,bt=new Array(at),dt=0,ct=0,St=function(Tt){Tt=Tt.target,bt[Tt._pos]=Tt.result,++ct===dt&&K(bt)},vt=_s(J),ut=0;ut<at;++ut)E[ut]!=null&&((U=Z.get(E[ut]))._pos=ut,U.onsuccess=St,U.onerror=vt,++dt);dt===0&&K(bt)})},get:function(R){var D=R.trans,E=R.key;return new Promise(function(K,J){K=ae(K);var U=D.objectStore(O).get(E);U.onsuccess=function(Z){return K(Z.target.result)},U.onerror=_s(J)})},query:(C=k,function(R){return new Promise(function(D,E){D=ae(D);var K,J,U,ct=R.trans,Z=R.values,at=R.limit,dt=R.query,bt=at===1/0?void 0:at,St=dt.index,dt=dt.range,ct=ct.objectStore(O),ct=St.isPrimaryKey?ct:ct.index(St.name),St=d(dt);if(at===0)return D({result:[]});C?((dt=Z?ct.getAll(St,bt):ct.getAllKeys(St,bt)).onsuccess=function(vt){return D({result:vt.target.result})},dt.onerror=_s(E)):(K=0,J=!Z&&"openKeyCursor"in ct?ct.openKeyCursor(St):ct.openCursor(St),U=[],J.onsuccess=function(vt){var ut=J.result;return!ut||(U.push(Z?ut.value:ut.primaryKey),++K===at)?D({result:U}):void ut.continue()},J.onerror=_s(E))})}),openCursor:function(R){var D=R.trans,E=R.values,K=R.query,J=R.reverse,U=R.unique;return new Promise(function(Z,at){Z=ae(Z);var ct=K.index,bt=K.range,dt=D.objectStore(O),dt=ct.isPrimaryKey?dt:dt.index(ct.name),ct=J?U?"prevunique":"prev":U?"nextunique":"next",St=!E&&"openKeyCursor"in dt?dt.openKeyCursor(d(bt),ct):dt.openCursor(d(bt),ct);St.onerror=_s(at),St.onsuccess=ae(function(vt){var ut,Tt,Ft,qt,xt=St.result;xt?(xt.___id=++E0,xt.done=!1,ut=xt.continue.bind(xt),Tt=(Tt=xt.continuePrimaryKey)&&Tt.bind(xt),Ft=xt.advance.bind(xt),qt=function(){throw new Error("Cursor not stopped")},xt.trans=D,xt.stop=xt.continue=xt.continuePrimaryKey=xt.advance=function(){throw new Error("Cursor not started")},xt.fail=ae(at),xt.next=function(){var Nt=this,de=1;return this.start(function(){return de--?Nt.continue():Nt.stop()}).then(function(){return Nt})},xt.start=function(Nt){function de(){if(St.result)try{Nt()}catch(ve){xt.fail(ve)}else xt.done=!0,xt.start=function(){throw new Error("Cursor behind last entry")},xt.stop()}var is=new Promise(function(ve,wi){ve=ae(ve),St.onerror=_s(wi),xt.fail=wi,xt.stop=function(aa){xt.stop=xt.continue=xt.continuePrimaryKey=xt.advance=qt,ve(aa)}});return St.onsuccess=ae(function(ve){St.onsuccess=de,de()}),xt.continue=ut,xt.continuePrimaryKey=Tt,xt.advance=Ft,de(),is},Z(xt)):Z(null)},at)})},count:function(R){var D=R.query,E=R.trans,K=D.index,J=D.range;return new Promise(function(U,Z){var at=E.objectStore(O),at=K.isPrimaryKey?at:at.index(K.name),bt=d(J),bt=bt?at.count(bt):at.count();bt.onsuccess=ae(function(dt){return U(dt.target.result)}),bt.onerror=_s(Z)})}}}h=j,v=Yl((j=n).objectStoreNames);var h,j={schema:{name:j.name,tables:v.map(function(M){return h.objectStore(M)}).map(function(M){var C=M.keyPath,O=M.autoIncrement,D=b(C),R={},D={name:M.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:C==null,compound:D,keyPath:C,autoIncrement:O,unique:!0,extractKey:$r(C)},indexes:Yl(M.indexNames).map(function(E){return M.index(E)}).map(function(U){var Z=U.name,K=U.unique,J=U.multiEntry,U=U.keyPath,Z={name:Z,compound:b(U),keyPath:U,unique:K,multiEntry:J,extractKey:$r(U)};return R[fn(U)]=Z}),getIndexByKeyPath:function(E){return R[fn(E)]}};return R[":id"]=D.primaryKey,C!=null&&(R[fn(C)]=D.primaryKey),D})},hasGetAll:0<v.length&&"getAll"in h.objectStore(v[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)},v=j.schema,k=j.hasGetAll,j=v.tables.map(m),q={};return j.forEach(function(M){return q[M.name]=M}),{stack:"dbcore",transaction:n.transaction.bind(n),table:function(M){if(q[M])return q[M];throw new Error("Table '".concat(M,"' not found"))},MIN_KEY:-1/0,MAX_KEY:mn(r),schema:v}}function M0(n,r,c,d){return c=c.IDBKeyRange,r=j0(r,c,d),{dbcore:n.dbcore.reduce(function(m,h){return h=h.create,i(i({},m),h(m))},r)}}function fo(n,r){var c=r.db,c=M0(n._middlewares,c,n._deps,r);n.core=c.dbcore,n.tables.forEach(function(d){var m=d.name;n.core.schema.tables.some(function(h){return h.name===m})&&(d.core=n.core.table(m),n[m]instanceof n.Table)&&(n[m].core=d.core)})}function po(n,r,c,d){c.forEach(function(m){var h=d[m];r.forEach(function(v){var k=(function j(q,M){return $(q,M)||(q=f(q))&&j(q,M)})(v,m);(!k||"value"in k&&k.value===void 0)&&(v===n.Transaction.prototype||v instanceof n.Transaction?z(v,m,{get:function(){return this.table(m)},set:function(j){_(this,m,{value:j,writable:!0,configurable:!0,enumerable:!0})}}):v[m]=new n.Table(m,h))})})}function Vr(n,r){r.forEach(function(c){for(var d in c)c[d]instanceof n.Table&&delete c[d]})}function D0(n,r){return n._cfg.version-r._cfg.version}function O0(n,r,c,d){var m=n._dbSchema,h=(c.objectStoreNames.contains("$meta")&&!m.$meta&&(m.$meta=qr("$meta",Zl("")[0],[]),n._storeNames.push("$meta")),n._createTransaction("readwrite",n._storeNames,m)),v=(h.create(c),h._completion.catch(d),h._reject.bind(h)),k=kt.transless||kt;ei(function(){if(kt.trans=h,kt.transless=k,r!==0)return fo(n,c),q=r,((j=h).storeNames.includes("$meta")?j.table("$meta").get("version").then(function(M){return M??q}):ht.resolve(q)).then(function(K){var C=n,O=K,R=h,D=c,E=[],K=C._versions,J=C._dbSchema=go(0,C.idbdb,D);return(K=K.filter(function(U){return U._cfg.version>=O})).length===0?ht.resolve():(K.forEach(function(U){E.push(function(){var Z,at,bt,dt=J,ct=U._cfg.dbschema,St=(vo(C,dt,D),vo(C,ct,D),J=C._dbSchema=ct,Kr(dt,ct)),vt=(St.add.forEach(function(ut){Hr(D,ut[0],ut[1].primKey,ut[1].indexes)}),St.change.forEach(function(ut){if(ut.recreate)throw new ot.Upgrade("Not yet support for changing primary key");var Tt=D.objectStore(ut.name);ut.add.forEach(function(Ft){return ho(Tt,Ft)}),ut.change.forEach(function(Ft){Tt.deleteIndex(Ft.name),ho(Tt,Ft)}),ut.del.forEach(function(Ft){return Tt.deleteIndex(Ft)})}),U._cfg.contentUpgrade);if(vt&&U._cfg.version>O)return fo(C,D),R._memoizedTables={},Z=rt(ct),St.del.forEach(function(ut){Z[ut]=dt[ut]}),Vr(C,[C.Transaction.prototype]),po(C,[C.Transaction.prototype],l(Z),Z),R.schema=Z,(at=Pe(vt))&&zi(),ct=ht.follow(function(){var ut;(bt=vt(R))&&at&&(ut=si.bind(null,null),bt.then(ut,ut))}),bt&&typeof bt.then=="function"?ht.resolve(bt):ct.then(function(){return bt})}),E.push(function(Z){var at,bt,dt=U._cfg.dbschema;at=dt,bt=Z,[].slice.call(bt.db.objectStoreNames).forEach(function(ct){return at[ct]==null&&bt.db.deleteObjectStore(ct)}),Vr(C,[C.Transaction.prototype]),po(C,[C.Transaction.prototype],C._storeNames,C._dbSchema),R.schema=C._dbSchema}),E.push(function(Z){C.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(C.idbdb.version/10)===U._cfg.version?(C.idbdb.deleteObjectStore("$meta"),delete C._dbSchema.$meta,C._storeNames=C._storeNames.filter(function(at){return at!=="$meta"})):Z.objectStore("$meta").put(U._cfg.version,"version"))})}),(function U(){return E.length?ht.resolve(E.shift()(R.idbtrans)).then(U):ht.resolve()})().then(function(){Xl(J,D)}))}).catch(v);var j,q;l(m).forEach(function(M){Hr(c,M,m[M].primKey,m[M].indexes)}),fo(n,c),ht.follow(function(){return n.on.populate.fire(h)}).catch(v)})}function R0(n,r){Xl(n._dbSchema,r),r.db.version%10!=0||r.objectStoreNames.contains("$meta")||r.db.createObjectStore("$meta").add(Math.ceil(r.db.version/10-1),"version");var c=go(0,n.idbdb,r);vo(n,n._dbSchema,r);for(var d=0,m=Kr(c,n._dbSchema).change;d<m.length;d++){var h=(v=>{if(v.change.length||v.recreate)return console.warn("Unable to patch indexes of table ".concat(v.name," because it has changes on the type of index or primary key.")),{value:void 0};var k=r.objectStore(v.name);v.add.forEach(function(j){V&&console.debug("Dexie upgrade patch: Creating missing index ".concat(v.name,".").concat(j.src)),ho(k,j)})})(m[d]);if(typeof h=="object")return h.value}}function Kr(n,r){var c,d={del:[],add:[],change:[]};for(c in n)r[c]||d.del.push(c);for(c in r){var m=n[c],h=r[c];if(m){var v={name:c,def:h,recreate:!1,del:[],add:[],change:[]};if(""+(m.primKey.keyPath||"")!=""+(h.primKey.keyPath||"")||m.primKey.auto!==h.primKey.auto)v.recreate=!0,d.change.push(v);else{var k=m.idxByName,j=h.idxByName,q=void 0;for(q in k)j[q]||v.del.push(q);for(q in j){var M=k[q],C=j[q];M?M.src!==C.src&&v.change.push(C):v.add.push(C)}(0<v.del.length||0<v.add.length||0<v.change.length)&&d.change.push(v)}}else d.add.push([c,h])}return d}function Hr(n,r,c,d){var m=n.db.createObjectStore(r,c.keyPath?{keyPath:c.keyPath,autoIncrement:c.auto}:{autoIncrement:c.auto});d.forEach(function(h){return ho(m,h)})}function Xl(n,r){l(n).forEach(function(c){r.db.objectStoreNames.contains(c)||(V&&console.debug("Dexie: Creating missing table",c),Hr(r,c,n[c].primKey,n[c].indexes))})}function ho(n,r){n.createIndex(r.name,r.keyPath,{unique:r.unique,multiEntry:r.multi})}function go(n,r,c){var d={};return x(r.objectStoreNames,0).forEach(function(m){for(var h=c.objectStore(m),v=Ur(Ql(q=h.keyPath),q||"",!0,!1,!!h.autoIncrement,q&&typeof q!="string",!0),k=[],j=0;j<h.indexNames.length;++j){var M=h.index(h.indexNames[j]),q=M.keyPath,M=Ur(M.name,q,!!M.unique,!!M.multiEntry,!1,q&&typeof q!="string",!1);k.push(M)}d[m]=qr(m,v,k)}),d}function vo(n,r,c){for(var d=c.db.objectStoreNames,m=0;m<d.length;++m){var h=d[m],v=c.objectStore(h);n._hasGetAll="getAll"in v;for(var k=0;k<v.indexNames.length;++k){var j,q=v.indexNames[k],M=v.index(q).keyPath,M=typeof M=="string"?M:"["+x(M).join("+")+"]";r[h]&&(j=r[h].idxByName[M])&&(j.name=q,delete r[h].idxByName[M],r[h].idxByName[q]=j)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&a.WorkerGlobalScope&&a instanceof a.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(n._hasGetAll=!1)}function Zl(n){return n.split(",").map(function(r,c){var m=r.split(":"),d=(d=m[1])==null?void 0:d.trim(),m=(r=m[0].trim()).replace(/([&*]|\+\+)/g,""),h=/^\[/.test(m)?m.match(/^\[(.*)\]$/)[1].split("+"):m;return Ur(m,h||null,/\&/.test(r),/\*/.test(r),/\+\+/.test(r),b(h),c===0,d)})}$i.prototype._createTableSchema=qr,$i.prototype._parseIndexSyntax=Zl,$i.prototype._parseStoresSpec=function(n,r){var c=this;l(n).forEach(function(d){if(n[d]!==null){var m=c._parseIndexSyntax(n[d]),h=m.shift();if(!h)throw new ot.Schema("Invalid schema for table "+d+": "+n[d]);if(h.unique=!0,h.multi)throw new ot.Schema("Primary key cannot be multiEntry*");m.forEach(function(v){if(v.auto)throw new ot.Schema("Only primary key can be marked as autoIncrement (++)");if(!v.keyPath)throw new ot.Schema("Index must have a name and cannot be an empty string")}),h=c._createTableSchema(d,h,m),r[d]=h}})},$i.prototype.stores=function(c){var r=this.db,c=(this._cfg.storesSource=this._cfg.storesSource?u(this._cfg.storesSource,c):c,r._versions),d={},m={};return c.forEach(function(h){u(d,h._cfg.storesSource),m=h._cfg.dbschema={},h._parseStoresSpec(d,m)}),r._dbSchema=m,Vr(r,[r._allTables,r,r.Transaction.prototype]),po(r,[r._allTables,r,r.Transaction.prototype,this._cfg.tables],l(m),m),r._storeNames=l(m),this},$i.prototype.upgrade=function(n){return this._cfg.contentUpgrade=L(this._cfg.contentUpgrade||S,n),this};var N0=$i;function $i(){}function Gr(n,r){var c=n._dbNamesDB;return c||(c=n._dbNamesDB=new Ns(ao,{addons:[],indexedDB:n,IDBKeyRange:r})).version(1).stores({dbnames:"name"}),c.table("dbnames")}function Wr(n){return n&&typeof n.databases=="function"}function Jr(n){return ei(function(){return kt.letThrough=!0,n()})}function Qr(n){return!("from"in n)}var Fe=function(n,r){var c;if(!this)return c=new Fe,n&&"d"in n&&u(c,n),c;u(this,arguments.length?{d:1,from:n,to:1<arguments.length?r:n}:{d:0})};function pn(n,r,c){var d=Lt(r,c);if(!isNaN(d)){if(0<d)throw RangeError();if(Qr(n))return u(n,{from:r,to:c,d:1});var d=n.l,m=n.r;if(Lt(c,n.from)<0)return d?pn(d,r,c):n.l={from:r,to:c,d:1,l:null,r:null},ec(n);if(0<Lt(r,n.to))return m?pn(m,r,c):n.r={from:r,to:c,d:1,l:null,r:null},ec(n);Lt(r,n.from)<0&&(n.from=r,n.l=null,n.d=m?m.d+1:1),0<Lt(c,n.to)&&(n.to=c,n.r=null,n.d=n.l?n.l.d+1:1),r=!n.r,d&&!n.l&&hn(n,d),m&&r&&hn(n,m)}}function hn(n,r){Qr(r)||(function c(d,m){var h=m.from,v=m.l,k=m.r;pn(d,h,m.to),v&&c(d,v),k&&c(d,k)})(n,r)}function tc(n,r){var c=yo(r),d=c.next();if(!d.done)for(var m=d.value,h=yo(n),v=h.next(m.from),k=v.value;!d.done&&!v.done;){if(Lt(k.from,m.to)<=0&&0<=Lt(k.to,m.from))return!0;Lt(m.from,k.from)<0?m=(d=c.next(k.from)).value:k=(v=h.next(m.from)).value}return!1}function yo(n){var r=Qr(n)?null:{s:0,n};return{next:function(c){for(var d=0<arguments.length;r;)switch(r.s){case 0:if(r.s=1,d)for(;r.n.l&&Lt(c,r.n.from)<0;)r={up:r,n:r.n.l,s:1};else for(;r.n.l;)r={up:r,n:r.n.l,s:1};case 1:if(r.s=2,!d||Lt(c,r.n.to)<=0)return{value:r.n,done:!1};case 2:if(r.n.r){r.s=3,r={up:r,n:r.n.r,s:0};continue}case 3:r=r.up}return{done:!0}}}}function ec(n){var r,c,d,m=(((m=n.r)==null?void 0:m.d)||0)-(((m=n.l)==null?void 0:m.d)||0),m=1<m?"r":m<-1?"l":"";m&&(r=m=="r"?"l":"r",c=i({},n),d=n[m],n.from=d.from,n.to=d.to,n[m]=d[m],c[m]=d[r],(n[r]=c).d=sc(c)),n.d=sc(n)}function sc(c){var r=c.r,c=c.l;return(r?c?Math.max(r.d,c.d):r.d:c?c.d:0)+1}function ko(n,r){return l(r).forEach(function(c){n[c]?hn(n[c],r[c]):n[c]=(function d(m){var h,v,k={};for(h in m)g(m,h)&&(v=m[h],k[h]=!v||typeof v!="object"||Pt.has(v.constructor)?v:d(v));return k})(r[c])}),n}function Yr(n,r){return n.all||r.all||Object.keys(n).some(function(c){return r[c]&&tc(r[c],n[c])})}y(Fe.prototype,((ft={add:function(n){return hn(this,n),this},addKey:function(n){return pn(this,n,n),this},addKeys:function(n){var r=this;return n.forEach(function(c){return pn(r,c,c)}),this},hasKey:function(n){var r=yo(this).next(n).value;return r&&Lt(r.from,n)<=0&&0<=Lt(r.to,n)}})[It]=function(){return yo(this)},ft));var Ti={},Xr={},Zr=!1;function So(n){ko(Xr,n),Zr||(Zr=!0,setTimeout(function(){Zr=!1,ta(Xr,!(Xr={}))},0))}function ta(n,r){r===void 0&&(r=!1);var c=new Set;if(n.all)for(var d=0,m=Object.values(Ti);d<m.length;d++)ic(k=m[d],n,c,r);else for(var h in n){var v,k,h=/^idb\:\/\/(.*)\/(.*)\//.exec(h);h&&(v=h[1],h=h[2],k=Ti["idb://".concat(v,"/").concat(h)])&&ic(k,n,c,r)}c.forEach(function(j){return j()})}function ic(n,r,c,d){for(var m=[],h=0,v=Object.entries(n.queries.query);h<v.length;h++){for(var k=v[h],j=k[0],q=[],M=0,C=k[1];M<C.length;M++){var O=C[M];Yr(r,O.obsSet)?O.subscribers.forEach(function(K){return c.add(K)}):d&&q.push(O)}d&&m.push([j,q])}if(d)for(var R=0,D=m;R<D.length;R++){var E=D[R],j=E[0],q=E[1];n.queries.query[j]=q}}function I0(n){var r=n._state,c=n._deps.indexedDB;if(r.isBeingOpened||n.idbdb)return r.dbReadyPromise.then(function(){return r.dbOpenError?Te(r.dbOpenError):n});r.isBeingOpened=!0,r.dbOpenError=null,r.openComplete=!1;var d=r.openCanceller,m=Math.round(10*n.verno),h=!1;function v(){if(r.openCanceller!==d)throw new ot.DatabaseClosed("db.open() was cancelled")}function k(){return new ht(function(O,R){if(v(),!c)throw new ot.MissingAPI;var D=n.name,E=r.autoSchema||!m?c.open(D):c.open(D,m);if(!E)throw new ot.MissingAPI;E.onerror=_s(R),E.onblocked=ae(n._fireOnBlocked),E.onupgradeneeded=ae(function(K){var J;M=E.transaction,r.autoSchema&&!n._options.allowEmptyDB?(E.onerror=bn,M.abort(),E.result.close(),(J=c.deleteDatabase(D)).onsuccess=J.onerror=ae(function(){R(new ot.NoSuchDatabase("Database ".concat(D," doesnt exist")))})):(M.onerror=_s(R),J=K.oldVersion>Math.pow(2,62)?0:K.oldVersion,C=J<1,n.idbdb=E.result,h&&R0(n,M),O0(n,J/10,M,R))},R),E.onsuccess=ae(function(){M=null;var K,J,U,Z,at,bt,dt=n.idbdb=E.result,ct=x(dt.objectStoreNames);if(0<ct.length)try{var St=dt.transaction((at=ct).length===1?at[0]:at,"readonly");if(r.autoSchema)bt=dt,Z=St,(U=n).verno=bt.version/10,Z=U._dbSchema=go(0,bt,Z),U._storeNames=x(bt.objectStoreNames,0),po(U,[U._allTables],l(Z),Z);else if(vo(n,n._dbSchema,St),J=St,((J=Kr(go(0,(K=n).idbdb,J),K._dbSchema)).add.length||J.change.some(function(vt){return vt.add.length||vt.change.length}))&&!h)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),dt.close(),m=dt.version+1,h=!0,O(k());fo(n,St)}catch{}Bi.push(n),dt.onversionchange=ae(function(vt){r.vcFired=!0,n.on("versionchange").fire(vt)}),dt.onclose=ae(function(){n.close({disableAutoOpen:!1})}),C&&(ct=n._deps,at=D,Wr(bt=ct.indexedDB)||at===ao||Gr(bt,ct.IDBKeyRange).put({name:at}).catch(S)),O()},R)}).catch(function(O){switch(O?.name){case"UnknownError":if(0<r.PR1398_maxLoop)return r.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),k();break;case"VersionError":if(0<m)return m=0,k()}return ht.reject(O)})}var j,q=r.dbReadyResolve,M=null,C=!1;return ht.race([d,(typeof navigator>"u"?ht.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(O){function R(){return indexedDB.databases().finally(O)}j=setInterval(R,100),R()}).finally(function(){return clearInterval(j)}):Promise.resolve()).then(k)]).then(function(){return v(),r.onReadyBeingFired=[],ht.resolve(Jr(function(){return n.on.ready.fire(n.vip)})).then(function O(){var R;if(0<r.onReadyBeingFired.length)return R=r.onReadyBeingFired.reduce(L,S),r.onReadyBeingFired=[],ht.resolve(Jr(function(){return R(n.vip)})).then(O)})}).finally(function(){r.openCanceller===d&&(r.onReadyBeingFired=null,r.isBeingOpened=!1)}).catch(function(O){r.dbOpenError=O;try{M&&M.abort()}catch{}return d===r.openCanceller&&n._close(),Te(O)}).finally(function(){r.openComplete=!0,q()}).then(function(){var O;return C&&(O={},n.tables.forEach(function(R){R.schema.indexes.forEach(function(D){D.name&&(O["idb://".concat(n.name,"/").concat(R.name,"/").concat(D.name)]=new Fe(-1/0,[[[]]]))}),O["idb://".concat(n.name,"/").concat(R.name,"/")]=O["idb://".concat(n.name,"/").concat(R.name,"/:dels")]=new Fe(-1/0,[[[]]])}),oi(dn).fire(O),ta(O,!0)),n})}function ea(n){function r(h){return n.next(h)}var c=m(r),d=m(function(h){return n.throw(h)});function m(h){return function(k){var k=h(k),j=k.value;return k.done?j:j&&typeof j.then=="function"?j.then(c,d):b(j)?Promise.all(j).then(c,d):c(j)}}return m(r)()}function To(n,r,c){for(var d=b(n)?n.slice():[n],m=0;m<c;++m)d.push(r);return d}var L0={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(n){return i(i({},n),{table:function(d){var c=n.table(d),d=c.schema,m={},h=[];function v(O,R,D){var U=fn(O),E=m[U]=m[U]||[],K=O==null?0:typeof O=="string"?1:O.length,J=0<R,U=i(i({},D),{name:J?"".concat(U,"(virtual-from:").concat(D.name,")"):D.name,lowLevelIndex:D,isVirtual:J,keyTail:R,keyLength:K,extractKey:$r(O),unique:!J&&D.unique});return E.push(U),U.isPrimaryKey||h.push(U),1<K&&v(K===2?O[0]:O.slice(0,K-1),R+1,D),E.sort(function(Z,at){return Z.keyTail-at.keyTail}),U}var k=v(d.primaryKey.keyPath,0,d.primaryKey);m[":id"]=[k];for(var j=0,q=d.indexes;j<q.length;j++){var M=q[j];v(M.keyPath,0,M)}function C(O){var R,D=O.query.index;return D.isVirtual?i(i({},O),{query:{index:D.lowLevelIndex,range:(R=O.query.range,D=D.keyTail,{type:R.type===1?2:R.type,lower:To(R.lower,R.lowerOpen?n.MAX_KEY:n.MIN_KEY,D),lowerOpen:!0,upper:To(R.upper,R.upperOpen?n.MIN_KEY:n.MAX_KEY,D),upperOpen:!0})}}):O}return i(i({},c),{schema:i(i({},d),{primaryKey:k,indexes:h,getIndexByKeyPath:function(O){return(O=m[fn(O)])&&O[0]}}),count:function(O){return c.count(C(O))},query:function(O){return c.query(C(O))},openCursor:function(O){var R=O.query.index,D=R.keyTail,E=R.keyLength;return R.isVirtual?c.openCursor(C(O)).then(function(J){return J&&K(J)}):c.openCursor(O);function K(J){return Object.create(J,{continue:{value:function(U){U!=null?J.continue(To(U,O.reverse?n.MAX_KEY:n.MIN_KEY,D)):O.unique?J.continue(J.key.slice(0,E).concat(O.reverse?n.MIN_KEY:n.MAX_KEY,D)):J.continue()}},continuePrimaryKey:{value:function(U,Z){J.continuePrimaryKey(To(U,n.MAX_KEY,D),Z)}},primaryKey:{get:function(){return J.primaryKey}},key:{get:function(){var U=J.key;return E===1?U[0]:U.slice(0,E)}},value:{get:function(){return J.value}}})}}})}})}};function sa(n,r,c,d){return c=c||{},d=d||"",l(n).forEach(function(m){var h,v,k;g(r,m)?(h=n[m],v=r[m],typeof h=="object"&&typeof v=="object"&&h&&v?(k=ue(h))!==ue(v)?c[d+m]=r[m]:k==="Object"?sa(h,v,c,d+m+"."):h!==v&&(c[d+m]=r[m]):h!==v&&(c[d+m]=r[m])):c[d+m]=void 0}),l(r).forEach(function(m){g(n,m)||(c[d+m]=r[m])}),c}function ia(n,r){return r.type==="delete"?r.keys:r.keys||r.values.map(n.extractKey)}var F0={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(n){return i(i({},n),{table:function(r){var c=n.table(r),d=c.schema.primaryKey;return i(i({},c),{mutate:function(m){var h=kt.trans,v=h.table(r).hook,k=v.deleting,j=v.creating,q=v.updating;switch(m.type){case"add":if(j.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"put":if(j.fire===S&&q.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"delete":if(k.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"deleteRange":if(k.fire===S)break;return h._promise("readwrite",function(){return(function C(O,R,D){return c.query({trans:O,values:!1,query:{index:d,range:R},limit:D}).then(function(E){var K=E.result;return M({type:"delete",keys:K,trans:O}).then(function(J){return 0<J.numFailures?Promise.reject(J.failures[0]):K.length<D?{failures:[],numFailures:0,lastResult:void 0}:C(O,i(i({},R),{lower:K[K.length-1],lowerOpen:!0}),D)})})})(m.trans,m.range,1e4)},!0)}return c.mutate(m);function M(C){var O,R,D,E=kt.trans,K=C.keys||ia(d,C);if(K)return(C=C.type==="add"||C.type==="put"?i(i({},C),{keys:K}):i({},C)).type!=="delete"&&(C.values=o([],C.values)),C.keys&&(C.keys=o([],C.keys)),O=c,D=K,((R=C).type==="add"?Promise.resolve([]):O.getMany({trans:R.trans,keys:D,cache:"immutable"})).then(function(J){var U=K.map(function(Z,at){var bt,dt,ct,St=J[at],vt={onerror:null,onsuccess:null};return C.type==="delete"?k.fire.call(vt,Z,St,E):C.type==="add"||St===void 0?(bt=j.fire.call(vt,Z,C.values[at],E),Z==null&&bt!=null&&(C.keys[at]=Z=bt,d.outbound||H(C.values[at],d.keyPath,Z))):(bt=sa(St,C.values[at]),(dt=q.fire.call(vt,bt,Z,St,E))&&(ct=C.values[at],Object.keys(dt).forEach(function(ut){g(ct,ut)?ct[ut]=dt[ut]:H(ct,ut,dt[ut])}))),vt});return c.mutate(C).then(function(Z){for(var at=Z.failures,bt=Z.results,dt=Z.numFailures,Z=Z.lastResult,ct=0;ct<K.length;++ct){var St=(bt||K)[ct],vt=U[ct];St==null?vt.onerror&&vt.onerror(at[ct]):vt.onsuccess&&vt.onsuccess(C.type==="put"&&J[ct]?C.values[ct]:St)}return{failures:at,results:bt,numFailures:dt,lastResult:Z}}).catch(function(Z){return U.forEach(function(at){return at.onerror&&at.onerror(Z)}),Promise.reject(Z)})});throw new Error("Keys missing")}}})}})}};function nc(n,r,c){try{if(!r||r.keys.length<n.length)return null;for(var d=[],m=0,h=0;m<r.keys.length&&h<n.length;++m)Lt(r.keys[m],n[h])===0&&(d.push(c?Ct(r.values[m]):r.values[m]),++h);return d.length===n.length?d:null}catch{return null}}var z0={stack:"dbcore",level:-1,create:function(n){return{table:function(r){var c=n.table(r);return i(i({},c),{getMany:function(d){var m;return d.cache?(m=nc(d.keys,d.trans._cache,d.cache==="clone"))?ht.resolve(m):c.getMany(d).then(function(h){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Ct(h):h},h}):c.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),c.mutate(d)}})}}}};function oc(n,r){return n.trans.mode==="readonly"&&!!n.subscr&&!n.trans.explicit&&n.trans.db._options.cache!=="disabled"&&!r.schema.primaryKey.outbound}function rc(n,r){switch(n){case"query":return r.values&&!r.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var B0={stack:"dbcore",level:0,name:"Observability",create:function(n){var r=n.schema.name,c=new Fe(n.MIN_KEY,n.MAX_KEY);return i(i({},n),{transaction:function(d,m,h){if(kt.subscr&&m!=="readonly")throw new ot.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(kt.querier));return n.transaction(d,m,h)},table:function(d){function m(K){var E,K=K.query;return[E=K.index,new Fe((E=(K=K.range).lower)!=null?E:n.MIN_KEY,(E=K.upper)!=null?E:n.MAX_KEY)]}var h=n.table(d),v=h.schema,k=v.primaryKey,j=v.indexes,q=k.extractKey,M=k.outbound,C=k.autoIncrement&&j.filter(function(D){return D.compound&&D.keyPath.includes(k.keyPath)}),O=i(i({},h),{mutate:function(D){function E(Tt){return Tt="idb://".concat(r,"/").concat(d,"/").concat(Tt),at[Tt]||(at[Tt]=new Fe)}var K,J,U,Z=D.trans,at=D.mutatedParts||(D.mutatedParts={}),bt=E(""),dt=E(":dels"),ct=D.type,vt=D.type==="deleteRange"?[D.range]:D.type==="delete"?[D.keys]:D.values.length<50?[ia(k,D).filter(function(Tt){return Tt}),D.values]:[],St=vt[0],vt=vt[1],ut=D.trans._cache;return b(St)?(bt.addKeys(St),(ct=ct==="delete"||St.length===vt.length?nc(St,ut):null)||dt.addKeys(St),(ct||vt)&&(K=E,J=ct,U=vt,v.indexes.forEach(function(Tt){var Ft=K(Tt.name||"");function qt(Nt){return Nt!=null?Tt.extractKey(Nt):null}function xt(Nt){Tt.multiEntry&&b(Nt)?Nt.forEach(function(de){return Ft.addKey(de)}):Ft.addKey(Nt)}(J||U).forEach(function(Nt,ve){var is=J&&qt(J[ve]),ve=U&&qt(U[ve]);Lt(is,ve)!==0&&(is!=null&&xt(is),ve!=null)&&xt(ve)})}))):St?(vt={from:(ut=St.lower)!=null?ut:n.MIN_KEY,to:(ct=St.upper)!=null?ct:n.MAX_KEY},dt.add(vt),bt.add(vt)):(bt.add(c),dt.add(c),v.indexes.forEach(function(Tt){return E(Tt.name).add(c)})),h.mutate(D).then(function(Tt){return!St||D.type!=="add"&&D.type!=="put"||(bt.addKeys(Tt.results),C&&C.forEach(function(Ft){for(var qt=D.values.map(function(is){return Ft.extractKey(is)}),xt=Ft.keyPath.findIndex(function(is){return is===k.keyPath}),Nt=0,de=Tt.results.length;Nt<de;++Nt)qt[Nt][xt]=Tt.results[Nt];E(Ft.name).addKeys(qt)})),Z.mutatedParts=ko(Z.mutatedParts||{},at),Tt})}}),R={get:function(D){return[k,new Fe(D.key)]},getMany:function(D){return[k,new Fe().addKeys(D.keys)]},count:m,query:m,openCursor:m};return l(R).forEach(function(D){O[D]=function(E){var K=kt.subscr,J=!!K,U=oc(kt,h)&&rc(D,E)?E.obsSet={}:K;if(J){var Z,K=function(vt){return vt="idb://".concat(r,"/").concat(d,"/").concat(vt),U[vt]||(U[vt]=new Fe)},at=K(""),bt=K(":dels"),J=R[D](E),dt=J[0],J=J[1];if((D==="query"&&dt.isPrimaryKey&&!E.values?bt:K(dt.name||"")).add(J),!dt.isPrimaryKey){if(D!=="count")return Z=D==="query"&&M&&E.values&&h.query(i(i({},E),{values:!1})),h[D].apply(this,arguments).then(function(vt){if(D==="query"){if(M&&E.values)return Z.then(function(qt){return qt=qt.result,at.addKeys(qt),vt});var ut=E.values?vt.result.map(q):vt.result;(E.values?at:bt).addKeys(ut)}else{var Tt,Ft;if(D==="openCursor")return Ft=E.values,(Tt=vt)&&Object.create(Tt,{key:{get:function(){return bt.addKey(Tt.primaryKey),Tt.key}},primaryKey:{get:function(){var qt=Tt.primaryKey;return bt.addKey(qt),qt}},value:{get:function(){return Ft&&at.addKey(Tt.primaryKey),Tt.value}}})}return vt});bt.add(c)}}return h[D].apply(this,arguments)}}),O}})}};function ac(n,r,c){var d;return c.numFailures===0?r:r.type==="deleteRange"||(d=r.keys?r.keys.length:"values"in r&&r.values?r.values.length:1,c.numFailures===d)?null:(d=i({},r),b(d.keys)&&(d.keys=d.keys.filter(function(m,h){return!(h in c.failures)})),"values"in d&&b(d.values)&&(d.values=d.values.filter(function(m,h){return!(h in c.failures)})),d)}function na(n,r){return c=n,((d=r).lower===void 0||(d.lowerOpen?0<Lt(c,d.lower):0<=Lt(c,d.lower)))&&(c=n,(d=r).upper===void 0||(d.upperOpen?Lt(c,d.upper)<0:Lt(c,d.upper)<=0));var c,d}function lc(n,r,c,d,m,h){var v,k,j,q,M,C;return!c||c.length===0||(v=r.query.index,k=v.multiEntry,j=r.query.range,q=d.schema.primaryKey.extractKey,M=v.extractKey,C=(v.lowLevelIndex||v).extractKey,(d=c.reduce(function(O,R){var D=O,E=[];if(R.type==="add"||R.type==="put")for(var K=new Fe,J=R.values.length-1;0<=J;--J){var U,Z=R.values[J],at=q(Z);!K.hasKey(at)&&(U=M(Z),k&&b(U)?U.some(function(vt){return na(vt,j)}):na(U,j))&&(K.addKey(at),E.push(Z))}switch(R.type){case"add":var bt=new Fe().addKeys(r.values?O.map(function(ut){return q(ut)}):O),D=O.concat(r.values?E.filter(function(ut){return ut=q(ut),!bt.hasKey(ut)&&(bt.addKey(ut),!0)}):E.map(function(ut){return q(ut)}).filter(function(ut){return!bt.hasKey(ut)&&(bt.addKey(ut),!0)}));break;case"put":var dt=new Fe().addKeys(R.values.map(function(ut){return q(ut)}));D=O.filter(function(ut){return!dt.hasKey(r.values?q(ut):ut)}).concat(r.values?E:E.map(function(ut){return q(ut)}));break;case"delete":var ct=new Fe().addKeys(R.keys);D=O.filter(function(ut){return!ct.hasKey(r.values?q(ut):ut)});break;case"deleteRange":var St=R.range;D=O.filter(function(ut){return!na(q(ut),St)})}return D},n))===n)?n:(d.sort(function(O,R){return Lt(C(O),C(R))||Lt(q(O),q(R))}),r.limit&&r.limit<1/0&&(d.length>r.limit?d.length=r.limit:n.length===r.limit&&d.length<r.limit&&(m.dirty=!0)),h?Object.freeze(d):d)}function cc(n,r){return Lt(n.lower,r.lower)===0&&Lt(n.upper,r.upper)===0&&!!n.lowerOpen==!!r.lowerOpen&&!!n.upperOpen==!!r.upperOpen}function U0(n,r){return((c,d,m,h)=>{if(c===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((c=Lt(c,d))===0){if(m&&h)return 0;if(m)return 1;if(h)return-1}return c})(n.lower,r.lower,n.lowerOpen,r.lowerOpen)<=0&&0<=((c,d,m,h)=>{if(c===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((c=Lt(c,d))===0){if(m&&h)return 0;if(m)return-1;if(h)return 1}return c})(n.upper,r.upper,n.upperOpen,r.upperOpen)}function q0(n,r,c,d){n.subscribers.add(c),d.addEventListener("abort",function(){var m,h;n.subscribers.delete(c),n.subscribers.size===0&&(m=n,h=r,setTimeout(function(){m.subscribers.size===0&&Dt(h,m)},3e3))})}var $0={stack:"dbcore",level:0,name:"Cache",create:function(n){var r=n.schema.name;return i(i({},n),{transaction:function(c,d,m){var h,v,k=n.transaction(c,d,m);return d==="readwrite"&&(m=(h=new AbortController).signal,k.addEventListener("abort",(v=function(j){return function(){if(h.abort(),d==="readwrite"){for(var q=new Set,M=0,C=c;M<C.length;M++){var O=C[M],R=Ti["idb://".concat(r,"/").concat(O)];if(R){var D=n.table(O),E=R.optimisticOps.filter(function(Tt){return Tt.trans===k});if(k._explicit&&j&&k.mutatedParts)for(var K=0,J=Object.values(R.queries.query);K<J.length;K++)for(var U=0,Z=(dt=J[K]).slice();U<Z.length;U++)Yr((ct=Z[U]).obsSet,k.mutatedParts)&&(Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)}));else if(0<E.length){R.optimisticOps=R.optimisticOps.filter(function(Tt){return Tt.trans!==k});for(var at=0,bt=Object.values(R.queries.query);at<bt.length;at++)for(var dt,ct,St,vt=0,ut=(dt=bt[at]).slice();vt<ut.length;vt++)(ct=ut[vt]).res!=null&&k.mutatedParts&&(j&&!ct.dirty?(St=Object.isFrozen(ct.res),St=lc(ct.res,ct.req,E,D,ct,St),ct.dirty?(Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)})):St!==ct.res&&(ct.res=St,ct.promise=ht.resolve({result:St}))):(ct.dirty&&Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)})))}}}q.forEach(function(Tt){return Tt()})}}})(!1),{signal:m}),k.addEventListener("error",v(!1),{signal:m}),k.addEventListener("complete",v(!0),{signal:m})),k},table:function(c){var d=n.table(c),m=d.schema.primaryKey;return i(i({},d),{mutate:function(h){var v,k=kt.trans;return!m.outbound&&k.db._options.cache!=="disabled"&&!k.explicit&&k.idbtrans.mode==="readwrite"&&(v=Ti["idb://".concat(r,"/").concat(c)])?(k=d.mutate(h),h.type!=="add"&&h.type!=="put"||!(50<=h.values.length||ia(m,h).some(function(j){return j==null}))?(v.optimisticOps.push(h),h.mutatedParts&&So(h.mutatedParts),k.then(function(j){0<j.numFailures&&(Dt(v.optimisticOps,h),(j=ac(0,h,j))&&v.optimisticOps.push(j),h.mutatedParts)&&So(h.mutatedParts)}),k.catch(function(){Dt(v.optimisticOps,h),h.mutatedParts&&So(h.mutatedParts)})):k.then(function(j){var q=ac(0,i(i({},h),{values:h.values.map(function(M,C){var O;return j.failures[C]?M:(H(O=(O=m.keyPath)!=null&&O.includes(".")?Ct(M):i({},M),m.keyPath,j.results[C]),O)})}),j);v.optimisticOps.push(q),queueMicrotask(function(){return h.mutatedParts&&So(h.mutatedParts)})}),k):d.mutate(h)},query:function(h){var v,k,j,q,M,C,O;return oc(kt,d)&&rc("query",h)?(v=((j=kt.trans)==null?void 0:j.db._options.cache)==="immutable",k=(j=kt).requery,j=j.signal,C=((R,D,E,K)=>{var J=Ti["idb://".concat(R,"/").concat(D)];if(!J)return[];if(!(R=J.queries[E]))return[null,!1,J,null];var U=R[(K.query?K.query.index.name:null)||""];if(!U)return[null,!1,J,null];switch(E){case"query":var Z=U.find(function(at){return at.req.limit===K.limit&&at.req.values===K.values&&cc(at.req.query.range,K.query.range)});return Z?[Z,!0,J,U]:[U.find(function(at){return("limit"in at.req?at.req.limit:1/0)>=K.limit&&(!K.values||at.req.values)&&U0(at.req.query.range,K.query.range)}),!1,J,U];case"count":return Z=U.find(function(at){return cc(at.req.query.range,K.query.range)}),[Z,!!Z,J,U]}})(r,c,"query",h),O=C[0],q=C[2],M=C[3],O&&C[1]?O.obsSet=h.obsSet:(C=d.query(h).then(function(R){var D=R.result;if(O&&(O.res=D),v){for(var E=0,K=D.length;E<K;++E)Object.freeze(D[E]);Object.freeze(D)}else R.result=Ct(D);return R}).catch(function(R){return M&&O&&Dt(M,O),Promise.reject(R)}),O={obsSet:h.obsSet,promise:C,subscribers:new Set,type:"query",req:h,dirty:!1},M?M.push(O):(M=[O],(q=q||(Ti["idb://".concat(r,"/").concat(c)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[h.query.index.name||""]=M)),q0(O,M,k,j),O.promise.then(function(R){return{result:lc(R.result,h,q?.optimisticOps,d,O,v)}})):d.query(h)}})}})}};function _o(n,r){return new Proxy(n,{get:function(c,d,m){return d==="db"?r:Reflect.get(c,d,m)}})}_e.prototype.version=function(n){if(isNaN(n)||n<.1)throw new ot.Type("Given version is not a positive number");if(n=Math.round(10*n)/10,this.idbdb||this._state.isBeingOpened)throw new ot.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,n);var r=this._versions,c=r.filter(function(d){return d._cfg.version===n})[0];return c||(c=new this.Version(n),r.push(c),r.sort(D0),c.stores({}),this._state.autoSchema=!1),c},_e.prototype._whenReady=function(n){var r=this;return this.idbdb&&(this._state.openComplete||kt.letThrough||this._vip)?n():new ht(function(c,d){if(r._state.openComplete)return d(new ot.DatabaseClosed(r._state.dbOpenError));if(!r._state.isBeingOpened){if(!r._state.autoOpen)return void d(new ot.DatabaseClosed);r.open().catch(S)}r._state.dbReadyPromise.then(c,d)}).then(n)},_e.prototype.use=function(m){var r=m.stack,c=m.create,d=m.level,m=m.name,h=(m&&this.unuse({stack:r,name:m}),this._middlewares[r]||(this._middlewares[r]=[]));return h.push({stack:r,create:c,level:d??10,name:m}),h.sort(function(v,k){return v.level-k.level}),this},_e.prototype.unuse=function(n){var r=n.stack,c=n.name,d=n.create;return r&&this._middlewares[r]&&(this._middlewares[r]=this._middlewares[r].filter(function(m){return d?m.create!==d:!!c&&m.name!==c})),this},_e.prototype.open=function(){var n=this;return yi(ge,function(){return I0(n)})},_e.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var n=this._state,r=Bi.indexOf(this);if(0<=r&&Bi.splice(r,1),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}n.isBeingOpened||(n.dbReadyPromise=new ht(function(c){n.dbReadyResolve=c}),n.openCanceller=new ht(function(c,d){n.cancelOpen=d}))},_e.prototype.close=function(r){var r=(r===void 0?{disableAutoOpen:!0}:r).disableAutoOpen,c=this._state;r?(c.isBeingOpened&&c.cancelOpen(new ot.DatabaseClosed),this._close(),c.autoOpen=!1,c.dbOpenError=new ot.DatabaseClosed):(this._close(),c.autoOpen=this._options.autoOpen||c.isBeingOpened,c.openComplete=!1,c.dbOpenError=null)},_e.prototype.delete=function(n){var r=this,c=(n===void 0&&(n={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),d=this._state;return new ht(function(m,h){function v(){r.close(n);var k=r._deps.indexedDB.deleteDatabase(r.name);k.onsuccess=ae(function(){var j,q,M;j=r._deps,q=r.name,Wr(M=j.indexedDB)||q===ao||Gr(M,j.IDBKeyRange).delete(q).catch(S),m()}),k.onerror=_s(h),k.onblocked=r._fireOnBlocked}if(c)throw new ot.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(v):v()})},_e.prototype.backendDB=function(){return this.idbdb},_e.prototype.isOpen=function(){return this.idbdb!==null},_e.prototype.hasBeenClosed=function(){var n=this._state.dbOpenError;return n&&n.name==="DatabaseClosed"},_e.prototype.hasFailed=function(){return this._state.dbOpenError!==null},_e.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(_e.prototype,"tables",{get:function(){var n=this;return l(this._allTables).map(function(r){return n._allTables[r]})},enumerable:!1,configurable:!0}),_e.prototype.transaction=function(){var n=(function(r,c,d){var m=arguments.length;if(m<2)throw new ot.InvalidArgument("Too few arguments");for(var h=new Array(m-1);--m;)h[m-1]=arguments[m];return d=h.pop(),[r,yt(h),d]}).apply(this,arguments);return this._transaction.apply(this,n)},_e.prototype._transaction=function(n,r,c){var d,m,h=this,v=kt.trans,k=(v&&v.db===this&&n.indexOf("!")===-1||(v=null),n.indexOf("?")!==-1);n=n.replace("!","").replace("?","");try{if(m=r.map(function(q){if(q=q instanceof h.Table?q.name:q,typeof q!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return q}),n=="r"||n===Ir)d=Ir;else{if(n!="rw"&&n!=Lr)throw new ot.InvalidArgument("Invalid transaction mode: "+n);d=Lr}if(v){if(v.mode===Ir&&d===Lr){if(!k)throw new ot.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");v=null}v&&m.forEach(function(q){if(v&&v.storeNames.indexOf(q)===-1){if(!k)throw new ot.SubTransaction("Table "+q+" not included in parent transaction.");v=null}}),k&&v&&!v.active&&(v=null)}}catch(q){return v?v._promise(null,function(M,C){C(q)}):Te(q)}var j=(function q(M,C,O,R,D){return ht.resolve().then(function(){var U=kt.transless||kt,E=M._createTransaction(C,O,M._dbSchema,R),U=(E.explicit=!0,{trans:E,transless:U});if(R)E.idbtrans=R.idbtrans;else try{E.create(),E.idbtrans._explicit=!0,M._state.PR1398_maxLoop=3}catch(Z){return Z.name===gt.InvalidState&&M.isOpen()&&0<--M._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),M.close({disableAutoOpen:!1}),M.open().then(function(){return q(M,C,O,null,D)})):Te(Z)}var K,J=Pe(D),U=(J&&zi(),ht.follow(function(){var Z;(K=D.call(E,E))&&(J?(Z=si.bind(null,null),K.then(Z,Z)):typeof K.next=="function"&&typeof K.throw=="function"&&(K=ea(K)))},U));return(K&&typeof K.then=="function"?ht.resolve(K).then(function(Z){return E.active?Z:Te(new ot.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):U.then(function(){return K})).then(function(Z){return R&&E._resolve(),E._completion.then(function(){return Z})}).catch(function(Z){return E._reject(Z),Te(Z)})})}).bind(null,this,d,m,v,c);return v?v._promise(d,j,"lock"):kt.trans?yi(kt.transless,function(){return h._whenReady(j)}):this._whenReady(j)},_e.prototype.table=function(n){if(g(this._allTables,n))return this._allTables[n];throw new ot.InvalidTable("Table ".concat(n," does not exist"))};var Ns=_e;function _e(n,r){var c,d,m,h,v,k=this,j=(this._middlewares={},this.verno=0,_e.dependencies),j=(this._options=r=i({addons:_e.addons,autoOpen:!0,indexedDB:j.indexedDB,IDBKeyRange:j.IDBKeyRange,cache:"cloned"},r),this._deps={indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange},r.addons),q=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:S,dbReadyPromise:null,cancelOpen:S,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:r.autoOpen}),M=(q.dbReadyPromise=new ht(function(C){q.dbReadyResolve=C}),q.openCanceller=new ht(function(C,O){q.cancelOpen=O}),this._state=q,this.name=n,this.on=cn(this,"populate","blocked","versionchange","close",{ready:[L,S]}),this.once=function(C,O){var R=function(){for(var D=[],E=0;E<arguments.length;E++)D[E]=arguments[E];k.on(C).unsubscribe(R),O.apply(k,D)};return k.on(C,R)},this.on.ready.subscribe=G(this.on.ready.subscribe,function(C){return function(O,R){_e.vip(function(){var D,E=k._state;E.openComplete?(E.dbOpenError||ht.resolve().then(O),R&&C(O)):E.onReadyBeingFired?(E.onReadyBeingFired.push(O),R&&C(O)):(C(O),D=k,R||C(function K(){D.on.ready.unsubscribe(O),D.on.ready.unsubscribe(K)}))})}}),this.Collection=(c=this,un(P0.prototype,function(K,E){this.db=c;var R=Fl,D=null;if(E)try{R=E()}catch(U){D=U}var E=K._ctx,K=E.table,J=K.hook.reading.fire;this._ctx={table:K,index:E.index,isPrimKey:!E.index||K.schema.primKey.keyPath&&E.index===K.schema.primKey.name,range:R,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:D,or:E.or,valueMapper:J!==A?J:null}})),this.Table=(d=this,un(Vl.prototype,function(C,O,R){this.db=d,this._tx=R,this.name=C,this.schema=O,this.hook=d._allTables[C]?d._allTables[C].hook:cn(null,{creating:[it,S],reading:[B,A],updating:[T,S],deleting:[et,S]})})),this.Transaction=(m=this,un(C0.prototype,function(C,O,R,D,E){var K=this;C!=="readonly"&&O.forEach(function(J){J=(J=R[J])==null?void 0:J.yProps,J&&(O=O.concat(J.map(function(U){return U.updatesTable})))}),this.db=m,this.mode=C,this.storeNames=O,this.schema=R,this.chromeTransactionDurability=D,this.idbtrans=null,this.on=cn(this,"complete","error","abort"),this.parent=E||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new ht(function(J,U){K._resolve=J,K._reject=U}),this._completion.then(function(){K.active=!1,K.on.complete.fire()},function(J){var U=K.active;return K.active=!1,K.on.error.fire(J),K.parent?K.parent._reject(J):U&&K.idbtrans&&K.idbtrans.abort(),Te(J)})})),this.Version=(h=this,un(N0.prototype,function(C){this.db=h,this._cfg={version:C,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(v=this,un(Jl.prototype,function(C,O,R){if(this.db=v,this._ctx={table:C,index:O===":id"?null:O,or:R},this._cmp=this._ascending=Lt,this._descending=function(D,E){return Lt(E,D)},this._max=function(D,E){return 0<Lt(D,E)?D:E},this._min=function(D,E){return Lt(D,E)<0?D:E},this._IDBKeyRange=v._deps.IDBKeyRange,!this._IDBKeyRange)throw new ot.MissingAPI})),this.on("versionchange",function(C){0<C.newVersion?console.warn("Another connection wants to upgrade database '".concat(k.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(k.name,"'. Closing db now to resume the delete request.")),k.close({disableAutoOpen:!1})}),this.on("blocked",function(C){!C.newVersion||C.newVersion<C.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(C.oldVersion/10))}),this._maxKey=mn(r.IDBKeyRange),this._createTransaction=function(C,O,R,D){return new k.Transaction(C,O,R,k._options.chromeTransactionDurability,D)},this._fireOnBlocked=function(C){k.on("blocked").fire(C),Bi.filter(function(O){return O.name===k.name&&O!==k&&!O._state.vcFired}).map(function(O){return O.on("versionchange").fire(C)})},this.use(z0),this.use($0),this.use(B0),this.use(L0),this.use(F0),new Proxy(this,{get:function(C,O,R){var D;return O==="_vip"||(O==="table"?function(E){return _o(k.table(E),M)}:(D=Reflect.get(C,O,R))instanceof Vl?_o(D,M):O==="tables"?D.map(function(E){return _o(E,M)}):O==="_createTransaction"?function(){return _o(D.apply(this,arguments),M)}:D)}}));this.vip=M,j.forEach(function(C){return C(k)})}var wo,Vi=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",V0=(oa.prototype.subscribe=function(n,r,c){return this._subscribe(n&&typeof n!="function"?n:{next:n,error:r,complete:c})},oa.prototype[Vi]=function(){return this},oa);function oa(n){this._subscribe=n}try{wo={indexedDB:a.indexedDB||a.mozIndexedDB||a.webkitIndexedDB||a.msIndexedDB,IDBKeyRange:a.IDBKeyRange||a.webkitIDBKeyRange}}catch{wo={indexedDB:null,IDBKeyRange:null}}function uc(n){var r,c=!1,d=new V0(function(m){var h=Pe(n),v,k=!1,j={},q={},M={get closed(){return k},unsubscribe:function(){k||(k=!0,v&&v.abort(),C&&oi.storagemutated.unsubscribe(R))}},C=(m.start&&m.start(M),!1),O=function(){return Nr(D)},R=function(E){ko(j,E),Yr(q,j)&&O()},D=function(){var E,K,J;!k&&wo.indexedDB&&(j={},E={},v&&v.abort(),v=new AbortController,J=(U=>{var Z=Li();try{h&&zi();var at=ei(n,U);return at=h?at.finally(si):at}finally{Z&&Fi()}})(K={subscr:E,signal:v.signal,requery:O,querier:n,trans:null}),Promise.resolve(J).then(function(U){c=!0,r=U,k||K.signal.aborted||(j={},(Z=>{for(var at in Z)if(g(Z,at))return;return 1})(q=E)||C||(oi(dn,R),C=!0),Nr(function(){return!k&&m.next&&m.next(U)}))},function(U){c=!1,["DatabaseClosedError","AbortError"].includes(U?.name)||k||Nr(function(){k||m.error&&m.error(U)})}))};return setTimeout(O,0),M});return d.hasValue=function(){return c},d.getValue=function(){return r},d}var _i=Ns;function ra(n){var r=ri;try{ri=!0,oi.storagemutated.fire(n),ta(n,!0)}finally{ri=r}}y(_i,i(i({},Jt),{delete:function(n){return new _i(n,{addons:[]}).delete()},exists:function(n){return new _i(n,{addons:[]}).open().then(function(r){return r.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(n){try{return r=_i.dependencies,c=r.indexedDB,r=r.IDBKeyRange,(Wr(c)?Promise.resolve(c.databases()).then(function(d){return d.map(function(m){return m.name}).filter(function(m){return m!==ao})}):Gr(c,r).toCollection().primaryKeys()).then(n)}catch{return Te(new ot.MissingAPI)}var r,c},defineClass:function(){return function(n){u(this,n)}},ignoreTransaction:function(n){return kt.trans?yi(kt.transless,n):n()},vip:Jr,async:function(n){return function(){try{var r=ea(n.apply(this,arguments));return r&&typeof r.then=="function"?r:ht.resolve(r)}catch(c){return Te(c)}}},spawn:function(n,r,c){try{var d=ea(n.apply(c,r||[]));return d&&typeof d.then=="function"?d:ht.resolve(d)}catch(m){return Te(m)}},currentTransaction:{get:function(){return kt.trans||null}},waitFor:function(n,r){return n=ht.resolve(typeof n=="function"?_i.ignoreTransaction(n):n).timeout(r||6e4),kt.trans?kt.trans.waitFor(n):n},Promise:ht,debug:{get:function(){return V},set:function(n){pt(n)}},derive:I,extend:u,props:y,override:G,Events:cn,on:oi,liveQuery:uc,extendObservabilitySet:ko,getByKeyPath:W,setByKeyPath:H,delByKeyPath:function(n,r){typeof r=="string"?H(n,r,void 0):"length"in r&&[].map.call(r,function(c){H(n,c,void 0)})},shallowClone:rt,deepClone:Ct,getObjectDiff:sa,cmp:Lt,asap:X,minKey:-1/0,addons:[],connections:Bi,errnames:gt,dependencies:wo,cache:Ti,semVer:"4.3.0",version:"4.3.0".split(".").map(function(n){return parseInt(n)}).reduce(function(n,r,c){return n+r/Math.pow(10,2*c)})})),_i.maxKey=mn(_i.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(oi(dn,function(n){ri||(n=new CustomEvent(Br,{detail:n}),ri=!0,dispatchEvent(n),ri=!1)}),addEventListener(Br,function(n){n=n.detail,ri||ra(n)}));var Ki,ri=!1,bc=function(){};return typeof BroadcastChannel<"u"&&((bc=function(){(Ki=new BroadcastChannel(Br)).onmessage=function(n){return n.data&&ra(n.data)}})(),typeof Ki.unref=="function"&&Ki.unref(),oi(dn,function(n){ri||Ki.postMessage(n)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(n){if(!Ns.disableBfCache&&n.persisted){V&&console.debug("Dexie: handling persisted pagehide"),Ki?.close();for(var r=0,c=Bi;r<c.length;r++)c[r].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(n){!Ns.disableBfCache&&n.persisted&&(V&&console.debug("Dexie: handling persisted pageshow"),bc(),ra({all:new Fe(-1/0,[[]])}))})),ht.rejectionMapper=function(n,r){return!n||n instanceof Re||n instanceof TypeError||n instanceof SyntaxError||!n.name||!Ot[n.name]?n:(r=new Ot[n.name](r||n.message,n),"stack"in n&&z(r,"stack",{get:function(){return this.inner.stack}}),r)},pt(V),i(Ns,Object.freeze({__proto__:null,Dexie:Ns,Entity:zl,PropModification:ln,RangeSet:Fe,add:function(n){return new ln({add:n})},cmp:Lt,default:Ns,liveQuery:uc,mergeRanges:hn,rangesOverlap:tc,remove:function(n){return new ln({remove:n})},replacePrefix:function(n,r){return new ln({replacePrefix:[n,r]})}}),{default:Ns}),Ns})})(Uo)),Uo.exports}var Sk=kk();const il=vk(Sk),ob=Symbol.for("Dexie"),sr=globalThis[ob]||(globalThis[ob]=il);if(il.semVer!==sr.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${il.semVer} and ${sr.semVer}`);const{liveQuery:Kk,mergeRanges:Hk,rangesOverlap:Gk,RangeSet:Wk,cmp:Jk,Entity:Qk,PropModification:Yk,replacePrefix:Xk,add:Zk,remove:tS,DexieYProvider:eS}=sr;class Tk extends sr{constructor(){super("llmxray-history"),this.version(1).stores({entries:"++id, type, timestamp, model, language, accuracy, tokenTaxRatio, *tags, [type+model], [type+timestamp]"})}}const Er=new Tk,y0={en:"English",fr:"Français",ar:"العربية",zh:"中文",ja:"日本語",he:"עברית",de:"Deutsch",es:"Español",pt:"Português",it:"Italiano",ru:"Русский",ko:"한국어",hi:"हिन्दी"};function sS(t,e){const s=e.filter(u=>u.model===t.model),i=(s.length<=1,t.model);if(t.language){const u=y0[t.language]??t.language.toUpperCase();return`${s.length<=1,t.model} (${u})`}if(s.length<=1)return i;if(new Set(s.map(u=>u.options.temperature??.7)).size===s.length)return`${t.model} @ ${(t.options.temperature??.7).toFixed(2)}`;if(new Set(s.map(u=>u.system)).size===s.length&&t.system){const u=t.system.split(/\s+/)[0]??"",f=u.length>12?u.slice(0,12)+"...":u;return`${t.model} (${f})`}if(new Set(s.map(u=>u.options.seed)).size===s.length&&t.options.seed!=null)return`${t.model} seed:${t.options.seed}`;const b=s.findIndex(u=>u.slotId===t.slotId);return`${t.model} #${b+1}`}function iS(t){const e=(t.accuracy*100).toFixed(1),s=t.benchmarkIds.join(", "),i=t.completedAt?Math.round((t.completedAt-t.startedAt)/1e3):0,o={type:"benchmark",timestamp:t.startedAt,model:t.modelName,tags:[],benchmarkSuites:t.benchmarkIds,accuracy:t.accuracy,correctCount:t.correctCount,totalQuestions:t.totalQuestions,durationMs:i*1e3,sourceId:t.id,sourceDb:"llmxray-benchmarks",summary:`Benchmark: ${t.modelName} — ${e}% on ${s} (${t.correctCount}/${t.totalQuestions})`};Er.entries.add(o).catch(()=>{})}function nS(t){const e=[...new Set(t.executions.map(u=>u.model))],s=t.executions.some(u=>u.language),i=t.executions.filter(u=>u.language).map(u=>u.language);let o,a;if(s){const u=t.executions.filter(f=>f.metrics?.promptTokenCount).map(f=>({lang:f.language??"?",tokens:f.metrics.promptTokenCount}));if(u.length>=2){const f=Math.min(...u.map(y=>y.tokens)),p=Math.max(...u.map(y=>y.tokens));o=f>0?p/f:void 0,a=u.find(y=>y.tokens===p)?.lang}}let l;if(s){const u=i.map(p=>y0[p]??p).join(" vs "),f=o?` · Tax: ${o.toFixed(1)}x`:"";l=`Language Compare: ${u} — ${e[0]}${f}`}else l=`Comparison: ${e.join(" vs ")} — ${t.executions.length} slots`;const b={type:"comparison",timestamp:t.createdAt,model:e[0]??"",language:a,languages:i,tags:[],tokenTaxRatio:o,slotCount:t.executions.length,sourceId:t.id,sourceDb:"llmxray-comparisons",summary:l};Er.entries.add(b).catch(()=>{})}function _k(t,e,s,i,o){const a={type:"chat",timestamp:Date.now(),model:e,tags:[],conversationId:t,messageCount:i,totalTokens:o,sourceId:t,sourceDb:"llmxray-conversations",summary:`Chat: "${s||"Untitled"}" — ${e} · ${i} messages`};Er.entries.add(a).catch(()=>{})}function oS(t,e,s,i,o){const a={type:"training",timestamp:Date.now(),model:e,tags:[],phase:s,accepted:o,sourceId:t,sourceDb:"llmxray-canvas-ai",summary:`Training: ${s} phase${i?` — ${i}`:""} · ${o?"accepted":"pending"}`};Er.entries.add(a).catch(()=>{})}const wk=_r("conversations",()=>{const t=he(new Map),e=he(null),s=he(!1),i=ne(()=>e.value?t.value.get(e.value)??null:null),o=ne(()=>[...t.value.values()].sort(($,P)=>P.updatedAt-$.updatedAt));async function a(){try{const $=await us.getAllConversations();for(const P of $)t.value.set(P.id,{id:P.id,name:P.name,title:P.title,model:P.model,messages:[],options:P.options,createdAt:P.createdAt,updatedAt:P.updatedAt})}catch($){console.error("Failed to hydrate conversations from IndexedDB:",$)}s.value=!0}async function l($){const P=t.value.get($);if(!(!P||P.messages.length>0))try{const x=await us.getMessages($);P.messages=x}catch(x){console.error(`Failed to load messages for ${$}:`,x)}}function b($,P){const x=mk(),G={id:x,name:"Untitled",title:"Untitled",model:$,messages:[],options:P??{},createdAt:Date.now(),updatedAt:Date.now()};return t.value.set(x,G),e.value=x,us.saveConversationMeta(G).catch(console.error),x}function u($,P){const x=t.value.get($);x&&(x.messages.push(P),x.updatedAt=Date.now(),x.title==="Untitled"&&P.role==="user"&&(x.title=P.content.slice(0,50)+(P.content.length>50?"...":"")),x.name==="Untitled"&&P.role==="user"&&(x.name=P.content.slice(0,50)+(P.content.length>50?"...":"")),P.isStreaming||us.saveMessage(P).catch(console.error),us.saveConversationMeta(x).catch(console.error))}function f($,P,x){const G=t.value.get($);if(!G)return;const N=G.messages.find(X=>X.id===P);N&&(N.content=x)}function p($,P){const x=t.value.get($);if(!x)return;const G=x.messages.find(N=>N.id===P);G&&(G.isStreaming=!1,x.updatedAt=Date.now(),us.saveMessage(G).catch(console.error),us.saveConversationMeta(x).catch(console.error),G.role==="assistant"&&_k($,x.model,x.name,x.messages.length))}function g($){e.value=$,$&&l($)}function y($,P){const x=t.value.get($);x&&(x.name=P,x.updatedAt=Date.now(),us.saveConversationMeta(x).catch(console.error))}function _($){const P=t.value.get($);return P?P.messages.filter(x=>x.role==="user"||x.role==="assistant"||x.role==="system").map(x=>({role:x.role,content:x.role==="assistant"?Pk(x.content):x.content})):[]}function z($,P,x){const G=t.value.get($);if(!G)return;const N=G.messages.find(X=>X.id===P);N&&(N.feedback=x,us.saveMessage(N).catch(console.error))}function I($){t.value.delete($),e.value===$&&(e.value=null),us.deleteConversation($).catch(console.error)}return{conversations:t,activeConversationId:e,activeConversation:i,recentConversations:o,hydrated:s,hydrate:a,loadConversationMessages:l,createConversation:b,addMessage:u,updateAssistantContent:f,finalizeMessage:p,setActiveConversation:g,renameConversation:y,getMessagesAsOllamaFormat:_,setMessageFeedback:z,deleteConversation:I}});function Pk(t){return t.replace(/<think>[\s\S]*?<\/think>/g,"").trim()}const xk=Os({__name:"App",setup(t){const e=wk();return Yn(()=>{e.hydrate()}),(s,i)=>{const o=yr("RouterView");return me(),ps(o)}}}),jr=kp(xk);jr.use(_p());jr.use(sl);jr.use(bk);jr.mount("#app");export{iS as $,gg as A,Yn as B,gc as C,Zc as D,Xh as E,ke as F,zk as G,Uk as H,wk as I,Gh as J,us as K,Zb as L,hg as M,qk as N,nS as O,y0 as P,Nk as Q,sS as R,ag as S,Vm as T,sb as U,Fk as V,Ik as W,dg as X,hl as Y,Bk as Z,Ke as _,ne as a,Bt as a0,al as a1,Dk as a2,Mk as a3,Rk as a4,pi as a5,pb as a6,es as a7,nm as a8,Ym as a9,oS as aA,$k as aB,pl as aa,Lk as ab,Mb as ac,Jn as ad,le as ae,Cm as af,Am as ag,Ro as ah,fi as ai,Ck as aj,ml as ak,Ma as al,yr as am,Ok as an,Of as ao,jk as ap,Ak as aq,Vk as ar,rg as as,Yy as at,Er as au,_l as av,qf as aw,mr as ax,gk as ay,vk as az,Os as b,re as c,_r as d,rs as e,Et as f,ls as g,Dn as h,Td as i,me as j,gl as k,ur as l,Ek as m,mk as n,Bo as o,oe as p,ps as q,he as r,Fn as s,De as t,ie as u,Ed as v,Ws as w,Wf as x,pr as y,to as z};
|
|
36
|
+
`+h:""),this.inner=h||null):typeof m=="object"&&(this.message="".concat(m.name," ").concat(m.message),this.inner=m):(this.message=ss[r]||c,this.inner=null)}return I(d).from(mt),n[r]=d,n},{}),Ot=(ot.Syntax=SyntaxError,ot.Type=TypeError,ot.Range=RangeError,Jt.reduce(function(n,r){return n[r+"Error"]=ot[r],n},{}));Jt=ft.reduce(function(n,r){return["Syntax","Type","Range"].indexOf(r)===-1&&(n[r+"Error"]=ot[r]),n},{});function S(){}function A(n){return n}function B(n,r){return n==null||n===A?r:function(c){return r(n(c))}}function Y(n,r){return function(){n.apply(this,arguments),r.apply(this,arguments)}}function it(n,r){return n===S?r:function(){var c=n.apply(this,arguments),d=(c!==void 0&&(arguments[0]=c),this.onsuccess),m=this.onerror,h=(this.onsuccess=null,this.onerror=null,r.apply(this,arguments));return d&&(this.onsuccess=this.onsuccess?Y(d,this.onsuccess):d),m&&(this.onerror=this.onerror?Y(m,this.onerror):m),h!==void 0?h:c}}function et(n,r){return n===S?r:function(){n.apply(this,arguments);var c=this.onsuccess,d=this.onerror;this.onsuccess=this.onerror=null,r.apply(this,arguments),c&&(this.onsuccess=this.onsuccess?Y(c,this.onsuccess):c),d&&(this.onerror=this.onerror?Y(d,this.onerror):d)}}function T(n,r){return n===S?r:function(m){var d=n.apply(this,arguments),m=(u(m,d),this.onsuccess),h=this.onerror,v=(this.onsuccess=null,this.onerror=null,r.apply(this,arguments));return m&&(this.onsuccess=this.onsuccess?Y(m,this.onsuccess):m),h&&(this.onerror=this.onerror?Y(h,this.onerror):h),d===void 0?v===void 0?void 0:v:u(d,v)}}function w(n,r){return n===S?r:function(){return r.apply(this,arguments)!==!1&&n.apply(this,arguments)}}function L(n,r){return n===S?r:function(){var c=n.apply(this,arguments);if(c&&typeof c.then=="function"){for(var d=this,m=arguments.length,h=new Array(m);m--;)h[m]=arguments[m];return c.then(function(){return r.apply(d,h)})}return r.apply(this,arguments)}}Jt.ModifyError=Se,Jt.DexieError=Re,Jt.BulkError=tt;var V=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function pt(n){V=n}var nt={},F=100,Q=typeof Promise>"u"?[]:(ft=Promise.resolve(),typeof crypto<"u"&&crypto.subtle?[Q=crypto.subtle.digest("SHA-512",new Uint8Array([0])),f(Q),ft]:[ft,f(ft),ft]),ft=Q[0],Vi=Q[1],Vi=Vi&&Vi.then,wt=ft&&ft.constructor,Rt=!!Q[2],ee=function(n,r){ti.push([n,r]),Ne&&(queueMicrotask(S0),Ne=!1)},se=!0,Ne=!0,xe=[],Ss=[],Ii=A,ge={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:S,pgp:!1,env:{},finalize:S},kt=ge,ti=[],Ts=0,eo=[];function ht(n){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var r=this._PSD=kt;if(typeof n!="function"){if(n!==nt)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&Dr(this,this._value)}else this._state=null,this._value=null,++r.ref,(function c(d,m){try{m(function(h){if(d._state===null){if(h===d)throw new TypeError("A promise cannot be resolved with itself.");var v=d._lib&&Li();h&&typeof h.then=="function"?c(d,function(k,j){h instanceof ht?h._then(k,j):h.then(k,j)}):(d._state=!0,d._value=h,Rl(d)),v&&Fi()}},Dr.bind(null,d))}catch(h){Dr(d,h)}})(this,n)}var Mr={get:function(){var n=kt,r=oo;function c(d,m){var h=this,v=!n.global&&(n!==kt||r!==oo),k=v&&!si(),j=new ht(function(q,M){Or(h,new Ol(Il(d,n,v,k),Il(m,n,v,k),q,M,n))});return this._consoleTask&&(j._consoleTask=this._consoleTask),j}return c.prototype=nt,c},set:function(n){z(this,"then",n&&n.prototype===nt?Mr:{get:function(){return n},set:Mr.set})}};function Ol(n,r,c,d,m){this.onFulfilled=typeof n=="function"?n:null,this.onRejected=typeof r=="function"?r:null,this.resolve=c,this.reject=d,this.psd=m}function Dr(n,r){var c,d;Ss.push(r),n._state===null&&(c=n._lib&&Li(),r=Ii(r),n._state=!1,n._value=r,d=n,xe.some(function(m){return m._value===d._value})||xe.push(d),Rl(n),c)&&Fi()}function Rl(n){var r=n._listeners;n._listeners=[];for(var c=0,d=r.length;c<d;++c)Or(n,r[c]);var m=n._PSD;--m.ref||m.finalize(),Ts===0&&(++Ts,ee(function(){--Ts==0&&Rr()},[]))}function Or(n,r){if(n._state===null)n._listeners.push(r);else{var c=n._state?r.onFulfilled:r.onRejected;if(c===null)return(n._state?r.resolve:r.reject)(n._value);++r.psd.ref,++Ts,ee(k0,[c,n,r])}}function k0(n,r,c){try{var d,m=r._value;!r._state&&Ss.length&&(Ss=[]),d=V&&r._consoleTask?r._consoleTask.run(function(){return n(m)}):n(m),r._state||Ss.indexOf(m)!==-1||(h=>{for(var v=xe.length;v;)if(xe[--v]._value===h._value)return xe.splice(v,1)})(r),c.resolve(d)}catch(h){c.reject(h)}finally{--Ts==0&&Rr(),--c.psd.ref||c.psd.finalize()}}function S0(){yi(ge,function(){Li()&&Fi()})}function Li(){var n=se;return Ne=se=!1,n}function Fi(){var n,r,c;do for(;0<ti.length;)for(n=ti,ti=[],c=n.length,r=0;r<c;++r){var d=n[r];d[0].apply(null,d[1])}while(0<ti.length);Ne=se=!0}function Rr(){for(var n=xe,r=(xe=[],n.forEach(function(d){d._PSD.onunhandled.call(null,d._value,d)}),eo.slice(0)),c=r.length;c;)r[--c]()}function so(n){return new ht(nt,!1,n)}function ae(n,r){var c=kt;return function(){var d=Li(),m=kt;try{return ii(c,!0),n.apply(this,arguments)}catch(h){r&&r(h)}finally{ii(m,!1),d&&Fi()}}}y(ht.prototype,{then:Mr,_then:function(n,r){Or(this,new Ol(null,null,n,r,kt))},catch:function(n){var r,c;return arguments.length===1?this.then(null,n):(r=n,c=arguments[1],typeof r=="function"?this.then(null,function(d){return(d instanceof r?c:so)(d)}):this.then(null,function(d){return(d&&d.name===r?c:so)(d)}))},finally:function(n){return this.then(function(r){return ht.resolve(n()).then(function(){return r})},function(r){return ht.resolve(n()).then(function(){return so(r)})})},timeout:function(n,r){var c=this;return n<1/0?new ht(function(d,m){var h=setTimeout(function(){return m(new ot.Timeout(r))},n);c.then(d,m).finally(clearTimeout.bind(null,h))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&z(ht.prototype,Symbol.toStringTag,"Dexie.Promise"),ge.env=Nl(),y(ht,{all:function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.length===0&&r([]);var d=n.length;n.forEach(function(m,h){return ht.resolve(m).then(function(v){n[h]=v,--d||r(n)},c)})})},resolve:function(n){return n instanceof ht?n:n&&typeof n.then=="function"?new ht(function(r,c){n.then(r,c)}):new ht(nt,!0,n)},reject:so,race:function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.map(function(d){return ht.resolve(d).then(r,c)})})},PSD:{get:function(){return kt},set:function(n){return kt=n}},totalEchoes:{get:function(){return oo}},newPSD:ei,usePSD:yi,scheduler:{get:function(){return ee},set:function(n){ee=n}},rejectionMapper:{get:function(){return Ii},set:function(n){Ii=n}},follow:function(n,r){return new ht(function(c,d){return ei(function(m,h){var v=kt;v.unhandleds=[],v.onunhandled=h,v.finalize=Y(function(){var k,j=this;k=function(){j.unhandleds.length===0?m():h(j.unhandleds[0])},eo.push(function q(){k(),eo.splice(eo.indexOf(q),1)}),++Ts,ee(function(){--Ts==0&&Rr()},[])},v.finalize),n()},r,c,d)})}}),wt&&(wt.allSettled&&z(ht,"allSettled",function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r){n.length===0&&r([]);var c=n.length,d=new Array(c);n.forEach(function(m,h){return ht.resolve(m).then(function(v){return d[h]={status:"fulfilled",value:v}},function(v){return d[h]={status:"rejected",reason:v}}).then(function(){return--c||r(d)})})})}),wt.any&&typeof AggregateError<"u"&&z(ht,"any",function(){var n=be.apply(null,arguments).map(ro);return new ht(function(r,c){n.length===0&&c(new AggregateError([]));var d=n.length,m=new Array(d);n.forEach(function(h,v){return ht.resolve(h).then(function(k){return r(k)},function(k){m[v]=k,--d||c(new AggregateError(m))})})})}),wt.withResolvers)&&(ht.withResolvers=wt.withResolvers);var je={awaits:0,echoes:0,id:0},T0=0,io=[],no=0,oo=0,_0=0;function ei(n,v,c,d){var m=kt,h=Object.create(m),v=(h.parent=m,h.ref=0,h.global=!1,h.id=++_0,ge.env,h.env=Rt?{Promise:ht,PromiseProp:{value:ht,configurable:!0,writable:!0},all:ht.all,race:ht.race,allSettled:ht.allSettled,any:ht.any,resolve:ht.resolve,reject:ht.reject}:{},v&&u(h,v),++m.ref,h.finalize=function(){--this.parent.ref||this.parent.finalize()},yi(h,n,c,d));return h.ref===0&&h.finalize(),v}function zi(){return je.id||(je.id=++T0),++je.awaits,je.echoes+=F,je.id}function si(){return!!je.awaits&&(--je.awaits==0&&(je.id=0),je.echoes=je.awaits*F,!0)}function ro(n){return je.echoes&&n&&n.constructor===wt?(zi(),n.then(function(r){return si(),r},function(r){return si(),Te(r)})):n}function w0(){var n=io[io.length-1];io.pop(),ii(n,!1)}function ii(n,r){var c,d,m=kt;(r?!je.echoes||no++&&n===kt:!no||--no&&n===kt)||queueMicrotask(r?(function(h){++oo,je.echoes&&--je.echoes!=0||(je.echoes=je.awaits=je.id=0),io.push(kt),ii(h,!0)}).bind(null,n):w0),n!==kt&&(kt=n,m===ge&&(ge.env=Nl()),Rt)&&(c=ge.env.Promise,d=n.env,m.global||n.global)&&(Object.defineProperty(a,"Promise",d.PromiseProp),c.all=d.all,c.race=d.race,c.resolve=d.resolve,c.reject=d.reject,d.allSettled&&(c.allSettled=d.allSettled),d.any)&&(c.any=d.any)}function Nl(){var n=a.Promise;return Rt?{Promise:n,PromiseProp:Object.getOwnPropertyDescriptor(a,"Promise"),all:n.all,race:n.race,allSettled:n.allSettled,any:n.any,resolve:n.resolve,reject:n.reject}:{}}function yi(n,r,c,d,m){var h=kt;try{return ii(n,!0),r(c,d,m)}finally{ii(h,!1)}}function Il(n,r,c,d){return typeof n!="function"?n:function(){var m=kt;c&&zi(),ii(r,!0);try{return n.apply(this,arguments)}finally{ii(m,!1),d&&queueMicrotask(si)}}}function Nr(n){Promise===wt&&je.echoes===0?no===0?n():enqueueNativeMicroTask(n):setTimeout(n,0)}(""+Vi).indexOf("[native code]")===-1&&(zi=si=S);var Te=ht.reject,ki="",Rs="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",Ll="String expected.",Bi=[],ao="__dbnames",Ir="readonly",Lr="readwrite";function Si(n,r){return n?r?function(){return n.apply(this,arguments)&&r.apply(this,arguments)}:n:r}var Fl={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function lo(n){return typeof n!="string"||/\./.test(n)?function(r){return r}:function(r){return r[n]===void 0&&n in r&&delete(r=Ct(r))[n],r}}function zl(){throw ot.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function Lt(n,r){try{var c=Bl(n),d=Bl(r);if(c!==d)return c==="Array"?1:d==="Array"?-1:c==="binary"?1:d==="binary"?-1:c==="string"?1:d==="string"?-1:c==="Date"?1:d!=="Date"?NaN:-1;switch(c){case"number":case"Date":case"string":return r<n?1:n<r?-1:0;case"binary":for(var m=Ul(n),h=Ul(r),v=m.length,k=h.length,j=v<k?v:k,q=0;q<j;++q)if(m[q]!==h[q])return m[q]<h[q]?-1:1;return v===k?0:v<k?-1:1;case"Array":for(var M=n,C=r,O=M.length,R=C.length,D=O<R?O:R,E=0;E<D;++E){var K=Lt(M[E],C[E]);if(K!==0)return K}return O===R?0:O<R?-1:1}}catch{}return NaN}function Bl(n){var r=typeof n;return r=="object"&&(ArrayBuffer.isView(n)||(r=ue(n))==="ArrayBuffer")?"binary":r}function Ul(n){return n instanceof Uint8Array?n:ArrayBuffer.isView(n)?new Uint8Array(n.buffer,n.byteOffset,n.byteLength):new Uint8Array(n)}function co(n,r,c){var d=n.schema.yProps;return d?(r&&0<c.numFailures&&(r=r.filter(function(m,h){return!c.failures[h]})),Promise.all(d.map(function(m){return m=m.updatesTable,r?n.db.table(m).where("k").anyOf(r).delete():n.db.table(m).clear()})).then(function(){return c})):c}ql.prototype.execute=function(n){var r=this["@@propmod"];if(r.add!==void 0){var c=r.add;if(b(c))return o(o([],b(n)?n:[],!0),c).sort();if(typeof c=="number")return(Number(n)||0)+c;if(typeof c=="bigint")try{return BigInt(n)+c}catch{return BigInt(0)+c}throw new TypeError("Invalid term ".concat(c))}if(r.remove!==void 0){var d=r.remove;if(b(d))return b(n)?n.filter(function(m){return!d.includes(m)}).sort():[];if(typeof d=="number")return Number(n)-d;if(typeof d=="bigint")try{return BigInt(n)-d}catch{return BigInt(0)-d}throw new TypeError("Invalid subtrahend ".concat(d))}return c=(c=r.replacePrefix)==null?void 0:c[0],c&&typeof n=="string"&&n.startsWith(c)?r.replacePrefix[1]+n.substring(c.length):n};var ln=ql;function ql(n){this["@@propmod"]=n}function $l(n,r){for(var c=l(r),d=c.length,m=!1,h=0;h<d;++h){var v=c[h],k=r[v],j=W(n,v);k instanceof ln?(H(n,v,k.execute(j)),m=!0):j!==k&&(H(n,v,k),m=!0)}return m}Zt.prototype._trans=function(n,r,c){var d=this._tx||kt.trans,m=this.name,h=V&&typeof console<"u"&&console.createTask&&console.createTask("Dexie: ".concat(n==="readonly"?"read":"write"," ").concat(this.name));function v(q,M,C){if(C.schema[m])return r(C.idbtrans,C);throw new ot.NotFound("Table "+m+" not part of transaction")}var k=Li();try{var j=d&&d.db._novip===this.db._novip?d===kt.trans?d._promise(n,v,c):ei(function(){return d._promise(n,v,c)},{trans:d,transless:kt.transless||kt}):(function q(M,C,O,R){if(M.idbdb&&(M._state.openComplete||kt.letThrough||M._vip)){var D=M._createTransaction(C,O,M._dbSchema);try{D.create(),M._state.PR1398_maxLoop=3}catch(E){return E.name===gt.InvalidState&&M.isOpen()&&0<--M._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),M.close({disableAutoOpen:!1}),M.open().then(function(){return q(M,C,O,R)})):Te(E)}return D._promise(C,function(E,K){return ei(function(){return kt.trans=D,R(E,K,D)})}).then(function(E){if(C==="readwrite")try{D.idbtrans.commit()}catch{}return C==="readonly"?E:D._completion.then(function(){return E})})}if(M._state.openComplete)return Te(new ot.DatabaseClosed(M._state.dbOpenError));if(!M._state.isBeingOpened){if(!M._state.autoOpen)return Te(new ot.DatabaseClosed);M.open().catch(S)}return M._state.dbReadyPromise.then(function(){return q(M,C,O,R)})})(this.db,n,[this.name],v);return h&&(j._consoleTask=h,j=j.catch(function(q){return console.trace(q),Te(q)})),j}finally{k&&Fi()}},Zt.prototype.get=function(n,r){var c=this;return n&&n.constructor===Object?this.where(n).first(r):n==null?Te(new ot.Type("Invalid argument to Table.get()")):this._trans("readonly",function(d){return c.core.get({trans:d,key:n}).then(function(m){return c.hook.reading.fire(m)})}).then(r)},Zt.prototype.where=function(n){if(typeof n=="string")return new this.db.WhereClause(this,n);if(b(n))return new this.db.WhereClause(this,"[".concat(n.join("+"),"]"));var r=l(n);if(r.length===1)return this.where(r[0]).equals(n[r[0]]);var c=this.schema.indexes.concat(this.schema.primKey).filter(function(k){if(k.compound&&r.every(function(q){return 0<=k.keyPath.indexOf(q)})){for(var j=0;j<r.length;++j)if(r.indexOf(k.keyPath[j])===-1)return!1;return!0}return!1}).sort(function(k,j){return k.keyPath.length-j.keyPath.length})[0];if(c&&this.db._maxKey!==ki)return v=c.keyPath.slice(0,r.length),this.where(v).equals(v.map(function(k){return n[k]}));!c&&V&&console.warn("The query ".concat(JSON.stringify(n)," on ").concat(this.name," would benefit from a ")+"compound index [".concat(r.join("+"),"]"));var d=this.schema.idxByName;function m(k,j){return Lt(k,j)===0}var v=r.reduce(function(M,j){var q=M[0],M=M[1],C=d[j],O=n[j];return[q||C,q||!C?Si(M,C&&C.multi?function(R){return R=W(R,j),b(R)&&R.some(function(D){return m(O,D)})}:function(R){return m(O,W(R,j))}):M]},[null,null]),h=v[0],v=v[1];return h?this.where(h.name).equals(n[h.keyPath]).filter(v):c?this.filter(v):this.where(r).equals("")},Zt.prototype.filter=function(n){return this.toCollection().and(n)},Zt.prototype.count=function(n){return this.toCollection().count(n)},Zt.prototype.offset=function(n){return this.toCollection().offset(n)},Zt.prototype.limit=function(n){return this.toCollection().limit(n)},Zt.prototype.each=function(n){return this.toCollection().each(n)},Zt.prototype.toArray=function(n){return this.toCollection().toArray(n)},Zt.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},Zt.prototype.orderBy=function(n){return new this.db.Collection(new this.db.WhereClause(this,b(n)?"[".concat(n.join("+"),"]"):n))},Zt.prototype.reverse=function(){return this.toCollection().reverse()},Zt.prototype.mapToClass=function(n){for(var r=this.db,c=this.name,d=((this.schema.mappedClass=n).prototype instanceof zl&&(n=(v=>{var k=M,j=v;if(typeof j!="function"&&j!==null)throw new TypeError("Class extends value "+String(j)+" is not a constructor or null");function q(){this.constructor=k}function M(){return v!==null&&v.apply(this,arguments)||this}return s(k,j),k.prototype=j===null?Object.create(j):(q.prototype=j.prototype,new q),Object.defineProperty(M.prototype,"db",{get:function(){return r},enumerable:!1,configurable:!0}),M.prototype.table=function(){return c},M})(n)),new Set),m=n.prototype;m;m=f(m))Object.getOwnPropertyNames(m).forEach(function(v){return d.add(v)});function h(v){if(!v)return v;var k,j=Object.create(n.prototype);for(k in v)if(!d.has(k))try{j[k]=v[k]}catch{}return j}return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=h,this.hook("reading",h),n},Zt.prototype.defineClass=function(){return this.mapToClass(function(n){u(this,n)})},Zt.prototype.add=function(n,r){var c=this,d=this.schema.primKey,m=d.auto,h=d.keyPath,v=n;return h&&m&&(v=lo(h)(n)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"add",keys:r!=null?[r]:null,values:[v]})}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{H(n,h,k)}catch{}return k})},Zt.prototype.upsert=function(n,r){var c=this,d=this.schema.primKey.keyPath;return this._trans("readwrite",function(m){return c.core.get({trans:m,key:n}).then(function(h){var v=h??{};return $l(v,r),d&&H(v,d,n),c.core.mutate({trans:m,type:"put",values:[v],keys:[n],upsert:!0,updates:{keys:[n],changeSpecs:[r]}}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):!!h})})})},Zt.prototype.update=function(n,r){return typeof n!="object"||b(n)?this.where(":id").equals(n).modify(r):(n=W(n,this.schema.primKey.keyPath))===void 0?Te(new ot.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(n).modify(r)},Zt.prototype.put=function(n,r){var c=this,d=this.schema.primKey,m=d.auto,h=d.keyPath,v=n;return h&&m&&(v=lo(h)(n)),this._trans("readwrite",function(k){return c.core.mutate({trans:k,type:"put",values:[v],keys:r!=null?[r]:null})}).then(function(k){return k.numFailures?ht.reject(k.failures[0]):k.lastResult}).then(function(k){if(h)try{H(n,h,k)}catch{}return k})},Zt.prototype.delete=function(n){var r=this;return this._trans("readwrite",function(c){return r.core.mutate({trans:c,type:"delete",keys:[n]}).then(function(d){return co(r,[n],d)}).then(function(d){return d.numFailures?ht.reject(d.failures[0]):void 0})})},Zt.prototype.clear=function(){var n=this;return this._trans("readwrite",function(r){return n.core.mutate({trans:r,type:"deleteRange",range:Fl}).then(function(c){return co(n,null,c)})}).then(function(r){return r.numFailures?ht.reject(r.failures[0]):void 0})},Zt.prototype.bulkGet=function(n){var r=this;return this._trans("readonly",function(c){return r.core.getMany({keys:n,trans:c}).then(function(d){return d.map(function(m){return r.hook.reading.fire(m)})})})},Zt.prototype.bulkAdd=function(n,r,c){var d=this,m=Array.isArray(r)?r:void 0,h=(c=c||(m?void 0:r))?c.allKeys:void 0;return this._trans("readwrite",function(v){var k=d.schema.primKey,q=k.auto,k=k.keyPath;if(k&&m)throw new ot.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(m&&m.length!==n.length)throw new ot.InvalidArgument("Arguments objects and keys must have the same length");var j=n.length,q=k&&q?n.map(lo(k)):n;return d.core.mutate({trans:v,type:"add",keys:m,values:q,wantResults:h}).then(function(M){var C=M.numFailures,O=M.failures;if(C===0)return h?M.results:M.lastResult;throw new tt("".concat(d.name,".bulkAdd(): ").concat(C," of ").concat(j," operations failed"),O)})})},Zt.prototype.bulkPut=function(n,r,c){var d=this,m=Array.isArray(r)?r:void 0,h=(c=c||(m?void 0:r))?c.allKeys:void 0;return this._trans("readwrite",function(v){var k=d.schema.primKey,q=k.auto,k=k.keyPath;if(k&&m)throw new ot.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(m&&m.length!==n.length)throw new ot.InvalidArgument("Arguments objects and keys must have the same length");var j=n.length,q=k&&q?n.map(lo(k)):n;return d.core.mutate({trans:v,type:"put",keys:m,values:q,wantResults:h}).then(function(M){var C=M.numFailures,O=M.failures;if(C===0)return h?M.results:M.lastResult;throw new tt("".concat(d.name,".bulkPut(): ").concat(C," of ").concat(j," operations failed"),O)})})},Zt.prototype.bulkUpdate=function(n){var r=this,c=this.core,d=n.map(function(v){return v.key}),m=n.map(function(v){return v.changes}),h=[];return this._trans("readwrite",function(v){return c.getMany({trans:v,keys:d,cache:"clone"}).then(function(k){var j=[],q=[],M=(n.forEach(function(C,O){var R=C.key,D=C.changes,E=k[O];if(E){for(var K=0,J=Object.keys(D);K<J.length;K++){var U=J[K],Z=D[U];if(U===r.schema.primKey.keyPath){if(Lt(Z,R)!==0)throw new ot.Constraint("Cannot update primary key in bulkUpdate()")}else H(E,U,Z)}h.push(O),j.push(R),q.push(E)}}),j.length);return c.mutate({trans:v,type:"put",keys:j,values:q,updates:{keys:d,changeSpecs:m}}).then(function(C){var O=C.numFailures,R=C.failures;if(O===0)return M;for(var D=0,E=Object.keys(R);D<E.length;D++){var K,J=E[D],U=h[Number(J)];U!=null&&(K=R[J],delete R[J],R[U]=K)}throw new tt("".concat(r.name,".bulkUpdate(): ").concat(O," of ").concat(M," operations failed"),R)})})})},Zt.prototype.bulkDelete=function(n){var r=this,c=n.length;return this._trans("readwrite",function(d){return r.core.mutate({trans:d,type:"delete",keys:n}).then(function(m){return co(r,n,m)})}).then(function(d){var m=d.numFailures,h=d.failures;if(m===0)return d.lastResult;throw new tt("".concat(r.name,".bulkDelete(): ").concat(m," of ").concat(c," operations failed"),h)})};var Vl=Zt;function Zt(){}function cn(n){function r(v,k){if(k){for(var j=arguments.length,q=new Array(j-1);--j;)q[j-1]=arguments[j];return c[v].subscribe.apply(null,q),n}if(typeof v=="string")return c[v]}var c={};r.addEventType=h;for(var d=1,m=arguments.length;d<m;++d)h(arguments[d]);return r;function h(v,k,j){var q,M;if(typeof v!="object")return k=k||w,M={subscribers:[],fire:j=j||S,subscribe:function(C){M.subscribers.indexOf(C)===-1&&(M.subscribers.push(C),M.fire=k(M.fire,C))},unsubscribe:function(C){M.subscribers=M.subscribers.filter(function(O){return O!==C}),M.fire=M.subscribers.reduce(k,j)}},c[v]=r[v]=M;l(q=v).forEach(function(C){var O=q[C];if(b(O))h(C,q[C][0],q[C][1]);else{if(O!=="asap")throw new ot.InvalidArgument("Invalid event config");var R=h(C,A,function(){for(var D=arguments.length,E=new Array(D);D--;)E[D]=arguments[D];R.subscribers.forEach(function(K){X(function(){K.apply(null,E)})})})}})}}function un(n,r){return I(r).from({prototype:n}),r}function Ui(n,r){return!(n.filter||n.algorithm||n.or)&&(r?n.justLimit:!n.replayFilter)}function Fr(n,r){n.filter=Si(n.filter,r)}function zr(n,r,c){var d=n.replayFilter;n.replayFilter=d?function(){return Si(d(),r())}:r,n.justLimit=c&&!d}function uo(n,r){if(n.isPrimKey)return r.primaryKey;var c=r.getIndexByKeyPath(n.index);if(c)return c;throw new ot.Schema("KeyPath "+n.index+" on object store "+r.name+" is not indexed")}function Kl(n,r,c){var d=uo(n,r.schema);return r.openCursor({trans:c,values:!n.keysOnly,reverse:n.dir==="prev",unique:!!n.unique,query:{index:d,range:n.range}})}function bo(n,r,c,d){var m,h,v=n.replayFilter?Si(n.filter,n.replayFilter()):n.filter;return n.or?(m={},h=function(k,j,q){var M,C;v&&!v(j,q,function(O){return j.stop(O)},function(O){return j.fail(O)})||((C=""+(M=j.primaryKey))=="[object ArrayBuffer]"&&(C=""+new Uint8Array(M)),g(m,C))||(m[C]=!0,r(k,j,q))},Promise.all([n.or._iterate(h,c),Hl(Kl(n,d,c),n.algorithm,h,!n.keysOnly&&n.valueMapper)])):Hl(Kl(n,d,c),Si(n.algorithm,v),r,!n.keysOnly&&n.valueMapper)}function Hl(n,r,c,d){var m=ae(d?function(h,v,k){return c(d(h),v,k)}:c);return n.then(function(h){if(h)return h.start(function(){var v=function(){return h.continue()};r&&!r(h,function(k){return v=k},function(k){h.stop(k),v=S},function(k){h.fail(k),v=S})||m(h.value,h,function(k){return v=k}),v()})})}Ut.prototype._read=function(n,r){var c=this._ctx;return c.error?c.table._trans(null,Te.bind(null,c.error)):c.table._trans("readonly",n).then(r)},Ut.prototype._write=function(n){var r=this._ctx;return r.error?r.table._trans(null,Te.bind(null,r.error)):r.table._trans("readwrite",n,"locked")},Ut.prototype._addAlgorithm=function(n){var r=this._ctx;r.algorithm=Si(r.algorithm,n)},Ut.prototype._iterate=function(n,r){return bo(this._ctx,n,r,this._ctx.table.core)},Ut.prototype.clone=function(n){var r=Object.create(this.constructor.prototype),c=Object.create(this._ctx);return n&&u(c,n),r._ctx=c,r},Ut.prototype.raw=function(){return this._ctx.valueMapper=null,this},Ut.prototype.each=function(n){var r=this._ctx;return this._read(function(c){return bo(r,n,c,r.table.core)})},Ut.prototype.count=function(n){var r=this;return this._read(function(c){var d,m=r._ctx,h=m.table.core;return Ui(m,!0)?h.count({trans:c,query:{index:uo(m,h.schema),range:m.range}}).then(function(v){return Math.min(v,m.limit)}):(d=0,bo(m,function(){return++d,!1},c,h).then(function(){return d}))}).then(n)},Ut.prototype.sortBy=function(n,r){var c=n.split(".").reverse(),d=c[0],m=c.length-1;function h(j,q){return q?h(j[c[q]],q-1):j[d]}var v=this._ctx.dir==="next"?1:-1;function k(j,q){return Lt(h(j,m),h(q,m))*v}return this.toArray(function(j){return j.sort(k)}).then(r)},Ut.prototype.toArray=function(n){var r=this;return this._read(function(c){var d,m,h,v=r._ctx;return v.dir==="next"&&Ui(v,!0)&&0<v.limit?(d=v.valueMapper,m=uo(v,v.table.core.schema),v.table.core.query({trans:c,limit:v.limit,values:!0,query:{index:m,range:v.range}}).then(function(k){return k=k.result,d?k.map(d):k})):(h=[],bo(v,function(k){return h.push(k)},c,v.table.core).then(function(){return h}))},n)},Ut.prototype.offset=function(n){var r=this._ctx;return n<=0||(r.offset+=n,Ui(r)?zr(r,function(){var c=n;return function(d,m){return c===0||(c===1?--c:m(function(){d.advance(c),c=0}),!1)}}):zr(r,function(){var c=n;return function(){return--c<0}})),this},Ut.prototype.limit=function(n){return this._ctx.limit=Math.min(this._ctx.limit,n),zr(this._ctx,function(){var r=n;return function(c,d,m){return--r<=0&&d(m),0<=r}},!0),this},Ut.prototype.until=function(n,r){return Fr(this._ctx,function(c,d,m){return!n(c.value)||(d(m),r)}),this},Ut.prototype.first=function(n){return this.limit(1).toArray(function(r){return r[0]}).then(n)},Ut.prototype.last=function(n){return this.reverse().first(n)},Ut.prototype.filter=function(n){var r;return Fr(this._ctx,function(c){return n(c.value)}),(r=this._ctx).isMatch=Si(r.isMatch,n),this},Ut.prototype.and=function(n){return this.filter(n)},Ut.prototype.or=function(n){return new this.db.WhereClause(this._ctx.table,n,this)},Ut.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},Ut.prototype.desc=function(){return this.reverse()},Ut.prototype.eachKey=function(n){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(c,d){n(d.key,d)})},Ut.prototype.eachUniqueKey=function(n){return this._ctx.unique="unique",this.eachKey(n)},Ut.prototype.eachPrimaryKey=function(n){var r=this._ctx;return r.keysOnly=!r.isMatch,this.each(function(c,d){n(d.primaryKey,d)})},Ut.prototype.keys=function(n){var r=this._ctx,c=(r.keysOnly=!r.isMatch,[]);return this.each(function(d,m){c.push(m.key)}).then(function(){return c}).then(n)},Ut.prototype.primaryKeys=function(n){var r=this._ctx;if(r.dir==="next"&&Ui(r,!0)&&0<r.limit)return this._read(function(d){var m=uo(r,r.table.core.schema);return r.table.core.query({trans:d,values:!1,limit:r.limit,query:{index:m,range:r.range}})}).then(function(d){return d.result}).then(n);r.keysOnly=!r.isMatch;var c=[];return this.each(function(d,m){c.push(m.primaryKey)}).then(function(){return c}).then(n)},Ut.prototype.uniqueKeys=function(n){return this._ctx.unique="unique",this.keys(n)},Ut.prototype.firstKey=function(n){return this.limit(1).keys(function(r){return r[0]}).then(n)},Ut.prototype.lastKey=function(n){return this.reverse().firstKey(n)},Ut.prototype.distinct=function(){var n,r=this._ctx,r=r.index&&r.table.schema.idxByName[r.index];return r&&r.multi&&(n={},Fr(this._ctx,function(d){var d=d.primaryKey.toString(),m=g(n,d);return n[d]=!0,!m})),this},Ut.prototype.modify=function(n){var r=this,c=this._ctx;return this._write(function(d){function m(E,K){var J=K.failures;O+=E-K.numFailures;for(var U=0,Z=l(J);U<Z.length;U++){var at=Z[U];C.push(J[at])}}var h=typeof n=="function"?n:function(E){return $l(E,n)},v=c.table.core,M=v.schema.primaryKey,k=M.outbound,j=M.extractKey,q=200,M=r.db._options.modifyChunkSize,C=(M&&(q=typeof M=="object"?M[v.name]||M["*"]||200:M),[]),O=0,R=[],D=n===Gl;return r.clone().primaryKeys().then(function(E){function K(U){var Z=Math.min(q,E.length-U),at=E.slice(U,U+Z);return(D?Promise.resolve([]):v.getMany({trans:d,keys:at,cache:"immutable"})).then(function(bt){var dt=[],ct=[],St=k?[]:null,vt=D?at:[];if(!D)for(var ut=0;ut<Z;++ut){var Tt=bt[ut],Ft={value:Ct(Tt),primKey:E[U+ut]};h.call(Ft,Ft.value,Ft)!==!1&&(Ft.value==null?vt.push(E[U+ut]):k||Lt(j(Tt),j(Ft.value))===0?(ct.push(Ft.value),k&&St.push(E[U+ut])):(vt.push(E[U+ut]),dt.push(Ft.value)))}return Promise.resolve(0<dt.length&&v.mutate({trans:d,type:"add",values:dt}).then(function(qt){for(var xt in qt.failures)vt.splice(parseInt(xt),1);m(dt.length,qt)})).then(function(){return(0<ct.length||J&&typeof n=="object")&&v.mutate({trans:d,type:"put",keys:St,values:ct,criteria:J,changeSpec:typeof n!="function"&&n,isAdditionalChunk:0<U}).then(function(qt){return m(ct.length,qt)})}).then(function(){return(0<vt.length||J&&D)&&v.mutate({trans:d,type:"delete",keys:vt,criteria:J,isAdditionalChunk:0<U}).then(function(qt){return co(c.table,vt,qt)}).then(function(qt){return m(vt.length,qt)})}).then(function(){return E.length>U+Z&&K(U+q)})})}var J=Ui(c)&&c.limit===1/0&&(typeof n!="function"||D)&&{index:c.index,range:c.range};return K(0).then(function(){if(0<C.length)throw new Se("Error modifying one or more objects",C,O,R);return E.length})})})},Ut.prototype.delete=function(){var n=this._ctx,r=n.range;return!Ui(n)||n.table.schema.yProps||!n.isPrimKey&&r.type!==3?this.modify(Gl):this._write(function(c){var d=n.table.core.schema.primaryKey,m=r;return n.table.core.count({trans:c,query:{index:d,range:m}}).then(function(h){return n.table.core.mutate({trans:c,type:"deleteRange",range:m}).then(function(j){var k=j.failures,j=j.numFailures;if(j)throw new Se("Could not delete some values",Object.keys(k).map(function(q){return k[q]}),h-j);return h-j})})})};var P0=Ut;function Ut(){}var Gl=function(n,r){return r.value=null};function x0(n,r){return n<r?-1:n===r?0:1}function A0(n,r){return r<n?-1:n===r?0:1}function Xe(n,r,c){return n=n instanceof Jl?new n.Collection(n):n,n._ctx.error=new(c||TypeError)(r),n}function qi(n){return new n.Collection(n,function(){return Wl("")}).limit(0)}function mo(R,r,c,d){var m,h,v,k,j,q,M,C=c.length;if(!c.every(function(E){return typeof E=="string"}))return Xe(R,Ll);function O(E){m=E==="next"?function(J){return J.toUpperCase()}:function(J){return J.toLowerCase()},h=E==="next"?function(J){return J.toLowerCase()}:function(J){return J.toUpperCase()},v=E==="next"?x0:A0;var K=c.map(function(J){return{lower:h(J),upper:m(J)}}).sort(function(J,U){return v(J.lower,U.lower)});k=K.map(function(J){return J.upper}),j=K.map(function(J){return J.lower}),M=(q=E)==="next"?"":d}O("next");var R=new R.Collection(R,function(){return ni(k[0],j[C-1]+d)}),D=(R._ondirectionchange=function(E){O(E)},0);return R._addAlgorithm(function(E,K,J){var U=E.key;if(typeof U=="string"){var Z=h(U);if(r(Z,j,D))return!0;for(var at=null,bt=D;bt<C;++bt){var dt=((ct,St,vt,ut,Tt,Ft)=>{for(var qt=Math.min(ct.length,ut.length),xt=-1,Nt=0;Nt<qt;++Nt){var de=St[Nt];if(de!==ut[Nt])return Tt(ct[Nt],vt[Nt])<0?ct.substr(0,Nt)+vt[Nt]+vt.substr(Nt+1):Tt(ct[Nt],ut[Nt])<0?ct.substr(0,Nt)+ut[Nt]+vt.substr(Nt+1):0<=xt?ct.substr(0,xt)+St[xt]+vt.substr(xt+1):null;Tt(ct[Nt],de)<0&&(xt=Nt)}return qt<ut.length&&Ft==="next"?ct+vt.substr(ct.length):qt<ct.length&&Ft==="prev"?ct.substr(0,vt.length):xt<0?null:ct.substr(0,xt)+ut[xt]+vt.substr(xt+1)})(U,Z,k[bt],j[bt],v,q);dt===null&&at===null?D=bt+1:(at===null||0<v(at,dt))&&(at=dt)}K(at!==null?function(){E.continue(at+M)}:J)}return!1}),R}function ni(n,r,c,d){return{type:2,lower:n,upper:r,lowerOpen:c,upperOpen:d}}function Wl(n){return{type:1,lower:n,upper:n}}Object.defineProperty(Me.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),Me.prototype.between=function(n,r,c,d){c=c!==!1,d=d===!0;try{return 0<this._cmp(n,r)||this._cmp(n,r)===0&&(c||d)&&(!c||!d)?qi(this):new this.Collection(this,function(){return ni(n,r,!c,!d)})}catch{return Xe(this,Rs)}},Me.prototype.equals=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return Wl(n)})},Me.prototype.above=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(n,void 0,!0)})},Me.prototype.aboveOrEqual=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(n,void 0,!1)})},Me.prototype.below=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(void 0,n,!1,!0)})},Me.prototype.belowOrEqual=function(n){return n==null?Xe(this,Rs):new this.Collection(this,function(){return ni(void 0,n)})},Me.prototype.startsWith=function(n){return typeof n!="string"?Xe(this,Ll):this.between(n,n+ki,!0,!0)},Me.prototype.startsWithIgnoreCase=function(n){return n===""?this.startsWith(n):mo(this,function(r,c){return r.indexOf(c[0])===0},[n],ki)},Me.prototype.equalsIgnoreCase=function(n){return mo(this,function(r,c){return r===c[0]},[n],"")},Me.prototype.anyOfIgnoreCase=function(){var n=be.apply(Xt,arguments);return n.length===0?qi(this):mo(this,function(r,c){return c.indexOf(r)!==-1},n,"")},Me.prototype.startsWithAnyOfIgnoreCase=function(){var n=be.apply(Xt,arguments);return n.length===0?qi(this):mo(this,function(r,c){return c.some(function(d){return r.indexOf(d)===0})},n,ki)},Me.prototype.anyOf=function(){var n,r,c=this,d=be.apply(Xt,arguments),m=this._cmp;try{d.sort(m)}catch{return Xe(this,Rs)}return d.length===0?qi(this):((n=new this.Collection(this,function(){return ni(d[0],d[d.length-1])}))._ondirectionchange=function(h){m=h==="next"?c._ascending:c._descending,d.sort(m)},r=0,n._addAlgorithm(function(h,v,k){for(var j=h.key;0<m(j,d[r]);)if(++r===d.length)return v(k),!1;return m(j,d[r])===0||(v(function(){h.continue(d[r])}),!1)}),n)},Me.prototype.notEqual=function(n){return this.inAnyRange([[-1/0,n],[n,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},Me.prototype.noneOf=function(){var n=be.apply(Xt,arguments);if(n.length===0)return new this.Collection(this);try{n.sort(this._ascending)}catch{return Xe(this,Rs)}var r=n.reduce(function(c,d){return c?c.concat([[c[c.length-1][1],d]]):[[-1/0,d]]},null);return r.push([n[n.length-1],this.db._maxKey]),this.inAnyRange(r,{includeLowers:!1,includeUppers:!1})},Me.prototype.inAnyRange=function(n,J){var c=this,d=this._cmp,m=this._ascending,h=this._descending,v=this._min,k=this._max;if(n.length===0)return qi(this);if(!n.every(function(U){return U[0]!==void 0&&U[1]!==void 0&&m(U[0],U[1])<=0}))return Xe(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",ot.InvalidArgument);var j=!J||J.includeLowers!==!1,q=J&&J.includeUppers===!0,M,C=m;function O(U,Z){return C(U[0],Z[0])}try{(M=n.reduce(function(U,Z){for(var at=0,bt=U.length;at<bt;++at){var dt=U[at];if(d(Z[0],dt[1])<0&&0<d(Z[1],dt[0])){dt[0]=v(dt[0],Z[0]),dt[1]=k(dt[1],Z[1]);break}}return at===bt&&U.push(Z),U},[])).sort(O)}catch{return Xe(this,Rs)}var R=0,D=q?function(U){return 0<m(U,M[R][1])}:function(U){return 0<=m(U,M[R][1])},E=j?function(U){return 0<h(U,M[R][0])}:function(U){return 0<=h(U,M[R][0])},K=D,J=new this.Collection(this,function(){return ni(M[0][0],M[M.length-1][1],!j,!q)});return J._ondirectionchange=function(U){C=U==="next"?(K=D,m):(K=E,h),M.sort(O)},J._addAlgorithm(function(U,Z,at){for(var bt,dt=U.key;K(dt);)if(++R===M.length)return Z(at),!1;return!D(bt=dt)&&!E(bt)||(c._cmp(dt,M[R][1])===0||c._cmp(dt,M[R][0])===0||Z(function(){C===m?U.continue(M[R][0]):U.continue(M[R][1])}),!1)}),J},Me.prototype.startsWithAnyOf=function(){var n=be.apply(Xt,arguments);return n.every(function(r){return typeof r=="string"})?n.length===0?qi(this):this.inAnyRange(n.map(function(r){return[r,r+ki]})):Xe(this,"startsWithAnyOf() only works with strings")};var Jl=Me;function Me(){}function _s(n){return ae(function(r){return bn(r),n(r.target.error),!1})}function bn(n){n.stopPropagation&&n.stopPropagation(),n.preventDefault&&n.preventDefault()}var dn="storagemutated",Br="x-storagemutated-1",oi=cn(null,dn),C0=(ws.prototype._lock=function(){return N(!kt.global),++this._reculock,this._reculock!==1||kt.global||(kt.lockOwnerFor=this),this},ws.prototype._unlock=function(){if(N(!kt.global),--this._reculock==0)for(kt.global||(kt.lockOwnerFor=null);0<this._blockedFuncs.length&&!this._locked();){var n=this._blockedFuncs.shift();try{yi(n[1],n[0])}catch{}}return this},ws.prototype._locked=function(){return this._reculock&&kt.lockOwnerFor!==this},ws.prototype.create=function(n){var r=this;if(this.mode){var c=this.db.idbdb,d=this.db._state.dbOpenError;if(N(!this.idbtrans),!n&&!c)switch(d&&d.name){case"DatabaseClosedError":throw new ot.DatabaseClosed(d);case"MissingAPIError":throw new ot.MissingAPI(d.message,d);default:throw new ot.OpenFailed(d)}if(!this.active)throw new ot.TransactionInactive;N(this._completion._state===null),(n=this.idbtrans=n||(this.db.core||c).transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})).onerror=ae(function(m){bn(m),r._reject(n.error)}),n.onabort=ae(function(m){bn(m),r.active&&r._reject(new ot.Abort(n.error)),r.active=!1,r.on("abort").fire(m)}),n.oncomplete=ae(function(){r.active=!1,r._resolve(),"mutatedParts"in n&&oi.storagemutated.fire(n.mutatedParts)})}return this},ws.prototype._promise=function(n,r,c){var d,m=this;return n==="readwrite"&&this.mode!=="readwrite"?Te(new ot.ReadOnly("Transaction is readonly")):this.active?this._locked()?new ht(function(h,v){m._blockedFuncs.push([function(){m._promise(n,r,c).then(h,v)},kt])}):c?ei(function(){var h=new ht(function(v,k){m._lock();var j=r(v,k,m);j&&j.then&&j.then(v,k)});return h.finally(function(){return m._unlock()}),h._lib=!0,h}):((d=new ht(function(h,v){var k=r(h,v,m);k&&k.then&&k.then(h,v)}))._lib=!0,d):Te(new ot.TransactionInactive)},ws.prototype._root=function(){return this.parent?this.parent._root():this},ws.prototype.waitFor=function(n){var r,c=this._root(),d=ht.resolve(n),m=(c._waitingFor?c._waitingFor=c._waitingFor.then(function(){return d}):(c._waitingFor=d,c._waitingQueue=[],r=c.idbtrans.objectStore(c.storeNames[0]),(function h(){for(++c._spinCount;c._waitingQueue.length;)c._waitingQueue.shift()();c._waitingFor&&(r.get(-1/0).onsuccess=h)})()),c._waitingFor);return new ht(function(h,v){d.then(function(k){return c._waitingQueue.push(ae(h.bind(null,k)))},function(k){return c._waitingQueue.push(ae(v.bind(null,k)))}).finally(function(){c._waitingFor===m&&(c._waitingFor=null)})})},ws.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new ot.Abort))},ws.prototype.table=function(n){var r=this._memoizedTables||(this._memoizedTables={});if(g(r,n))return r[n];var c=this.schema[n];if(c)return(c=new this.db.Table(n,c,this)).core=this.db.core.table(n),r[n]=c;throw new ot.NotFound("Table "+n+" not part of transaction")},ws);function ws(){}function Ur(n,r,c,d,m,h,v,k){return{name:n,keyPath:r,unique:c,multi:d,auto:m,compound:h,src:(c&&!v?"&":"")+(d?"*":"")+(m?"++":"")+Ql(r),type:k}}function Ql(n){return typeof n=="string"?n:n?"["+[].join.call(n,"+")+"]":""}function qr(n,r,c){return{name:n,primKey:r,indexes:c,mappedClass:null,idxByName:(d=function(m){return[m.name,m]},c.reduce(function(m,h,v){return h=d(h,v),h&&(m[h[0]]=h[1]),m},{}))};var d}var mn=function(n){try{return n.only([[]]),mn=function(){return[[]]},[[]]}catch{return mn=function(){return ki},ki}};function $r(n){return n==null?function(){}:typeof n=="string"?(r=n).split(".").length===1?function(c){return c[r]}:function(c){return W(c,r)}:function(c){return W(c,n)};var r}function Yl(n){return[].slice.call(n)}var E0=0;function fn(n){return n==null?":id":typeof n=="string"?n:"[".concat(n.join("+"),"]")}function j0(n,r,j){function d(D){if(D.type===3)return null;if(D.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var C=D.lower,O=D.upper,R=D.lowerOpen,D=D.upperOpen;return C===void 0?O===void 0?null:r.upperBound(O,!!D):O===void 0?r.lowerBound(C,!!R):r.bound(C,O,!!R,!!D)}function m(M){var C,O=M.name;return{name:O,schema:M,mutate:function(R){var D=R.trans,E=R.type,K=R.keys,J=R.values,U=R.range;return new Promise(function(Z,at){Z=ae(Z);var bt=D.objectStore(O),dt=bt.keyPath==null,ct=E==="put"||E==="add";if(!ct&&E!=="delete"&&E!=="deleteRange")throw new Error("Invalid operation type: "+E);var St,vt=(K||J||{length:1}).length;if(K&&J&&K.length!==J.length)throw new Error("Given keys array must have same length as given values array.");if(vt===0)return Z({numFailures:0,failures:{},results:[],lastResult:void 0});function ut(ve){++qt,bn(ve)}var Tt=[],Ft=[],qt=0;if(E==="deleteRange"){if(U.type===4)return Z({numFailures:qt,failures:Ft,results:[],lastResult:void 0});U.type===3?Tt.push(St=bt.clear()):Tt.push(St=bt.delete(d(U)))}else{var dt=ct?dt?[J,K]:[J,null]:[K,null],xt=dt[0],Nt=dt[1];if(ct)for(var de=0;de<vt;++de)Tt.push(St=Nt&&Nt[de]!==void 0?bt[E](xt[de],Nt[de]):bt[E](xt[de])),St.onerror=ut;else for(de=0;de<vt;++de)Tt.push(St=bt[E](xt[de])),St.onerror=ut}function is(ve){ve=ve.target.result,Tt.forEach(function(wi,aa){return wi.error!=null&&(Ft[aa]=wi.error)}),Z({numFailures:qt,failures:Ft,results:E==="delete"?K:Tt.map(function(wi){return wi.result}),lastResult:ve})}St.onerror=function(ve){ut(ve),is(ve)},St.onsuccess=is})},getMany:function(R){var D=R.trans,E=R.keys;return new Promise(function(K,J){K=ae(K);for(var U,Z=D.objectStore(O),at=E.length,bt=new Array(at),dt=0,ct=0,St=function(Tt){Tt=Tt.target,bt[Tt._pos]=Tt.result,++ct===dt&&K(bt)},vt=_s(J),ut=0;ut<at;++ut)E[ut]!=null&&((U=Z.get(E[ut]))._pos=ut,U.onsuccess=St,U.onerror=vt,++dt);dt===0&&K(bt)})},get:function(R){var D=R.trans,E=R.key;return new Promise(function(K,J){K=ae(K);var U=D.objectStore(O).get(E);U.onsuccess=function(Z){return K(Z.target.result)},U.onerror=_s(J)})},query:(C=k,function(R){return new Promise(function(D,E){D=ae(D);var K,J,U,ct=R.trans,Z=R.values,at=R.limit,dt=R.query,bt=at===1/0?void 0:at,St=dt.index,dt=dt.range,ct=ct.objectStore(O),ct=St.isPrimaryKey?ct:ct.index(St.name),St=d(dt);if(at===0)return D({result:[]});C?((dt=Z?ct.getAll(St,bt):ct.getAllKeys(St,bt)).onsuccess=function(vt){return D({result:vt.target.result})},dt.onerror=_s(E)):(K=0,J=!Z&&"openKeyCursor"in ct?ct.openKeyCursor(St):ct.openCursor(St),U=[],J.onsuccess=function(vt){var ut=J.result;return!ut||(U.push(Z?ut.value:ut.primaryKey),++K===at)?D({result:U}):void ut.continue()},J.onerror=_s(E))})}),openCursor:function(R){var D=R.trans,E=R.values,K=R.query,J=R.reverse,U=R.unique;return new Promise(function(Z,at){Z=ae(Z);var ct=K.index,bt=K.range,dt=D.objectStore(O),dt=ct.isPrimaryKey?dt:dt.index(ct.name),ct=J?U?"prevunique":"prev":U?"nextunique":"next",St=!E&&"openKeyCursor"in dt?dt.openKeyCursor(d(bt),ct):dt.openCursor(d(bt),ct);St.onerror=_s(at),St.onsuccess=ae(function(vt){var ut,Tt,Ft,qt,xt=St.result;xt?(xt.___id=++E0,xt.done=!1,ut=xt.continue.bind(xt),Tt=(Tt=xt.continuePrimaryKey)&&Tt.bind(xt),Ft=xt.advance.bind(xt),qt=function(){throw new Error("Cursor not stopped")},xt.trans=D,xt.stop=xt.continue=xt.continuePrimaryKey=xt.advance=function(){throw new Error("Cursor not started")},xt.fail=ae(at),xt.next=function(){var Nt=this,de=1;return this.start(function(){return de--?Nt.continue():Nt.stop()}).then(function(){return Nt})},xt.start=function(Nt){function de(){if(St.result)try{Nt()}catch(ve){xt.fail(ve)}else xt.done=!0,xt.start=function(){throw new Error("Cursor behind last entry")},xt.stop()}var is=new Promise(function(ve,wi){ve=ae(ve),St.onerror=_s(wi),xt.fail=wi,xt.stop=function(aa){xt.stop=xt.continue=xt.continuePrimaryKey=xt.advance=qt,ve(aa)}});return St.onsuccess=ae(function(ve){St.onsuccess=de,de()}),xt.continue=ut,xt.continuePrimaryKey=Tt,xt.advance=Ft,de(),is},Z(xt)):Z(null)},at)})},count:function(R){var D=R.query,E=R.trans,K=D.index,J=D.range;return new Promise(function(U,Z){var at=E.objectStore(O),at=K.isPrimaryKey?at:at.index(K.name),bt=d(J),bt=bt?at.count(bt):at.count();bt.onsuccess=ae(function(dt){return U(dt.target.result)}),bt.onerror=_s(Z)})}}}h=j,v=Yl((j=n).objectStoreNames);var h,j={schema:{name:j.name,tables:v.map(function(M){return h.objectStore(M)}).map(function(M){var C=M.keyPath,O=M.autoIncrement,D=b(C),R={},D={name:M.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:C==null,compound:D,keyPath:C,autoIncrement:O,unique:!0,extractKey:$r(C)},indexes:Yl(M.indexNames).map(function(E){return M.index(E)}).map(function(U){var Z=U.name,K=U.unique,J=U.multiEntry,U=U.keyPath,Z={name:Z,compound:b(U),keyPath:U,unique:K,multiEntry:J,extractKey:$r(U)};return R[fn(U)]=Z}),getIndexByKeyPath:function(E){return R[fn(E)]}};return R[":id"]=D.primaryKey,C!=null&&(R[fn(C)]=D.primaryKey),D})},hasGetAll:0<v.length&&"getAll"in h.objectStore(v[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)},v=j.schema,k=j.hasGetAll,j=v.tables.map(m),q={};return j.forEach(function(M){return q[M.name]=M}),{stack:"dbcore",transaction:n.transaction.bind(n),table:function(M){if(q[M])return q[M];throw new Error("Table '".concat(M,"' not found"))},MIN_KEY:-1/0,MAX_KEY:mn(r),schema:v}}function M0(n,r,c,d){return c=c.IDBKeyRange,r=j0(r,c,d),{dbcore:n.dbcore.reduce(function(m,h){return h=h.create,i(i({},m),h(m))},r)}}function fo(n,r){var c=r.db,c=M0(n._middlewares,c,n._deps,r);n.core=c.dbcore,n.tables.forEach(function(d){var m=d.name;n.core.schema.tables.some(function(h){return h.name===m})&&(d.core=n.core.table(m),n[m]instanceof n.Table)&&(n[m].core=d.core)})}function po(n,r,c,d){c.forEach(function(m){var h=d[m];r.forEach(function(v){var k=(function j(q,M){return $(q,M)||(q=f(q))&&j(q,M)})(v,m);(!k||"value"in k&&k.value===void 0)&&(v===n.Transaction.prototype||v instanceof n.Transaction?z(v,m,{get:function(){return this.table(m)},set:function(j){_(this,m,{value:j,writable:!0,configurable:!0,enumerable:!0})}}):v[m]=new n.Table(m,h))})})}function Vr(n,r){r.forEach(function(c){for(var d in c)c[d]instanceof n.Table&&delete c[d]})}function D0(n,r){return n._cfg.version-r._cfg.version}function O0(n,r,c,d){var m=n._dbSchema,h=(c.objectStoreNames.contains("$meta")&&!m.$meta&&(m.$meta=qr("$meta",Zl("")[0],[]),n._storeNames.push("$meta")),n._createTransaction("readwrite",n._storeNames,m)),v=(h.create(c),h._completion.catch(d),h._reject.bind(h)),k=kt.transless||kt;ei(function(){if(kt.trans=h,kt.transless=k,r!==0)return fo(n,c),q=r,((j=h).storeNames.includes("$meta")?j.table("$meta").get("version").then(function(M){return M??q}):ht.resolve(q)).then(function(K){var C=n,O=K,R=h,D=c,E=[],K=C._versions,J=C._dbSchema=go(0,C.idbdb,D);return(K=K.filter(function(U){return U._cfg.version>=O})).length===0?ht.resolve():(K.forEach(function(U){E.push(function(){var Z,at,bt,dt=J,ct=U._cfg.dbschema,St=(vo(C,dt,D),vo(C,ct,D),J=C._dbSchema=ct,Kr(dt,ct)),vt=(St.add.forEach(function(ut){Hr(D,ut[0],ut[1].primKey,ut[1].indexes)}),St.change.forEach(function(ut){if(ut.recreate)throw new ot.Upgrade("Not yet support for changing primary key");var Tt=D.objectStore(ut.name);ut.add.forEach(function(Ft){return ho(Tt,Ft)}),ut.change.forEach(function(Ft){Tt.deleteIndex(Ft.name),ho(Tt,Ft)}),ut.del.forEach(function(Ft){return Tt.deleteIndex(Ft)})}),U._cfg.contentUpgrade);if(vt&&U._cfg.version>O)return fo(C,D),R._memoizedTables={},Z=rt(ct),St.del.forEach(function(ut){Z[ut]=dt[ut]}),Vr(C,[C.Transaction.prototype]),po(C,[C.Transaction.prototype],l(Z),Z),R.schema=Z,(at=Pe(vt))&&zi(),ct=ht.follow(function(){var ut;(bt=vt(R))&&at&&(ut=si.bind(null,null),bt.then(ut,ut))}),bt&&typeof bt.then=="function"?ht.resolve(bt):ct.then(function(){return bt})}),E.push(function(Z){var at,bt,dt=U._cfg.dbschema;at=dt,bt=Z,[].slice.call(bt.db.objectStoreNames).forEach(function(ct){return at[ct]==null&&bt.db.deleteObjectStore(ct)}),Vr(C,[C.Transaction.prototype]),po(C,[C.Transaction.prototype],C._storeNames,C._dbSchema),R.schema=C._dbSchema}),E.push(function(Z){C.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(C.idbdb.version/10)===U._cfg.version?(C.idbdb.deleteObjectStore("$meta"),delete C._dbSchema.$meta,C._storeNames=C._storeNames.filter(function(at){return at!=="$meta"})):Z.objectStore("$meta").put(U._cfg.version,"version"))})}),(function U(){return E.length?ht.resolve(E.shift()(R.idbtrans)).then(U):ht.resolve()})().then(function(){Xl(J,D)}))}).catch(v);var j,q;l(m).forEach(function(M){Hr(c,M,m[M].primKey,m[M].indexes)}),fo(n,c),ht.follow(function(){return n.on.populate.fire(h)}).catch(v)})}function R0(n,r){Xl(n._dbSchema,r),r.db.version%10!=0||r.objectStoreNames.contains("$meta")||r.db.createObjectStore("$meta").add(Math.ceil(r.db.version/10-1),"version");var c=go(0,n.idbdb,r);vo(n,n._dbSchema,r);for(var d=0,m=Kr(c,n._dbSchema).change;d<m.length;d++){var h=(v=>{if(v.change.length||v.recreate)return console.warn("Unable to patch indexes of table ".concat(v.name," because it has changes on the type of index or primary key.")),{value:void 0};var k=r.objectStore(v.name);v.add.forEach(function(j){V&&console.debug("Dexie upgrade patch: Creating missing index ".concat(v.name,".").concat(j.src)),ho(k,j)})})(m[d]);if(typeof h=="object")return h.value}}function Kr(n,r){var c,d={del:[],add:[],change:[]};for(c in n)r[c]||d.del.push(c);for(c in r){var m=n[c],h=r[c];if(m){var v={name:c,def:h,recreate:!1,del:[],add:[],change:[]};if(""+(m.primKey.keyPath||"")!=""+(h.primKey.keyPath||"")||m.primKey.auto!==h.primKey.auto)v.recreate=!0,d.change.push(v);else{var k=m.idxByName,j=h.idxByName,q=void 0;for(q in k)j[q]||v.del.push(q);for(q in j){var M=k[q],C=j[q];M?M.src!==C.src&&v.change.push(C):v.add.push(C)}(0<v.del.length||0<v.add.length||0<v.change.length)&&d.change.push(v)}}else d.add.push([c,h])}return d}function Hr(n,r,c,d){var m=n.db.createObjectStore(r,c.keyPath?{keyPath:c.keyPath,autoIncrement:c.auto}:{autoIncrement:c.auto});d.forEach(function(h){return ho(m,h)})}function Xl(n,r){l(n).forEach(function(c){r.db.objectStoreNames.contains(c)||(V&&console.debug("Dexie: Creating missing table",c),Hr(r,c,n[c].primKey,n[c].indexes))})}function ho(n,r){n.createIndex(r.name,r.keyPath,{unique:r.unique,multiEntry:r.multi})}function go(n,r,c){var d={};return x(r.objectStoreNames,0).forEach(function(m){for(var h=c.objectStore(m),v=Ur(Ql(q=h.keyPath),q||"",!0,!1,!!h.autoIncrement,q&&typeof q!="string",!0),k=[],j=0;j<h.indexNames.length;++j){var M=h.index(h.indexNames[j]),q=M.keyPath,M=Ur(M.name,q,!!M.unique,!!M.multiEntry,!1,q&&typeof q!="string",!1);k.push(M)}d[m]=qr(m,v,k)}),d}function vo(n,r,c){for(var d=c.db.objectStoreNames,m=0;m<d.length;++m){var h=d[m],v=c.objectStore(h);n._hasGetAll="getAll"in v;for(var k=0;k<v.indexNames.length;++k){var j,q=v.indexNames[k],M=v.index(q).keyPath,M=typeof M=="string"?M:"["+x(M).join("+")+"]";r[h]&&(j=r[h].idxByName[M])&&(j.name=q,delete r[h].idxByName[M],r[h].idxByName[q]=j)}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&a.WorkerGlobalScope&&a instanceof a.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(n._hasGetAll=!1)}function Zl(n){return n.split(",").map(function(r,c){var m=r.split(":"),d=(d=m[1])==null?void 0:d.trim(),m=(r=m[0].trim()).replace(/([&*]|\+\+)/g,""),h=/^\[/.test(m)?m.match(/^\[(.*)\]$/)[1].split("+"):m;return Ur(m,h||null,/\&/.test(r),/\*/.test(r),/\+\+/.test(r),b(h),c===0,d)})}$i.prototype._createTableSchema=qr,$i.prototype._parseIndexSyntax=Zl,$i.prototype._parseStoresSpec=function(n,r){var c=this;l(n).forEach(function(d){if(n[d]!==null){var m=c._parseIndexSyntax(n[d]),h=m.shift();if(!h)throw new ot.Schema("Invalid schema for table "+d+": "+n[d]);if(h.unique=!0,h.multi)throw new ot.Schema("Primary key cannot be multiEntry*");m.forEach(function(v){if(v.auto)throw new ot.Schema("Only primary key can be marked as autoIncrement (++)");if(!v.keyPath)throw new ot.Schema("Index must have a name and cannot be an empty string")}),h=c._createTableSchema(d,h,m),r[d]=h}})},$i.prototype.stores=function(c){var r=this.db,c=(this._cfg.storesSource=this._cfg.storesSource?u(this._cfg.storesSource,c):c,r._versions),d={},m={};return c.forEach(function(h){u(d,h._cfg.storesSource),m=h._cfg.dbschema={},h._parseStoresSpec(d,m)}),r._dbSchema=m,Vr(r,[r._allTables,r,r.Transaction.prototype]),po(r,[r._allTables,r,r.Transaction.prototype,this._cfg.tables],l(m),m),r._storeNames=l(m),this},$i.prototype.upgrade=function(n){return this._cfg.contentUpgrade=L(this._cfg.contentUpgrade||S,n),this};var N0=$i;function $i(){}function Gr(n,r){var c=n._dbNamesDB;return c||(c=n._dbNamesDB=new Ns(ao,{addons:[],indexedDB:n,IDBKeyRange:r})).version(1).stores({dbnames:"name"}),c.table("dbnames")}function Wr(n){return n&&typeof n.databases=="function"}function Jr(n){return ei(function(){return kt.letThrough=!0,n()})}function Qr(n){return!("from"in n)}var Fe=function(n,r){var c;if(!this)return c=new Fe,n&&"d"in n&&u(c,n),c;u(this,arguments.length?{d:1,from:n,to:1<arguments.length?r:n}:{d:0})};function pn(n,r,c){var d=Lt(r,c);if(!isNaN(d)){if(0<d)throw RangeError();if(Qr(n))return u(n,{from:r,to:c,d:1});var d=n.l,m=n.r;if(Lt(c,n.from)<0)return d?pn(d,r,c):n.l={from:r,to:c,d:1,l:null,r:null},ec(n);if(0<Lt(r,n.to))return m?pn(m,r,c):n.r={from:r,to:c,d:1,l:null,r:null},ec(n);Lt(r,n.from)<0&&(n.from=r,n.l=null,n.d=m?m.d+1:1),0<Lt(c,n.to)&&(n.to=c,n.r=null,n.d=n.l?n.l.d+1:1),r=!n.r,d&&!n.l&&hn(n,d),m&&r&&hn(n,m)}}function hn(n,r){Qr(r)||(function c(d,m){var h=m.from,v=m.l,k=m.r;pn(d,h,m.to),v&&c(d,v),k&&c(d,k)})(n,r)}function tc(n,r){var c=yo(r),d=c.next();if(!d.done)for(var m=d.value,h=yo(n),v=h.next(m.from),k=v.value;!d.done&&!v.done;){if(Lt(k.from,m.to)<=0&&0<=Lt(k.to,m.from))return!0;Lt(m.from,k.from)<0?m=(d=c.next(k.from)).value:k=(v=h.next(m.from)).value}return!1}function yo(n){var r=Qr(n)?null:{s:0,n};return{next:function(c){for(var d=0<arguments.length;r;)switch(r.s){case 0:if(r.s=1,d)for(;r.n.l&&Lt(c,r.n.from)<0;)r={up:r,n:r.n.l,s:1};else for(;r.n.l;)r={up:r,n:r.n.l,s:1};case 1:if(r.s=2,!d||Lt(c,r.n.to)<=0)return{value:r.n,done:!1};case 2:if(r.n.r){r.s=3,r={up:r,n:r.n.r,s:0};continue}case 3:r=r.up}return{done:!0}}}}function ec(n){var r,c,d,m=(((m=n.r)==null?void 0:m.d)||0)-(((m=n.l)==null?void 0:m.d)||0),m=1<m?"r":m<-1?"l":"";m&&(r=m=="r"?"l":"r",c=i({},n),d=n[m],n.from=d.from,n.to=d.to,n[m]=d[m],c[m]=d[r],(n[r]=c).d=sc(c)),n.d=sc(n)}function sc(c){var r=c.r,c=c.l;return(r?c?Math.max(r.d,c.d):r.d:c?c.d:0)+1}function ko(n,r){return l(r).forEach(function(c){n[c]?hn(n[c],r[c]):n[c]=(function d(m){var h,v,k={};for(h in m)g(m,h)&&(v=m[h],k[h]=!v||typeof v!="object"||Pt.has(v.constructor)?v:d(v));return k})(r[c])}),n}function Yr(n,r){return n.all||r.all||Object.keys(n).some(function(c){return r[c]&&tc(r[c],n[c])})}y(Fe.prototype,((ft={add:function(n){return hn(this,n),this},addKey:function(n){return pn(this,n,n),this},addKeys:function(n){var r=this;return n.forEach(function(c){return pn(r,c,c)}),this},hasKey:function(n){var r=yo(this).next(n).value;return r&&Lt(r.from,n)<=0&&0<=Lt(r.to,n)}})[It]=function(){return yo(this)},ft));var Ti={},Xr={},Zr=!1;function So(n){ko(Xr,n),Zr||(Zr=!0,setTimeout(function(){Zr=!1,ta(Xr,!(Xr={}))},0))}function ta(n,r){r===void 0&&(r=!1);var c=new Set;if(n.all)for(var d=0,m=Object.values(Ti);d<m.length;d++)ic(k=m[d],n,c,r);else for(var h in n){var v,k,h=/^idb\:\/\/(.*)\/(.*)\//.exec(h);h&&(v=h[1],h=h[2],k=Ti["idb://".concat(v,"/").concat(h)])&&ic(k,n,c,r)}c.forEach(function(j){return j()})}function ic(n,r,c,d){for(var m=[],h=0,v=Object.entries(n.queries.query);h<v.length;h++){for(var k=v[h],j=k[0],q=[],M=0,C=k[1];M<C.length;M++){var O=C[M];Yr(r,O.obsSet)?O.subscribers.forEach(function(K){return c.add(K)}):d&&q.push(O)}d&&m.push([j,q])}if(d)for(var R=0,D=m;R<D.length;R++){var E=D[R],j=E[0],q=E[1];n.queries.query[j]=q}}function I0(n){var r=n._state,c=n._deps.indexedDB;if(r.isBeingOpened||n.idbdb)return r.dbReadyPromise.then(function(){return r.dbOpenError?Te(r.dbOpenError):n});r.isBeingOpened=!0,r.dbOpenError=null,r.openComplete=!1;var d=r.openCanceller,m=Math.round(10*n.verno),h=!1;function v(){if(r.openCanceller!==d)throw new ot.DatabaseClosed("db.open() was cancelled")}function k(){return new ht(function(O,R){if(v(),!c)throw new ot.MissingAPI;var D=n.name,E=r.autoSchema||!m?c.open(D):c.open(D,m);if(!E)throw new ot.MissingAPI;E.onerror=_s(R),E.onblocked=ae(n._fireOnBlocked),E.onupgradeneeded=ae(function(K){var J;M=E.transaction,r.autoSchema&&!n._options.allowEmptyDB?(E.onerror=bn,M.abort(),E.result.close(),(J=c.deleteDatabase(D)).onsuccess=J.onerror=ae(function(){R(new ot.NoSuchDatabase("Database ".concat(D," doesnt exist")))})):(M.onerror=_s(R),J=K.oldVersion>Math.pow(2,62)?0:K.oldVersion,C=J<1,n.idbdb=E.result,h&&R0(n,M),O0(n,J/10,M,R))},R),E.onsuccess=ae(function(){M=null;var K,J,U,Z,at,bt,dt=n.idbdb=E.result,ct=x(dt.objectStoreNames);if(0<ct.length)try{var St=dt.transaction((at=ct).length===1?at[0]:at,"readonly");if(r.autoSchema)bt=dt,Z=St,(U=n).verno=bt.version/10,Z=U._dbSchema=go(0,bt,Z),U._storeNames=x(bt.objectStoreNames,0),po(U,[U._allTables],l(Z),Z);else if(vo(n,n._dbSchema,St),J=St,((J=Kr(go(0,(K=n).idbdb,J),K._dbSchema)).add.length||J.change.some(function(vt){return vt.add.length||vt.change.length}))&&!h)return console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this."),dt.close(),m=dt.version+1,h=!0,O(k());fo(n,St)}catch{}Bi.push(n),dt.onversionchange=ae(function(vt){r.vcFired=!0,n.on("versionchange").fire(vt)}),dt.onclose=ae(function(){n.close({disableAutoOpen:!1})}),C&&(ct=n._deps,at=D,Wr(bt=ct.indexedDB)||at===ao||Gr(bt,ct.IDBKeyRange).put({name:at}).catch(S)),O()},R)}).catch(function(O){switch(O?.name){case"UnknownError":if(0<r.PR1398_maxLoop)return r.PR1398_maxLoop--,console.warn("Dexie: Workaround for Chrome UnknownError on open()"),k();break;case"VersionError":if(0<m)return m=0,k()}return ht.reject(O)})}var j,q=r.dbReadyResolve,M=null,C=!1;return ht.race([d,(typeof navigator>"u"?ht.resolve():!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(O){function R(){return indexedDB.databases().finally(O)}j=setInterval(R,100),R()}).finally(function(){return clearInterval(j)}):Promise.resolve()).then(k)]).then(function(){return v(),r.onReadyBeingFired=[],ht.resolve(Jr(function(){return n.on.ready.fire(n.vip)})).then(function O(){var R;if(0<r.onReadyBeingFired.length)return R=r.onReadyBeingFired.reduce(L,S),r.onReadyBeingFired=[],ht.resolve(Jr(function(){return R(n.vip)})).then(O)})}).finally(function(){r.openCanceller===d&&(r.onReadyBeingFired=null,r.isBeingOpened=!1)}).catch(function(O){r.dbOpenError=O;try{M&&M.abort()}catch{}return d===r.openCanceller&&n._close(),Te(O)}).finally(function(){r.openComplete=!0,q()}).then(function(){var O;return C&&(O={},n.tables.forEach(function(R){R.schema.indexes.forEach(function(D){D.name&&(O["idb://".concat(n.name,"/").concat(R.name,"/").concat(D.name)]=new Fe(-1/0,[[[]]]))}),O["idb://".concat(n.name,"/").concat(R.name,"/")]=O["idb://".concat(n.name,"/").concat(R.name,"/:dels")]=new Fe(-1/0,[[[]]])}),oi(dn).fire(O),ta(O,!0)),n})}function ea(n){function r(h){return n.next(h)}var c=m(r),d=m(function(h){return n.throw(h)});function m(h){return function(k){var k=h(k),j=k.value;return k.done?j:j&&typeof j.then=="function"?j.then(c,d):b(j)?Promise.all(j).then(c,d):c(j)}}return m(r)()}function To(n,r,c){for(var d=b(n)?n.slice():[n],m=0;m<c;++m)d.push(r);return d}var L0={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:function(n){return i(i({},n),{table:function(d){var c=n.table(d),d=c.schema,m={},h=[];function v(O,R,D){var U=fn(O),E=m[U]=m[U]||[],K=O==null?0:typeof O=="string"?1:O.length,J=0<R,U=i(i({},D),{name:J?"".concat(U,"(virtual-from:").concat(D.name,")"):D.name,lowLevelIndex:D,isVirtual:J,keyTail:R,keyLength:K,extractKey:$r(O),unique:!J&&D.unique});return E.push(U),U.isPrimaryKey||h.push(U),1<K&&v(K===2?O[0]:O.slice(0,K-1),R+1,D),E.sort(function(Z,at){return Z.keyTail-at.keyTail}),U}var k=v(d.primaryKey.keyPath,0,d.primaryKey);m[":id"]=[k];for(var j=0,q=d.indexes;j<q.length;j++){var M=q[j];v(M.keyPath,0,M)}function C(O){var R,D=O.query.index;return D.isVirtual?i(i({},O),{query:{index:D.lowLevelIndex,range:(R=O.query.range,D=D.keyTail,{type:R.type===1?2:R.type,lower:To(R.lower,R.lowerOpen?n.MAX_KEY:n.MIN_KEY,D),lowerOpen:!0,upper:To(R.upper,R.upperOpen?n.MIN_KEY:n.MAX_KEY,D),upperOpen:!0})}}):O}return i(i({},c),{schema:i(i({},d),{primaryKey:k,indexes:h,getIndexByKeyPath:function(O){return(O=m[fn(O)])&&O[0]}}),count:function(O){return c.count(C(O))},query:function(O){return c.query(C(O))},openCursor:function(O){var R=O.query.index,D=R.keyTail,E=R.keyLength;return R.isVirtual?c.openCursor(C(O)).then(function(J){return J&&K(J)}):c.openCursor(O);function K(J){return Object.create(J,{continue:{value:function(U){U!=null?J.continue(To(U,O.reverse?n.MAX_KEY:n.MIN_KEY,D)):O.unique?J.continue(J.key.slice(0,E).concat(O.reverse?n.MIN_KEY:n.MAX_KEY,D)):J.continue()}},continuePrimaryKey:{value:function(U,Z){J.continuePrimaryKey(To(U,n.MAX_KEY,D),Z)}},primaryKey:{get:function(){return J.primaryKey}},key:{get:function(){var U=J.key;return E===1?U[0]:U.slice(0,E)}},value:{get:function(){return J.value}}})}}})}})}};function sa(n,r,c,d){return c=c||{},d=d||"",l(n).forEach(function(m){var h,v,k;g(r,m)?(h=n[m],v=r[m],typeof h=="object"&&typeof v=="object"&&h&&v?(k=ue(h))!==ue(v)?c[d+m]=r[m]:k==="Object"?sa(h,v,c,d+m+"."):h!==v&&(c[d+m]=r[m]):h!==v&&(c[d+m]=r[m])):c[d+m]=void 0}),l(r).forEach(function(m){g(n,m)||(c[d+m]=r[m])}),c}function ia(n,r){return r.type==="delete"?r.keys:r.keys||r.values.map(n.extractKey)}var F0={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(n){return i(i({},n),{table:function(r){var c=n.table(r),d=c.schema.primaryKey;return i(i({},c),{mutate:function(m){var h=kt.trans,v=h.table(r).hook,k=v.deleting,j=v.creating,q=v.updating;switch(m.type){case"add":if(j.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"put":if(j.fire===S&&q.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"delete":if(k.fire===S)break;return h._promise("readwrite",function(){return M(m)},!0);case"deleteRange":if(k.fire===S)break;return h._promise("readwrite",function(){return(function C(O,R,D){return c.query({trans:O,values:!1,query:{index:d,range:R},limit:D}).then(function(E){var K=E.result;return M({type:"delete",keys:K,trans:O}).then(function(J){return 0<J.numFailures?Promise.reject(J.failures[0]):K.length<D?{failures:[],numFailures:0,lastResult:void 0}:C(O,i(i({},R),{lower:K[K.length-1],lowerOpen:!0}),D)})})})(m.trans,m.range,1e4)},!0)}return c.mutate(m);function M(C){var O,R,D,E=kt.trans,K=C.keys||ia(d,C);if(K)return(C=C.type==="add"||C.type==="put"?i(i({},C),{keys:K}):i({},C)).type!=="delete"&&(C.values=o([],C.values)),C.keys&&(C.keys=o([],C.keys)),O=c,D=K,((R=C).type==="add"?Promise.resolve([]):O.getMany({trans:R.trans,keys:D,cache:"immutable"})).then(function(J){var U=K.map(function(Z,at){var bt,dt,ct,St=J[at],vt={onerror:null,onsuccess:null};return C.type==="delete"?k.fire.call(vt,Z,St,E):C.type==="add"||St===void 0?(bt=j.fire.call(vt,Z,C.values[at],E),Z==null&&bt!=null&&(C.keys[at]=Z=bt,d.outbound||H(C.values[at],d.keyPath,Z))):(bt=sa(St,C.values[at]),(dt=q.fire.call(vt,bt,Z,St,E))&&(ct=C.values[at],Object.keys(dt).forEach(function(ut){g(ct,ut)?ct[ut]=dt[ut]:H(ct,ut,dt[ut])}))),vt});return c.mutate(C).then(function(Z){for(var at=Z.failures,bt=Z.results,dt=Z.numFailures,Z=Z.lastResult,ct=0;ct<K.length;++ct){var St=(bt||K)[ct],vt=U[ct];St==null?vt.onerror&&vt.onerror(at[ct]):vt.onsuccess&&vt.onsuccess(C.type==="put"&&J[ct]?C.values[ct]:St)}return{failures:at,results:bt,numFailures:dt,lastResult:Z}}).catch(function(Z){return U.forEach(function(at){return at.onerror&&at.onerror(Z)}),Promise.reject(Z)})});throw new Error("Keys missing")}}})}})}};function nc(n,r,c){try{if(!r||r.keys.length<n.length)return null;for(var d=[],m=0,h=0;m<r.keys.length&&h<n.length;++m)Lt(r.keys[m],n[h])===0&&(d.push(c?Ct(r.values[m]):r.values[m]),++h);return d.length===n.length?d:null}catch{return null}}var z0={stack:"dbcore",level:-1,create:function(n){return{table:function(r){var c=n.table(r);return i(i({},c),{getMany:function(d){var m;return d.cache?(m=nc(d.keys,d.trans._cache,d.cache==="clone"))?ht.resolve(m):c.getMany(d).then(function(h){return d.trans._cache={keys:d.keys,values:d.cache==="clone"?Ct(h):h},h}):c.getMany(d)},mutate:function(d){return d.type!=="add"&&(d.trans._cache=null),c.mutate(d)}})}}}};function oc(n,r){return n.trans.mode==="readonly"&&!!n.subscr&&!n.trans.explicit&&n.trans.db._options.cache!=="disabled"&&!r.schema.primaryKey.outbound}function rc(n,r){switch(n){case"query":return r.values&&!r.unique;case"get":case"getMany":case"count":case"openCursor":return!1}}var B0={stack:"dbcore",level:0,name:"Observability",create:function(n){var r=n.schema.name,c=new Fe(n.MIN_KEY,n.MAX_KEY);return i(i({},n),{transaction:function(d,m,h){if(kt.subscr&&m!=="readonly")throw new ot.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(kt.querier));return n.transaction(d,m,h)},table:function(d){function m(K){var E,K=K.query;return[E=K.index,new Fe((E=(K=K.range).lower)!=null?E:n.MIN_KEY,(E=K.upper)!=null?E:n.MAX_KEY)]}var h=n.table(d),v=h.schema,k=v.primaryKey,j=v.indexes,q=k.extractKey,M=k.outbound,C=k.autoIncrement&&j.filter(function(D){return D.compound&&D.keyPath.includes(k.keyPath)}),O=i(i({},h),{mutate:function(D){function E(Tt){return Tt="idb://".concat(r,"/").concat(d,"/").concat(Tt),at[Tt]||(at[Tt]=new Fe)}var K,J,U,Z=D.trans,at=D.mutatedParts||(D.mutatedParts={}),bt=E(""),dt=E(":dels"),ct=D.type,vt=D.type==="deleteRange"?[D.range]:D.type==="delete"?[D.keys]:D.values.length<50?[ia(k,D).filter(function(Tt){return Tt}),D.values]:[],St=vt[0],vt=vt[1],ut=D.trans._cache;return b(St)?(bt.addKeys(St),(ct=ct==="delete"||St.length===vt.length?nc(St,ut):null)||dt.addKeys(St),(ct||vt)&&(K=E,J=ct,U=vt,v.indexes.forEach(function(Tt){var Ft=K(Tt.name||"");function qt(Nt){return Nt!=null?Tt.extractKey(Nt):null}function xt(Nt){Tt.multiEntry&&b(Nt)?Nt.forEach(function(de){return Ft.addKey(de)}):Ft.addKey(Nt)}(J||U).forEach(function(Nt,ve){var is=J&&qt(J[ve]),ve=U&&qt(U[ve]);Lt(is,ve)!==0&&(is!=null&&xt(is),ve!=null)&&xt(ve)})}))):St?(vt={from:(ut=St.lower)!=null?ut:n.MIN_KEY,to:(ct=St.upper)!=null?ct:n.MAX_KEY},dt.add(vt),bt.add(vt)):(bt.add(c),dt.add(c),v.indexes.forEach(function(Tt){return E(Tt.name).add(c)})),h.mutate(D).then(function(Tt){return!St||D.type!=="add"&&D.type!=="put"||(bt.addKeys(Tt.results),C&&C.forEach(function(Ft){for(var qt=D.values.map(function(is){return Ft.extractKey(is)}),xt=Ft.keyPath.findIndex(function(is){return is===k.keyPath}),Nt=0,de=Tt.results.length;Nt<de;++Nt)qt[Nt][xt]=Tt.results[Nt];E(Ft.name).addKeys(qt)})),Z.mutatedParts=ko(Z.mutatedParts||{},at),Tt})}}),R={get:function(D){return[k,new Fe(D.key)]},getMany:function(D){return[k,new Fe().addKeys(D.keys)]},count:m,query:m,openCursor:m};return l(R).forEach(function(D){O[D]=function(E){var K=kt.subscr,J=!!K,U=oc(kt,h)&&rc(D,E)?E.obsSet={}:K;if(J){var Z,K=function(vt){return vt="idb://".concat(r,"/").concat(d,"/").concat(vt),U[vt]||(U[vt]=new Fe)},at=K(""),bt=K(":dels"),J=R[D](E),dt=J[0],J=J[1];if((D==="query"&&dt.isPrimaryKey&&!E.values?bt:K(dt.name||"")).add(J),!dt.isPrimaryKey){if(D!=="count")return Z=D==="query"&&M&&E.values&&h.query(i(i({},E),{values:!1})),h[D].apply(this,arguments).then(function(vt){if(D==="query"){if(M&&E.values)return Z.then(function(qt){return qt=qt.result,at.addKeys(qt),vt});var ut=E.values?vt.result.map(q):vt.result;(E.values?at:bt).addKeys(ut)}else{var Tt,Ft;if(D==="openCursor")return Ft=E.values,(Tt=vt)&&Object.create(Tt,{key:{get:function(){return bt.addKey(Tt.primaryKey),Tt.key}},primaryKey:{get:function(){var qt=Tt.primaryKey;return bt.addKey(qt),qt}},value:{get:function(){return Ft&&at.addKey(Tt.primaryKey),Tt.value}}})}return vt});bt.add(c)}}return h[D].apply(this,arguments)}}),O}})}};function ac(n,r,c){var d;return c.numFailures===0?r:r.type==="deleteRange"||(d=r.keys?r.keys.length:"values"in r&&r.values?r.values.length:1,c.numFailures===d)?null:(d=i({},r),b(d.keys)&&(d.keys=d.keys.filter(function(m,h){return!(h in c.failures)})),"values"in d&&b(d.values)&&(d.values=d.values.filter(function(m,h){return!(h in c.failures)})),d)}function na(n,r){return c=n,((d=r).lower===void 0||(d.lowerOpen?0<Lt(c,d.lower):0<=Lt(c,d.lower)))&&(c=n,(d=r).upper===void 0||(d.upperOpen?Lt(c,d.upper)<0:Lt(c,d.upper)<=0));var c,d}function lc(n,r,c,d,m,h){var v,k,j,q,M,C;return!c||c.length===0||(v=r.query.index,k=v.multiEntry,j=r.query.range,q=d.schema.primaryKey.extractKey,M=v.extractKey,C=(v.lowLevelIndex||v).extractKey,(d=c.reduce(function(O,R){var D=O,E=[];if(R.type==="add"||R.type==="put")for(var K=new Fe,J=R.values.length-1;0<=J;--J){var U,Z=R.values[J],at=q(Z);!K.hasKey(at)&&(U=M(Z),k&&b(U)?U.some(function(vt){return na(vt,j)}):na(U,j))&&(K.addKey(at),E.push(Z))}switch(R.type){case"add":var bt=new Fe().addKeys(r.values?O.map(function(ut){return q(ut)}):O),D=O.concat(r.values?E.filter(function(ut){return ut=q(ut),!bt.hasKey(ut)&&(bt.addKey(ut),!0)}):E.map(function(ut){return q(ut)}).filter(function(ut){return!bt.hasKey(ut)&&(bt.addKey(ut),!0)}));break;case"put":var dt=new Fe().addKeys(R.values.map(function(ut){return q(ut)}));D=O.filter(function(ut){return!dt.hasKey(r.values?q(ut):ut)}).concat(r.values?E:E.map(function(ut){return q(ut)}));break;case"delete":var ct=new Fe().addKeys(R.keys);D=O.filter(function(ut){return!ct.hasKey(r.values?q(ut):ut)});break;case"deleteRange":var St=R.range;D=O.filter(function(ut){return!na(q(ut),St)})}return D},n))===n)?n:(d.sort(function(O,R){return Lt(C(O),C(R))||Lt(q(O),q(R))}),r.limit&&r.limit<1/0&&(d.length>r.limit?d.length=r.limit:n.length===r.limit&&d.length<r.limit&&(m.dirty=!0)),h?Object.freeze(d):d)}function cc(n,r){return Lt(n.lower,r.lower)===0&&Lt(n.upper,r.upper)===0&&!!n.lowerOpen==!!r.lowerOpen&&!!n.upperOpen==!!r.upperOpen}function U0(n,r){return((c,d,m,h)=>{if(c===void 0)return d!==void 0?-1:0;if(d===void 0)return 1;if((c=Lt(c,d))===0){if(m&&h)return 0;if(m)return 1;if(h)return-1}return c})(n.lower,r.lower,n.lowerOpen,r.lowerOpen)<=0&&0<=((c,d,m,h)=>{if(c===void 0)return d!==void 0?1:0;if(d===void 0)return-1;if((c=Lt(c,d))===0){if(m&&h)return 0;if(m)return-1;if(h)return 1}return c})(n.upper,r.upper,n.upperOpen,r.upperOpen)}function q0(n,r,c,d){n.subscribers.add(c),d.addEventListener("abort",function(){var m,h;n.subscribers.delete(c),n.subscribers.size===0&&(m=n,h=r,setTimeout(function(){m.subscribers.size===0&&Dt(h,m)},3e3))})}var $0={stack:"dbcore",level:0,name:"Cache",create:function(n){var r=n.schema.name;return i(i({},n),{transaction:function(c,d,m){var h,v,k=n.transaction(c,d,m);return d==="readwrite"&&(m=(h=new AbortController).signal,k.addEventListener("abort",(v=function(j){return function(){if(h.abort(),d==="readwrite"){for(var q=new Set,M=0,C=c;M<C.length;M++){var O=C[M],R=Ti["idb://".concat(r,"/").concat(O)];if(R){var D=n.table(O),E=R.optimisticOps.filter(function(Tt){return Tt.trans===k});if(k._explicit&&j&&k.mutatedParts)for(var K=0,J=Object.values(R.queries.query);K<J.length;K++)for(var U=0,Z=(dt=J[K]).slice();U<Z.length;U++)Yr((ct=Z[U]).obsSet,k.mutatedParts)&&(Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)}));else if(0<E.length){R.optimisticOps=R.optimisticOps.filter(function(Tt){return Tt.trans!==k});for(var at=0,bt=Object.values(R.queries.query);at<bt.length;at++)for(var dt,ct,St,vt=0,ut=(dt=bt[at]).slice();vt<ut.length;vt++)(ct=ut[vt]).res!=null&&k.mutatedParts&&(j&&!ct.dirty?(St=Object.isFrozen(ct.res),St=lc(ct.res,ct.req,E,D,ct,St),ct.dirty?(Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)})):St!==ct.res&&(ct.res=St,ct.promise=ht.resolve({result:St}))):(ct.dirty&&Dt(dt,ct),ct.subscribers.forEach(function(Tt){return q.add(Tt)})))}}}q.forEach(function(Tt){return Tt()})}}})(!1),{signal:m}),k.addEventListener("error",v(!1),{signal:m}),k.addEventListener("complete",v(!0),{signal:m})),k},table:function(c){var d=n.table(c),m=d.schema.primaryKey;return i(i({},d),{mutate:function(h){var v,k=kt.trans;return!m.outbound&&k.db._options.cache!=="disabled"&&!k.explicit&&k.idbtrans.mode==="readwrite"&&(v=Ti["idb://".concat(r,"/").concat(c)])?(k=d.mutate(h),h.type!=="add"&&h.type!=="put"||!(50<=h.values.length||ia(m,h).some(function(j){return j==null}))?(v.optimisticOps.push(h),h.mutatedParts&&So(h.mutatedParts),k.then(function(j){0<j.numFailures&&(Dt(v.optimisticOps,h),(j=ac(0,h,j))&&v.optimisticOps.push(j),h.mutatedParts)&&So(h.mutatedParts)}),k.catch(function(){Dt(v.optimisticOps,h),h.mutatedParts&&So(h.mutatedParts)})):k.then(function(j){var q=ac(0,i(i({},h),{values:h.values.map(function(M,C){var O;return j.failures[C]?M:(H(O=(O=m.keyPath)!=null&&O.includes(".")?Ct(M):i({},M),m.keyPath,j.results[C]),O)})}),j);v.optimisticOps.push(q),queueMicrotask(function(){return h.mutatedParts&&So(h.mutatedParts)})}),k):d.mutate(h)},query:function(h){var v,k,j,q,M,C,O;return oc(kt,d)&&rc("query",h)?(v=((j=kt.trans)==null?void 0:j.db._options.cache)==="immutable",k=(j=kt).requery,j=j.signal,C=((R,D,E,K)=>{var J=Ti["idb://".concat(R,"/").concat(D)];if(!J)return[];if(!(R=J.queries[E]))return[null,!1,J,null];var U=R[(K.query?K.query.index.name:null)||""];if(!U)return[null,!1,J,null];switch(E){case"query":var Z=U.find(function(at){return at.req.limit===K.limit&&at.req.values===K.values&&cc(at.req.query.range,K.query.range)});return Z?[Z,!0,J,U]:[U.find(function(at){return("limit"in at.req?at.req.limit:1/0)>=K.limit&&(!K.values||at.req.values)&&U0(at.req.query.range,K.query.range)}),!1,J,U];case"count":return Z=U.find(function(at){return cc(at.req.query.range,K.query.range)}),[Z,!!Z,J,U]}})(r,c,"query",h),O=C[0],q=C[2],M=C[3],O&&C[1]?O.obsSet=h.obsSet:(C=d.query(h).then(function(R){var D=R.result;if(O&&(O.res=D),v){for(var E=0,K=D.length;E<K;++E)Object.freeze(D[E]);Object.freeze(D)}else R.result=Ct(D);return R}).catch(function(R){return M&&O&&Dt(M,O),Promise.reject(R)}),O={obsSet:h.obsSet,promise:C,subscribers:new Set,type:"query",req:h,dirty:!1},M?M.push(O):(M=[O],(q=q||(Ti["idb://".concat(r,"/").concat(c)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}})).queries.query[h.query.index.name||""]=M)),q0(O,M,k,j),O.promise.then(function(R){return{result:lc(R.result,h,q?.optimisticOps,d,O,v)}})):d.query(h)}})}})}};function _o(n,r){return new Proxy(n,{get:function(c,d,m){return d==="db"?r:Reflect.get(c,d,m)}})}_e.prototype.version=function(n){if(isNaN(n)||n<.1)throw new ot.Type("Given version is not a positive number");if(n=Math.round(10*n)/10,this.idbdb||this._state.isBeingOpened)throw new ot.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,n);var r=this._versions,c=r.filter(function(d){return d._cfg.version===n})[0];return c||(c=new this.Version(n),r.push(c),r.sort(D0),c.stores({}),this._state.autoSchema=!1),c},_e.prototype._whenReady=function(n){var r=this;return this.idbdb&&(this._state.openComplete||kt.letThrough||this._vip)?n():new ht(function(c,d){if(r._state.openComplete)return d(new ot.DatabaseClosed(r._state.dbOpenError));if(!r._state.isBeingOpened){if(!r._state.autoOpen)return void d(new ot.DatabaseClosed);r.open().catch(S)}r._state.dbReadyPromise.then(c,d)}).then(n)},_e.prototype.use=function(m){var r=m.stack,c=m.create,d=m.level,m=m.name,h=(m&&this.unuse({stack:r,name:m}),this._middlewares[r]||(this._middlewares[r]=[]));return h.push({stack:r,create:c,level:d??10,name:m}),h.sort(function(v,k){return v.level-k.level}),this},_e.prototype.unuse=function(n){var r=n.stack,c=n.name,d=n.create;return r&&this._middlewares[r]&&(this._middlewares[r]=this._middlewares[r].filter(function(m){return d?m.create!==d:!!c&&m.name!==c})),this},_e.prototype.open=function(){var n=this;return yi(ge,function(){return I0(n)})},_e.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var n=this._state,r=Bi.indexOf(this);if(0<=r&&Bi.splice(r,1),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}n.isBeingOpened||(n.dbReadyPromise=new ht(function(c){n.dbReadyResolve=c}),n.openCanceller=new ht(function(c,d){n.cancelOpen=d}))},_e.prototype.close=function(r){var r=(r===void 0?{disableAutoOpen:!0}:r).disableAutoOpen,c=this._state;r?(c.isBeingOpened&&c.cancelOpen(new ot.DatabaseClosed),this._close(),c.autoOpen=!1,c.dbOpenError=new ot.DatabaseClosed):(this._close(),c.autoOpen=this._options.autoOpen||c.isBeingOpened,c.openComplete=!1,c.dbOpenError=null)},_e.prototype.delete=function(n){var r=this,c=(n===void 0&&(n={disableAutoOpen:!0}),0<arguments.length&&typeof arguments[0]!="object"),d=this._state;return new ht(function(m,h){function v(){r.close(n);var k=r._deps.indexedDB.deleteDatabase(r.name);k.onsuccess=ae(function(){var j,q,M;j=r._deps,q=r.name,Wr(M=j.indexedDB)||q===ao||Gr(M,j.IDBKeyRange).delete(q).catch(S),m()}),k.onerror=_s(h),k.onblocked=r._fireOnBlocked}if(c)throw new ot.InvalidArgument("Invalid closeOptions argument to db.delete()");d.isBeingOpened?d.dbReadyPromise.then(v):v()})},_e.prototype.backendDB=function(){return this.idbdb},_e.prototype.isOpen=function(){return this.idbdb!==null},_e.prototype.hasBeenClosed=function(){var n=this._state.dbOpenError;return n&&n.name==="DatabaseClosed"},_e.prototype.hasFailed=function(){return this._state.dbOpenError!==null},_e.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(_e.prototype,"tables",{get:function(){var n=this;return l(this._allTables).map(function(r){return n._allTables[r]})},enumerable:!1,configurable:!0}),_e.prototype.transaction=function(){var n=(function(r,c,d){var m=arguments.length;if(m<2)throw new ot.InvalidArgument("Too few arguments");for(var h=new Array(m-1);--m;)h[m-1]=arguments[m];return d=h.pop(),[r,yt(h),d]}).apply(this,arguments);return this._transaction.apply(this,n)},_e.prototype._transaction=function(n,r,c){var d,m,h=this,v=kt.trans,k=(v&&v.db===this&&n.indexOf("!")===-1||(v=null),n.indexOf("?")!==-1);n=n.replace("!","").replace("?","");try{if(m=r.map(function(q){if(q=q instanceof h.Table?q.name:q,typeof q!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return q}),n=="r"||n===Ir)d=Ir;else{if(n!="rw"&&n!=Lr)throw new ot.InvalidArgument("Invalid transaction mode: "+n);d=Lr}if(v){if(v.mode===Ir&&d===Lr){if(!k)throw new ot.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");v=null}v&&m.forEach(function(q){if(v&&v.storeNames.indexOf(q)===-1){if(!k)throw new ot.SubTransaction("Table "+q+" not included in parent transaction.");v=null}}),k&&v&&!v.active&&(v=null)}}catch(q){return v?v._promise(null,function(M,C){C(q)}):Te(q)}var j=(function q(M,C,O,R,D){return ht.resolve().then(function(){var U=kt.transless||kt,E=M._createTransaction(C,O,M._dbSchema,R),U=(E.explicit=!0,{trans:E,transless:U});if(R)E.idbtrans=R.idbtrans;else try{E.create(),E.idbtrans._explicit=!0,M._state.PR1398_maxLoop=3}catch(Z){return Z.name===gt.InvalidState&&M.isOpen()&&0<--M._state.PR1398_maxLoop?(console.warn("Dexie: Need to reopen db"),M.close({disableAutoOpen:!1}),M.open().then(function(){return q(M,C,O,null,D)})):Te(Z)}var K,J=Pe(D),U=(J&&zi(),ht.follow(function(){var Z;(K=D.call(E,E))&&(J?(Z=si.bind(null,null),K.then(Z,Z)):typeof K.next=="function"&&typeof K.throw=="function"&&(K=ea(K)))},U));return(K&&typeof K.then=="function"?ht.resolve(K).then(function(Z){return E.active?Z:Te(new ot.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):U.then(function(){return K})).then(function(Z){return R&&E._resolve(),E._completion.then(function(){return Z})}).catch(function(Z){return E._reject(Z),Te(Z)})})}).bind(null,this,d,m,v,c);return v?v._promise(d,j,"lock"):kt.trans?yi(kt.transless,function(){return h._whenReady(j)}):this._whenReady(j)},_e.prototype.table=function(n){if(g(this._allTables,n))return this._allTables[n];throw new ot.InvalidTable("Table ".concat(n," does not exist"))};var Ns=_e;function _e(n,r){var c,d,m,h,v,k=this,j=(this._middlewares={},this.verno=0,_e.dependencies),j=(this._options=r=i({addons:_e.addons,autoOpen:!0,indexedDB:j.indexedDB,IDBKeyRange:j.IDBKeyRange,cache:"cloned"},r),this._deps={indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange},r.addons),q=(this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this,{dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:S,dbReadyPromise:null,cancelOpen:S,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:r.autoOpen}),M=(q.dbReadyPromise=new ht(function(C){q.dbReadyResolve=C}),q.openCanceller=new ht(function(C,O){q.cancelOpen=O}),this._state=q,this.name=n,this.on=cn(this,"populate","blocked","versionchange","close",{ready:[L,S]}),this.once=function(C,O){var R=function(){for(var D=[],E=0;E<arguments.length;E++)D[E]=arguments[E];k.on(C).unsubscribe(R),O.apply(k,D)};return k.on(C,R)},this.on.ready.subscribe=G(this.on.ready.subscribe,function(C){return function(O,R){_e.vip(function(){var D,E=k._state;E.openComplete?(E.dbOpenError||ht.resolve().then(O),R&&C(O)):E.onReadyBeingFired?(E.onReadyBeingFired.push(O),R&&C(O)):(C(O),D=k,R||C(function K(){D.on.ready.unsubscribe(O),D.on.ready.unsubscribe(K)}))})}}),this.Collection=(c=this,un(P0.prototype,function(K,E){this.db=c;var R=Fl,D=null;if(E)try{R=E()}catch(U){D=U}var E=K._ctx,K=E.table,J=K.hook.reading.fire;this._ctx={table:K,index:E.index,isPrimKey:!E.index||K.schema.primKey.keyPath&&E.index===K.schema.primKey.name,range:R,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:D,or:E.or,valueMapper:J!==A?J:null}})),this.Table=(d=this,un(Vl.prototype,function(C,O,R){this.db=d,this._tx=R,this.name=C,this.schema=O,this.hook=d._allTables[C]?d._allTables[C].hook:cn(null,{creating:[it,S],reading:[B,A],updating:[T,S],deleting:[et,S]})})),this.Transaction=(m=this,un(C0.prototype,function(C,O,R,D,E){var K=this;C!=="readonly"&&O.forEach(function(J){J=(J=R[J])==null?void 0:J.yProps,J&&(O=O.concat(J.map(function(U){return U.updatesTable})))}),this.db=m,this.mode=C,this.storeNames=O,this.schema=R,this.chromeTransactionDurability=D,this.idbtrans=null,this.on=cn(this,"complete","error","abort"),this.parent=E||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new ht(function(J,U){K._resolve=J,K._reject=U}),this._completion.then(function(){K.active=!1,K.on.complete.fire()},function(J){var U=K.active;return K.active=!1,K.on.error.fire(J),K.parent?K.parent._reject(J):U&&K.idbtrans&&K.idbtrans.abort(),Te(J)})})),this.Version=(h=this,un(N0.prototype,function(C){this.db=h,this._cfg={version:C,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})),this.WhereClause=(v=this,un(Jl.prototype,function(C,O,R){if(this.db=v,this._ctx={table:C,index:O===":id"?null:O,or:R},this._cmp=this._ascending=Lt,this._descending=function(D,E){return Lt(E,D)},this._max=function(D,E){return 0<Lt(D,E)?D:E},this._min=function(D,E){return Lt(D,E)<0?D:E},this._IDBKeyRange=v._deps.IDBKeyRange,!this._IDBKeyRange)throw new ot.MissingAPI})),this.on("versionchange",function(C){0<C.newVersion?console.warn("Another connection wants to upgrade database '".concat(k.name,"'. Closing db now to resume the upgrade.")):console.warn("Another connection wants to delete database '".concat(k.name,"'. Closing db now to resume the delete request.")),k.close({disableAutoOpen:!1})}),this.on("blocked",function(C){!C.newVersion||C.newVersion<C.oldVersion?console.warn("Dexie.delete('".concat(k.name,"') was blocked")):console.warn("Upgrade '".concat(k.name,"' blocked by other connection holding version ").concat(C.oldVersion/10))}),this._maxKey=mn(r.IDBKeyRange),this._createTransaction=function(C,O,R,D){return new k.Transaction(C,O,R,k._options.chromeTransactionDurability,D)},this._fireOnBlocked=function(C){k.on("blocked").fire(C),Bi.filter(function(O){return O.name===k.name&&O!==k&&!O._state.vcFired}).map(function(O){return O.on("versionchange").fire(C)})},this.use(z0),this.use($0),this.use(B0),this.use(L0),this.use(F0),new Proxy(this,{get:function(C,O,R){var D;return O==="_vip"||(O==="table"?function(E){return _o(k.table(E),M)}:(D=Reflect.get(C,O,R))instanceof Vl?_o(D,M):O==="tables"?D.map(function(E){return _o(E,M)}):O==="_createTransaction"?function(){return _o(D.apply(this,arguments),M)}:D)}}));this.vip=M,j.forEach(function(C){return C(k)})}var wo,Vi=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",V0=(oa.prototype.subscribe=function(n,r,c){return this._subscribe(n&&typeof n!="function"?n:{next:n,error:r,complete:c})},oa.prototype[Vi]=function(){return this},oa);function oa(n){this._subscribe=n}try{wo={indexedDB:a.indexedDB||a.mozIndexedDB||a.webkitIndexedDB||a.msIndexedDB,IDBKeyRange:a.IDBKeyRange||a.webkitIDBKeyRange}}catch{wo={indexedDB:null,IDBKeyRange:null}}function uc(n){var r,c=!1,d=new V0(function(m){var h=Pe(n),v,k=!1,j={},q={},M={get closed(){return k},unsubscribe:function(){k||(k=!0,v&&v.abort(),C&&oi.storagemutated.unsubscribe(R))}},C=(m.start&&m.start(M),!1),O=function(){return Nr(D)},R=function(E){ko(j,E),Yr(q,j)&&O()},D=function(){var E,K,J;!k&&wo.indexedDB&&(j={},E={},v&&v.abort(),v=new AbortController,J=(U=>{var Z=Li();try{h&&zi();var at=ei(n,U);return at=h?at.finally(si):at}finally{Z&&Fi()}})(K={subscr:E,signal:v.signal,requery:O,querier:n,trans:null}),Promise.resolve(J).then(function(U){c=!0,r=U,k||K.signal.aborted||(j={},(Z=>{for(var at in Z)if(g(Z,at))return;return 1})(q=E)||C||(oi(dn,R),C=!0),Nr(function(){return!k&&m.next&&m.next(U)}))},function(U){c=!1,["DatabaseClosedError","AbortError"].includes(U?.name)||k||Nr(function(){k||m.error&&m.error(U)})}))};return setTimeout(O,0),M});return d.hasValue=function(){return c},d.getValue=function(){return r},d}var _i=Ns;function ra(n){var r=ri;try{ri=!0,oi.storagemutated.fire(n),ta(n,!0)}finally{ri=r}}y(_i,i(i({},Jt),{delete:function(n){return new _i(n,{addons:[]}).delete()},exists:function(n){return new _i(n,{addons:[]}).open().then(function(r){return r.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(n){try{return r=_i.dependencies,c=r.indexedDB,r=r.IDBKeyRange,(Wr(c)?Promise.resolve(c.databases()).then(function(d){return d.map(function(m){return m.name}).filter(function(m){return m!==ao})}):Gr(c,r).toCollection().primaryKeys()).then(n)}catch{return Te(new ot.MissingAPI)}var r,c},defineClass:function(){return function(n){u(this,n)}},ignoreTransaction:function(n){return kt.trans?yi(kt.transless,n):n()},vip:Jr,async:function(n){return function(){try{var r=ea(n.apply(this,arguments));return r&&typeof r.then=="function"?r:ht.resolve(r)}catch(c){return Te(c)}}},spawn:function(n,r,c){try{var d=ea(n.apply(c,r||[]));return d&&typeof d.then=="function"?d:ht.resolve(d)}catch(m){return Te(m)}},currentTransaction:{get:function(){return kt.trans||null}},waitFor:function(n,r){return n=ht.resolve(typeof n=="function"?_i.ignoreTransaction(n):n).timeout(r||6e4),kt.trans?kt.trans.waitFor(n):n},Promise:ht,debug:{get:function(){return V},set:function(n){pt(n)}},derive:I,extend:u,props:y,override:G,Events:cn,on:oi,liveQuery:uc,extendObservabilitySet:ko,getByKeyPath:W,setByKeyPath:H,delByKeyPath:function(n,r){typeof r=="string"?H(n,r,void 0):"length"in r&&[].map.call(r,function(c){H(n,c,void 0)})},shallowClone:rt,deepClone:Ct,getObjectDiff:sa,cmp:Lt,asap:X,minKey:-1/0,addons:[],connections:Bi,errnames:gt,dependencies:wo,cache:Ti,semVer:"4.3.0",version:"4.3.0".split(".").map(function(n){return parseInt(n)}).reduce(function(n,r,c){return n+r/Math.pow(10,2*c)})})),_i.maxKey=mn(_i.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(oi(dn,function(n){ri||(n=new CustomEvent(Br,{detail:n}),ri=!0,dispatchEvent(n),ri=!1)}),addEventListener(Br,function(n){n=n.detail,ri||ra(n)}));var Ki,ri=!1,bc=function(){};return typeof BroadcastChannel<"u"&&((bc=function(){(Ki=new BroadcastChannel(Br)).onmessage=function(n){return n.data&&ra(n.data)}})(),typeof Ki.unref=="function"&&Ki.unref(),oi(dn,function(n){ri||Ki.postMessage(n)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(n){if(!Ns.disableBfCache&&n.persisted){V&&console.debug("Dexie: handling persisted pagehide"),Ki?.close();for(var r=0,c=Bi;r<c.length;r++)c[r].close({disableAutoOpen:!1})}}),addEventListener("pageshow",function(n){!Ns.disableBfCache&&n.persisted&&(V&&console.debug("Dexie: handling persisted pageshow"),bc(),ra({all:new Fe(-1/0,[[]])}))})),ht.rejectionMapper=function(n,r){return!n||n instanceof Re||n instanceof TypeError||n instanceof SyntaxError||!n.name||!Ot[n.name]?n:(r=new Ot[n.name](r||n.message,n),"stack"in n&&z(r,"stack",{get:function(){return this.inner.stack}}),r)},pt(V),i(Ns,Object.freeze({__proto__:null,Dexie:Ns,Entity:zl,PropModification:ln,RangeSet:Fe,add:function(n){return new ln({add:n})},cmp:Lt,default:Ns,liveQuery:uc,mergeRanges:hn,rangesOverlap:tc,remove:function(n){return new ln({remove:n})},replacePrefix:function(n,r){return new ln({replacePrefix:[n,r]})}}),{default:Ns}),Ns})})(Uo)),Uo.exports}var Pk=wk();const il=Tk(Pk),ob=Symbol.for("Dexie"),sr=globalThis[ob]||(globalThis[ob]=il);if(il.semVer!==sr.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${il.semVer} and ${sr.semVer}`);const{liveQuery:Jk,mergeRanges:Qk,rangesOverlap:Yk,RangeSet:Xk,cmp:Zk,Entity:tS,PropModification:eS,replacePrefix:sS,add:iS,remove:nS,DexieYProvider:oS}=sr;class xk extends sr{constructor(){super("llmxray-history"),this.version(1).stores({entries:"++id, type, timestamp, model, language, accuracy, tokenTaxRatio, *tags, [type+model], [type+timestamp]"})}}const Er=new xk,y0={en:"English",fr:"Français",ar:"العربية",zh:"中文",ja:"日本語",he:"עברית",de:"Deutsch",es:"Español",pt:"Português",it:"Italiano",ru:"Русский",ko:"한국어",hi:"हिन्दी"};function rS(t,e){const s=e.filter(u=>u.model===t.model),i=(s.length<=1,t.model);if(t.language){const u=y0[t.language]??t.language.toUpperCase();return`${s.length<=1,t.model} (${u})`}if(s.length<=1)return i;if(new Set(s.map(u=>u.options.temperature??.7)).size===s.length)return`${t.model} @ ${(t.options.temperature??.7).toFixed(2)}`;if(new Set(s.map(u=>u.system)).size===s.length&&t.system){const u=t.system.split(/\s+/)[0]??"",f=u.length>12?u.slice(0,12)+"...":u;return`${t.model} (${f})`}if(new Set(s.map(u=>u.options.seed)).size===s.length&&t.options.seed!=null)return`${t.model} seed:${t.options.seed}`;const b=s.findIndex(u=>u.slotId===t.slotId);return`${t.model} #${b+1}`}function aS(t){const e=(t.accuracy*100).toFixed(1),s=t.benchmarkIds.join(", "),i=t.completedAt?Math.round((t.completedAt-t.startedAt)/1e3):0,o={type:"benchmark",timestamp:t.startedAt,model:t.modelName,tags:[],benchmarkSuites:t.benchmarkIds,accuracy:t.accuracy,correctCount:t.correctCount,totalQuestions:t.totalQuestions,durationMs:i*1e3,sourceId:t.id,sourceDb:"llmxray-benchmarks",summary:`Benchmark: ${t.modelName} — ${e}% on ${s} (${t.correctCount}/${t.totalQuestions})`};Er.entries.add(o).catch(()=>{})}function lS(t){const e=[...new Set(t.executions.map(u=>u.model))],s=t.executions.some(u=>u.language),i=t.executions.filter(u=>u.language).map(u=>u.language);let o,a;if(s){const u=t.executions.filter(f=>f.metrics?.promptTokenCount).map(f=>({lang:f.language??"?",tokens:f.metrics.promptTokenCount}));if(u.length>=2){const f=Math.min(...u.map(y=>y.tokens)),p=Math.max(...u.map(y=>y.tokens));o=f>0?p/f:void 0,a=u.find(y=>y.tokens===p)?.lang}}let l;if(s){const u=i.map(p=>y0[p]??p).join(" vs "),f=o?` · Tax: ${o.toFixed(1)}x`:"";l=`Language Compare: ${u} — ${e[0]}${f}`}else l=`Comparison: ${e.join(" vs ")} — ${t.executions.length} slots`;const b={type:"comparison",timestamp:t.createdAt,model:e[0]??"",language:a,languages:i,tags:[],tokenTaxRatio:o,slotCount:t.executions.length,sourceId:t.id,sourceDb:"llmxray-comparisons",summary:l};Er.entries.add(b).catch(()=>{})}function Ak(t,e,s,i,o){const a={type:"chat",timestamp:Date.now(),model:e,tags:[],conversationId:t,messageCount:i,totalTokens:o,sourceId:t,sourceDb:"llmxray-conversations",summary:`Chat: "${s||"Untitled"}" — ${e} · ${i} messages`};Er.entries.add(a).catch(()=>{})}function cS(t,e,s,i,o){const a={type:"training",timestamp:Date.now(),model:e,tags:[],phase:s,accepted:o,sourceId:t,sourceDb:"llmxray-canvas-ai",summary:`Training: ${s} phase${i?` — ${i}`:""} · ${o?"accepted":"pending"}`};Er.entries.add(a).catch(()=>{})}const Ck=_r("conversations",()=>{const t=he(new Map),e=he(null),s=he(!1),i=ne(()=>e.value?t.value.get(e.value)??null:null),o=ne(()=>[...t.value.values()].sort(($,P)=>P.updatedAt-$.updatedAt));async function a(){try{const $=await us.getAllConversations();for(const P of $)t.value.set(P.id,{id:P.id,name:P.name,title:P.title,model:P.model,messages:[],options:P.options,createdAt:P.createdAt,updatedAt:P.updatedAt})}catch($){console.error("Failed to hydrate conversations from IndexedDB:",$)}s.value=!0}async function l($){const P=t.value.get($);if(!(!P||P.messages.length>0))try{const x=await us.getMessages($);P.messages=x}catch(x){console.error(`Failed to load messages for ${$}:`,x)}}function b($,P){const x=gk(),G={id:x,name:"Untitled",title:"Untitled",model:$,messages:[],options:P??{},createdAt:Date.now(),updatedAt:Date.now()};return t.value.set(x,G),e.value=x,us.saveConversationMeta(G).catch(console.error),x}function u($,P){const x=t.value.get($);x&&(x.messages.push(P),x.updatedAt=Date.now(),x.title==="Untitled"&&P.role==="user"&&(x.title=P.content.slice(0,50)+(P.content.length>50?"...":"")),x.name==="Untitled"&&P.role==="user"&&(x.name=P.content.slice(0,50)+(P.content.length>50?"...":"")),P.isStreaming||us.saveMessage(P).catch(console.error),us.saveConversationMeta(x).catch(console.error))}function f($,P,x){const G=t.value.get($);if(!G)return;const N=G.messages.find(X=>X.id===P);N&&(N.content=x)}function p($,P){const x=t.value.get($);if(!x)return;const G=x.messages.find(N=>N.id===P);G&&(G.isStreaming=!1,x.updatedAt=Date.now(),us.saveMessage(G).catch(console.error),us.saveConversationMeta(x).catch(console.error),G.role==="assistant"&&Ak($,x.model,x.name,x.messages.length))}function g($){e.value=$,$&&l($)}function y($,P){const x=t.value.get($);x&&(x.name=P,x.updatedAt=Date.now(),us.saveConversationMeta(x).catch(console.error))}function _($){const P=t.value.get($);return P?P.messages.filter(x=>x.role==="user"||x.role==="assistant"||x.role==="system").map(x=>({role:x.role,content:x.role==="assistant"?Ek(x.content):x.content})):[]}function z($,P,x){const G=t.value.get($);if(!G)return;const N=G.messages.find(X=>X.id===P);N&&(N.feedback=x,us.saveMessage(N).catch(console.error))}function I($){t.value.delete($),e.value===$&&(e.value=null),us.deleteConversation($).catch(console.error)}return{conversations:t,activeConversationId:e,activeConversation:i,recentConversations:o,hydrated:s,hydrate:a,loadConversationMessages:l,createConversation:b,addMessage:u,updateAssistantContent:f,finalizeMessage:p,setActiveConversation:g,renameConversation:y,getMessagesAsOllamaFormat:_,setMessageFeedback:z,deleteConversation:I}});function Ek(t){return t.replace(/<think>[\s\S]*?<\/think>/g,"").trim()}const jk=Os({__name:"App",setup(t){const e=Ck();return Yn(()=>{e.hydrate()}),(s,i)=>{const o=yr("RouterView");return me(),ps(o)}}}),jr=kp(jk);jr.use(_p());jr.use(sl);jr.use(pk);jr.mount("#app");export{aS as $,gg as A,Yn as B,gc as C,Zc as D,Xh as E,ke as F,$k as G,Kk as H,Ck as I,Gh as J,us as K,Zb as L,hg as M,Hk as N,lS as O,y0 as P,zk as Q,rS as R,ag as S,Vm as T,sb as U,qk as V,Bk as W,dg as X,hl as Y,Vk as Z,Ke as _,ne as a,Bt as a0,al as a1,Ik as a2,Nk as a3,Fk as a4,pi as a5,pb as a6,es as a7,nm as a8,Ym as a9,cS as aA,Gk as aB,pl as aa,Uk as ab,Mb as ac,Jn as ad,le as ae,Cm as af,Am as ag,Ro as ah,fi as ai,Dk as aj,ml as ak,Ma as al,yr as am,Lk as an,Of as ao,Rk as ap,Mk as aq,Wk as ar,rg as as,ek as at,Er as au,_l as av,qf as aw,mr as ax,Sk as ay,Tk as az,Os as b,re as c,_r as d,rs as e,Et as f,ls as g,Dn as h,Td as i,me as j,gl as k,ur as l,Ok as m,gk as n,Bo as o,oe as p,ps as q,he as r,Fn as s,De as t,ie as u,Ed as v,Ws as w,Wf as x,pr as y,to as z};
|