docker-client-mx 1.45.0 → 1.46.0
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/dist/docker-desktop-mx/browser/chunk-6Ee5XYkz.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B-jCnQFP2.js +6 -0
- package/dist/docker-desktop-mx/browser/{chunk-Bd5-MqqR.js → chunk-B2FafzpV.js} +2 -2
- package/dist/docker-desktop-mx/browser/chunk-B6qORmpw.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B7IRMMXz2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-B7xNIuls.js +3 -0
- package/dist/docker-desktop-mx/browser/chunk-BFq6LhBl.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-CHa6bNlc.js → chunk-BHeMRkJW.js} +4 -4
- package/dist/docker-desktop-mx/browser/{chunk-eVHlLrxe.js → chunk-BNXdbUqv.js} +2 -2
- package/dist/docker-desktop-mx/browser/chunk-BSz2tiCV.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-BZygkakw2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Ba7ROPTT.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-BiQwXu_z.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Bk32Rk5p.js +4 -0
- package/dist/docker-desktop-mx/browser/chunk-BsmS2zXP.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ByAKccx1.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-C4OFwmD92.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-B3n-2UOi.js → chunk-C9w0bf2Y.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-CI-MgoDd.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CLii2-2s.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CWjMCD8T.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CaJx4ff8.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-Clfbc1-d.js → chunk-CesW8OnI.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-CgneC1Je.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ChGlpKnY.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CnivQPHU.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-CyNh8lBK2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D-daLnRf.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D5pKQvyX.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-D8vF1ayp2.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DFkgt4XH.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DJfErblk.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DKpHGsCy.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DTYNCfd52.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DWYNwk_L.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-Ds9UWi20.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-DwKe2pMP.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-FM5_LSb4.js +1 -0
- package/dist/docker-desktop-mx/browser/{chunk-BZwYBA7Z.js → chunk-FuBWiPKf.js} +1 -1
- package/dist/docker-desktop-mx/browser/{chunk-_wm6hEEA.js → chunk-bj_sMiGa.js} +1 -1
- package/dist/docker-desktop-mx/browser/{chunk-Dy_g3RHY.js → chunk-dMo4BIG3.js} +1 -1
- package/dist/docker-desktop-mx/browser/chunk-gOjj4-4k.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-idasJ9ng.js +1 -0
- package/dist/docker-desktop-mx/browser/chunk-ux3iG9S52.js +1 -0
- package/dist/docker-desktop-mx/browser/index.html +2 -2
- package/dist/docker-desktop-mx/browser/main-DIJOTBZN.js +1 -0
- package/dist/docker-desktop-mx/browser/styles-3HWRDJL3.css +1 -0
- package/dist-electron/channels.js +15 -0
- package/dist-electron/channels.js.map +1 -1
- package/dist-electron/file-ops.js +315 -0
- package/dist-electron/file-ops.js.map +1 -0
- package/dist-electron/files.js +19 -10
- package/dist-electron/files.js.map +1 -1
- package/dist-electron/ipc.js +52 -0
- package/dist-electron/ipc.js.map +1 -1
- package/dist-electron/main.js +63 -2
- package/dist-electron/main.js.map +1 -1
- package/dist-electron/preload.js +33 -3
- package/dist-electron/preload.js.map +1 -1
- package/dist-electron/settings.js +24 -1
- package/dist-electron/settings.js.map +1 -1
- package/dist-electron/volume-files.js +1 -0
- package/dist-electron/volume-files.js.map +1 -1
- package/dist-electron/volume-schedules.js +285 -0
- package/dist-electron/volume-schedules.js.map +1 -0
- package/package.json +1 -1
- package/dist/docker-desktop-mx/browser/chunk-Af1e1d8G.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-B13W1gEu.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-B2NHI2Ew.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BIIdmzaV2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BJACElSf2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BPNQPsl2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BUtOgCv_.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-Bcx5WMyJ.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BxKOYZan.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-BxU6JdzU.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-C3u9Hm0s.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CGft6wQH2.js +0 -6
- package/dist/docker-desktop-mx/browser/chunk-COBWzwhz.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-COdMLD3H.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CXpIB_qc.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-ClGJowQ7.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CoprhnOm.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-CsQ_euXP.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-D3bHzook.js +0 -3
- package/dist/docker-desktop-mx/browser/chunk-DEXem6rk.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DPn8Rpg4.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DVXm8E_S.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DX-Zo-hw.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DZ-f89Uu.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DZXhuKXm.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DctinxSO.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-DeXGJ-vD2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-EFAsN7J4.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-FqKVK_Os2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-IMRsZUv82.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-U7tL4XEw2.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-YQkNtrRq.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-jpKpwesj.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-m112xmv9.js +0 -1
- package/dist/docker-desktop-mx/browser/chunk-u0OAgv4f.js +0 -4
- package/dist/docker-desktop-mx/browser/main-INZSNGJM.js +0 -1
- package/dist/docker-desktop-mx/browser/styles-BGYQU5CU.css +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var Ay=Object.defineProperty;var xy=Object.defineProperties;var $y=Object.getOwnPropertyDescriptors;var Bc=Object.getOwnPropertySymbols;var _y=Object.prototype.hasOwnProperty;var Ry=Object.prototype.propertyIsEnumerable;var qc=(e,n,t)=>n in e?Ay(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var W=(e,n)=>{for(var t in n||={})_y.call(n,t)&&qc(e,t,n[t]);if(Bc)for(var t of Bc(n))Ry.call(n,t)&&qc(e,t,n[t]);return e};var G=(e,n)=>xy(e,$y(n));var p=(e,n,t)=>()=>{if(t)throw t[0];try{return e&&(n=e(e=0)),n}catch(r){throw t=[r],r}};var pS=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(t){throw n=0,t}};function y(e){let n=ne;return ne=e,n}function Jr(){return ne}function He(e){if(Yr)throw new Error(``);if(ne===null)return;ne.consumerOnSignalRead(e);let n=ne.producersTail;if(n!==void 0&&n.producer===e)return;let t,r=ne.recomputing;if(r&&(t=n!==void 0?n.nextProducer:ne.producers,t!==void 0&&t.producer===e)){ne.producersTail=t,t.lastReadVersion=e.version,t.knownValidAtEpoch=wn;return}let o=e.consumersTail;if(o!==void 0&&o.consumer===ne&&(!r||o.knownValidAtEpoch===wn))return;let i=Xn(ne),s={producer:e,consumer:ne,nextProducer:t,prevConsumer:void 0,knownValidAtEpoch:wn,lastReadVersion:e.version,nextConsumer:void 0};ne.producersTail=s,n!==void 0?n.nextProducer=s:ne.producers=s,i&&Kc(e,s)}function Wc(){wn++}function In(e){if(!(Xn(e)&&!e.dirty)&&!(!e.dirty&&e.lastCleanEpoch===wn)){if(!e.producerMustRecompute(e)&&!Jn(e)){Yn(e);return}e.producerRecomputeValue(e),Yn(e)}}function Xi(e){if(e.consumers===void 0)return;let n=Yr;Yr=!0;try{for(let t=e.consumers;t!==void 0;t=t.nextConsumer){let r=t.consumer;r.dirty||Oy(r)}}finally{Yr=n}}function es(){return ne?.consumerAllowSignalWrites!==!1}function Oy(e){e.dirty=!0,Xi(e),e.consumerMarkedDirty?.(e)}function Yn(e){e.dirty=!1,e.lastCleanEpoch=wn}function Ve(e){return e&&Gc(e),y(e)}function Gc(e){if(e.producersTail?.knownValidAtEpoch===wn){let n=e.producers;for(;n!==void 0;)n.knownValidAtEpoch=null,n=n.nextProducer}e.producersTail=void 0,e.recomputing=!0}function nn(e,n){y(n),e&&Zc(e)}function Zc(e){e.recomputing=!1;let n=e.producersTail,t=n!==void 0?n.nextProducer:e.producers;if(t!==void 0){if(Xn(e))do t=ns(t);while(t!==void 0);n!==void 0?n.nextProducer=void 0:e.producers=void 0}}function Jn(e){for(let n=e.producers;n!==void 0;n=n.nextProducer){let t=n.producer,r=n.lastReadVersion;if(r!==t.version||(In(t),r!==t.version))return!0}return!1}function tn(e){if(Xn(e)){let n=e.producers;for(;n!==void 0;)n=ns(n)}e.producers=void 0,e.producersTail=void 0,e.consumers=void 0,e.consumersTail=void 0}function Kc(e,n){let t=e.consumersTail,r=Xn(e);if(t!==void 0?(n.nextConsumer=t.nextConsumer,t.nextConsumer=n):(n.nextConsumer=void 0,e.consumers=n),n.prevConsumer=t,e.consumersTail=n,!r)for(let o=e.producers;o!==void 0;o=o.nextProducer)Kc(o.producer,o)}function ns(e){let n=e.producer,t=e.nextProducer,r=e.nextConsumer,o=e.prevConsumer;if(e.nextConsumer=void 0,e.prevConsumer=void 0,r!==void 0?r.prevConsumer=o:n.consumersTail=o,o!==void 0)o.nextConsumer=r;else if(n.consumers=r,!Xn(n)){let i=n.producers;for(;i!==void 0;)i=ns(i)}return t}function Xn(e){return e.consumerIsAlwaysLive||e.consumers!==void 0}function jt(e){Ly?.(e)}function Ft(e,n){return Object.is(e,n)}function Ht(e,n){let t=Object.create(Py);t.computation=e,n!==void 0&&(t.equal=n);let r=()=>{if(In(t),He(t),t.value===$e)throw t.error;return t.value};return r[j]=t,jt(t),r}function jy(){throw new Error}function Yc(e){Qc(e)}function ts(e){Qc=e}function rs(e,n){let t=Object.create(et);t.value=e,n!==void 0&&(t.equal=n);let r=()=>Jc(t);return r[j]=t,jt(t),[r,s=>ze(t,s),s=>Xr(t,s)]}function Jc(e){return He(e),e.value}function ze(e,n){es()||Yc(e),e.equal(e.value,n)||(e.value=n,Hy(e))}function Xr(e,n){es()||Yc(e),ze(e,n(e.value))}function Hy(e){e.version++,Wc(),Xi(e),Fy?.(e)}function is(e){if(e.dirty=!1,e.version>0&&!Jn(e))return;e.version++;let n=Ve(e);try{e.cleanup(),e.fn()}finally{nn(e,n)}}var ne;var Yr;var wn;var Ly;var j;var en;var Dn;var Cn;var $e;var Py;var Qc;var Fy;var et;var os;var En=p(()=>{ne=null,Yr=!1,wn=1,Ly=null,j=Symbol(`SIGNAL`);en={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:`unknown`,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};Dn=Symbol(`UNSET`),Cn=Symbol(`COMPUTING`),$e=Symbol(`ERRORED`),Py=G(W({},en),{value:Dn,dirty:!0,error:null,equal:Ft,kind:`computed`,producerMustRecompute(e){return e.value===Dn||e.value===Cn},producerRecomputeValue(e){if(e.value===Cn)throw new Error(``);let n=e.value;e.value=Cn;let t=Ve(e),r,o=!1;try{r=e.computation(),y(null),o=n!==Dn&&n!==$e&&r!==$e&&e.equal(n,r)}catch(i){r=$e,e.error=i}finally{nn(e,t)}if(o){e.value=n;return}e.value=r,e.version++}});Qc=jy;Fy=null;et=G(W({},en),{equal:Ft,value:void 0,kind:`signal`});os=G(W({},en),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:`effect`})});function eo(){return ss}function _e(e){let n=ss;return ss=e,n}function nt(e){return e===Xc||e?.name===`ɵNotFound`}var ss;var Xc;var as=p(()=>{Xc=Symbol(`NotFound`)});function ls(e,n,t){let r=Object.create(Vy);r.source=e,r.computation=n,t!=null&&(r.equal=t);let i=()=>{if(In(r),He(r),r.value===$e)throw r.error;return r.value};return i[j]=r,jt(r),i}function cs(e,n){In(e),ze(e,n),Yn(e)}function eu(e,n){if(In(e),e.value===$e)throw e.error;Xr(e,n),Yn(e)}function nu(e){let n=y(null);try{return e()}finally{y(n)}}var Vy;var tu=p(()=>{En();Vy=G(W({},en),{value:Dn,dirty:!0,error:null,equal:Ft,kind:`linkedSignal`,producerMustRecompute(e){return e.value===Dn||e.value===Cn},producerRecomputeValue(e){if(e.value===Cn)throw new Error(``);let n=e.value;e.value=Cn;let t=Ve(e),r,o=!1;try{let i=e.source(),s=n!==Dn&&n!==$e,a=s?{source:e.sourceValue,value:n}:void 0;r=e.computation(i,a),e.sourceValue=i,y(null),o=s&&r!==$e&&e.equal(n,r)}catch(i){r=$e,e.error=i}finally{nn(e,t)}if(o){e.value=n;return}e.value=r,e.version++}})});var us=p(()=>{En()});var ru=p(()=>{as()});function I(e){return typeof e==`function`}var B=p(()=>{});function tt(e){let t=e(r=>{Error.call(r),r.stack=new Error().stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var no=p(()=>{});var to;var ou=p(()=>{no();to=tt(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:
|
|
2
|
+
${t.map((r,o)=>`${o+1}) ${r.toString()}`).join(`
|
|
3
|
+
`)}`:``,this.name=`UnsubscriptionError`,this.errors=t})});function Vt(e,n){if(e){let t=e.indexOf(n);0<=t&&e.splice(t,1)}}var ds=p(()=>{});function ro(e){return e instanceof te||e&&`closed`in e&&I(e.remove)&&I(e.add)&&I(e.unsubscribe)}function iu(e){I(e)?e():e.unsubscribe()}var te;var ps;var zt=p(()=>{B();ou();ds();te=class e{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;let{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(let i of t)i.remove(this);else t.remove(this);let{initialTeardown:r}=this;if(I(r))try{r()}catch(i){n=i instanceof to?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{iu(i)}catch(s){n=n??[],s instanceof to?n=[...n,...s.errors]:n.push(s)}}if(n)throw new to(n)}}add(n){var t;if(n&&n!==this)if(this.closed)iu(n);else{if(n instanceof e){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(n)}}_hasParent(n){let{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){let{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){let{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Vt(t,n)}remove(n){let{_finalizers:t}=this;t&&Vt(t,n),n instanceof e&&n._removeParent(this)}};te.EMPTY=(()=>{let e=new te;return e.closed=!0,e})();ps=te.EMPTY});var Ce;var Ut=p(()=>{Ce={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var rt;var fs=p(()=>{rt={setTimeout(e,n,...t){let{delegate:r}=rt;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){let{delegate:n}=rt;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0}});function oo(e){rt.setTimeout(()=>{let{onUnhandledError:n}=Ce;if(n)n(e);else throw e})}var ms=p(()=>{Ut();fs()});function Bt(){}var gs=p(()=>{});function au(e){return hs(`E`,void 0,e)}function lu(e){return hs(`N`,e,void 0)}function hs(e,n,t){return{kind:e,value:n,error:t}}var su;var cu=p(()=>{su=hs(`C`,void 0,void 0)});function ot(e){if(Ce.useDeprecatedSynchronousErrorHandling){let n=!kn;if(n&&(kn={errorThrown:!1,error:null}),e(),n){let{errorThrown:t,error:r}=kn;if(kn=null,t)throw r}}else e()}function uu(e){Ce.useDeprecatedSynchronousErrorHandling&&kn&&(kn.errorThrown=!0,kn.error=e)}var kn;var io=p(()=>{Ut();kn=null});function vs(e,n){return zy.call(e,n)}function so(e){Ce.useDeprecatedSynchronousErrorHandling?uu(e):oo(e)}function Uy(e){throw e}function ys(e,n){let{onStoppedNotification:t}=Ce;t&&rt.setTimeout(()=>t(e,n))}var Sn;var zy;var bs;var it;var By;var ws=p(()=>{B();zt();Ut();ms();gs();cu();fs();io();Sn=class extends te{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,ro(n)&&n.add(this)):this.destination=By}static create(n,t,r){return new it(n,t,r)}next(n){this.isStopped?ys(lu(n),this):this._next(n)}error(n){this.isStopped?ys(au(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?ys(su,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},zy=Function.prototype.bind;bs=class{constructor(n){this.partialObserver=n}next(n){let{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){so(r)}}error(n){let{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){so(r)}else so(n)}complete(){let{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){so(t)}}},it=class extends Sn{constructor(n,t,r){super();let o;if(I(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Ce.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&vs(n.next,i),error:n.error&&vs(n.error,i),complete:n.complete&&vs(n.complete,i)}):o=n}this.destination=new bs(o)}};By={closed:!0,next:Bt,error:Uy,complete:Bt}});var st;var ao=p(()=>{st=typeof Symbol==`function`&&Symbol.observable||`@@observable`});function Ie(e){return e}var at=p(()=>{});function qy(...e){return Ds(e)}function Ds(e){return e.length===0?Ie:e.length===1?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}var Cs=p(()=>{at()});function du(e){var n;return(n=e??Ce.Promise)!==null&&n!==void 0?n:Promise}function Wy(e){return e&&I(e.next)&&I(e.error)&&I(e.complete)}function Gy(e){return e&&e instanceof Sn||Wy(e)&&ro(e)}var T;var ce=p(()=>{ws();zt();ao();Cs();Ut();B();io();T=class e{constructor(n){n&&(this._subscribe=n)}lift(n){let t=new e;return t.source=this,t.operator=n,t}subscribe(n,t,r){let o=Gy(n)?n:new it(n,t,r);return ot(()=>{let{operator:i,source:s}=this;o.add(i?i.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(n){try{return this._subscribe(n)}catch(t){n.error(t)}}forEach(n,t){return t=du(t),new t((r,o)=>{let i=new it({next:s=>{try{n(s)}catch(a){o(a),i.unsubscribe()}},error:o,complete:r});this.subscribe(i)})}_subscribe(n){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(n)}[st](){return this}pipe(...n){return Ds(n)(this)}toPromise(n){return n=du(n),new n((t,r)=>{let o;this.subscribe(i=>o=i,i=>r(i),()=>t(o))})}};T.create=e=>new T(e)});function Zy(e){return I(e?.lift)}function x(e){return n=>{if(Zy(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError(`Unable to lift unknown Observable type`)}}var J=p(()=>{B()});function $(e,n,t,r,o){return new Is(e,n,t,r,o)}var Is;var re=p(()=>{ws();Is=class extends Sn{constructor(n,t,r,o,i,s){super(n),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:t}=this;super.unsubscribe(),!t&&((n=this.onFinalize)===null||n===void 0||n.call(this))}}}});var pu;var fu=p(()=>{no();pu=tt(e=>function(){e(this),this.name=`ObjectUnsubscribedError`,this.message=`object unsubscribed`})});var ge;var lo;var Es=p(()=>{ce();zt();fu();ds();io();ge=class extends T{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let t=new lo(this,this);return t.operator=n,t}_throwIfClosed(){if(this.closed)throw new pu}next(n){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let t of this.currentObservers)t.next(n)}})}error(n){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:t}=this;for(;t.length;)t.shift().error(n)}})}complete(){ot(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:t,isStopped:r,observers:o}=this;return t||r?ps:(this.currentObservers=null,o.push(n),new te(()=>{this.currentObservers=null,Vt(o,n)}))}_checkFinalizedStatuses(n){let{hasError:t,thrownError:r,isStopped:o}=this;t?n.error(r):o&&n.complete()}asObservable(){let n=new T;return n.source=this,n}};ge.create=(e,n)=>new lo(e,n);lo=class extends ge{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.next)===null||r===void 0||r.call(t,n)}error(n){var t,r;(r=(t=this.destination)===null||t===void 0?void 0:t.error)===null||r===void 0||r.call(t,n)}complete(){var n,t;(t=(n=this.destination)===null||n===void 0?void 0:n.complete)===null||t===void 0||t.call(n)}_subscribe(n){var t,r;return(r=(t=this.source)===null||t===void 0?void 0:t.subscribe(n))!==null&&r!==void 0?r:ps}}});var qt;var mu=p(()=>{Es();qt=class extends ge{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){let t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){let{hasError:n,thrownError:t,_value:r}=this;if(n)throw t;return this._throwIfClosed(),r}next(n){super.next(this._value=n)}}});var Wt;var co=p(()=>{ce();Wt=new T(e=>e.complete())});function gu(e){return e&&I(e.schedule)}var hu=p(()=>{B()});function vu(e){return e[e.length-1]}function uo(e){return I(vu(e))?e.pop():void 0}function rn(e){return gu(vu(e))?e.pop():void 0}var lt=p(()=>{B();hu()});function bu(e,n,t,r){function o(i){return i instanceof t?i:new t(function(s){s(i)})}return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):o(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}function yu(e){var n=typeof Symbol==`function`&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function Tn(e){return this instanceof Tn?(this.v=e,this):new Tn(e)}function wu(e,n,t){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var r=t.apply(e,n||[]),o,i=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),a(`next`),a(`throw`),a(`return`,s),o[Symbol.asyncIterator]=function(){return this},o;function s(f){return function(g){return Promise.resolve(g).then(f,d)}}function a(f,g){r[f]&&(o[f]=function(h){return new Promise(function(S,D){i.push([f,h,S,D])>1||l(f,h)})},g&&(o[f]=g(o[f])))}function l(f,g){try{c(r[f](g))}catch(h){m(i[0][3],h)}}function c(f){f.value instanceof Tn?Promise.resolve(f.value.v).then(u,d):m(i[0][2],f)}function u(f){l(`next`,f)}function d(f){l(`throw`,f)}function m(f,g){f(g),i.shift(),i.length&&l(i[0][0],i[0][1])}}function Du(e){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var n=e[Symbol.asyncIterator],t;return n?n.call(e):(e=typeof yu==`function`?yu(e):e[Symbol.iterator](),t={},r(`next`),r(`throw`),r(`return`),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){s=e[i](s),o(a,l,s.done,s.value)})}}function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}}var ks=p(()=>{});var po;var Ss=p(()=>{po=(e=>e&&typeof e.length==`number`&&typeof e!=`function`)});function fo(e){return I(e?.then)}var Ts=p(()=>{B()});function mo(e){return I(e[st])}var Ns=p(()=>{ao();B()});function go(e){return Symbol.asyncIterator&&I(e?.[Symbol.asyncIterator])}var Ms=p(()=>{B()});function ho(e){return new TypeError(`You provided ${e!==null&&typeof e==`object`?`an invalid object`:`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}var As=p(()=>{});function Ky(){return typeof Symbol!=`function`||!Symbol.iterator?`@@iterator`:Symbol.iterator}var vo;var xs=p(()=>{vo=Ky()});function yo(e){return I(e?.[vo])}var $s=p(()=>{xs();B()});function bo(e){return wu(this,arguments,function*(){let t=e.getReader();try{for(;;){let{value:r,done:o}=yield Tn(t.read());if(o)return yield Tn(void 0);yield yield Tn(r)}}finally{t.releaseLock()}})}function wo(e){return I(e?.getReader)}var Do=p(()=>{ks();B()});function z(e){if(e instanceof T)return e;if(e!=null){if(mo(e))return Qy(e);if(po(e))return Yy(e);if(fo(e))return Jy(e);if(go(e))return Cu(e);if(yo(e))return Xy(e);if(wo(e))return eb(e)}throw ho(e)}function Qy(e){return new T(n=>{let t=e[st]();if(I(t.subscribe))return t.subscribe(n);throw new TypeError(`Provided object does not correctly implement Symbol.observable`)})}function Yy(e){return new T(n=>{for(let t=0;t<e.length&&!n.closed;t++)n.next(e[t]);n.complete()})}function Jy(e){return new T(n=>{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,oo)})}function Xy(e){return new T(n=>{for(let t of e)if(n.next(t),n.closed)return;n.complete()})}function Cu(e){return new T(n=>{nb(e,n).catch(t=>n.error(t))})}function eb(e){return Cu(bo(e))}function nb(e,n){var t,r,o,i;return bu(this,void 0,void 0,function*(){try{for(t=Du(e);r=yield t.next(),!r.done;){let s=r.value;if(n.next(s),n.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})}var Ee=p(()=>{ks();Ss();Ts();ce();Ns();Ms();As();$s();Do();B();ms();ao()});function ie(e,n,t,r=0,o=!1){let i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}var ct=p(()=>{});function Co(e,n=0){return x((t,r)=>{t.subscribe($(r,o=>ie(r,e,()=>r.next(o),n),()=>ie(r,e,()=>r.complete(),n),o=>ie(r,e,()=>r.error(o),n)))})}var _s=p(()=>{ct();J();re()});function Io(e,n=0){return x((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}var Rs=p(()=>{J()});function Iu(e,n){return z(e).pipe(Io(n),Co(n))}var Eu=p(()=>{Ee();_s();Rs()});function ku(e,n){return z(e).pipe(Io(n),Co(n))}var Su=p(()=>{Ee();_s();Rs()});function Tu(e,n){return new T(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}var Nu=p(()=>{ce()});function Mu(e,n){return new T(t=>{let r;return ie(t,n,()=>{r=e[vo](),ie(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){t.error(s);return}i?t.complete():t.next(o)},0,!0)}),()=>I(r?.return)&&r.return()})}var Au=p(()=>{ce();xs();B();ct()});function Eo(e,n){if(!e)throw new Error(`Iterable cannot be null`);return new T(t=>{ie(t,n,()=>{let r=e[Symbol.asyncIterator]();ie(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}var Ls=p(()=>{ce();ct()});function xu(e,n){return Eo(bo(e),n)}var $u=p(()=>{Ls();Do()});function _u(e,n){if(e!=null){if(mo(e))return Iu(e,n);if(po(e))return Tu(e,n);if(fo(e))return ku(e,n);if(go(e))return Eo(e,n);if(yo(e))return Mu(e,n);if(wo(e))return xu(e,n)}throw ho(e)}var Ru=p(()=>{Eu();Su();Nu();Au();Ls();Ns();Ts();Ss();$s();Ms();As();Do();$u()});function on(e,n){return n?_u(e,n):z(e)}var Gt=p(()=>{Ru();Ee()});function tb(...e){return on(e,rn(e))}var Lu=p(()=>{lt();Gt()});function rb(e,n){let t=I(e)?e:()=>e,r=o=>o.error(t());return new T(n?o=>n.schedule(r,0,o):r)}var Ou=p(()=>{ce();B()});function ob(e){return!!e&&(e instanceof T||I(e.lift)&&I(e.subscribe))}var Pu=p(()=>{ce();B()});var Zt;var ko=p(()=>{no();Zt=tt(e=>function(){e(this),this.name=`EmptyError`,this.message=`no elements in sequence`})});function Nn(e,n){return x((t,r)=>{let o=0;t.subscribe($(r,i=>{r.next(e.call(n,i,o++))}))})}var So=p(()=>{J();re()});function sb(e,n){return ib(n)?e(...n):e(n)}function To(e){return Nn(n=>sb(e,n))}var ib;var Os=p(()=>{So();({isArray:ib}=Array)});function No(e){if(e.length===1){let n=e[0];if(ab(n))return{args:n,keys:null};if(db(n)){let t=ub(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}function db(e){return e&&typeof e==`object`&&lb(e)===cb}var ab;var lb;var cb;var ub;var Ps=p(()=>{({isArray:ab}=Array),{getPrototypeOf:lb,prototype:cb,keys:ub}=Object});function Mo(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}var js=p(()=>{});function pb(...e){let n=rn(e),t=uo(e),{args:r,keys:o}=No(e);if(r.length===0)return on([],n);let i=new T(fb(r,n,o?s=>Mo(o,s):Ie));return t?i.pipe(To(t)):i}function fb(e,n,t=Ie){return r=>{ju(n,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let l=0;l<o;l++)ju(n,()=>{let c=on(e[l],n),u=!1;c.subscribe($(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function ju(e,n,t){e?ie(t,e,n):n()}var Fu=p(()=>{ce();Ps();Gt();at();Os();lt();js();re();ct()});function Hu(e,n,t,r,o,i,s,a){let l=[],c=0,u=0,d=!1,m=()=>{d&&!l.length&&!c&&n.complete()},f=h=>c<r?g(h):l.push(h),g=h=>{i&&n.next(h),c++;let S=!1;z(t(h,u++)).subscribe($(n,D=>{o?.(D),i?f(D):n.next(D)},()=>{S=!0},void 0,()=>{if(S)try{for(c--;l.length&&c<r;){let D=l.shift();s?ie(n,s,()=>g(D)):g(D)}m()}catch(D){n.error(D)}}))};return e.subscribe($(n,f,()=>{d=!0,m()})),()=>{a?.()}}var Vu=p(()=>{Ee();ct();re()});function Mn(e,n,t=Infinity){return I(n)?Mn((r,o)=>Nn((i,s)=>n(r,i,o,s))(z(e(r,o))),t):(typeof n==`number`&&(t=n),x((r,o)=>Hu(r,o,e,t)))}var Ao=p(()=>{So();Ee();J();Vu();B()});function Fs(e=Infinity){return Mn(Ie,e)}var Hs=p(()=>{Ao();at()});function zu(){return Fs(1)}var Uu=p(()=>{Hs()});function xo(...e){return zu()(on(e,rn(e)))}var Vs=p(()=>{Uu();lt();Gt()});function mb(e){return new T(n=>{z(e()).subscribe(n)})}var Bu=p(()=>{ce();Ee()});function gb(...e){let n=uo(e),{args:t,keys:r}=No(e),o=new T(i=>{let{length:s}=t;if(!s){i.complete();return}let a=new Array(s),l=s,c=s;for(let u=0;u<s;u++){let d=!1;z(t[u]).subscribe($(i,m=>{d||(d=!0,c--),a[u]=m},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?Mo(r,a):a),i.complete())}))}});return n?o.pipe(To(n)):o}var qu=p(()=>{ce();Ps();Ee();lt();re();Os();js()});function zs(e,n){return x((t,r)=>{let o=0;t.subscribe($(r,i=>e.call(n,i,o++)&&r.next(i)))})}var Us=p(()=>{J();re()});var Wu=p(()=>{});function Gu(e){return x((n,t)=>{let r=null,o=!1,i;r=n.subscribe($(t,void 0,void 0,s=>{i=z(e(s,Gu(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}var Zu=p(()=>{Ee();re();J()});function hb(e,n){return I(n)?Mn(e,n,1):Mn(e,1)}var Ku=p(()=>{Ao();B()});function Qu(e){return x((n,t)=>{let r=!1;n.subscribe($(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}var Yu=p(()=>{J();re()});function Bs(e){return e<=0?()=>Wt:x((n,t)=>{let r=0;n.subscribe($(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}var qs=p(()=>{co();J();re()});function Ju(e=vb){return x((n,t)=>{let r=!1;n.subscribe($(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function vb(){return new Zt}var Xu=p(()=>{ko();J();re()});function yb(e){return x((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}var ed=p(()=>{J()});function bb(e,n){let t=arguments.length>=2;return r=>r.pipe(e?zs((o,i)=>e(o,i,r)):Ie,Bs(1),t?Qu(n):Ju(()=>new Zt))}var nd=p(()=>{ko();Us();qs();Yu();Xu();at()});function wb(e){return e<=0?()=>Wt:x((n,t)=>{let r=[];n.subscribe($(t,o=>{r.push(o),e<r.length&&r.shift()},()=>{for(let o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}var td=p(()=>{co();J();re()});function Db(...e){let n=rn(e);return x((t,r)=>{(n?xo(e,t,n):xo(e,t)).subscribe(r)})}var rd=p(()=>{Vs();lt();J()});function Cb(e,n){return x((t,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();t.subscribe($(r,l=>{o?.unsubscribe();let c=0,u=i++;z(e(l,u)).subscribe(o=$(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}var od=p(()=>{Ee();J();re()});function Ib(e){return x((n,t)=>{z(e).subscribe($(t,()=>t.complete(),Bt)),!t.closed&&n.subscribe(t)})}var id=p(()=>{J();re();Ee();gs()});function Eb(e,n,t){let r=I(e)||n||t?{next:e,error:n,complete:t}:e;return r?x((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe($(i,l=>{var c;(c=r.next)===null||c===void 0||c.call(r,l),i.next(l)},()=>{var l;a=!1,(l=r.complete)===null||l===void 0||l.call(r),i.complete()},l=>{var c;a=!1,(c=r.error)===null||c===void 0||c.call(r,l),i.error(l)},()=>{var l,c;a&&((l=r.unsubscribe)===null||l===void 0||l.call(r)),(c=r.finalize)===null||c===void 0||c.call(r)}))}):Ie}var sd=p(()=>{B();J();re();at()});var Ws=p(()=>{ce();Es();mu();zt();Cs();Pu();ko();Fu();Vs();Bu();qu();Gt();Lu();Ou();co();Wu()});function kb(e){return`NG0${Math.abs(e)}`}function nr(e,n){return`${kb(e)}${n?`: `+n:``}`}function _(e){for(let n in e)if(e[n]===_)return n;throw Error(``)}function pd(e,n){for(let t in n)Object.hasOwn(n,t)&&!Object.hasOwn(e,t)&&(e[t]=n[t])}function tr(e){if(typeof e==`string`)return e;if(Array.isArray(e))return`[${e.map(tr).join(`, `)}]`;if(e==null)return``+e;let n=e.overriddenName||e.name;if(n)return`${n}`;let t=e.toString();if(t==null)return``+t;let r=t.indexOf(`
|
|
4
|
+
`);return r>=0?t.slice(0,r):t}function Fo(e,n){return e?n?`${e} ${n}`:e:n||``}function Ho(e){return e.__forward_ref__=Ho,e}function q(e){return aa(e)?e():e}function aa(e){return typeof e==`function`&&Object.hasOwn(e,Sb)&&e.__forward_ref__===Ho}function X(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function rr(e){return Nb(e,Vo)}function Tb(e){return rr(e)!==null}function Nb(e,n){return Object.hasOwn(e,n)&&e[n]||null}function Mb(e){return(e?.[Vo]??null)||null}function Zs(e){return e&&Object.hasOwn(e,_o)?e[_o]:null}function la(e){return e&&!!e.ɵproviders}function fd(e){return zo(e,`@NgModule`),e[ua]||null}function Ze(e){return zo(e,`@Component`),e[or]||null}function sr(e){return zo(e,`@Directive`),e[ir]||null}function da(e){return zo(e,`@Pipe`),e[ca]||null}function zo(e,n){if(e==null)throw new k(-919,!1)}function Ke(e){return typeof e==`string`?e:e==null?``:String(e)}function pa(e,n){return gd(``,-200,n)}function Uo(e,n){throw new k(-201,!1)}function gd(e,n,t){let r=new k(n,e);return r[md]=n,r[Ab]=e,t&&(r[xb]=t),r}function $b(e){return e[md]}function hd(){return Ks}function oe(e){let n=Ks;return Ks=e,n}function fa(e,n,t){let r=rr(e);if(r&&r.providedIn==`root`)return r.value===void 0?r.value=r.factory():r.value;if(t&8)return null;if(n!==void 0)return n;Uo(e,``)}function Lb(e,n=0){let t=eo();if(t===void 0)throw new k(-203,!1);if(t===null)return fa(e,void 0,n);{let r=Ob(n),o=t.retrieve(e,r);if(nt(o)){if(r.optional)return null;throw o}return o}}function Re(e,n=0){return(hd()||Lb)(q(e),n)}function C(e,n){return Re(e,xn(n))}function xn(e){return typeof e>`u`||typeof e==`number`?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ob(e){return{optional:!!(e&8),host:!!(e&1),self:!!(e&2),skipSelf:!!(e&4)}}function Ys(e){let n=[];for(let t=0;t<e.length;t++){let r=q(e[t]);if(Array.isArray(r)){if(r.length===0)throw new k(900,!1);let o,i=0;for(let s=0;s<r.length;s++){let a=r[s],l=Pb(a);typeof l==`number`?l===-1?o=a.token:i|=l:o=a}n.push(Re(o,i))}else n.push(Re(r))}return n}function Pb(e){return e[Rb]}function an(e,n){return Object.hasOwn(e,Yt)?e[Yt]:null}function vd(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){let o=e[r],i=n[r];if(t&&(o=t(o),i=t(i)),i!==o)return!1}return!0}function yd(e){return e.flat(Number.POSITIVE_INFINITY)}function Bo(e,n){e.forEach(t=>Array.isArray(t)?Bo(t,n):n(t))}function ma(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function ar(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function bd(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(o===1)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}function qo(e,n,t){let r=pt(e,n);return r>=0?e[r|1]=t:(r=~r,bd(e,r,n,t)),r}function Wo(e,n){let t=pt(e,n);if(t>=0)return e[t|1]}function pt(e,n){return jb(e,n,1)}function jb(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){let i=r+(o-r>>1),s=e[i<<t];if(n===s)return i<<t;s>n?o=i:r=i+1}return~(o<<t)}function cr(e){return{ɵproviders:e}}function wd(e){return cr([{provide:ft,multi:!0,useValue:e}])}function Dd(...e){return{ɵproviders:Go(!0,e),ɵfromNgModule:!0}}function Go(e,...n){let t=[],r=new Set,o,i=s=>{t.push(s)};return Bo(n,s=>{let a=s;Ro(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Cd(o,i),t}function Cd(e,n){for(let t=0;t<e.length;t++){let{ngModule:r,providers:o}=e[t];ha(o,i=>{n(i,r)})}}function Ro(e,n,t,r){if(e=q(e),!e)return!1;let o=null,i=Zs(e),s=!i&&Ze(e);if(!i&&!s){let l=e.ngModule;if(i=Zs(l),i)o=l;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let l=typeof s.dependencies==`function`?s.dependencies():s.dependencies;for(let c of l)Ro(c,n,t,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let c;Bo(i.imports,u=>{Ro(u,n,t,r)&&(c||=[],c.push(u))}),c!==void 0&&Cd(c,n)}if(!a){let c=an(o)||(()=>new o);n({provide:o,useFactory:c,deps:he},o),n({provide:ga,useValue:o,multi:!0},o),n({provide:ft,useValue:()=>Re(o),multi:!0},o)}let l=i.providers;if(l!=null&&!a){let c=e;ha(l,u=>{n(u,c)})}}else return!1;return o!==e&&e.providers!==void 0}function ha(e,n){for(let t of e)la(t)&&(t=t.ɵproviders),Array.isArray(t)?ha(t,n):n(t)}function Id(e){return e!==null&&typeof e==`object`&&Fb in e}function Hb(e){return!!(e&&e.useExisting)}function Vb(e){return!!(e&&e.useFactory)}function $n(e){return typeof e==`function`}function Ed(e){return!!e.useClass}function ur(){return Gs===void 0&&(Gs=new dt),Gs}function Js(e){let n=rr(e),t=n!==null?n.factory:an(e);if(t!==null)return t;if(e instanceof M)throw new k(-204,!1);if(e instanceof Function)return zb(e);throw new k(-204,!1)}function zb(e){if(e.length>0)throw new k(-204,!1);let t=Mb(e);return t!==null?()=>t.factory(e):()=>new e}function Ub(e){if(Id(e))return ut(void 0,e.useValue);return ut(ya(e),$o)}function ya(e,n,t){let r;if($n(e)){let o=q(e);return an(o)||Js(o)}else if(Id(e))r=()=>q(e.useValue);else if(Vb(e))r=()=>e.useFactory(...Ys(e.deps||[]));else if(Hb(e))r=(o,i)=>Re(q(e.useExisting),i!==void 0&&i&8?8:void 0);else{let o=q(e&&(e.useClass||e.provide));if(Bb(e))r=()=>new o(...Ys(e.deps));else return an(o)||Js(o)}return r}function Kt(e){if(e.destroyed)throw new k(-205,!1)}function ut(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function Bb(e){return!!e.deps}function qb(e){return e!==null&&typeof e==`object`&&typeof e.ngOnDestroy==`function`}function Wb(e){return typeof e==`function`||typeof e==`object`&&e.ngMetadataName===`InjectionToken`}function Xs(e,n){for(let t of e)Array.isArray(t)?Xs(t,n):t&&la(t)?Xs(t.ɵproviders,n):n(t)}function Zo(e,n){let t;e instanceof _n?(Kt(e),t=e):t=new Qs(e);let o=_e(t),i=oe(void 0);try{return n()}finally{_e(o),oe(i)}}function kd(){return hd()!==void 0||eo()!=null}function Qe(e){return Array.isArray(e)&&typeof e[Sd]==`object`}function be(e){return Array.isArray(e)&&e[Sd]===!0}function Da(e){return(e.flags&4)!==0}function Ye(e){return e.componentOffset>-1}function vt(e){return(e.flags&1)===1}function Me(e){return!!e.template}function yt(e){return(e[w]&512)!==0}function fn(e){return(e[w]&256)===256}function Gb(){return Qt||(Qt=na(),sn(K.HTML,void 0,[[`iframe`,[`srcdoc`]],[`*`,[`innerHTML`,`outerHTML`]]]),sn(K.STYLE,void 0,[[`*`,[`style`]]]),sn(K.URL,void 0,[[`*`,[`formAction`]],[`area`,[`href`]],[`a`,[`href`,`xlink:href`]],[`form`,[`action`]],[`img`,[`src`]],[`video`,[`src`]]]),sn(K.URL,Qo,[[`*`,[`href`,`xlink:href`]]]),sn(K.RESOURCE_URL,void 0,[[`base`,[`href`]],[`embed`,[`src`]],[`frame`,[`src`]],[`iframe`,[`src`]],[`link`,[`href`]],[`object`,[`codebase`,`data`]]]),sn(K.URL,Rn,[[`a`,[`href`,`xlink:href`]]]),sn(K.ATTRIBUTE_NO_BINDING,Rn,[[`animate`,[`attributeName`,`values`,`to`,`from`]],[`set`,[`to`,`attributeName`]],[`animateMotion`,[`attributeName`]],[`animateTransform`,[`attributeName`]]]),sn(K.ATTRIBUTE_NO_BINDING,void 0,[[`unknown`,[`attributeName`,`values`,`to`,`from`,`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]],[`iframe`,[`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]]]),Qt)}function sn(e,n,t){let r=n??ea;for(let[o,i]of t){let s=o.toLowerCase();for(let a of i){let l=a.toLowerCase(),c=Qt[l]??=na(),u=c[r]??=na();u[s]=e}}}function Td(e,n,t){let o=Gb()[n.toLowerCase()];if(!o)return K.NONE;let i=e.toLowerCase(),s;if(t){let a=o[t];a&&(s=a[i]??a[cd])}if(s===void 0){let a=o[ea];a&&(s=a[i]??a[cd])}if(s===void 0&&(!t||t===ea)){let a=o[Rn];a&&(s=a[i])}return s??K.NONE}function Q(e){for(;Array.isArray(e);)e=e[Te];return e}function Ca(e,n){return Q(n[e])}function we(e,n){return Q(n[e.index])}function bt(e,n){return e.data[n]}function Yo(e,n){return e[n]}function pr(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}function De(e,n){let t=n[e];return Qe(t)?t:t[Te]}function Nd(e){return(e[w]&4)===4}function Jo(e){return(e[w]&128)===128}function Md(e){return be(e[U])}function fe(e,n){return n==null?null:e[n]}function Ia(e){e[On]=0}function Xo(e){e[w]&1024||(e[w]|=1024,Jo(e)&&Hn(e))}function Ad(e,n){for(;e>0;)n=n[un],e--;return n}function fr(e){return!!(e[w]&9216||e[pe]?.dirty)}function ei(e){e[Ne].changeDetectionScheduler?.notify(8),e[w]&64&&(e[w]|=1024),fr(e)&&Hn(e)}function Hn(e){e[Ne].changeDetectionScheduler?.notify(0);let n=We(e);for(;n!==null&&!(n[w]&8192||(n[w]|=8192,!Jo(n)));)n=We(n)}function mr(e,n){if(fn(e))throw new k(911,!1);e[Be]===null&&(e[Be]=[]),e[Be].push(n)}function Ea(e,n){if(e[Be]===null)return;let t=e[Be].indexOf(n);t!==-1&&e[Be].splice(t,1)}function We(e){let n=e[U];return be(n)?n[U]:n}function ka(e){return e[gt]??=[]}function Sa(e){return e.cleanup??=[]}function xd(e,n,t,r){let o=ka(n);o.push(t),e.firstCreatePass&&Sa(e).push(r,o.length-1)}function $d(){return E.lFrame.elementDepthCount}function _d(){E.lFrame.elementDepthCount++}function Ta(){E.lFrame.elementDepthCount--}function ni(){return E.bindingsEnabled}function Rd(){return E.skipHydrationRootTNode!==null}function Na(e){return E.skipHydrationRootTNode===e}function Ma(){E.skipHydrationRootTNode=null}function b(){return E.lFrame.lView}function R(){return E.lFrame.tView}function Ld(e){return E.lFrame.contextLView=e,e[F]}function Od(e){return E.lFrame.contextLView=null,e}function H(){let e=Aa();for(;e!==null&&e.type===64;)e=e.parent;return e}function Aa(){return E.lFrame.currentTNode}function Pd(){let e=E.lFrame,n=e.currentTNode;return e.isParent?n:n.parent}function Vn(e,n){let t=E.lFrame;t.currentTNode=e,t.isParent=n}function xa(){return E.lFrame.isParent}function jd(){E.lFrame.isParent=!1}function $a(){return E.lFrame.contextLView}function _a(){return ta}function Jt(e){let n=ta;return ta=e,n}function ti(){let e=E.lFrame,n=e.bindingRootIndex;return n===-1&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Ra(){return E.lFrame.bindingIndex}function Fd(e){return E.lFrame.bindingIndex=e}function Je(){return E.lFrame.bindingIndex++}function gr(e){let n=E.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function Hd(){return E.lFrame.inI18n}function Vd(e,n){let t=E.lFrame;t.bindingIndex=t.bindingRootIndex=e,ri(n)}function zd(){return E.lFrame.currentDirectiveIndex}function ri(e){E.lFrame.currentDirectiveIndex=e}function Ud(e){let n=E.lFrame.currentDirectiveIndex;return n===-1?null:e[n]}function oi(){return E.lFrame.currentQueryIndex}function hr(e){E.lFrame.currentQueryIndex=e}function Zb(e){let n=e[v];return n.type===2?n.declTNode:n.type===1?e[se]:null}function La(e,n,t){if(t&4){let o=n,i=e;for(;o=o.parent,o===null&&!(t&1);)if(o=Zb(i),o===null||(i=i[un],o.type&10))break;if(o===null)return!1;n=o,e=i}let r=E.lFrame=Bd();return r.currentTNode=n,r.lView=e,!0}function ii(e){let n=Bd(),t=e[v];E.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function Bd(){let e=E.lFrame,n=e===null?null:e.child;return n===null?qd(e):n}function qd(e){let n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=n),n}function Wd(){let e=E.lFrame;return E.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}function si(){let e=Wd();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Gd(e){return(E.lFrame.contextLView=Ad(e,E.lFrame.contextLView))[F]}function me(){return E.lFrame.selectedIndex}function mn(e){E.lFrame.selectedIndex=e}function zn(){let e=E.lFrame;return bt(e.tView,e.selectedIndex)}function vr(){E.lFrame.currentNamespace=Rn}function Zd(){Kb()}function Kb(){E.lFrame.currentNamespace=null}function Pa(){return E.lFrame.currentNamespace}function ai(){return Kd}function yr(e){Kd=e}function ra(e,n=null,t=null,r){let o=ja(e,n,t,r);return o.resolveInjectorInitializers(),o}function ja(e,n=null,t=null,r,o=new Set){let i=[t||he,Dd(e)];return new _n(i,n||ur(),null,o)}function Qb(){return new Lo(b())}function Oo(...e){}function Fa(e){let n,t;function r(){e=Oo;try{t!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(t),n!==void 0&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame==`function`&&(t=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Jd(e){return queueMicrotask(()=>e()),()=>{e=Oo}}function Va(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function Xb(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function n(){Fa(()=>{e.callbackScheduled=!1,ia(e),e.isCheckStableRunning=!0,Va(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{n()}):e._outer.run(()=>{n()}),ia(e)}function ew(e){let n=()=>{Xb(e)},t=Yb++;e._inner=e._inner.fork({name:`angular`,properties:{[Ha]:!0,[Xt]:t,[Xt+t]:!0},onInvokeTask:(r,o,i,s,a,l)=>{if(nw(l))return r.invokeTask(i,s,a,l);try{return ud(e),r.invokeTask(i,s,a,l)}finally{(e.shouldCoalesceEventChangeDetection&&s.type===`eventTask`||e.shouldCoalesceRunChangeDetection)&&n(),dd(e)}},onInvoke:(r,o,i,s,a,l,c)=>{try{return ud(e),r.invoke(i,s,a,l,c)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!tw(l)&&n(),dd(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change==`microTask`?(e._hasPendingMicrotasks=s.microTask,ia(e),Va(e)):s.change==`macroTask`&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function ia(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function ud(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function dd(e){e._nesting--,Va(e)}function nw(e){return Xd(e,`__ignore_ng_zone__`)}function tw(e){return Xd(e,`__scheduler_tick__`)}function Xd(e,n){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[n]===!0}function ow(){return cr([wd(()=>{C(rw)})])}function wt(e,n){let[t,r,o]=rs(e,n?.equal),i=t;i[j];return i.set=r,i.update=o,i.asReadonly=wr.bind(i),i}function wr(){let e=this[j];if(e.readonlyFn===void 0){let n=()=>this();n[j]=e,e.readonlyFn=n}return e.readonlyFn}function lw(){return new Dt(b(),H())}function rp(e,n){let t=n?.injector??C(ke),r=n?.manualCleanup!==!0?t.get(ve):null,o,i=t.get(Dt,null,{optional:!0}),s=t.get(Le);return i!==null?(o=ip(i.view,s,e),r instanceof Lo&&r._lView===i.view&&(r=null)):o=dw(e,t.get(li),s),o.injector=t,r!==null&&(o.onDestroyFns=[r.onDestroy(()=>o.destroy())]),new Po(o)}function ip(e,n,t){let r=Object.create(uw);return r.view=e,r.zone=typeof Zone<`u`?Zone.current:null,r.notifier=n,r.fn=sp(r,t),e[qe]??=new Set,e[qe].add(r),r.consumerMarkedDirty(r),r}function dw(e,n,t){let r=Object.create(cw);return r.fn=sp(r,e),r.scheduler=n,r.notifier=t,r.zone=typeof Zone<`u`?Zone.current:null,r.scheduler.add(r),r.notifier.notify(12),r}function sp(e,n){return()=>{n(t=>(e.cleanupFns??=[]).push(t))}}function ci(e){return typeof e==`function`&&e[j]!==void 0}function ui(e){return ci(e)&&typeof e.set==`function`}var jo;var k;var Sb;var Vo;var _o;var M;var or;var ir;var ca;var ua;var Yt;var Ln;var ad;var md;var Ab;var xb;var Ks;var ln;var _b;var An;var Rb;var Qs;var cn;var he;var ft;var lr;var ga;var dt;var Fb;var va;var $o;var ld;var Gs;var ue;var _n;var Te;var v;var w;var U;var ye;var se;var mt;var gt;var F;var ee;var Ne;var L;var ht;var ba;var un;var de;var dn;var On;var Oe;var Pe;var wa;var Be;var Ko;var qe;var pe;var Pn;var je;var O;var Sd;var pn;var jn;var dr;var Fn;var P;var K;var Qt;var Rn;var Qo;var ea;var cd;var na;var E;var ta;var Oa;var Kd;var ke;var br;var ve;var Lo;var Qd;var Yd;var Un;var oa;var Ue;var Ha;var Xt;var Yb;var Se;var Jb;var er;var Ge;var gn;var ep;var rw;var np;var iw;var tp;var sw;var aw;var Dt;var Le;var Dr;var za;var li;var sa;var Po;var op;var cw;var uw;var di;var Cr=p(()=>{En();as();us();ru();Ws();jo=`https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss`,k=class extends Error{code;constructor(n,t){super(nr(n,t)),this.code=n}};Sb=_({__forward_ref__:_});Vo=_({ɵprov:_}),_o=_({ɵinj:_}),M=class{_desc;ngMetadataName=`InjectionToken`;ɵprov;constructor(n,t){this._desc=n,this.ɵprov=void 0,typeof t==`number`?this.__NG_ELEMENT_ID__=t:t!==void 0&&(this.ɵprov=X({token:this,providedIn:t.providedIn||`root`,factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};or=_({ɵcmp:_}),ir=_({ɵdir:_}),ca=_({ɵpipe:_}),ua=_({ɵmod:_}),Yt=_({ɵfac:_}),Ln=_({__NG_ELEMENT_ID__:_}),ad=_({__NG_ENV_ID__:_});md=_({ngErrorCode:_}),Ab=_({ngErrorMessage:_}),xb=_({ngTokenPath:_});ln=globalThis,_b={},An=_b,Rb=`__NG_DI_FLAG__`,Qs=class{injector;constructor(n){this.injector=n}retrieve(n,t){let r=xn(t)||0;try{return this.injector.get(n,r&8?null:An,r)}catch(o){if(nt(o))return o;throw o}}};cn={},he=[],ft=new M(``),lr=new M(``,-1),ga=new M(``),dt=class{get(n,t=An){if(t===An){let o=gd(``,-201);throw o.name=`ɵNotFound`,o}return t}};Fb=_({provide:String,useValue:_});va=new M(``),$o={},ld={};ue=class{},_n=class extends ue{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,Xs(n,s=>this.processProvider(s)),this.records.set(lr,ut(void 0,this)),o.has(`environment`)&&this.records.set(ue,ut(void 0,this));let i=this.records.get(va);i!=null&&typeof i.value==`string`&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(ga,he,{self:!0}))}retrieve(n,t){let r=xn(t)||0;try{return this.get(n,An,r)}catch(o){if(nt(o))return o;throw o}}destroy(){Kt(this),this._destroyed=!0;let n=y(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let t=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of t)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),y(n)}}onDestroy(n){return Kt(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){Kt(this);let t=_e(this),r=oe(void 0);try{return n()}finally{_e(t),oe(r)}}get(n,t=An,r){if(Kt(this),Object.hasOwn(n,ad))return n[ad](this);let o=xn(r),s=_e(this),a=oe(void 0);try{if(!(o&4)){let c=this.records.get(n);if(c===void 0){let u=Wb(n)&&rr(n);u&&this.injectableDefInScope(u)?c=ut(Js(n),$o):c=null,this.records.set(n,c)}if(c!=null)return this.hydrate(n,c,o)}let l=o&2?ur():this.parent;return t=o&8&&t===An?null:t,l.get(n,t)}catch(l){let c=$b(l);throw c===-200||c===-201?new k(c,null):l}finally{oe(a),_e(s)}}resolveInjectorInitializers(){let n=y(null),t=_e(this),r=oe(void 0);try{let i=this.get(ft,he,{self:!0});for(let s of i)s()}finally{_e(t),oe(r),y(n)}}toString(){return`R3Injector[...]`}processProvider(n){n=q(n);let t=$n(n)?n:q(n&&n.provide),r=Ub(n);if(!$n(n)&&n.multi===!0){let o=this.records.get(t);o||(o=ut(void 0,$o,!0),o.factory=()=>Ys(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t,r){let o=y(null);try{if(t.value===ld)throw pa(``);return t.value===$o&&(t.value=ld,t.value=t.factory(void 0,r)),typeof t.value==`object`&&t.value&&qb(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{y(o)}}injectableDefInScope(n){if(!n.providedIn)return!1;let t=q(n.providedIn);return typeof t==`string`?t===`any`||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){let t=this._onDestroyHooks.indexOf(n);t!==-1&&this._onDestroyHooks.splice(t,1)}};Te=0,v=1,w=2,U=3,ye=4,se=5,mt=6,gt=7,F=8,ee=9,Ne=10,L=11,ht=12,ba=13,un=14,de=15,dn=16,On=17,Oe=18,Pe=19,wa=20,Be=21,Ko=22,qe=23,pe=24,Pn=25,je=26,O=27,Sd=1,pn=6,jn=7,dr=8,Fn=9,P=10;K=(function(e){return e[e.NONE=0]=`NONE`,e[e.HTML=1]=`HTML`,e[e.STYLE=2]=`STYLE`,e[e.SCRIPT=3]=`SCRIPT`,e[e.URL=4]=`URL`,e[e.RESOURCE_URL=5]=`RESOURCE_URL`,e[e.ATTRIBUTE_NO_BINDING=6]=`ATTRIBUTE_NO_BINDING`,e})(K||{}),Rn=`svg`,Qo=`math`,ea=``,cd=`*`,na=()=>Object.create(null);E={lFrame:qd(null),bindingsEnabled:!0,skipHydrationRootTNode:null},ta=!1;Oa=Wd;Kd=!0;ke=class e{static THROW_IF_NOT_FOUND=An;static NULL=new dt;static create(n,t){if(Array.isArray(n))return ra({name:``},t,n,``);{let r=n.name??``;return ra({name:r},n.parent,n.providers,r)}}static ɵprov=X({token:e,providedIn:`any`,factory:()=>Re(lr)});static __NG_ELEMENT_ID__=-1},br=new M(``),ve=class{static __NG_ELEMENT_ID__=Qb;static __NG_ENV_ID__=n=>n},Lo=class extends ve{_lView;constructor(n){super(),this._lView=n}get destroyed(){return fn(this._lView)}onDestroy(n){let t=this._lView;return mr(t,n),()=>Ea(t,n)}};Qd=!1,Yd=new M(``),Un=(()=>{class e{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new qt(!1);debugTaskTracker=C(Yd,{optional:!0});get hasPendingTasks(){return this.destroyed?!1:this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new T(t=>{t.next(!1),t.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);let t=this.taskId++;return this.pendingTasks.add(t),this.debugTaskTracker?.add(t),t}has(t){return this.pendingTasks.has(t)}remove(t){this.pendingTasks.delete(t),this.debugTaskTracker?.remove(t),this.pendingTasks.size===0&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),oa=class extends ge{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,kd()&&(this.destroyRef=C(ve,{optional:!0})??void 0,this.pendingTasks=C(Un,{optional:!0})??void 0)}emit(n){let t=y(null);try{super.next(n)}finally{y(t)}}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&typeof n==`object`){let l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return n instanceof te&&n.add(a),a}wrapInTimeout(n){return t=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{n(t)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}},Ue=oa;Ha=`isAngularZone`,Xt=Ha+`_ID`,Yb=0,Se=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Ue(!1);onMicrotaskEmpty=new Ue(!1);onStable=new Ue(!1);onError=new Ue(!1);constructor(n){let{enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=Qd}=n;if(typeof Zone>`u`)throw new k(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,ew(s)}static isInAngularZone(){return typeof Zone<`u`&&Zone.current.get(Ha)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new k(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new k(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){let i=this._inner,s=i.scheduleEventTask(`NgZoneEvent: `+o,n,Jb,Oo,Oo);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}},Jb={};er=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Ue;onMicrotaskEmpty=new Ue;onStable=new Ue;onError=new Ue;run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}};Ge=class{_console=console;handleError(n){this._console.error(`ERROR`,n)}},gn=new M(``,{factory:()=>{let e=C(Se),n=C(ue),t;return r=>{e.runOutsideAngular(()=>{n.destroyed&&!t?setTimeout(()=>{throw r}):(t??=n.get(Ge),t.handleError(r))})}}}),ep={provide:ft,useValue:()=>{C(Ge,{optional:!0})},multi:!0},rw=new M(``,{factory:()=>{let e=C(br).defaultView;if(!e)return;let n=C(gn),t=i=>{n(i.reason),i.preventDefault()},r=i=>{i.error?n(i.error):n(new Error(i.message,{cause:i})),i.preventDefault()},o=()=>{e.addEventListener(`unhandledrejection`,t),e.addEventListener(`error`,r)};typeof Zone<`u`?Zone.root.run(o):o(),C(ve).onDestroy(()=>{e.removeEventListener(`error`,r),e.removeEventListener(`unhandledrejection`,t)})}});np=new M(``,{factory:()=>iw}),iw=`ng`,tp=new M(``),sw=new M(``,{providedIn:`platform`,factory:()=>`unknown`}),aw=new M(``,{factory:()=>C(br).body?.querySelector(`[ngCspNonce]`)?.getAttribute(`ngCspNonce`)||null}),Dt=(()=>{class e{view;node;constructor(t,r){this.view=t,this.node=r}static __NG_ELEMENT_ID__=lw}return e})();Le=class{},Dr=new M(``,{factory:()=>!0}),za=new M(``),li=(()=>{class e{static ɵprov=X({token:e,providedIn:`root`,factory:()=>new sa})}return e})(),sa=class{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){let t=n.zone,r=this.queues.get(t);r.has(n)&&(r.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){let t=n.zone;this.queues.has(t)||this.queues.set(t,new Set);let r=this.queues.get(t);r.has(n)||r.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(let[t,r]of this.queues)t===null?n||=this.flushQueue(r):n||=t.run(()=>this.flushQueue(r));n||(this.dirtyEffectCount=0)}}flushQueue(n){let t=!1;for(let r of n)r.dirty&&(this.dirtyEffectCount--,t=!0,r.run());return t}},Po=class{[j];constructor(n){this[j]=n}destroy(){this[j].destroy()}};op=G(W({},os),{cleanupFns:void 0,zone:null,onDestroyFns:null,run(){let e=Jt(!1);try{is(this)}finally{Jt(e)}},cleanup(){if(!this.cleanupFns?.length)return;let e=y(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],y(e)}}}),cw=G(W({},op),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(tn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.scheduler.remove(this)}}),uw=G(W({},op),{consumerMarkedDirty(){this.view[w]|=8192,Hn(this.view),this.notifier.notify(13)},destroy(){if(tn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.view[qe]?.delete(this)}});di=(()=>{class e{internalPendingTasks=C(Un);scheduler=C(Le);errorHandler=C(gn);add(){let t=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(t)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(t))}}run(t){let r=this.add();try{t().catch(this.errorHandler).finally(r)}catch(o){this.errorHandler(o),r()}}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})()});var ap=p(()=>{Zu();Ku();Us();ed();nd();So();Hs();Ao();rd();od();qs();td();id();sd()});function ji(e){return{toString:e}.toString()}function Kp(e,n,t,r){n!==null?n.applyValueToInputSignal(n,r):e[t]=r}function Ew(){return Qp}function lp(e){return e.type.prototype.ngOnChanges&&(e.setInput=Sw),kw}function kw(){let e=Yp(this),n=e?.current;if(n){let t=e.previous;if(t===cn)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function Sw(e,n,t,r,o){let i=this.declaredInputs[r],s=Yp(e)||Tw(e,{previous:cn,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new wi(c&&c.currentValue,t,l===cn),Kp(e,n,o,t)}function Yp(e){return Object.hasOwn(e,tl)&&e[tl]||null}function Tw(e,n){return e[tl]=n}function Nw(e,n,t){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){let s=Ew()(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}o&&(t.preOrderHooks??=[]).push(0-e,o),i&&((t.preOrderHooks??=[]).push(e,i),(t.preOrderCheckHooks??=[]).push(e,i))}function Jp(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t<r;t++){let{ngAfterContentInit:s,ngAfterContentChecked:a,ngAfterViewInit:l,ngAfterViewChecked:c,ngOnDestroy:u}=e.data[t].type.prototype;s&&(e.contentHooks??=[]).push(-t,s),a&&((e.contentHooks??=[]).push(t,a),(e.contentCheckHooks??=[]).push(t,a)),l&&(e.viewHooks??=[]).push(-t,l),c&&((e.viewHooks??=[]).push(t,c),(e.viewCheckHooks??=[]).push(t,c)),u!=null&&(e.destroyHooks??=[]).push(t,u)}}function mi(e,n,t){Xp(e,n,3,t)}function gi(e,n,t,r){(e[w]&3)===t&&Xp(e,n,t,r)}function Ua(e,n){let t=e[w];(t&3)===n&&(t&=16383,t+=1,e[w]=t)}function Xp(e,n,t,r){let o=r!==void 0?e[On]&65535:0,i=r??-1,s=n.length-1,a=0;for(let l=o;l<s;l++)if(typeof n[l+1]==`number`){if(a=n[l],r!=null&&a>=r)break}else n[l]<0&&(e[On]+=65536),(a<i||i==-1)&&(Mw(e,t,n,l),e[On]=(e[On]&4294901760)+l+2),l++}function up(e,n){A(N.LifecycleHookStart,e,n);let t=y(null);try{n.call(e)}finally{y(t),A(N.LifecycleHookEnd,e,n)}}function Mw(e,n,t,r){let o=t[r]<0,i=t[r+1],a=e[o?-t[r]:t[r]];o?e[w]>>14<e[On]>>16&&(e[w]&3)===n&&(e[w]+=16384,up(a,i)):up(a,i)}function Aw(e){return(e.flags&8)!==0}function xw(e){return(e.flags&16)!==0}function $w(e,n,t){let r=0;for(;r<t.length;){let o=t[r];if(typeof o==`number`){if(o!==0)break;r++;let i=t[r++],s=t[r++],a=t[r++];e.setAttribute(n,s,a,i)}else{let i=o,s=t[++r];_w(i)?e.setProperty(n,i,s):e.setAttribute(n,i,s),r++}}return r}function ef(e){return e===3||e===4||e===6}function _w(e){return e.charCodeAt(0)===64}function Et(e,n){if(!(n===null||n.length===0))if(e===null||e.length===0)e=n.slice();else{let t=-1;for(let r=0;r<n.length;r++){let o=n[r];typeof o==`number`?t=o:t===0||(t===-1||t===2?dp(e,t,o,null,n[++r]):dp(e,t,o,null,null))}}return e}function dp(e,n,t,r,o){let i=0,s=e.length;if(n===-1)s=-1;else for(;i<e.length;){let a=e[i++];if(typeof a==`number`){if(a===n){s=-1;break}else if(a>n){s=i-1;break}}}for(;i<e.length;){let a=e[i];if(typeof a==`number`)break;if(a===t){o!==null&&(e[i+1]=o);return}i++,o!==null&&i++}s!==-1&&(e.splice(s,0,n),i=s+1),e.splice(i++,0,t),o!==null&&e.splice(i++,0,o)}function nf(e){return e!==It}function Di(e){return e&32767}function Rw(e){return e>>16}function Ci(e,n){let t=Rw(e),r=n;for(;t>0;)r=r[un],t--;return r}function Ii(e){let n=rl;return rl=e,n}function Pw(e,n,t){let r;typeof t==`string`?r=t.charCodeAt(0)||0:Object.hasOwn(t,Ln)&&(r=t[Ln]),r??=t[Ln]=Ow++;let o=r&tf,i=1<<o;n.data[e+(o>>rf)]|=i}function Ei(e,n){let t=of(e,n);if(t!==-1)return t;let r=n[v];r.firstCreatePass&&(e.injectorIndex=n.length,Ba(r.data,e),Ba(n,null),Ba(r.blueprint,null));let o=Ll(e,n),i=e.injectorIndex;if(nf(o)){let s=Di(o),a=Ci(o,n),l=a[v].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function Ba(e,n){e.push(0,0,0,0,0,0,0,0,n)}function of(e,n){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||n[e.injectorIndex+8]===null?-1:e.injectorIndex}function Ll(e,n){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;o!==null;){if(r=uf(o),r===null)return It;if(t++,o=o[un],r.injectorIndex!==-1)return r.injectorIndex|t<<16}return It}function ol(e,n,t){Pw(e,n,t)}function jw(e,n){if(n===`class`)return e.classes;if(n===`style`)return e.styles;let t=e.attrs;if(t){let r=t.length,o=0;for(;o<r;){let i=t[o];if(ef(i))break;if(i===0)o=o+2;else if(typeof i==`number`)for(o++;o<r&&typeof t[o]==`string`;)o++;else{if(i===n)return t[o+1];o=o+2}}}return null}function sf(e,n,t){if(t&8||e!==void 0)return e;Uo(n,`NodeInjector`)}function af(e,n,t,r){if(t&8&&r===void 0&&(r=null),(t&3)===0){let o=e[ee],i=oe(void 0);try{return o?o.get(n,r,t&8):fa(n,r,t&8)}finally{oe(i)}}return sf(r,n,t)}function lf(e,n,t,r=0,o){if(e!==null){if(n[w]&2048&&!(r&2)){let s=Uw(e,n,t,r,Fe);if(s!==Fe)return s}let i=cf(e,n,t,r,Fe);if(i!==Fe)return i}return af(n,t,r,o)}function cf(e,n,t,r,o){let i=Hw(t);if(typeof i==`function`){if(!La(n,e,r))return r&1?sf(o,t,r):af(n,t,r,o);try{let s;if(s=i(r),s==null&&!(r&8))Uo(t);else return s}finally{Oa()}}else if(typeof i==`number`){let s=null,a=of(e,n),l=It,c=r&1?n[de][se]:null;for((a===-1||r&4)&&(l=a===-1?Ll(e,n):n[a+8],l===It||!fp(r,!1)?a=-1:(s=n[v],a=Di(l),n=Ci(l,n)));a!==-1;){let u=n[v];if(pp(i,a,u.data)){let d=Fw(a,n,t,s,r,c);if(d!==Fe)return d}l=n[a+8],l!==It&&fp(r,n[v].data[a+8]===c)&&pp(i,a,n)?(s=u,a=Di(l),n=Ci(l,n)):a=-1}}return o}function Fw(e,n,t,r,o,i){let s=n[v],a=s.data[e+8],u=hi(a,s,t,r==null?Ye(a)&&rl:r!=s&&(a.type&3)!==0,o&1&&i===a);return u!==null?Tr(n,s,u,a,o):Fe}function hi(e,n,t,r,o){let i=e.providerIndexes,s=n.data,a=i&1048575,l=e.directiveStart,c=e.directiveEnd,u=i>>20,d=r?a:a+u,m=o?a+u:c;for(let f=d;f<m;f++){let g=s[f];if(f<l&&t===g||f>=l&&g.type===t)return f}if(o){let f=s[l];if(f&&Me(f)&&f.type===t)return l}return null}function Tr(e,n,t,r,o){let i=e[t],s=n.data;if(i instanceof Wn){let a=i;if(a.resolving)throw pa(``);let l=Ii(a.canSeeViewProviders);a.resolving=!0;s[t].type||s[t];let d=a.injectImpl?oe(a.injectImpl):null;La(e,r,0);try{i=e[t]=a.factory(void 0,o,s,e,r),n.firstCreatePass&&t>=r.directiveStart&&Nw(t,s[t],n)}finally{d!==null&&oe(d),Ii(l),a.resolving=!1,Oa()}}return i}function Hw(e){if(typeof e==`string`)return e.charCodeAt(0)||0;let n=Object.hasOwn(e,Ln)?e[Ln]:void 0;return typeof n==`number`?n>=0?n&tf:Vw:n}function pp(e,n,t){let r=1<<e;return!!(t[n+(e>>rf)]&r)}function fp(e,n){return!(e&2)&&!(e&1&&n)}function Vw(){return new vn(H(),b())}function zw(e){return ji(()=>{let n=e.prototype.constructor,t=n[Yt]||il(n),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[Yt]||il(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function il(e){return aa(e)?()=>{let n=il(q(e));return n&&n()}:an(e)}function Uw(e,n,t,r,o){let i=e,s=n;for(;i!==null&&s!==null&&s[w]&2048&&!yt(s);){let a=cf(i,s,t,r|2,Fe);if(a!==Fe)return a;r&=-5;let l=i.parent;if(!l){let c=s[wa];if(c){let u=c.get(t,Fe,r);if(u!==Fe)return u}l=uf(s),s=s[un]}i=l}return o}function uf(e){let n=e[v],t=n.type;return t===2?n.declTNode:t===1?e[se]:null}function df(e){return jw(H(),e)}function Or(e){return{token:e.token,providedIn:e.autoProvided===!1?null:`root`,factory:e.factory,value:void 0}}function Ww(){return _t(H(),b())}function _t(e,n){return new Pr(we(e,n))}function ff(e){return e instanceof Pr?e.nativeElement:e}function Gw(){return this._results[Symbol.iterator]()}function mf(e){return(e.flags&128)===128}function Kw(){return Zw++}function Qw(e){gf.set(e[Pe],e)}function al(e){gf.delete(e[Pe])}function kt(e,n){Qe(n)?(e[mp]=n[Pe],Qw(n)):e[mp]=n}function hf(e){return yf(e[ht])}function vf(e){return yf(e[ye])}function yf(e){for(;e!==null&&!be(e);)e=e[ye];return e}function Yw(e){ll=e}function bf(){if(ll!==void 0)return ll;if(typeof document<`u`)return document;throw new k(210,!1)}function Jw(e,n){if(e==null||typeof e!=`object`)return;let t=gp.get(e);t||(t=new WeakSet,gp.set(e,t)),t.add(n)}function eD(e,n,t,r){Xw(e,n,t,r)}function Fl(e){return(e.flags&32)===32}function kf(e,n,t=!1){return nD(e,n,t)}function Hl(e){return e.get(If,!1,{optional:!0})}function Sf(e,n){let t=e.contentQueries;if(t!==null){let r=y(null);try{for(let o=0;o<t.length;o+=2){let i=t[o],s=t[o+1];if(s!==-1){let a=e.data[s];hr(i),a.contentQueries(2,n[s],s)}}}finally{y(r)}}}function cl(e,n,t){hr(0);let r=y(null);try{n(e,t)}finally{y(r)}}function Vl(e,n,t){if(Da(n)){let r=y(null);try{let o=n.directiveStart,i=n.directiveEnd;for(let s=o;s<i;s++){let a=e.data[s];if(a.contentQueries){let l=t[s];a.contentQueries(1,l,s)}}}finally{y(r)}}}function rD(){if(pi===void 0&&(pi=null,ln.trustedTypes))try{pi=ln.trustedTypes.createPolicy(`angular#unsafe-bypass`,{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return pi}function hp(e){return rD()?.createScriptURL(e)||e}function St(e){return e instanceof Si?e.changingThisBreaksApplicationSecurity:e}function zl(e,n){let t=Tf(e);if(t!=null&&t!==n){if(t===`ResourceURL`&&n===`URL`)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${jo})`)}return t===n}function Tf(e){return e instanceof Si&&e.getTypeName()||null}function Nf(e){return e=String(e),e.match(oD)?e:`unsafe:`+e}function lD(e){return e.replace(iD,n=>n.replace(sD,aD))}function cD(e,n){return e.createText(n)}function uD(e,n,t){e.setValue(n,t)}function dD(e,n){return e.createComment(lD(n))}function Mf(e,n,t){return e.createElement(n,t)}function Bn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function Af(e,n,t){e.appendChild(n,t)}function vp(e,n,t,r,o){r!==null?Bn(e,n,t,r,o):Af(e,n,t)}function xf(e,n,t,r){e.removeChild(null,n,t,r)}function pD(e,n,t){e.setAttribute(n,`style`,t)}function fD(e,n,t){t===``?e.removeAttribute(n,`class`):e.setAttribute(n,`class`,t)}function $f(e,n,t){let{mergedAttrs:r,classes:o,styles:i}=t;r!==null&&$w(e,n,r),o!==null&&fD(e,n,o),i!==null&&pD(e,n,i)}function mD(e,n=!0){if(e[0]!=`:`)return[null,e];let t=e.indexOf(`:`,1);if(t===-1){if(n)throw new Error(`Unsupported format "${e}" expecting ":namespace:name"`);return[null,e]}return[e.slice(1,t),e.slice(t+1)]}function _f(e){let n=Lf();return n?n.sanitize(K.URL,e)||``:zl(e,`URL`)?St(e):Nf(Ke(e))}function Rf(e){let n=Lf();if(n)return hp(n.sanitize(K.RESOURCE_URL,e)||``);if(zl(e,`ResourceURL`))return hp(St(e));throw new k(904,!1)}function gD(e,n){switch(vD(e,n)){case K.RESOURCE_URL:return Rf;case K.URL:return _f;default:return null}}function hD(e,n,t){return gD(n,t)?.(e)??e}function Lf(){let e=b();return e&&e[Ne].sanitizer}function vD(e,n){let[t,r]=yD(e);return Td(r,n,t)}function yD(e){e=e.toLowerCase();let n=mD(e,!1);if(n[0])return n;let r=me()===-1?null:zn(),o=r?.namespace;if(e===`#host`&&r?.type===2){let i=we(r,b());if(i.tagName&&(e=i.tagName.toLowerCase()),o==null){let s=i.namespaceURI;o=s&&tD[s]}}return[o,e]}function bD(e){return e.ownerDocument.defaultView}function wD(e){return e.ownerDocument}function DD(e){return e instanceof Function?e():e}function CD(e,n,t){let r=e.length;for(;;){let o=e.indexOf(n,t);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}function ID(e,n,t,r){let o=0;if(r){for(;o<n.length&&typeof n[o]==`string`;o+=2)if(n[o]===`class`&&CD(n[o+1].toLowerCase(),t,0)!==-1)return!0}else if(Ul(e))return!1;if(o=n.indexOf(1,o),o>-1){let i;for(;++o<n.length&&typeof(i=n[o])==`string`;)if(i.toLowerCase()===t)return!0}return!1}function Ul(e){return e.type===4&&e.value!==Of}function ED(e,n,t){return n===(e.type===4&&!t?Of:e.value)}function kD(e,n,t){let r=4,o=e.attrs,i=o!==null?ND(o):0,s=!1;for(let a=0;a<n.length;a++){let l=n[a];if(typeof l==`number`){if(!s&&!Ae(r)&&!Ae(l))return!1;if(s&&Ae(l))continue;s=!1,r=l|r&1;continue}if(!s)if(r&4){if(r=2|r&1,l!==``&&!ED(e,l,t)||l===``&&n.length===1){if(Ae(r))return!1;s=!0}}else if(r&8){if(o===null||!ID(e,o,l,t)){if(Ae(r))return!1;s=!0}}else{let c=n[++a],u=SD(l,o,Ul(e),t);if(u===-1){if(Ae(r))return!1;s=!0;continue}if(c!==``){let d;if(u>i?d=``:d=o[u+1].toLowerCase(),r&2&&c!==d){if(Ae(r))return!1;s=!0}}}}return Ae(r)||s}function Ae(e){return(e&1)===0}function SD(e,n,t,r){if(n===null)return-1;let o=0;if(r||!t){let i=!1;for(;o<n.length;){let s=n[o];if(s===e)return o;if(s===3||s===6)i=!0;else if(s===1||s===2){let a=n[++o];for(;typeof a==`string`;)a=n[++o];continue}else{if(s===4)break;if(s===0){o+=4;continue}}o+=i?1:2}return-1}else return MD(n,e)}function TD(e,n,t=!1){for(let r=0;r<n.length;r++)if(kD(e,n[r],t))return!0;return!1}function ND(e){for(let n=0;n<e.length;n++){let t=e[n];if(ef(t))return n}return e.length}function MD(e,n){let t=e.indexOf(4);if(t>-1)for(t++;t<e.length;){let r=e[t];if(typeof r==`number`)return-1;if(r===n)return t;t++}return-1}function yp(e,n){return e?`:not(`+n.trim()+`)`:n}function AD(e){let n=e[0],t=1,r=2,o=``,i=!1;for(;t<e.length;){let s=e[t];if(typeof s==`string`)if(r&2){let a=e[++t];o+=`[`+s+(a.length>0?`="`+a+`"`:``)+`]`}else r&8?o+=`.`+s:r&4&&(o+=` `+s);else o!==``&&!Ae(s)&&(n+=yp(i,o),o=``),r=s,i=i||!Ae(r);t++}return o!==``&&(n+=yp(i,o)),n}function xD(e){return e.map(AD).join(`,`)}function $D(e){let n=[],t=[],r=1,o=2;for(;r<e.length;){let i=e[r];if(typeof i==`string`)o===2?i!==``&&n.push(i,e[++r]):o===8&&t.push(i);else{if(!Ae(o))break;o=i}r++}return t.length&&n.push(1,...t),n}function Bl(e,n){return _D(e,n)}function Pf(e){return e?e[un]??e:null}function RD(e,n,t){let r=ul.get(e);if(!r||r.length===0)return;let o=n.parentNode,i=n.previousSibling,s=Pf(t);for(let a=r.length-1;a>=0;a--){let{el:l,declarationView:c}=r[a],u=l.parentNode;l===n?(r.splice(a,1),Er.add(l),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}}))):i&&l===i?(r.splice(a,1),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),l.parentNode?.removeChild(l)):u&&o&&u!==o&&(s===null||c===null||s===c)&&(r.splice(a,1),l.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),l.parentNode?.removeChild(l))}}function LD(e,n,t){let r=Pf(t),o=ul.get(e);o?o.some(i=>i.el===n)||o.push({el:n,declarationView:r}):ul.set(e,[{el:n,declarationView:r}])}function Xe(e){bp.has(e)||(bp.add(e),performance?.mark?.(`mark_feature_usage`,{detail:{feature:e}}))}function OD(e,n){let t=n?.injector??C(ke);return Xe(`NgAfterNextRender`),jD(e,t,n,!0)}function PD(e){return e instanceof Function?[void 0,void 0,e,void 0]:[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function jD(e,n,t,r){let o=n.get(Hi);o.impl??=n.get(Wl);let i=n.get(Kn,null,{optional:!0}),s=t?.manualCleanup!==!0?n.get(ve):null,a=n.get(Dt,null,{optional:!0}),l=new Nr(o.impl,PD(e),a?.view,r,s,i?.snapshot(null));return o.impl.register(l),l}function jf(e,n,t){let r=e.get(Gl);if(Array.isArray(n))for(let o of n)r.queue.add(o),t?.detachedLeaveAnimationFns?.push(o);else r.queue.add(n),t?.detachedLeaveAnimationFns?.push(n);r.scheduler&&r.scheduler(e)}function FD(e,n){let t=e.get(Gl);if(Array.isArray(n))for(let r of n)t.queue.delete(r);else t.queue.delete(n)}function HD(e,n){let t=e.get(Gl);if(n.detachedLeaveAnimationFns){for(let r of n.detachedLeaveAnimationFns)t.queue.delete(r);n.detachedLeaveAnimationFns=void 0}}function VD(e,n){for(let[t,r]of n)jf(e,r.animateFns)}function wp(e,n,t,r){let o=e?.[je]?.enter;n!==null&&o&&o.has(t.index)&&VD(r,o)}function Dp(e,n,t,r){try{t.get(lr)}catch{return r(!1)}let o=e?.[je];o?.enter?.has(n.index)&&FD(t,o.enter.get(n.index).animateFns);let i=zD(e,n,o);if(i.size===0){let s=!1;if(e){let a=[];Vi(e,n,a),s=a.length>0}if(!s)return r(!1)}e&&Tt.add(e[Pe]),jf(t,()=>UD(e,n,o||void 0,i,r),o||void 0)}function zD(e,n,t){let r=new Map,o=t?.leave;if(o&&o.has(n.index)&&r.set(n.index,o.get(n.index)),e&&o)for(let[i,s]of o){if(r.has(i))continue;let l=e[v].data[i].parent;for(;l;){if(l===n){r.set(i,s);break}l=l.parent}}return r}function UD(e,n,t,r,o){let i=[];if(t&&t.leave)for(let[s]of r){if(!t.leave.has(s))continue;let a=t.leave.get(s);for(let l of a.animateFns){let{promise:c}=l();i.push(c)}t.detachedLeaveAnimationFns=void 0}if(e&&Vi(e,n,i),i.length>0){let s=t||e?.[je];if(s){let a=s.running;a&&i.push(a),s.running=Promise.allSettled(i),qD(e,s.running,o)}else Promise.allSettled(i).then(()=>{e&&Tt.delete(e[Pe]),o(!0)})}else e&&Tt.delete(e[Pe]),o(!1)}function Vi(e,n,t){if(n.type&12){let o=e[n.index];if(be(o))for(let i=P;i<o.length;i++){let s=o[i];s[v].type===2&&BD(s,t)}}let r=n.child;for(;r;)Vi(e,r,t),r=r.next}function BD(e,n){let t=e[je];if(t&&t.leave)for(let o of t.leave.values())for(let i of o.animateFns){let{promise:s}=i();n.push(s)}let r=e[v].firstChild;for(;r;)Vi(e,r,n),r=r.next}function qD(e,n,t){n.then(()=>{e[je]?.running===n&&(e[je].running=void 0,Tt.delete(e[Pe])),t(!0)})}function Ct(e,n,t,r,o,i,s,a){if(o!=null){let l,c=!1;be(o)?l=o:Qe(o)&&(c=!0,o=o[Te]);let u=Q(o);e===0&&r!==null?(wp(a,r,i,t),s==null?Af(n,r,u):Bn(n,r,u,s||null,!0)):e===1&&r!==null?(wp(a,r,i,t),Bn(n,r,u,s||null,!0),RD(i,u,a)):e===2?(a?.[je]?.leave?.has(i.index)&&LD(i,u,a),Er.delete(u),Dp(a,i,t,d=>{if(Er.has(u)){Er.delete(u);return}xf(n,u,c,d)})):e===3&&(Er.delete(u),Dp(a,i,t,()=>{n.destroyNode(u)})),l!=null&&oC(n,e,t,l,i,r,s)}}function WD(e,n){Ff(e,n),n[Te]=null,n[se]=null}function GD(e,n,t,r,o,i){r[Te]=o,r[se]=n,Ui(e,r,t,1,o,i)}function Ff(e,n){n[Ne].changeDetectionScheduler?.notify(9),Ui(e,n,n[L],2,null,null)}function ZD(e){let n=e[ht];if(!n)return qa(e[v],e);for(;n;){let t=null;if(Qe(n))t=n[ht];else{let r=n[P];r&&(t=r)}if(!t){for(;n&&!n[ye]&&n!==e;)Qe(n)&&qa(n[v],n),n=n[U];n===null&&(n=e),Qe(n)&&qa(n[v],n),t=n&&n[ye]}n=t}}function Zl(e,n){let t=e[Fn],r=t.indexOf(n);t.splice(r,1)}function zi(e,n){if(fn(n))return;let t=n[L];t.destroyNode&&Ui(e,n,t,3,null,null),ZD(n)}function qa(e,n){if(fn(n))return;let t=y(null);try{n[w]&=-129,n[w]|=256,n[pe]&&tn(n[pe]),QD(e,n),KD(e,n),n[v].type===1&&n[L].destroy();let r=n[dn];if(r!==null&&be(n[U])){r!==n[U]&&Zl(r,n);let o=n[Oe];o!==null&&o.detachView(e)}al(n)}finally{y(t)}}function KD(e,n){let t=e.cleanup,r=n[gt];if(t!==null)for(let s=0;s<t.length-1;s+=2)if(typeof t[s]==`string`){let a=t[s+3];a>=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[t[s+1]];t[s].call(a)}r!==null&&(n[gt]=null);let o=n[Be];if(o!==null){n[Be]=null;for(let s=0;s<o.length;s++){let a=o[s];a()}}let i=n[qe];if(i!==null){n[qe]=null;for(let s of i)s.destroy()}}function QD(e,n){let t;if(e!=null&&(t=e.destroyHooks)!=null)for(let r=0;r<t.length;r+=2){let o=n[t[r]];if(!(o instanceof Wn)){let i=t[r+1];if(Array.isArray(i))for(let s=0;s<i.length;s+=2){let a=o[i[s]],l=i[s+1];A(N.LifecycleHookStart,a,l);try{l.call(a)}finally{A(N.LifecycleHookEnd,a,l)}}else{A(N.LifecycleHookStart,o,i);try{i.call(o)}finally{A(N.LifecycleHookEnd,o,i)}}}}}function YD(e,n,t){if(n===null)throw new k(510,!1);return JD(e,n.parent,t)}function JD(e,n,t){let r=n;for(;r!==null&&r.type&168;)n=r,r=n.parent;if(r===null)return t[Te];if(Ye(r)){let{encapsulation:o}=e.data[r.directiveStart+r.componentOffset];if(o===Gn.None||o===Gn.Emulated)return null}return we(r,t)}function XD(e,n,t){return nC(e,n,t)}function eC(e,n,t){return e.type&40?we(e,t):null}function Kl(e,n,t,r){let o=YD(e,r,n),i=n[L],a=XD(r.parent||n[se],r,n);if(o!=null)if(Array.isArray(t))for(let l=0;l<t.length;l++)vp(i,o,t[l],a,!1);else vp(i,o,t,a,!1);Cp!==void 0&&Cp(i,r,n,t,o)}function kr(e,n){if(n!==null){let t=n.type;if(t&3)return we(n,e);if(t&4)return dl(-1,e[n.index]);if(t&8){let r=n.child;if(r!==null)return kr(e,r);{let o=e[n.index];return be(o)?dl(-1,o):Q(o)}}else{if(t&128)return kr(e,n.next);if(t&32)return Bl(n,e)()||Q(e[n.index]);{let r=Hf(e,n);if(r!==null){if(Array.isArray(r))return r[0];return kr(We(e[de]),r)}else return kr(e,n.next)}}}return null}function Hf(e,n){if(n!==null){let r=e[de][se],o=n.projection;return r.projection[o]}return null}function dl(e,n){let t=P+e+1;if(t<n.length){let r=n[t],o=r[v].firstChild;if(o!==null)return kr(r,o)}return n[jn]}function Ql(e,n,t,r,o,i,s){for(;t!=null;){let a=r[ee];if(t.type===128){t=t.next;continue}let l=r[t.index],c=t.type;if(s&&n===0&&(l&&kt(Q(l),r),t.flags|=2),!Fl(t))if(c&8)Ql(e,n,t.child,r,o,i,!1),Ct(n,e,a,o,l,t,i,r);else if(c&32){let u=Bl(t,r),d;for(;d=u();)Ct(n,e,a,o,d,t,i,r);Ct(n,e,a,o,l,t,i,r)}else c&16?rC(e,n,r,t,o,i):Ct(n,e,a,o,l,t,i,r);t=s?t.projectionNext:t.next}}function Ui(e,n,t,r,o,i){e.type===3?tC(t,r,n,o,i):Ql(t,r,e.firstChild,n,o,i,!1)}function tC(e,n,t,r,o){let s=t[v].firstChild,a=s.next,l=Q(t[s.index]),c=Q(t[a.index]),u=a.index+1,d=t[u];if(n===1||n===0)r!==null&&(d&&d.hasChildNodes()?Bn(e,r,d,o,!0):(Bn(e,r,l,o,!0),Bn(e,r,c,o,!0)));else if(n===2){if(d||(d=document.createDocumentFragment(),t[u]=d),l&&l.parentNode===d)return;let m=l;for(;m!==null;){let f=m.nextSibling;if(d.appendChild(m),m===c)break;m=f}}}function rC(e,n,t,r,o,i){let s=t[de],l=s[se].projection[r.projection];if(Array.isArray(l))for(let c=0;c<l.length;c++){let u=l[c];Ct(n,e,t[ee],o,u,r,i,t)}else{let c=l,u=s[U];mf(r)&&(c.flags|=128),Ql(e,n,c,u,o,i,!0)}}function oC(e,n,t,r,o,i,s){let a=r[jn];if(a!==Q(r)&&Ct(n,e,t,i,a,o,s),(r[w]&4)===0)for(let c=P;c<r.length;c++){let u=r[c];Ui(u[v],u,e,n,i,a)}}function iC(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=r.indexOf(`-`)===-1?void 0:Ti.DashCase;o==null?e.removeStyle(t,r,i):(typeof o==`string`&&o.endsWith(`!important`)&&(o=o.slice(0,-10),i|=Ti.Important),e.setStyle(t,r,o,i))}}function Yl(e,n,t,r,o,i,s,a,l,c,u){let d=O+r,m=d+o,f=sC(d,m),g=typeof c==`function`?c():c;return f[v]={type:e,blueprint:f,template:t,queries:null,viewQuery:a,declTNode:n,data:f.slice().fill(null,d),bindingStartIndex:d,expandoStartIndex:m,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:typeof i==`function`?i():i,pipeRegistry:typeof s==`function`?s():s,firstChild:null,schemas:l,consts:g,incompleteFirstPass:!1,ssrId:u}}function sC(e,n){let t=[];for(let r=0;r<n;r++)t.push(r<e?null:Y);return t}function aC(e){let n=e.tView;return n===null||n.incompleteFirstPass?e.tView=Yl(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts,e.id):n}function Jl(e,n,t,r,o,i,s,a,l,c,u){let d=n.blueprint.slice();return d[Te]=o,d[w]=r|1228,(c!==null||e&&e[w]&2048)&&(d[w]|=2048),Ia(d),d[U]=d[un]=e,d[F]=t,d[Ne]=s||e&&e[Ne],d[L]=a||e&&e[L],d[ee]=l||e&&e[ee]||null,d[se]=i,d[Pe]=Kw(),d[mt]=u,d[wa]=c,d[de]=n.type==2?e[de]:d,d}function lC(e,n,t){let r=we(n,e),o=aC(t),i=e[Ne].rendererFactory,s=Xl(e,Jl(e,o,null,Vf(t),r,n,null,i.createRenderer(r,t),null,null,null));return e[n.index]=s}function Vf(e){let n=16;return e.signals?n=4096:e.onPush&&(n=64),n}function zf(e,n,t,r){if(t===0)return-1;let o=n.length;for(let i=0;i<t;i++)n.push(r),e.blueprint.push(r),e.data.push(null);return o}function Xl(e,n){return e[ht]?e[ba][ye]=n:e[ht]=n,e[ba]=n,n}function ec(e=1){Uf(R(),b(),me()+e,!1)}function Uf(e,n,t,r){if(!r)if((n[w]&3)===3){let i=e.preOrderCheckHooks;i!==null&&mi(n,i,t)}else{let i=e.preOrderHooks;i!==null&&gi(n,i,0,t)}mn(t)}function pl(e,n,t,r){let o=y(null);try{let[i,s,a]=e.inputs[t],l=null;(s&Bi.SignalBased)!==0&&(l=n[i][j]),l!==null&&l.transformFn!==void 0?r=l.transformFn(r):a!==null&&(r=a.call(n,r)),e.setInput!==null?e.setInput(n,l,r,t,i):Kp(n,l,i,r)}finally{y(o)}}function Bf(e,n,t,r,o){let i=me(),s=r&2;try{mn(-1),s&&n.length>O&&Uf(e,n,O,!1);let a=s?N.TemplateUpdateStart:N.TemplateCreateStart;A(a,o,t),t(r,o)}finally{mn(i);let a=s?N.TemplateUpdateEnd:N.TemplateCreateEnd;A(a,o,t)}}function qi(e,n,t){mC(e,n,t),(t.flags&64)===64&&gC(e,n,t)}function jr(e,n,t=we){let r=n.localNames;if(r!==null){let o=n.index+1;for(let i=0;i<r.length;i+=2){let s=r[i+1],a=s===-1?t(n,e):e[s];e[o++]=a}}}function cC(e,n,t,r){let i=r.get(Cf,Df)||t===Gn.ShadowDom||t===Gn.ExperimentalIsolatedShadowDom,s=e.selectRootElement(n,i);return uC(s),s}function uC(e){dC(e)}function pC(e){return e===`class`?`className`:e===`for`?`htmlFor`:e===`formaction`?`formAction`:e===`innerHtml`?`innerHTML`:e===`readonly`?`readOnly`:e===`tabindex`?`tabIndex`:e}function qf(e,n,t,r,o,i){let s=n[v];if(ic(e,s,n,t,r)){Ye(e)&&fC(n,e.index);return}e.type&3&&(t=pC(t)),Wf(e,n,t,r,o,i)}function Wf(e,n,t,r,o,i){if(e.type&3){let s=we(e,n);r=i!=null?i(r,e.value||``,t):r,o.setProperty(s,t,r)}else e.type&12}function fC(e,n){let t=De(n,e);t[w]&16||(t[w]|=64)}function mC(e,n,t){let r=t.directiveStart,o=t.directiveEnd;Ye(t)&&lC(n,t,e.data[r+t.componentOffset]),e.firstCreatePass||Ei(t,n);let i=t.initialInputs;for(let s=r;s<o;s++){let a=e.data[s],l=Tr(n,e,s,t);if(kt(l,n),i!==null&&bC(n,s-r,l,a,t,i),Me(a)){let c=De(t.index,n);c[F]=Tr(n,e,s,t)}}}function gC(e,n,t){let r=t.directiveStart,o=t.directiveEnd,i=t.index,s=zd();try{mn(i);for(let a=r;a<o;a++){let l=e.data[a],c=n[a];ri(a),(l.hostBindings!==null||l.hostVars!==0||l.hostAttrs!==null)&&hC(l,c)}}finally{mn(-1),ri(s)}}function hC(e,n){e.hostBindings!==null&&e.hostBindings(1,n)}function nc(e,n){let t=e.directiveRegistry,r=null;if(t)for(let o=0;o<t.length;o++){let i=t[o];TD(n,i.selectors,!1)&&(r??=[],Me(i)?r.unshift(i):r.push(i))}return r}function vC(e,n,t,r,o,i){let s=we(e,n);yC(n[L],s,i,e.value,t,r,o)}function yC(e,n,t,r,o,i,s){if(i==null)s?.(i,r||``,o),e.removeAttribute(n,o,t);else{let a=s==null?Ke(i):s(i,r||``,o);e.setAttribute(n,o,a,t)}}function bC(e,n,t,r,o,i){let s=i[n];if(s!==null)for(let a=0;a<s.length;a+=2){let l=s[a],c=s[a+1];pl(r,t,l,c)}}function tc(e,n,t,r,o){let i=O+t,s=n[v],a=o(s,n,e,r,t);n[i]=a,Vn(e,!0);let l=e.type===2;return l?($f(n[L],a,e),($d()===0||vt(e))&&kt(a,n),_d()):kt(a,n),ai()&&(!l||!Fl(e))&&Kl(s,n,a,e),e}function rc(e){let n=e;return xa()?jd():(n=n.parent,Vn(n,!1)),n}function oc(e,n){let t=e[ee];if(!t)return;let r;try{r=t.get(gn,null)}catch{r=null}r?.(n)}function ic(e,n,t,r,o){let i=e.inputs?.[r],s=e.hostDirectiveInputs?.[r],a=!1;if(s)for(let l=0;l<s.length;l+=2){let c=s[l],u=s[l+1],d=n.data[c];pl(d,t[c],u,o),a=!0}if(i)for(let l of i){let c=t[l],u=n.data[l];pl(u,c,r,o),a=!0}return a}function wC(e,n){let t=De(n,e),r=t[v];DC(r,t);let o=t[Te];o!==null&&t[mt]===null&&(t[mt]=kf(o,t[ee])),A(N.ComponentStart);try{sc(r,t,t[F])}finally{A(N.ComponentEnd,t[F])}}function DC(e,n){for(let t=n.length;t<e.blueprint.length;t++)n.push(e.blueprint[t])}function sc(e,n,t){ii(n);try{let r=e.viewQuery;r!==null&&cl(1,r,t);let o=e.template;o!==null&&Bf(e,n,o,1,t),e.firstCreatePass&&(e.firstCreatePass=!1),n[Oe]?.finishViewCreation(e),e.staticContentQueries&&Sf(e,n),e.staticViewQueries&&cl(2,e.viewQuery,t);let i=e.components;i!==null&&CC(n,i)}catch(r){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),r}finally{n[w]&=-5,si()}}function CC(e,n){for(let t=0;t<n.length;t++)wC(e,n[t])}function Fr(e,n,t,r){let o=y(null);try{let i=n.tView,l=Jl(e,i,t,e[w]&4096?4096:16,null,n,null,null,r?.injector??null,r?.embeddedViewInjector??null,r?.dehydratedView??null);l[dn]=e[n.index];let u=e[Oe];return u!==null&&(l[Oe]=u.createEmbeddedView(i)),sc(i,l,t),l}finally{y(o)}}function Nt(e,n){return!n||n.firstChild===null||mf(e)}function Mr(e,n,t,r,o=!1){if(e.type===3){let i=e.firstChild,s=i.next,a=Q(n[i.index]),l=Q(n[s.index]),c=a;for(;c!==null&&(r.push(c),c!==l);)c=c.nextSibling;return r}for(;t!==null;){if(t.type===128){t=o?t.projectionNext:t.next;continue}let i=n[t.index];if(i!==null)if(be(i)){let a=i[jn];a!==i[Te]&&r.push(Q(i)),i[w]&4||Gf(i,r),r.push(a)}else r.push(Q(i));let s=t.type;if(s&8)Mr(e,n,t.child,r);else if(s&32){let a=Bl(t,n),l;for(;l=a();)r.push(l)}else if(s&16){let a=Hf(n,t);if(Array.isArray(a))r.push(...a);else{let l=We(n[de]);Mr(l[v],l,a,r,!0)}}t=o?t.projectionNext:t.next}return r}function Gf(e,n){for(let t=P;t<e.length;t++){let r=e[t],o=r[v].firstChild;o!==null&&Mr(r[v],r,o,n)}}function Zf(e){if(e[Pn]!==null){for(let n of e[Pn])n.impl.addSequence(n);e[Pn].length=0}}function IC(e){return e[pe]??EC(e)}function EC(e){let n=Kf.pop()??Object.create(SC);return n.lView=e,n}function kC(e){e.lView[pe]!==e&&(e.lView=null,Kf.push(e))}function TC(e){let n=e[pe]??Object.create(NC);return n.lView=e,n}function Qf(e){return e.type!==2}function Yf(e){if(e[qe]===null)return;let n=!0;for(;n;){let t=!1;for(let r of e[qe])if(r.dirty&&(t=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()),e[qe]===null))return;n=t&&!!(e[w]&8192)}}function Jf(e,n=0){let r=e[Ne].rendererFactory;r.begin?.();try{AC(e,n)}finally{r.end?.()}}function AC(e,n){let t=_a();try{Jt(!0),fl(e,n);let r=0;for(;fr(e);){if(r===MC)throw new k(103,!1);r++,fl(e,1)}}finally{Jt(t)}}function xC(e,n,t,r){if(fn(n))return;let o=n[w];ii(n);let a=!0,l=null,c=null;Qf(e)?(c=IC(n),l=Ve(c)):Jr()===null?(a=!1,c=TC(n),l=Ve(c)):n[pe]&&(tn(n[pe]),n[pe]=null);try{Ia(n),Fd(e.bindingStartIndex),t!==null&&Bf(e,n,t,2,r);let u=(o&3)===3;if(u){let f=e.preOrderCheckHooks;f!==null&&mi(n,f,null)}else{let f=e.preOrderHooks;f!==null&&gi(n,f,0,null),Ua(n,0)}if($C(n),Yf(n),Xf(n,0),e.contentQueries!==null&&Sf(e,n),true)if(u){let f=e.contentCheckHooks;f!==null&&mi(n,f)}else{let f=e.contentHooks;f!==null&&gi(n,f,1),Ua(n,1)}RC(e,n);let d=e.components;d!==null&&nm(n,d,0);let m=e.viewQuery;if(m!==null&&cl(2,m,r),true)if(u){let f=e.viewCheckHooks;f!==null&&mi(n,f)}else{let f=e.viewHooks;f!==null&&gi(n,f,2),Ua(n,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),n[Ko]){for(let f of n[Ko])f();n[Ko]=null}Zf(n),n[w]&=-73}catch(u){throw Hn(n),u}finally{c!==null&&(nn(c,l),a&&kC(c)),si()}}function Xf(e,n){for(let t=hf(e);t!==null;t=vf(t))for(let r=P;r<t.length;r++){let o=t[r];em(o,n)}}function $C(e){for(let n=hf(e);n!==null;n=vf(n)){if(!(n[w]&2))continue;let t=n[Fn];for(let r=0;r<t.length;r++){let o=t[r];Xo(o)}}}function _C(e,n,t){A(N.ComponentStart);let r=De(n,e);try{em(r,t)}finally{A(N.ComponentEnd,r[F])}}function em(e,n){Jo(e)&&fl(e,n)}function fl(e,n){let r=e[v],o=e[w],i=e[pe],s=!!(n===0&&o&16);if(s||=!!(o&64&&n===0),s||=!!(o&1024),s||=!!(i?.dirty&&Jn(i)),s||=!1,i&&(i.dirty=!1),e[w]&=-9217,s)xC(r,e,r.template,e[F]);else if(o&8192){let a=y(null);try{Yf(e),Xf(e,1);let l=r.components;l!==null&&nm(e,l,1),Zf(e)}finally{y(a)}}}function nm(e,n,t){for(let r=0;r<n.length;r++)_C(e,n[r],t)}function RC(e,n){let t=e.hostBindingOpCodes;if(t!==null)try{for(let r=0;r<t.length;r++){let o=t[r];if(o<0)mn(~o);else{let i=o,s=t[++r],a=t[++r];Vd(s,i);let l=n[i];A(N.HostBindingsUpdateStart,l);try{a(2,l)}finally{A(N.HostBindingsUpdateEnd,l)}}}}finally{mn(-1)}}function ac(e,n){let t=_a()?64:1088;for(e[Ne].changeDetectionScheduler?.notify(n);e;){e[w]|=t;let r=We(e);if(yt(e)&&!r)return e;e=r}return null}function tm(e,n,t,r){return[e,!0,0,n,null,r,null,t,null,null]}function rm(e,n){let t=P+n;if(t<e.length)return e[t]}function Hr(e,n,t,r=!0){let o=n[v];if(LC(o,n,e,t),r){let s=dl(t,e),a=n[L],l=a.parentNode(e[jn]);l!==null&&GD(o,e[se],a,n,l,s)}let i=n[mt];i!==null&&i.firstChild!==null&&(i.firstChild=null)}function lc(e,n){let t=Ar(e,n);return t!==void 0&&zi(t[v],t),t}function Ar(e,n){if(e.length<=P)return;let t=P+n,r=e[t];if(r){let o=r[dn];o!==null&&o!==e&&Zl(o,r),n>0&&(e[t-1][ye]=r[ye]);let i=ar(e,P+n);WD(r[v],r);let s=i[Oe];s!==null&&s.detachView(i[v]),r[U]=null,r[ye]=null,r[w]&=-129}return r}function LC(e,n,t,r){let o=P+r,i=t.length;r>0&&(t[o-1][ye]=n),r<i-P?(n[ye]=t[o],ma(t,P+r,n)):(t.push(n),n[ye]=null),n[U]=t;let s=n[dn];s!==null&&t!==s&&om(s,n);let a=n[Oe];a!==null&&a.insertView(e),ei(n),n[w]|=128}function om(e,n){let t=e[Fn],r=n[U];if(Qe(r))e[w]|=2;else{let o=r[U][de];n[de]!==o&&(e[w]|=2)}t===null?e[Fn]=[n]:t.push(n)}function OC(){return Wi(H(),b())}function Wi(e,n){return e.type&4?new xr(n,e,_t(e,n)):null}function Rt(e,n,t,r,o){let i=e.data[n];if(i===null)i=PC(e,n,t,r,o),Hd()&&(i.flags|=32);else if(i.type&64){i.type=t,i.value=r,i.attrs=o;let s=Pd();i.injectorIndex=s===null?-1:s.injectorIndex}return Vn(i,!0),i}function PC(e,n,t,r,o){let i=Aa(),s=xa(),a=s?i:i&&i.parent,l=e.data[n]=FC(e,a,t,n,r,o);return jC(e,l,i,s),l}function jC(e,n,t,r){e.firstChild===null&&(e.firstChild=n),t!==null&&(r?t.child==null&&n.parent!==null&&(t.child=n):t.next===null&&(t.next=n,n.prev=t))}function FC(e,n,t,r,o,i){let s=n?n.injectorIndex:-1,a=0;return Rd()&&(a|=128),{type:t,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,namespace:Pa(),attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function HC(e){let n=e[pn]??[],r=e[U][L],o=[];for(let i of n)i.data[Pl]!==void 0?o.push(i):VC(i,r);e[pn]=o}function VC(e,n){let t=0,r=e.firstChild;if(r){let o=e.data[wf];for(;t<o;){let i=r.nextSibling;xf(n,r,!1),r=i,t++}}}function ml(e,n){return zC(e,n)}function im(e,n,t){return UC(e,n,t)}function BC(){let e=b(),t=De(H().index,e);return(Qe(t)?t:e)[L]}function lm(e){return e.debugInfo?.className||e.type.name||null}function cc(e,n,t){return e[n]=t}function qC(e,n){return e[n]}function le(e,n,t){if(t===Y)return!1;let r=e[n];return Object.is(r,t)?!1:(e[n]=t,!0)}function uc(e,n,t,r){let o=le(e,n,t);return le(e,n+1,r)||o}function WC(e,n,t,r,o){let i=uc(e,n,t,r);return le(e,n+2,o)||i}function yi(e,n,t){return function r(o){let i=r.__ngNativeEl__;i!==void 0&&Jw(o,i);ac(Ye(e)?De(e.index,n):n,5);let a=n[F],l=Ip(n,a,t,o),c=r.__ngNextListenerFn__;for(;c;)l=Ip(n,a,c,o)&&l,c=c.__ngNextListenerFn__;return l}}function Ip(e,n,t,r){let o=y(null);try{return A(N.OutputStart,n,t),t(r)!==!1}catch(i){return oc(e,i),!1}finally{A(N.OutputEnd,n,t),y(o)}}function cm(e,n,t,r,o,i,s,a){let l=vt(e),c=!1,u=null;if(!r&&l&&(u=ZC(n,t,i,e.index)),u!==null){let d=u.__ngLastListenerFn__||u;d.__ngNextListenerFn__=s,u.__ngLastListenerFn__=s,c=!0}else{let d=we(e,t),m=r?r(d):d;eD(t,m,i,a),r||(a.__ngNativeEl__=d);let f=o.listen(m,i,a);if(!GC(i))um(r?h=>r(Q(h[e.index])):e.index,n,t,i,a,f,!1)}return c}function GC(e){return e.startsWith(`animation`)||e.startsWith(`transition`)}function ZC(e,n,t,r){let o=e.cleanup;if(o!=null)for(let i=0;i<o.length-1;i+=2){let s=o[i];if(s===t&&o[i+1]===r){let a=n[gt],l=o[i+2];return a&&a.length>l?a[l]:null}typeof s==`string`&&(i+=2)}return null}function um(e,n,t,r,o,i,s){let a=n.firstCreatePass?Sa(n):null,l=ka(t),c=l.length;l.push(o,i),a&&a.push(r,e,c,(c+1)*(s?-1:1))}function Ep(e,n,t,r,o,i){let s=n[t],a=n[v],d=s[a.data[t].outputs[r]].subscribe(i);um(e.index,a,n,o,i,d,!0)}function Ni(e,n,t){let r=t?e.styles:null,o=t?e.classes:null,i=0;if(n!==null)for(let s=0;s<n.length;s++){let a=n[s];if(typeof a==`number`)i=a;else if(i==1)o=Fo(o,a);else if(i==2){let l=a,c=n[++s];r=Fo(r,l+`: `+c+`;`)}}t?e.styles=r:e.stylesWithoutHost=r,t?e.classes=o:e.classesWithoutHost=o}function Vr(e,n=0){let t=b();if(t===null)return Re(e,n);return lf(H(),t,q(e),n)}function KC(){throw new Error(`invalid`)}function pm(e,n,t,r,o){let i=r===null?null:{"":-1},s=o(e,t);if(s!==null){let a=s,l=null,c=null;for(let u of s)if(u.resolveHostDirectives!==null){[a,l,c]=u.resolveHostDirectives(s);break}JC(e,n,t,a,i,l,c)}i!==null&&r!==null&&QC(t,r,i)}function QC(e,n,t){let r=e.localNames=[];for(let o=0;o<n.length;o+=2){let i=t[n[o+1]];if(i==null)throw new k(-301,!1);r.push(n[o],i)}}function YC(e,n,t){n.componentOffset=t,(e.components??=[]).push(n.index)}function JC(e,n,t,r,o,i,s){let a=r.length,l=null;for(let m=0;m<a;m++){let f=r[m];l===null&&Me(f)&&(l=f,YC(e,t,m)),ol(Ei(t,n),e,f.type)}oI(t,e.data.length,a),l?.viewProvidersResolver&&l.viewProvidersResolver(l);for(let m=0;m<a;m++){let f=r[m];f.providersResolver&&f.providersResolver(f)}let c=!1,u=!1,d=zf(e,n,a,null);a>0&&(t.directiveToIndex=new Map);for(let m=0;m<a;m++){let f=r[m];if(t.mergedAttrs=Et(t.mergedAttrs,f.hostAttrs),eI(e,t,n,d,f),rI(d,f,o),s!==null&&s.has(f)){let[h,S]=s.get(f);t.directiveToIndex.set(f.type,[d,h+t.directiveStart,S+t.directiveStart])}else(i===null||!i.has(f))&&t.directiveToIndex.set(f.type,d);f.contentQueries!==null&&(t.flags|=4),(f.hostBindings!==null||f.hostAttrs!==null||f.hostVars!==0)&&(t.flags|=64);let g=f.type.prototype;!c&&(g.ngOnChanges||g.ngOnInit||g.ngDoCheck)&&((e.preOrderHooks??=[]).push(t.index),c=!0),!u&&(g.ngOnChanges||g.ngDoCheck)&&((e.preOrderCheckHooks??=[]).push(t.index),u=!0),d++}XC(e,t,i)}function XC(e,n,t){for(let r=n.directiveStart;r<n.directiveEnd;r++){let o=e.data[r];if(t===null||!t.has(o))kp(0,n,o,r),kp(1,n,o,r),Tp(n,r,!1);else{let i=t.get(o);Sp(0,n,i,r),Sp(1,n,i,r),Tp(n,r,!0)}}}function kp(e,n,t,r){let o=e===0?t.inputs:t.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s;e===0?s=n.inputs??={}:s=n.outputs??={},s[i]??=[],s[i].push(r),fm(n,i)}}function Sp(e,n,t,r){let o=e===0?t.inputs:t.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s=o[i],a;e===0?a=n.hostDirectiveInputs??={}:a=n.hostDirectiveOutputs??={},a[s]??=[],a[s].push(r,i),fm(n,s)}}function fm(e,n){n===`class`?e.flags|=8:n===`style`&&(e.flags|=16)}function Tp(e,n,t){let{attrs:r,inputs:o,hostDirectiveInputs:i}=e;if(r===null||!t&&o===null||t&&i===null||Ul(e)){e.initialInputs??=[],e.initialInputs.push(null);return}let s=null,a=0;for(;a<r.length;){let l=r[a];if(l===0){a+=4;continue}else if(l===5){a+=2;continue}else if(typeof l==`number`)break;if(!t&&Object.hasOwn(o,l)){let c=o[l];for(let u of c)if(u===n){s??=[],s.push(l,r[a+1]);break}}else if(t&&Object.hasOwn(i,l)){let c=i[l];for(let u=0;u<c.length;u+=2)if(c[u]===n){s??=[],s.push(c[u+1],r[a+1]);break}}a+=2}e.initialInputs??=[],e.initialInputs.push(s)}function eI(e,n,t,r,o){e.data[r]=o;let i=o.factory||(o.factory=an(o.type,!0)),s=new Wn(i,Me(o),Vr,null);e.blueprint[r]=s,t[r]=s,nI(e,n,r,zf(e,t,o.hostVars,Y),o)}function nI(e,n,t,r,o){let i=o.hostBindings;if(i){let s=e.hostBindingOpCodes;s===null&&(s=e.hostBindingOpCodes=[]);let a=~n.index;tI(s)!=a&&s.push(a),s.push(t,r,i)}}function tI(e){let n=e.length;for(;n>0;){let t=e[--n];if(typeof t==`number`&&t<0)return t}return 0}function rI(e,n,t){if(t){if(n.exportAs)for(let r=0;r<n.exportAs.length;r++)t[n.exportAs[r]]=e;Me(n)&&(t[``]=e)}}function oI(e,n,t){e.flags|=1,e.directiveStart=n,e.directiveEnd=n+t,e.providerIndexes=n}function dc(e,n,t,r,o,i,s,a){let l=n[v],c=l.consts,d=Rt(l,e,t,r,fe(c,s));return i&&pm(l,n,d,fe(c,a),o),d.mergedAttrs=Et(d.mergedAttrs,d.attrs),d.attrs!==null&&Ni(d,d.attrs,!1),d.mergedAttrs!==null&&Ni(d,d.mergedAttrs,!0),l.queries!==null&&l.queries.elementStart(l,d),d}function pc(e,n){Jp(e,n),Da(n)&&e.queries.elementEnd(n)}function iI(e,n,t,r,o,i){let s=n.consts,l=Rt(n,e,t,r,fe(s,o));if(l.mergedAttrs=Et(l.mergedAttrs,l.attrs),i!=null){let c=fe(s,i);l.localNames=[];for(let u=0;u<c.length;u+=2)l.localNames.push(c[u],-1)}return l.attrs!==null&&Ni(l,l.attrs,!1),l.mergedAttrs!==null&&Ni(l,l.mergedAttrs,!0),n.queries!==null&&n.queries.elementStart(n,l),l}function aI(e){return Object.keys(e).map(n=>{let[t,r,o]=e[n],i={propName:t,templateName:n,isSignal:(r&Bi.SignalBased)!==0};return o&&(i.transform=o),i})}function lI(e){return Object.keys(e).map(n=>({propName:e[n],templateName:n}))}function cI(e,n,t){let r=n instanceof ue?n:n?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new qn(t,r):t}function uI(e){let n=e.get($r,null);if(n===null)throw new k(407,!1);return{rendererFactory:n,sanitizer:e.get(am,null),changeDetectionScheduler:e.get(Le,null),ngReflect:!1,tracingService:e.get(Kn,null,{optional:!0})}}function dI(e,n,t){let r=gm(e);return Mf(n,r,r===`svg`?Rn:r===`math`?Qo:t)}function pI(e){if((e&&`localName`in e&&typeof e.localName==`string`?e.localName:e?.tagName)?.toLowerCase()===`script`)throw new k(905,!1)}function gm(e){return(e.selectors[0][0]||`div`).toLowerCase()}function fI(e,n,t,r){let o=e?[`ng-version`,`22.1.7`]:$D(n.selectors[0]),i=null,s=null,a=0;if(t)for(let u of t)a+=u[hl].requiredVars,u.create&&(u.targetIdx=0,(i??=[]).push(u)),u.update&&(u.targetIdx=0,(s??=[]).push(u));if(r)for(let u=0;u<r.length;u++){let d=r[u];if(typeof d!=`function`)for(let m of d.bindings){a+=m[hl].requiredVars;let f=u+1;m.create&&(m.targetIdx=f,(i??=[]).push(m)),m.update&&(m.targetIdx=f,(s??=[]).push(m))}}let l=[n];if(r)for(let u of r){let m=sr(typeof u==`function`?u:u.type);l.push(m)}return Yl(0,null,gI(i,s),1,a,l,null,null,null,[o],null)}function mI(e,n){let t=e.getRootNode?.();return sI&&t instanceof Document?t.head:t&&mm&&t instanceof ShadowRoot?t:n().head}function gI(e,n){return!e&&!n?null:t=>{if(t&1&&e)for(let r of e)r.create();if(t&2&&n)for(let r of n)r.update()}}function Np(e){let n=e[hl].kind;return n===`input`||n===`twoWay`}function hI(e,n,t){let r=e.projection=[];for(let o=0;o<n.length;o++){let i=t[o];r.push(i!=null&&i.length?Array.from(i):null)}}function vI(){return hm(H(),b())}function Mp(e){return e[dr]}function Wa(e){return e[dr]||(e[dr]=[])}function hm(e,n){let t,r=n[e.index];return be(r)?t=r:(t=tm(r,n,null,e),n[e.index]=t,Xl(n,t)),bI(t,n,e,r),new vl(t,e,n)}function yI(e,n){let t=e[L],r=t.createComment(``),o=we(n,e);return Bn(t,t.parentNode(o),r,t.nextSibling(o),!1),r}function vm(e,n,t){return wI(e,n,t)}function DI(e,n,t,r){if(e[jn])return;let o;t.type&8?o=Q(r):o=yI(n,t),e[jn]=o}function CI(e,n){let t=e.localNames;if(t!==null){for(let r=0;r<t.length;r+=2)if(t[r]===n)return t[r+1]}return null}function II(e,n){return e.type&11?_t(e,n):e.type&4?Wi(e,n):null}function EI(e,n,t,r){return t===-1?II(n,e):t===-2?kI(e,n,r):Tr(e,e[v],t,n)}function kI(e,n,t){if(t===Pr)return _t(n,e);if(t===xr)return Wi(n,e);if(t===Gi)return hm(n,e)}function ym(e,n,t,r){let o=n[Oe].queries[r];if(o.matches===null){let i=e.data,s=t.matches,a=[];for(let l=0;s!==null&&l<s.length;l+=2){let c=s[l];if(c<0)a.push(null);else{let u=i[c];a.push(EI(n,u,s[l+1],t.metadata.read))}}o.matches=a}return o.matches}function Cl(e,n,t,r){let o=e.queries.getByIndex(t),i=o.matches;if(i!==null){let s=ym(e,n,o,t);for(let a=0;a<i.length;a+=2){let l=i[a];if(l>0)r.push(s[a/2]);else{let c=i[a+1],u=n[-l];for(let d=P;d<u.length;d++){let m=u[d];m[dn]===m[U]&&Cl(m[v],m,c,r)}if(u[Fn]!==null){let d=u[Fn];for(let m=0;m<d.length;m++){let f=d[m];Cl(f[v],f,c,r)}}}}}return r}function fc(e,n){return e[Oe].queries[n].queryList}function bm(e,n,t){let r=new ki((t&4)===4);return xd(e,n,r,r.destroy),(n[Oe]??=new bl).queries.push(new yl(r))-1}function SI(e,n,t){let r=R();return r.firstCreatePass&&(Dm(r,new Ai(e,n,t),-1),(n&2)===2&&(r.staticViewQueries=!0)),bm(r,b(),n)}function wm(e,n,t,r){let o=R();if(o.firstCreatePass){let i=H();Dm(o,new Ai(n,t,r),i.index),NI(o,e),(t&2)===2&&(o.staticContentQueries=!0)}return bm(o,b(),t)}function TI(e){return e.split(`,`).map(n=>n.trim())}function Dm(e,n,t){e.queries===null&&(e.queries=new wl),e.queries.track(new Dl(n,t))}function NI(e,n){let t=e.contentQueries||(e.contentQueries=[]);n!==(t.length?t[t.length-1]:-1)&&t.push(e.queries.length-1,n)}function mc(e,n){return e.queries.getByIndex(n)}function Cm(e,n){let t=e[v],r=mc(t,n);return r.crossesNgTemplate?Cl(t,e,n,[]):ym(t,e,r,n)}function gc(e,n,t){let r,o=Ht(()=>{r._dirtyCounter();let i=MI(r,e);if(n&&i===void 0)throw new k(-951,!1);return i});return r=o[j],r._dirtyCounter=wt(0),r._flatValue=void 0,o}function hc(e){return gc(!0,!1,e)}function vc(e){return gc(!0,!0,e)}function Im(e){return gc(!1,!1,e)}function Em(e,n){let t=e[j];t._lView=b(),t._queryIndex=n,t._queryList=fc(t._lView,n),t._queryList.onDirty(()=>t._dirtyCounter.update(r=>r+1))}function MI(e,n){let t=e._lView,r=e._queryIndex;if(t===void 0||r===void 0||t[w]&4)return n?void 0:he;let o=fc(t,r),i=Cm(t,r);return o.reset(i,ff),n?o.first:o._changesDetected||e._flatValue===void 0?e._flatValue=o.toArray():e._flatValue}function yc(e){return!!e&&typeof e.then==`function`}function km(e){return!!e&&typeof e.subscribe==`function`}function bc(e,n,t=null){return new _r({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}function wc(e){return ji(()=>{let n=Tm(e),t=G(W({},n),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection!==Ol.Eager,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:n.standalone?o=>o.get(AI).getOrCreateStandaloneInjector(t):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Gn.Emulated,styles:e.styles||he,_:null,schemas:e.schemas||null,tView:null,id:``});n.standalone&&Xe(`NgStandalone`),Nm(t);let r=e.dependencies;return t.directiveDefs=Ap(r,xI),t.pipeDefs=Ap(r,da),t.id=OI(t),t})}function xI(e){return Ze(e)||sr(e)}function $I(e,n){if(e==null)return cn;let t={};for(let r in e)if(Object.hasOwn(e,r)){let o=e[r],i,s,a,l;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,l=o[3]||null):(i=o,s=o,a=Bi.None,l=null),t[i]=[r,a,l],n[i]=s}return t}function _I(e){if(e==null)return cn;let n={};for(let t in e)Object.hasOwn(e,t)&&(n[e[t]]=t);return n}function RI(e){return ji(()=>{let n=Tm(e);return Nm(n),n})}function LI(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function Tm(e){let n={};return{type:e.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputConfig:e.inputs||cn,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||he,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,signalFormsInputPresence:null,inputs:$I(e.inputs,n),outputs:_I(e.outputs),debugInfo:null}}function Nm(e){e.features?.forEach(n=>n(e))}function Ap(e,n){return e?()=>{let t=typeof e==`function`?e():e,r=[];for(let o of t){let i=n(o);i!==null&&r.push(i)}return r}:null}function OI(e){let n=0,t=typeof e.consts==`function`?``:e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,t,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join(`|`))n=Math.imul(31,n)+i.charCodeAt(0)<<0;return n+=2147483648,`c`+n}function PI(e){return cr([{provide:Dc,multi:!0,useValue:e}])}function jI(e){let n=t=>{let r=Array.isArray(e);t.hostDirectives===null?(t.resolveHostDirectives=FI,t.hostDirectives=r?e.map(Il):[e]):r?t.hostDirectives.unshift(...e.map(Il)):t.hostDirectives.unshift(e)};return n.ngInherit=!0,n}function FI(e){let n=[],t=!1,r=null,o=null;for(let i=0;i<e.length;i++){let s=e[i];if(s.hostDirectives!==null){let a=n.length;r??=new Map,o??=new Map,Mm(s,n,r,e),o.set(s,[a,n.length-1])}i===0&&Me(s)&&(t=!0,n.push(s))}for(let i=t?1:0;i<e.length;i++)n.push(e[i]);return r!==null&&r.forEach((i,s)=>{HI(s.declaredInputs,i.inputs)}),[n,r,o]}function Mm(e,n,t,r){if(e.hostDirectives!==null)for(let o of e.hostDirectives)if(typeof o==`function`){let i=o();for(let s of i)xp(Il(s),n,t,r)}else xp(o,n,t,r)}function xp(e,n,t,r){let o=sr(e.directive);if(Mm(o,n,t,r),t.has(o)){let i=t.get(o);$p(i,e.inputs,`input`),$p(i,e.outputs,`output`)}else r.includes(o)||(t.set(o,e),n.push(o))}function $p(e,n,t){let r=t===`input`?e.inputs:e.outputs;Object.keys(n).forEach(o=>{let i=n[o];(!Object.hasOwn(r,o)||r[o]===i)&&(r[o]=i)})}function Il(e){return typeof e==`function`?{directive:q(e),inputs:{},outputs:{}}:{directive:q(e.directive),inputs:_p(e.inputs),outputs:_p(e.outputs)}}function _p(e){let n={};if(e!==void 0&&e.length>0)for(let t=0;t<e.length;t+=2)n[e[t]]=e[t+1];return n}function HI(e,n){for(let t in n)if(Object.hasOwn(n,t)){let r=n[t];e[r]=e[t]}}function VI(e){return Object.getPrototypeOf(e.prototype).constructor}function Am(e){let n=VI(e.type),t=!0,r=[e];for(;n&&n!==Function.prototype&&n!==Object.prototype;){let o,i=Object.hasOwn(n,or)?n[or]:void 0,s=Object.hasOwn(n,ir)?n[ir]:void 0;if(Me(e))o=i??s;else{if(i)throw new k(903,!1);o=s}if(o){if(t){r.push(o);let l=e;l.inputs=Ga(e.inputs),l.declaredInputs=Ga(e.declaredInputs),l.outputs=Ga(e.outputs);let c=o.hostBindings;c&&WI(e,c);let u=o.viewQuery,d=o.contentQueries;if(u&&BI(e,u),d&&qI(e,d),zI(e,o),pd(e.outputs,o.outputs),Me(o)&&o.data.animation){let m=e.data;m.animation=(m.animation||[]).concat(o.data.animation)}}let a=o.features;if(a)for(let l=0;l<a.length;l++){let c=a[l];c&&c.ngInherit&&c(e),c===Am&&(t=!1)}}n=Object.getPrototypeOf(n)}UI(r)}function zI(e,n){for(let t in n.inputs){if(!Object.hasOwn(n.inputs,t)||Object.hasOwn(e.inputs,t))continue;let r=n.inputs[t];r!==void 0&&(e.inputs[t]=r,e.declaredInputs[t]=n.declaredInputs[t])}}function UI(e){let n=0,t=null;for(let r=e.length-1;r>=0;r--){let o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Et(o.hostAttrs,t=Et(t,o.hostAttrs))}}function Ga(e){return e===cn?{}:e===he?[]:e}function BI(e,n){let t=e.viewQuery;t?e.viewQuery=(r,o)=>{n(r,o),t(r,o)}:e.viewQuery=n}function qI(e,n){let t=e.contentQueries;t?e.contentQueries=(r,o,i)=>{n(r,o,i),t(r,o,i)}:e.contentQueries=n}function WI(e,n){let t=e.hostBindings;t?e.hostBindings=(r,o)=>{n(r,o),t(r,o)}:e.hostBindings=n}function xm(e,n,t,r,o,i,s,a){if(t.firstCreatePass){e.mergedAttrs=Et(e.mergedAttrs,e.attrs);let u=e.tView=Yl(2,e,o,i,s,t.directiveRegistry,t.pipeRegistry,null,t.schemas,t.consts,null);t.queries!==null&&(t.queries.template(t,e),u.queries=t.queries.embeddedTView(e))}a&&(e.flags|=a),Vn(e,!1);let l=ZI(t,n,e,r);ai()&&Kl(t,n,l,e),kt(l,n);let c=tm(l,n,l,e);n[r+O]=c,Xl(n,c),vm(c,e,n)}function GI(e,n,t,r,o,i,s,a,l,c,u){let d=t+O,m;return n.firstCreatePass?(m=Rt(n,d,4,s||null,a||null),ni()&&pm(n,e,m,fe(n.consts,c),nc),Jp(n,m)):m=n.data[d],xm(m,e,n,t,r,o,i,l),vt(m)&&qi(n,e,m),c!=null&&jr(e,m,u),m}function xt(e,n,t,r,o,i,s,a,l,c,u){let d=t+O,m;if(n.firstCreatePass){if(m=Rt(n,d,4,s||null,a||null),c!=null){let f=fe(n.consts,c);m.localNames=[];for(let g=0;g<f.length;g+=2)m.localNames.push(f[g],-1)}}else m=n.data[d];return xm(m,e,n,t,r,o,i,l),c!=null&&jr(e,m,u),m}function $m(e,n,t,r,o,i,s,a){let l=b(),c=R();return GI(l,c,e,n,t,r,o,fe(c.consts,i),void 0,s,a),$m}function _m(e,n,t,r,o,i,s,a){let l=b(),c=R();return xt(l,c,e,n,t,r,o,fe(c.consts,i),void 0,s,a),_m}function KI(e,n,t,r){return yr(!0),n[L].createComment(``)}function Rm(e,n,t){let r=Om(e);n[r]===null&&(n[r]=[]),n[r].push(t)}function bi(e,n){let t=Om(e),r=n[t];if(r!==null){for(let o of r)o();n[t]=null}}function Lm(e){bi(1,e),bi(0,e),bi(2,e)}function Om(e){let n=JI;return e===1?n=XI:e===2&&(n=tE),n}function Zi(e){return e+1}function Qn(e,n){e[v];return e[Zi(n.index)]}function rE(e,n,t){e[v];let o=Zi(n);e[o]=t}function Lt(e,n){let t=Zi(n.index);return e.data[t]}function oE(e,n,t){let r=Zi(n);e.data[r]=t}function iE(e,n,t){let r=n[v],o=Lt(r,t);switch(e){case V.Complete:return o.primaryTmplIndex;case V.Loading:return o.loadingTmplIndex;case V.Error:return o.errorTmplIndex;case V.Placeholder:return o.placeholderTmplIndex;default:return null}}function Lp(e,n){return n===V.Placeholder?e.placeholderBlockConfig?.[Rp]??null:n===V.Loading?e.loadingBlockConfig?.[Rp]??null:null}function sE(e){return e.loadingBlockConfig?.[QI]??null}function Op(e,n){if(!e||e.length===0)return n;let t=new Set(e);for(let r of n)t.add(r);return e.length===t.size?e:Array.from(t)}function aE(e,n){return bt(e,n.primaryTmplIndex+O)}function Ka(e,n,t){return e.get(lE).getOrCreateInjector(n,e,t,``)}function cE(e,n,t){if(e instanceof qn){let o=e.injector,i=e.parentInjector,s=Ka(i,n,t);return new qn(o,s)}let r=e.get(ue);if(r!==e){let o=Ka(r,n,t);return new qn(e,o)}return Ka(e,n,t)}function hn(e,n,t,r=!1){let o=t[U],i=o[v];if(fn(o))return;let s=Qn(o,n),a=s[zr],l=s[nE];if(!(l!==null&&e<l)&&Pp(a,e)&&Pp(s[YI]??-1,e)){let c=Lt(i,n),d=!r&&(sE(c)!==null||Lp(c,V.Loading)!==null||Lp(c,V.Placeholder))?pE:dE;try{d(e,s,t,n,o)}catch(m){oc(o,m)}}}function uE(e,n){let t=e[pn]?.findIndex(o=>o.data[jl]===n[zr])??-1;return{dehydratedView:t>-1?e[pn][t]:null,dehydratedViewIx:t}}function dE(e,n,t,r,o){A(N.DeferBlockStateStart);let i=iE(e,o,r);if(i!==null){n[zr]=e;let s=o[v],l=bt(s,i+O),c=0;lc(t,c);let u;if(e===V.Complete){let g=Lt(s,r),h=g.providers;h&&h.length>0&&(u=cE(o[ee],g,h))}let{dehydratedView:d,dehydratedViewIx:m}=uE(t,n),f=Fr(o,l,null,{injector:u,dehydratedView:d});if(Hr(t,f,c,Nt(l,d)),Xo(f),m>-1&&t[pn]?.splice(m,1),(e===V.Complete||e===V.Error)&&Array.isArray(n[Za])){for(let g of n[Za])g();n[Za]=null}}A(N.DeferBlockStateEnd)}function Pp(e,n){return e<n}function jm(e,n){let t=e[n.index];hn(V.Placeholder,n,t)}function jp(e,n,t){e.loadingPromise.then(()=>{e.loadingState===ae.COMPLETE?hn(V.Complete,n,t):e.loadingState===ae.FAILED&&hn(V.Error,n,t)})}function Fm(e,n){return n[ee].get(Pm,null,{optional:!0})?.behavior!==Ic.Manual}function zm(){ts(()=>{throw new k(600,``)})}function gE(e){return e===void 0||typeof e==`string`||e instanceof Element?{hostElement:e}:e}function Sr(e,n){let t=e.indexOf(n);t>-1&&e.splice(t,1)}function hE(e,n,t){let r=n.get(yE),o=()=>r.remove(e);return r.add(e,t),o}function vE(e){return(n,t)=>hE(n,t,e)}function Fp(e){return!e||e.timeout==null?``:`${e.timeout}`}function bE(e){let n=b(),t=H();if(jm(n,t),!Fm(0,n))return;let r=n[ee];Rm(0,Qn(n,t),e(()=>Bm(0,n,t),r))}function Um(e,n,t){let r=n[ee],o=n[v];if(e.loadingState!==ae.NOT_STARTED)return e.loadingPromise??Promise.resolve();let i=Qn(n,t),s=aE(o,e);e.loadingState=ae.IN_PROGRESS,bi(1,i);let a=e.dependencyResolverFn,l=r.get(di).add();return a?(e.loadingPromise=Promise.allSettled(a()).then(c=>{let u=!1,m=[],f=[];for(let g=0;g<c.length;g++){let h=c[g];if(h.status===`fulfilled`){let S=h.value,D=Ze(S)||sr(S);if(D)m.push(D);else{let Z=da(S);Z&&f.push(Z)}}else{u=!0,h.reason instanceof Error?h.reason:new Error(String(h.reason));break}}if(u){if(e.loadingState=ae.FAILED,e.errorTmplIndex===null)oc(n,new k(-750,``))}else{e.loadingState=ae.COMPLETE;let g=s.tView;if(m.length>0){g.directiveRegistry=Op(g.directiveRegistry,m);e.providers=Go(!1,...m.map(D=>D.type))}f.length>0&&(g.pipeRegistry=Op(g.pipeRegistry,f))}}),e.loadingPromise.finally(()=>{e.loadingPromise=null,l()})):(e.loadingPromise=Promise.resolve().then(()=>{e.loadingPromise=null,e.loadingState=ae.COMPLETE,l()}),e.loadingPromise)}function Bm(e,n,t){let r=n[v],o=n[t.index];if(!Fm(e,n))return;let i=Qn(n,t),s=Lt(r,t);switch(Lm(i),s.loadingState){case ae.NOT_STARTED:hn(V.Loading,t,o),Um(s,n,t),s.loadingState===ae.IN_PROGRESS&&jp(s,t,o);break;case ae.IN_PROGRESS:hn(V.Loading,t,o),jp(s,t,o);break;case ae.COMPLETE:hn(V.Complete,t,o);break;case ae.FAILED:hn(V.Error,t,o);break;default:}}function qm(e,n,t){return e===0?Hp(n,t):e===2?!Hp(n,t):!0}function wE(e){return e!=null&&(e&1)===1}function Hp(e,n){let t=e[ee],r=Lt(e[v],n),o=Hl(t),i=wE(r.flags),a=Qn(e,n)[eE]!==null;return!(i&&a&&o)}function DE(e,n,t,r,o,i,s,a,l,c){let u=b(),d=R(),m=e+O,f=xt(u,d,e,null,0,0),g=u[ee],h=Hl(g);if(d.firstCreatePass){Xe(`NgDefer`);let Pt={primaryTmplIndex:n,loadingTmplIndex:r??null,placeholderTmplIndex:o??null,errorTmplIndex:i??null,placeholderBlockConfig:null,loadingBlockConfig:null,dependencyResolverFn:t??null,loadingState:ae.NOT_STARTED,loadingPromise:null,providers:null,hydrateTriggers:null,debug:null,flags:c??0};l?.(d,Pt,a,s),oE(d,m,Pt)}let S=u[m];vm(S,f,u);let D=null,Z=null;if(S[pn]?.length>0){let Pt=S[pn][0].data;Z=Pt[Pl]??null,D=Pt[jl]}let bn=[null,_i.Initial,null,null,null,null,Z,D,null,null];rE(u,m,bn);let Ji=null;Z!==null&&h&&(Ji=g.get(Ef),Ji.add(Z,{lView:u,tNode:f,lContainer:S}));let Uc=()=>{Lm(bn),Z!==null&&Ji?.cleanup([Z])};Rm(0,bn,()=>Ea(u,Uc)),mr(u,Uc)}function CE(e){let n=b(),t=zn();if(!qm(0,n,t))return;if(le(n,Je(),e)){let o=y(null);try{let i=!!e,a=Qn(n,t)[zr];i===!1&&a===_i.Initial?jm(n,t):i===!0&&(a===_i.Initial||a===V.Placeholder)&&Bm(0,n,t)}finally{y(o)}}}function IE(e){qm(0,b(),H())&&bE(vE({timeout:e}))}function Br(e,n,t,r){let o=b();if(le(o,Je(),n)){R();vC(zn(),o,e,n,t,r)}return Br}function Qa(e,n,t,r,o){return e===t&&Object.is(n,r)?1:Object.is(o(e,n),o(t,r))?-1:0}function EE(e,n,t,r){let o,i,s=0,a=e.length-1;if(Array.isArray(n)){y(r);let c=n.length-1;for(y(null);s<=a&&s<=c;){let u=e.at(s),d=n[s],m=Qa(s,u,s,d,t);if(m!==0){m<0&&e.updateValue(s,d),s++;continue}let f=e.at(a),g=n[c],h=Qa(a,f,c,g,t);if(h!==0){h<0&&e.updateValue(a,g),a--,c--;continue}let S=t(s,u),D=t(a,f),Z=t(s,d);if(Object.is(Z,D)){let bn=t(c,g);Object.is(bn,S)?(e.swap(s,a),e.updateValue(a,g),c--,a--):e.move(a,s),e.updateValue(s,d),s++;continue}if(o??=new Ri,i??=zp(e,s,a,t),kl(e,o,s,Z))e.updateValue(s,d),s++,a++;else if(i.has(Z))o.set(S,e.detach(s)),a--;else{let bn=e.create(s,n[s]);e.attach(s,bn),s++,a++}}for(;s<=c;)Vp(e,o,t,s,n[s]),s++}else if(n!=null){y(r);let c=n[Symbol.iterator]();y(null);let u=c.next();for(;!u.done&&s<=a;){let d=e.at(s),m=u.value,f=Qa(s,d,s,m,t);if(f!==0)f<0&&e.updateValue(s,m),s++,u=c.next();else{o??=new Ri,i??=zp(e,s,a,t);let g=t(s,m);if(kl(e,o,s,g))e.updateValue(s,m),s++,a++,u=c.next();else if(!i.has(g))e.attach(s,e.create(s,m)),s++,a++,u=c.next();else{let h=t(s,d);o.set(h,e.detach(s)),a--}}}for(;!u.done;)Vp(e,o,t,e.length,u.value),u=c.next()}for(;s<=a;)e.destroy(e.detach(a--));o?.forEach(c=>{e.destroy(c)})}function kl(e,n,t,r){return n!==void 0&&n.has(r)?(e.attach(t,n.get(r)),n.delete(r),!0):!1}function Vp(e,n,t,r,o){if(kl(e,n,r,t(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function zp(e,n,t,r){let o=new Set;for(let i=n;i<=t;i++)o.add(r(i,e.at(i)));return o}function kE(e,n,t,r,o,i,s,a){Xe(`NgControlFlow`);let l=b(),c=R();return xt(l,c,e,n,t,r,o,fe(c.consts,i),256,s,a),Ec}function Ec(e,n,t,r,o,i,s,a){Xe(`NgControlFlow`);let l=b(),c=R();return xt(l,c,e,n,t,r,o,fe(c.consts,i),512,s,a),Ec}function SE(e,n){Xe(`NgControlFlow`);let t=b(),r=Je(),o=t[r]!==Y?t[r]:-1,i=o!==-1?Li(t,O+o):void 0,s=0;if(le(t,r,e)){let a=y(null);try{if(i!==void 0&&lc(i,s),e!==-1){let l=O+e,c=Li(t,l),u=Ml(t[v],l),d=im(c,u,t);Hr(c,Fr(t,u,n,{dehydratedView:d}),s,Nt(u,d))}}finally{y(a)}}else if(i!==void 0){let a=rm(i,s);a!==void 0&&(a[F]=n)}}function TE(e){return e}function kc(e,n){return n}function Sc(e,n,t,r,o,i,s,a,l,c,u,d,m){Xe(`NgControlFlow`);let f=b(),g=R(),h=l!==void 0,S=b(),D=a?s.bind(S[de][F]):s,Z=new Tl(h,D);S[O+e]=Z,xt(f,g,e+1,n,t,r,o,fe(g.consts,i),256),h&&xt(f,g,e+2,l,c,u,d,fe(g.consts,m),512)}function Tc(e){let n=y(null),t=me();try{let r=b(),o=r[v],i=r[t],s=t+1,a=Li(r,s);if(i.liveCollection===void 0){let c=Ml(o,s);i.liveCollection=new Nl(a,r,c)}else i.liveCollection.reset();let l=i.liveCollection;if(EE(l,e,i.trackByFn,n),l.updateIndexes(),i.hasEmptyBlock){let c=Je(),u=l.length===0;if(le(r,c,u)){let d=t+2,m=Li(r,d);if(u){let f=Ml(o,d),g=im(m,f,r);Hr(m,Fr(r,f,void 0,{dehydratedView:g}),0,Nt(f,g))}else o.firstUpdatePass&&HC(m),lc(m,0)}}}finally{y(n)}}function Li(e,n){return e[n]}function NE(e,n){if(e.length<=P)return;let r=e[P+n],o=r?r[je]:void 0;if(r&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0){let i=r[ee];HD(i,o),Tt.delete(r[Pe]),o.detachedLeaveAnimationFns=void 0}}function ME(e,n){if(e.length<=P)return;let r=e[P+n],o=r?r[je]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}function AE(e,n){return Ar(e,n)}function xE(e,n){return rm(e,n)}function Ml(e,n){return bt(e,n)}function Wm(e,n,t){let r=b();if(le(r,Je(),n)){R();qf(zn(),r,e,n,r[L],t)}return Wm}function Al(e,n,t,r,o){ic(n,e,t,o?`class`:`style`,r)}function Oi(e,n,t,r){let o=b(),i=o[v],s=e+O,a=i.firstCreatePass?dc(s,o,2,n,nc,ni(),t,r):i.data[s];if(Ye(a)){let l=o[Ne].tracingService;if(l&&l.componentCreate){let c=i.data[a.directiveStart+a.componentOffset];return l.componentCreate(lm(c),()=>(Up(e,n,o,a,r),Oi))}}return Up(e,n,o,a,r),Oi}function Up(e,n,t,r,o){if(tc(r,t,e,n,Zm),vt(r)){let i=t[v];qi(i,t,r),Vl(i,r,t)}o!=null&&jr(t,r)}function Nc(){let e=R(),t=rc(H());return e.firstCreatePass&&pc(e,t),Na(t)&&Ma(),Ta(),t.classesWithoutHost!=null&&Aw(t)&&Al(e,t,b(),t.classesWithoutHost,!0),t.stylesWithoutHost!=null&&xw(t)&&Al(e,t,b(),t.stylesWithoutHost,!1),Nc}function Gm(e,n,t,r){return Oi(e,n,t,r),Nc(),Gm}function qr(e,n,t,r){let o=b(),i=o[v],s=e+O,a=i.firstCreatePass?iI(s,i,2,n,t,r):i.data[s];return tc(a,o,e,n,Zm),r!=null&&jr(o,a),qr}function Wr(){return Na(rc(H()))&&Ma(),Ta(),Wr}function Ki(e,n,t,r){return qr(e,n,t,r),Wr(),Ki}function Mc(e,n,t){let r=b(),o=r[v],i=e+O,s=o.firstCreatePass?dc(i,r,8,`ng-container`,nc,ni(),n,t):o.data[i];if(tc(s,r,e,`ng-container`,$E),vt(s)){let a=r[v];qi(a,r,s),Vl(a,s,r)}return t!=null&&jr(r,s),Mc}function Ac(){let e=R(),t=rc(H());return e.firstCreatePass&&pc(e,t),Ac}function Km(e,n,t){return Mc(e,n,t),Ac(),Km}function _E(){return b()}function Qm(e,n,t){let r=b();if(le(r,Je(),n)){R();Wf(zn(),r,e,n,r[L],t)}return Qm}function RE(e){let n=Math.floor(Math.abs(e)),t=e.toString().replace(/^[^.]*\.?/,``).length;return n===1&&t===0?1:5}function OE(e){let n=jE(e),t=Bp(n);if(t)return t;let r=n.split(`-`)[0];if(t=Bp(r),t)return t;if(r===`en`)return LE;throw new k(701,!1)}function Bp(e){if(!(e in Ya)){let n=ln.ng&&ln.ng.common&&ln.ng.common.locales&&ln.ng.common.locales[e];return n!==void 0&&(Ya[e]=n),n}return Ya[e]}function jE(e){return e.toLowerCase().replace(/_/g,`-`)}function Ym(e){typeof e==`string`&&(FE=e.toLowerCase().replace(/_/g,`-`))}function Jm(e,n,t){let r=b(),o=R(),i=H();return eg(o,r,r[L],i,e,n,t),Jm}function Xm(e,n,t){let r=b(),o=R(),i=H();return(i.type&3||t)&&cm(i,o,r,t,r[L],e,n,yi(i,r,n)),Xm}function eg(e,n,t,r,o,i,s){let a=!0,l=null;if((r.type&3||s)&&(l??=yi(r,n,i),cm(r,e,n,s,t,o,i,l)&&(a=!1)),a){let c=r.outputs?.[o],u=r.hostDirectiveOutputs?.[o];if(u&&u.length)for(let d=0;d<u.length;d+=2){let m=u[d],f=u[d+1];l??=yi(r,n,i),Ep(r,n,m,f,o,l)}if(c&&c.length)for(let d of c)l??=yi(r,n,i),Ep(r,n,d,o,o,l)}}function HE(e=1){return Gd(e)}function ng(e,n,t,r){return wm(e,n,t,r),ng}function VE(e){let n=b(),t=R(),r=oi();hr(r+1);let o=mc(t,r);if(e.dirty&&Nd(n)===((o.metadata.flags&2)===2)){if(o.matches===null)e.reset([]);else{let i=Cm(n,r);e.reset(i,ff),e.notifyOnChanges()}return!0}return!1}function zE(){return fc(b(),oi())}function tg(e,n,t,r,o){return Em(n,wm(e,t,r,o)),tg}function rg(e,n,t,r){return Em(e,SI(n,t,r)),rg}function UE(e=1){hr(oi()+e)}function BE(e){return Yo($a(),O+e)}function fi(e,n){return e<<17|n<<2}function Zn(e){return e>>17&32767}function qE(e){return(e&2)==2}function WE(e,n){return e&131071|n<<17}function xl(e){return e|2}function $t(e){return(e&131068)>>2}function Ja(e,n){return e&-131069|n<<2}function GE(e){return(e&1)===1}function $l(e){return e|1}function ZE(e,n,t,r,o,i){let s=i?n.classBindings:n.styleBindings,a=Zn(s),l=$t(s);e[r]=t;let c=!1,u;if(Array.isArray(t)){let d=t;u=d[1],(u===null||pt(d,u)>0)&&(c=!0)}else u=t;if(o)if(l!==0){let m=Zn(e[a+1]);e[r+1]=fi(m,a),m!==0&&(e[m+1]=Ja(e[m+1],r)),e[a+1]=WE(e[a+1],r)}else e[r+1]=fi(a,0),a!==0&&(e[a+1]=Ja(e[a+1],r)),a=r;else e[r+1]=fi(l,0),a===0?a=r:e[l+1]=Ja(e[l+1],r),l=r;c&&(e[r+1]=xl(e[r+1])),qp(e,u,r,!0),qp(e,u,r,!1),KE(n,u,e,r,i),s=fi(a,l),i?n.classBindings=s:n.styleBindings=s}function KE(e,n,t,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof n==`string`&&pt(i,n)>=0&&(t[r+1]=$l(t[r+1]))}function qp(e,n,t,r){let o=e[t+1],i=n===null,s=r?Zn(o):$t(o),a=!1;for(;s!==0&&(a===!1||i);){let l=e[s],c=e[s+1];QE(l,n)&&(a=!0,e[s+1]=r?$l(c):xl(c)),s=r?Zn(c):$t(c)}a&&(e[t+1]=r?xl(o):$l(o))}function QE(e,n){return e===null||n==null||(Array.isArray(e)?e[1]:e)===n?!0:Array.isArray(e)&&typeof n==`string`?pt(e,n)>=0:!1}function YE(e){return e.substring(xe.key,xe.keyEnd)}function JE(e){return XE(e),og(e,ig(e,0,xe.textEnd))}function og(e,n){let t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=ek(e,xe.key=n,t),ig(e,n,t))}function XE(e){xe.key=0,xe.keyEnd=0,xe.value=0,xe.valueEnd=0,xe.textEnd=e.length}function ig(e,n,t){for(;n<t&&e.charCodeAt(n)<=32;)n++;return n}function ek(e,n,t){for(;n<t&&e.charCodeAt(n)>32;)n++;return n}function sg(e,n,t){return lg(e,n,t,!1),sg}function ag(e,n){return lg(e,n,null,!0),ag}function nk(e){rk(ck,tk,e,!0)}function tk(e,n){for(let t=JE(n);t>=0;t=og(n,t))qo(e,YE(n),!0)}function lg(e,n,t,r){let o=b(),i=R(),s=gr(2);if(i.firstUpdatePass&&ug(i,e,s,r),n!==Y&&le(o,s,n)){let a=i.data[me()];dg(i,a,o,o[L],e,o[s+1]=dk(n,t),r,s)}}function rk(e,n,t,r){let o=R(),i=gr(2);o.firstUpdatePass&&ug(o,null,i,r);let s=b();if(t!==Y&&le(s,i,t)){let a=o.data[me()];if(pg(a,r)&&!cg(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;l!==null&&(t=Fo(l,t||``)),Al(o,a,s,t,r)}else uk(o,a,s,s[L],s[i+1],s[i+1]=lk(e,n,t),r,i)}}function cg(e,n){return n>=e.expandoStartIndex}function ug(e,n,t,r){let o=e.data;if(o[t+1]===null){let i=o[me()],s=cg(e,t);pg(i,r)&&n===null&&!s&&(n=!1),n=ok(o,i,n,r),ZE(o,i,n,t,s,r)}}function ok(e,n,t,r){let o=Ud(e),i=r?n.residualClasses:n.residualStyles;if(o===null)(r?n.classBindings:n.styleBindings)===0&&(t=Xa(null,e,n,t,r),t=Rr(t,n.attrs,r),i=null);else{let s=n.directiveStylingLast;if(s===-1||e[s]!==o)if(t=Xa(o,e,n,t,r),i===null){let l=ik(e,n,r);l!==void 0&&Array.isArray(l)&&(l=Xa(null,e,n,l[1],r),l=Rr(l,n.attrs,r),sk(e,n,r,l))}else i=ak(e,n,r)}return i!==void 0&&(r?n.residualClasses=i:n.residualStyles=i),t}function ik(e,n,t){let r=t?n.classBindings:n.styleBindings;if($t(r)!==0)return e[Zn(r)]}function sk(e,n,t,r){let o=t?n.classBindings:n.styleBindings;e[Zn(o)]=r}function ak(e,n,t){let r,o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i<o;i++){let s=e[i].hostAttrs;r=Rr(r,s,t)}return Rr(r,n.attrs,t)}function Xa(e,n,t,r,o){let i=null,s=t.directiveEnd,a=t.directiveStylingLast;for(a===-1?a=t.directiveStart:a++;a<s&&(i=n[a],r=Rr(r,i.hostAttrs,o),i!==e);)a++;return e!==null&&(t.directiveStylingLast=a),r}function Rr(e,n,t){let r=t?1:2,o=-1;if(n!==null)for(let i=0;i<n.length;i++){let s=n[i];typeof s==`number`?o=s:o===r&&(Array.isArray(e)||(e=e===void 0?[]:[``,e]),qo(e,s,t?!0:n[++i]))}return e===void 0?null:e}function lk(e,n,t){if(t==null||t===``)return he;let r=[],o=St(t);if(Array.isArray(o))for(let i=0;i<o.length;i++)e(r,o[i],!0);else if(o instanceof Set)for(let i of o)e(r,i,!0);else if(typeof o==`object`)for(let i in o)Object.hasOwn(o,i)&&e(r,i,o[i]);else typeof o==`string`&&n(r,o);return r}function ck(e,n,t){let r=String(n);r!==``&&!r.includes(` `)&&qo(e,r,t)}function uk(e,n,t,r,o,i,s,a){o===Y&&(o=he);let l=0,c=0,u=0<o.length?o[0]:null,d=0<i.length?i[0]:null;for(;u!==null||d!==null;){let m=l<o.length?o[l+1]:void 0,f=c<i.length?i[c+1]:void 0,g=null,h;u===d?(l+=2,c+=2,m!==f&&(g=d,h=f)):d===null||u!==null&&u<d?(l+=2,g=u):(c+=2,g=d,h=f),g!==null&&dg(e,n,t,r,g,h,s,a),u=l<o.length?o[l]:null,d=c<i.length?i[c]:null}}function dg(e,n,t,r,o,i,s,a){if(!(n.type&3))return;let l=e.data,c=l[a+1];if(!Pi(GE(c)?Wp(l,n,t,o,$t(c),s):void 0)){Pi(i)||qE(c)&&(i=Wp(l,null,t,o,a,s));iC(r,s,Ca(me(),t),o,i)}}function Wp(e,n,t,r,o,i){let s=n===null,a;for(;o>0;){let l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=u===null,m=t[o+1];m===Y&&(m=d?he:void 0);let f=d?Wo(m,r):u===r?m:void 0;if(c&&!Pi(f)&&(f=Wo(l,r)),Pi(f)&&(a=f,s))return a;let g=e[o+1];o=s?Zn(g):$t(g)}if(n!==null){let l=i?n.residualClasses:n.residualStyles;l!=null&&(a=Wo(l,r))}return a}function Pi(e){return e!==void 0}function dk(e,n){return e==null||e===``||(typeof n==`string`?e=St(e)+n:typeof e==`object`&&(e=tr(St(e)))),e}function pg(e,n){return(e.flags&(n?8:16))!==0}function pk(e,n=``){let t=b(),r=R(),o=e+O,i=r.firstCreatePass?Rt(r,o,1,n,null):r.data[o],s=fk(r,t,i,n);t[o]=s,ai()&&Kl(r,t,s,i),Vn(i,!1)}function mk(e,n,t,r=``){return le(e,Je(),t)?n+Ke(t)+r:Y}function gk(e,n,t,r,o,i=``){let a=uc(e,Ra(),t,o);return gr(2),a?n+Ke(t)+r+Ke(o)+i:Y}function hk(e,n,t,r,o,i,s,a=``){let c=WC(e,Ra(),t,o,s);return gr(3),c?n+Ke(t)+r+Ke(o)+i+Ke(s)+a:Y}function fg(e){return xc(``,e),fg}function xc(e,n,t){let r=b(),o=mk(r,e,n,t);return o!==Y&&$c(r,me(),o),xc}function mg(e,n,t,r,o){let i=b(),s=gk(i,e,n,t,r,o);return s!==Y&&$c(i,me(),s),mg}function gg(e,n,t,r,o,i,s){let a=b(),l=hk(a,e,n,t,r,o,i,s);return l!==Y&&$c(a,me(),l),gg}function $c(e,n,t){let r=Ca(n,e);uD(e[L],r,t)}function hg(e,n,t){ui(n)&&(n=n());let r=b();if(le(r,Je(),n)){R();qf(zn(),r,e,n,r[L],t)}return hg}function vk(e,n){let t=ui(e);return t&&e.set(n),t}function vg(e,n){let t=b(),r=R(),o=H();return eg(r,t,t[L],o,e,n),vg}function bg(e){Xe(`NgLet`);let n=R(),t=b(),r=e+O;return Vn(Rt(n,r,128,null,null),!1),pr(n,t,r,yg),bg}function yk(e){return pr(R(),b(),me(),e),e}function bk(e){let t=Yo($a(),O+e);if(t===yg)throw new k(314,!1);return t}function Gp(e,n,t){let r=R();r.firstCreatePass&&wg(n,r.data,r.blueprint,Me(e),t)}function wg(e,n,t,r,o){if(e=q(e),Array.isArray(e))for(let i=0;i<e.length;i++)wg(e[i],n,t,r,o);else{let i=R(),s=b(),a=H(),l=$n(e)?e:q(e.provide),c=ya(e),u=a.providerIndexes&1048575,d=a.directiveStart,m=a.providerIndexes>>20;if($n(e)||!e.multi){let f=new Wn(c,o,Vr,null),g=nl(l,n,o?u:u+m,d);g===-1?(ol(Ei(a,s),i,l),el(i,e,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(f),s.push(f)):(t[g]=f,s[g]=f)}else{let f=nl(l,n,u+m,d),g=nl(l,n,u,u+m),h=f>=0&&t[f],S=g>=0&&t[g];if(o&&!S||!o&&!h){ol(Ei(a,s),i,l);let D=Ck(o?Dk:wk,t.length,o,r,c,e);!o&&S&&(t[g].providerFactory=D),el(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(D),s.push(D)}else{let D=Dg(t[o?g:f],c,!o&&r);el(i,e,f>-1?f:g,D)}!o&&r&&S&&t[g].componentProviders++}}}function el(e,n,t,r){let o=$n(n),i=Ed(n);if(o||i){let l=(i?q(n.useClass):n).prototype.ngOnDestroy;if(l){let c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){let u=c.indexOf(t);u===-1?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function Dg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function nl(e,n,t,r){for(let o=t;o<r;o++)if(n[o]===e)return o;return-1}function wk(e,n,t,r,o){return _l(this.multi,[])}function Dk(e,n,t,r,o){let i=this.multi,s;if(this.providerFactory){let a=this.providerFactory.componentProviders,l=Tr(r,r[v],this.providerFactory.index,o);s=l.slice(0,a),_l(i,s);for(let c=a;c<l.length;c++)s.push(l[c])}else s=[],_l(i,s);return s}function _l(e,n){for(let t=0;t<e.length;t++){let r=e[t];n.push(r())}return n}function Ck(e,n,t,r,o,i){let s=new Wn(e,t,Vr,null);return s.multi=[],s.index=n,s.componentProviders=0,Dg(s,o,r&&!t),s}function Ik(e,n){return t=>{t.providersResolver=(r,o)=>Gp(r,o?o(e):e,!1),n&&(t.viewProvidersResolver=(r,o)=>Gp(r,o?o(n):n,!0))}}function Ek(e,n){let t=ti()+e,r=b();return r[t]===Y?cc(r,t,n()):qC(r,t)}function kk(e,n,t){return Sk(b(),ti(),e,n,t)}function Cg(e,n){let t=e[n];return t===Y?void 0:t}function Sk(e,n,t,r,o,i){let s=n+t;return le(e,s,o)?cc(e,s+1,i?r.call(i,o):r(o)):Cg(e,s+1)}function Tk(e,n,t,r,o,i,s){let a=n+t;return uc(e,a,o,i)?cc(e,a+2,s?r.call(s,o,i):r(o,i)):Cg(e,a+2)}function Nk(e,n){let t=R(),r,o=e+O;t.firstCreatePass?(r=Mk(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks??=[]).push(o,r.onDestroy)):r=t.data[o];let i=r.factory||(r.factory=an(r.type,!0)),a=oe(Vr);try{let l=Ii(!1),c=i();return Ii(l),pr(t,b(),o,c),c}finally{oe(a)}}function Mk(e,n){if(n)for(let t=n.length-1;t>=0;t--){let r=n[t];if(e===r.name)return r}}function Ak(e,n,t,r){let o=e+O,i=b(),s=Yo(i,o);return xk(i,o)?Tk(i,ti(),n,s.transform,t,r,s):s.transform(t,r)}function xk(e,n){return e[v].data[n].pure}function $k(e,n){return Wi(e,n)}function Eg(){return[{provide:Le,useExisting:Ig},{provide:Se,useClass:er},{provide:Dr,useValue:!0}]}function Rk(){return typeof $localize<`u`&&$localize.locale||Gr}var Lr;var Rl;var N;var wi;var Qp;var Iw;var tl;var cp;var A;var It;var Wn;var rl;var Lw;var tf;var rf;var Ow;var Fe;var vn;var Bw;var qw;var pf;var sl;var Pr;var ki;var Ol;var gf;var Zw;var mp;var ll;var wf;var Pl;var jl;var Df;var Cf;var If;var gp;var Xw;var Ef;var nD;var Gn;var tD;var pi;var Si;var oD;var iD;var sD;var aD;var Of;var Y;var Ti;var _D;var Tt;var ul;var Er;var Fi;var Kn;var bp;var Hi;var ql;var Wl;var Nr;var Gl;var nC;var Cp;var Bi;var dC;var Kf;var SC;var NC;var MC;var yn;var xr;var zC;var UC;var sm;var $r;var gl;var am;var vi;var qn;var hl;var dm;var mm;var sI;var Mt;var Mi;var Gi;var vl;var bI;var wI;var yl;var bl;var Ai;var wl;var Dl;var At;var Sm;var xi;var $i;var _r;var AI;var Dc;var Cc;var ZI;var ae;var Rp;var QI;var V;var _i;var YI;var zr;var JI;var XI;var eE;var nE;var Za;var tE;var Ic;var lE;var Pm;var pE;var fE;var Hm;var Vm;var mE;var Ur;var yE;var El;var Ri;var Sl;var Tl;var Nl;var Zm;var $E;var Ir;var LE;var Ya;var PE;var Gr;var FE;var xe;var fk;var yg;var Ig;var _k;var _c;var Rc=p(()=>{Cr();us();En();Ws();ap();Lr=Symbol(`InputSignalNode#UNSET`),Rl=G(W({},et),{transformFn:void 0,applyValueToInputSignal(e,n){ze(e,n)}});N=(function(e){return e[e.TemplateCreateStart=0]=`TemplateCreateStart`,e[e.TemplateCreateEnd=1]=`TemplateCreateEnd`,e[e.TemplateUpdateStart=2]=`TemplateUpdateStart`,e[e.TemplateUpdateEnd=3]=`TemplateUpdateEnd`,e[e.LifecycleHookStart=4]=`LifecycleHookStart`,e[e.LifecycleHookEnd=5]=`LifecycleHookEnd`,e[e.OutputStart=6]=`OutputStart`,e[e.OutputEnd=7]=`OutputEnd`,e[e.BootstrapApplicationStart=8]=`BootstrapApplicationStart`,e[e.BootstrapApplicationEnd=9]=`BootstrapApplicationEnd`,e[e.BootstrapComponentStart=10]=`BootstrapComponentStart`,e[e.BootstrapComponentEnd=11]=`BootstrapComponentEnd`,e[e.ChangeDetectionStart=12]=`ChangeDetectionStart`,e[e.ChangeDetectionEnd=13]=`ChangeDetectionEnd`,e[e.ChangeDetectionSyncStart=14]=`ChangeDetectionSyncStart`,e[e.ChangeDetectionSyncEnd=15]=`ChangeDetectionSyncEnd`,e[e.AfterRenderHooksStart=16]=`AfterRenderHooksStart`,e[e.AfterRenderHooksEnd=17]=`AfterRenderHooksEnd`,e[e.ComponentStart=18]=`ComponentStart`,e[e.ComponentEnd=19]=`ComponentEnd`,e[e.DeferBlockStateStart=20]=`DeferBlockStateStart`,e[e.DeferBlockStateEnd=21]=`DeferBlockStateEnd`,e[e.DynamicComponentStart=22]=`DynamicComponentStart`,e[e.DynamicComponentEnd=23]=`DynamicComponentEnd`,e[e.HostBindingsUpdateStart=24]=`HostBindingsUpdateStart`,e[e.HostBindingsUpdateEnd=25]=`HostBindingsUpdateEnd`,e})(N||{}),wi=class{previousValue;currentValue;firstChange;constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}};Qp=null,Iw=(()=>{Qp=lp;let e=()=>lp;return e.ngInherit=!0,e})();tl=`__ngSimpleChanges__`;cp=[],A=function(e,n=null,t){for(let r=0;r<cp.length;r++){let o=cp[r];o(e,n,t)}};It=-1,Wn=class{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,t,r,o){this.factory=n,this.name=o,this.canSeeViewProviders=t,this.injectImpl=r}};rl=!0;Lw=256,tf=Lw-1,rf=5,Ow=0,Fe={};vn=class{_tNode;_lView;constructor(n,t){this._tNode=n,this._lView=t}get(n,t,r){return lf(this._tNode,this._lView,n,xn(r),t)}};Bw=()=>(typeof requestIdleCallback<`u`?requestIdleCallback:e=>setTimeout(e)).bind(globalThis),qw=()=>(typeof requestIdleCallback<`u`?cancelIdleCallback:clearTimeout).bind(globalThis),pf=new M(``,{factory:()=>new sl}),sl=class{requestIdleCallback=Bw();cancelIdleCallback=qw();requestOnIdle(n,t){return this.requestIdleCallback(n,t)}cancelOnIdle(n){return this.cancelIdleCallback(n)}};Pr=(()=>{class e{nativeElement;constructor(t){this.nativeElement=t}static __NG_ELEMENT_ID__=Ww}return e})();ki=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new ge}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;let r=yd(n);(this._changesDetected=!vd(this._results,r,t))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(n){this._onDirty=n}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=Gw};Ol=(function(e){return e[e.OnPush=0]=`OnPush`,e[e.Eager=1]=`Eager`,e[e.Default=1]=`Default`,e})(Ol||{}),gf=new Map,Zw=0;mp=`__ngContext__`;wf=`r`,Pl=`di`,jl=`s`,Df=!1,Cf=new M(``,{factory:()=>Df}),If=new M(``),gp=new WeakMap;Xw=(e,n,t,r)=>{};Ef=new M(``);nD=()=>null;Gn=(function(e){return e[e.Emulated=0]=`Emulated`,e[e.None=2]=`None`,e[e.ShadowDom=3]=`ShadowDom`,e[e.ExperimentalIsolatedShadowDom=4]=`ExperimentalIsolatedShadowDom`,e})(Gn||{}),tD={"http://www.w3.org/2000/svg":Rn,"http://www.w3.org/1998/Math/MathML":Qo};Si=class{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${jo})`}};oD=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;iD=/^>|^->|<!--|-->|--!>|<!-$/g,sD=/(<|>)/g,aD=`$1`;Of=`ng-template`;Y={},Ti=(function(e){return e[e.Important=1]=`Important`,e[e.DashCase=2]=`DashCase`,e})(Ti||{});Tt=new Set,typeof document<`u`&&document?.documentElement?.getAnimations,ul=new WeakMap;Er=new WeakSet;Fi=(function(e){return e[e.CHANGE_DETECTION=0]=`CHANGE_DETECTION`,e[e.AFTER_NEXT_RENDER=1]=`AFTER_NEXT_RENDER`,e})(Fi||{}),Kn=new M(``),bp=new Set;Hi=(()=>{class e{impl=null;execute(){this.impl?.execute()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),ql=[0,1,2,3],Wl=(()=>{class e{ngZone=C(Se);scheduler=C(Le);errorHandler=C(Ge,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){C(Kn,{optional:!0})}execute(){let t=this.sequences.size>0;t&&A(N.AfterRenderHooksStart),this.executing=!0;for(let r of ql)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),t&&A(N.AfterRenderHooksEnd)}register(t){let{view:r}=t;r!==void 0?((r[Pn]??=[]).push(t),Hn(r),r[w]|=8192):this.executing?this.deferredRegistrations.add(t):this.addSequence(t)}addSequence(t){this.sequences.add(t),this.scheduler.notify(7)}unregister(t){this.executing&&this.sequences.has(t)?(t.erroredOrDestroyed=!0,t.pipelinedValue=void 0,t.once=!0):(this.sequences.delete(t),this.deferredRegistrations.delete(t))}maybeTrace(t,r){return r?r.run(Fi.AFTER_NEXT_RENDER,t):t()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})(),Nr=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,t,r,o,i,s=null){this.impl=n,this.hooks=t,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let n=this.view?.[Pn];n&&(this.view[Pn]=n.filter(t=>t!==this))}};Gl=new M(``,{factory:()=>{let e=C(ue),n=new Set;return e.onDestroy(()=>n.clear()),{queue:n,isScheduled:!1,scheduler:null,injector:e}}});nC=eC;Bi=(function(e){return e[e.None=0]=`None`,e[e.SignalBased=1]=`SignalBased`,e[e.HasDecoratorInputTransform=2]=`HasDecoratorInputTransform`,e})(Bi||{});dC=()=>null;Kf=[];SC=G(W({},en),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{Hn(e.lView)},consumerOnSignalRead(){this.lView[pe]=this}});NC=G(W({},en),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{let n=We(e.lView);for(;n&&!Qf(n[v]);)n=We(n);n&&Xo(n)},consumerOnSignalRead(){this.lView[pe]=this}});MC=100;yn=class{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){let n=this._lView,t=n[v];return Mr(t,n,t.firstChild,[])}constructor(n,t){this._lView=n,this._cdRefInjectingView=t}get context(){return this._lView[F]}set context(n){this._lView[F]=n}get destroyed(){return fn(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){let n=this._lView[U];if(be(n)){let t=n[dr],r=t?t.indexOf(this):-1;r>-1&&(Ar(n,r),ar(t,r))}this._attachedToViewContainer=!1}zi(this._lView[v],this._lView)}onDestroy(n){mr(this._lView,n)}markForCheck(){ac(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[w]&=-129}reattach(){ei(this._lView),this._lView[w]|=128}detectChanges(){this._lView[w]|=1024,Jf(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new k(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let n=yt(this._lView),t=this._lView[dn];t!==null&&!n&&Zl(t,this._lView),Ff(this._lView[v],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new k(902,!1);this._appRef=n;let t=yt(this._lView),r=this._lView[dn];r!==null&&!t&&om(r,this._lView),ei(this._lView)}},xr=(()=>{class e{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=OC;constructor(t,r,o){this._declarationLView=t,this._declarationTContainer=r,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,r){return this.createEmbeddedViewImpl(t,r)}createEmbeddedViewImpl(t,r,o){let i=Fr(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:r,dehydratedView:o});return new yn(i)}}return e})();zC=()=>null,UC=()=>null;sm=class{},$r=class{},gl=class{destroyNode=null;static __NG_ELEMENT_ID__=()=>BC()};am=(()=>{class e{static ɵprov=X({token:e,providedIn:`root`,factory:()=>null})}return e})();vi={},qn=class{injector;parentInjector;constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){let o=this.injector.get(n,vi,r);return o!==vi||t===vi?o:this.parentInjector.get(n,t,r)}};hl=Symbol(`BINDING`),dm=new M(``);mm=typeof ShadowRoot<`u`,sI=typeof Document<`u`;Mt=class{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=aI(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=lI(this.componentDef.outputs),this.cachedOutputs}constructor(n,t){this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=xD(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!t}create(n,t,r,o,i,s,a){A(N.DynamicComponentStart);let l=y(null);try{let c=this.componentDef,u=cI(c,o||this.ngModule,n),d=uI(u),m=d.tracingService;return m&&m.componentCreate?m.componentCreate(lm(c),()=>this.createComponentRef(d,u,t,r,i,s,a)):this.createComponentRef(d,u,t,r,i,s,a)}finally{y(l)}}createComponentRef(n,t,r,o,i,s,a){let l=this.componentDef,c=fI(o,l,s,i),u=n.rendererFactory.createRenderer(null,l),d=o?cC(u,o,l.encapsulation,t):dI(l,u,a??null);pI(d);let m=t.get(dm,null),f=mI(d,()=>t.get(br,null)??bf());m&&m.addHost(f);let g=s?.some(Np)||i?.some(D=>typeof D!=`function`&&D.bindings.some(Np)),h=Jl(null,c,null,512|Vf(l),null,null,n,u,t,null,kf(d,t,!0));m&&mm&&f instanceof ShadowRoot&&mr(h,()=>{m.removeHost(f)}),h[O]=d,ii(h);let S=null;try{let D=dc(O,h,2,`#host`,()=>c.directiveRegistry,!0,0);$f(u,d,D),kt(d,h),qi(c,h,D),Vl(c,D,h),pc(c,D),r!==void 0&&hI(D,this.ngContentSelectors,r),S=De(D.index,h),h[F]=S[F],sc(c,h,null)}catch(D){throw S!==null&&al(S),al(h),D}finally{A(N.DynamicComponentEnd),si()}return new Mi(this.componentType,h,!!g)}};Mi=class extends sm{_rootLView;_hasInputBindings;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(n,t,r){super(),this._rootLView=t,this._hasInputBindings=r,this._tNode=bt(t[v],O),this.location=_t(this._tNode,t),this.instance=De(this._tNode.index,t)[F],this.hostView=this.changeDetectorRef=new yn(t,void 0),this.componentType=n}setInput(n,t){this._hasInputBindings;let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(n)&&Object.is(this.previousInputValues.get(n),t))return;let o=this._rootLView;ic(r,o[v],o,n,t);this.previousInputValues.set(n,t);ac(De(r.index,o),1)}get injector(){return new vn(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(n){this.hostView.onDestroy(n)}};Gi=(()=>{class e{static __NG_ELEMENT_ID__=vI}return e})();vl=class e extends Gi{_lContainer;_hostTNode;_hostLView;constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return _t(this._hostTNode,this._hostLView)}get injector(){return new vn(this._hostTNode,this._hostLView)}get parentInjector(){let n=Ll(this._hostTNode,this._hostLView);if(nf(n)){let t=Ci(n,this._hostLView),r=Di(n),o=t[v].data[r+8];return new vn(o,t)}else return new vn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){let t=Mp(this._lContainer);return t!==null&&t[n]||null}get length(){return this._lContainer.length-P}createEmbeddedView(n,t,r){let o,i;typeof r==`number`?o=r:r!=null&&(o=r.index,i=r.injector);let s=ml(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,Nt(this._hostTNode,s)),a}createComponent(n,t,r,o,i,s,a){let l,c=t||{};l=c.index,r=c.injector,o=c.projectableNodes,i=c.environmentInjector||c.ngModuleRef,s=c.directives,a=c.bindings;let u=new Mt(Ze(n)),d=r||this.parentInjector;if(!i&&u.ngModule==null){let D=this.parentInjector.get(ue,null);D&&(i=D)}let m=Ze(u.componentType??{}),f=ml(this._lContainer,m?.id??null),g=f?.firstChild??null,h=u.create(d,o,g,i,s,a,this._getHostElementNamespace());return this.insertImpl(h.hostView,l,Nt(this._hostTNode,f)),h}_getHostElementNamespace(){if(this._hostTNode.type&2){let n=this._hostTNode.parent??this._hostLView[se];return n!==null&&n.type&2&&typeof n.value==`string`&&n.value.toLowerCase()===`foreignobject`?null:n?.namespace??null}return this._hostTNode.namespace}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){let o=n._lView;if(Md(o)){let a=this.indexOf(n);if(a!==-1)this.detach(a);else{let l=o[U],c=new e(l,l[se],l[U]);c.detach(c.indexOf(n))}}let i=this._adjustIndex(t),s=this._lContainer;return Hr(s,o,i,r),n.attachToViewContainerRef(),ma(Wa(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){let t=Mp(this._lContainer);return t!==null?t.indexOf(n):-1}remove(n){let t=this._adjustIndex(n,-1),r=Ar(this._lContainer,t);r&&(ar(Wa(this._lContainer),t),zi(r[v],r))}detach(n){let t=this._adjustIndex(n,-1),r=Ar(this._lContainer,t);return r&&ar(Wa(this._lContainer),t)!=null?new yn(r):null}_adjustIndex(n,t=0){return n??this.length+t}};bI=DI,wI=()=>!1;yl=class e{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},bl=class e{queries;constructor(n=[]){this.queries=n}createEmbeddedView(n){let t=n.queries;if(t!==null){let r=n.contentQueries!==null?n.contentQueries[0]:t.length,o=[];for(let i=0;i<r;i++){let s=t.getByIndex(i),a=this.queries[s.indexInDeclarationView];o.push(a.clone())}return new e(o)}return null}insertView(n){this.dirtyQueriesWithMatches(n)}detachView(n){this.dirtyQueriesWithMatches(n)}finishViewCreation(n){this.dirtyQueriesWithMatches(n)}dirtyQueriesWithMatches(n){for(let t=0;t<this.queries.length;t++)mc(n,t).matches!==null&&this.queries[t].setDirty()}},Ai=class{flags;read;predicate;constructor(n,t,r=null){this.flags=t,this.read=r,typeof n==`string`?this.predicate=TI(n):this.predicate=n}},wl=class e{queries;constructor(n=[]){this.queries=n}elementStart(n,t){for(let r=0;r<this.queries.length;r++)this.queries[r].elementStart(n,t)}elementEnd(n){for(let t=0;t<this.queries.length;t++)this.queries[t].elementEnd(n)}embeddedTView(n){let t=null;for(let r=0;r<this.length;r++){let o=t!==null?t.length:0,i=this.getByIndex(r).embeddedTView(n,o);i&&(i.indexInDeclarationView=r,t!==null?t.push(i):t=[i])}return t!==null?new e(t):null}template(n,t){for(let r=0;r<this.queries.length;r++)this.queries[r].template(n,t)}getByIndex(n){return this.queries[n]}get length(){return this.queries.length}track(n){this.queries.push(n)}},Dl=class e{metadata;matches=null;indexInDeclarationView=-1;crossesNgTemplate=!1;_declarationNodeIndex;_appliesToNextNode=!0;constructor(n,t=-1){this.metadata=n,this._declarationNodeIndex=t}elementStart(n,t){this.isApplyingToNode(t)&&this.matchTNode(n,t)}elementEnd(n){this._declarationNodeIndex===n.index&&(this._appliesToNextNode=!1)}template(n,t){this.elementStart(n,t)}embeddedTView(n,t){return this.isApplyingToNode(n)?(this.crossesNgTemplate=!0,this.addMatch(-n.index,t),new e(this.metadata)):null}isApplyingToNode(n){if(this._appliesToNextNode&&(this.metadata.flags&1)!==1){let t=this._declarationNodeIndex,r=n.parent;for(;r!==null&&r.type&8&&r.index!==t;)r=r.parent;return t===(r!==null?r.index:-1)}return this._appliesToNextNode}matchTNode(n,t){let r=this.metadata.predicate;if(Array.isArray(r))for(let o=0;o<r.length;o++){let i=r[o];this.matchTNodeWithReadOption(n,t,CI(t,i)),this.matchTNodeWithReadOption(n,t,hi(t,n,i,!1,!1))}else r===xr?t.type&4&&this.matchTNodeWithReadOption(n,t,-1):this.matchTNodeWithReadOption(n,t,hi(t,n,r,!1,!1))}matchTNodeWithReadOption(n,t,r){if(r!==null){let o=this.metadata.read;if(o!==null)if(o===Pr||o===Gi||o===xr&&t.type&4)this.addMatch(t.index,-2);else{let i=hi(t,n,o,!1,!1);i!==null&&this.addMatch(t.index,i)}else this.addMatch(t.index,r)}}addMatch(n,t){this.matches===null?this.matches=[n,t]:this.matches.push(n,t)}};At=class{},Sm=class{},xi=class extends At{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];constructor(n,t,r,o=!0){super(),this.ngModuleType=n,this._parent=t;let i=fd(n);this._bootstrapComponents=DD(i.bootstrap),this._r3Injector=ja(n,t,[{provide:At,useValue:this},...r],tr(n),new Set([`environment`])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}},$i=class extends Sm{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new xi(this.moduleType,n,[])}},_r=class extends At{injector;instance=null;constructor(n){super();let t=new _n([...n.providers,{provide:At,useValue:this}],n.parent||ur(),n.debugName,new Set([`environment`]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}};AI=(()=>{class e{_injector;cachedInjectors=new Map;constructor(t){this._injector=t}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){let r=Go(!1,t.type),o=r.length>0?bc([r],this._injector,``):null;this.cachedInjectors.set(t,o)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=X({token:e,providedIn:`environment`,factory:()=>new e(Re(ue))})}return e})();Dc=new M(``);Cc=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r});appInits=C(Dc,{optional:!0})??[];injector=C(ke);constructor(){}runInitializers(){if(this.initialized)return;let t=[];for(let o of this.appInits){let i=Zo(this.injector,o);if(yc(i))t.push(i);else if(km(i)){let s=new Promise((a,l)=>{i.subscribe({complete:a,error:l})});t.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),t.length===0&&r(),this.initialized=!0}static ɵfac=function(r){return new(r||e)};static ɵprov=Or({token:e,factory:e.ɵfac})}return e})();ZI=KI;ae=(function(e){return e[e.NOT_STARTED=0]=`NOT_STARTED`,e[e.IN_PROGRESS=1]=`IN_PROGRESS`,e[e.COMPLETE=2]=`COMPLETE`,e[e.FAILED=3]=`FAILED`,e})(ae||{}),Rp=0,QI=1,V=(function(e){return e[e.Placeholder=0]=`Placeholder`,e[e.Loading=1]=`Loading`,e[e.Complete=2]=`Complete`,e[e.Error=3]=`Error`,e})(V||{}),_i=(function(e){return e[e.Initial=-1]=`Initial`,e})(_i||{}),YI=0,zr=1,JI=4,XI=5,eE=6,nE=7,Za=8,tE=9,Ic=(function(e){return e[e.Manual=0]=`Manual`,e[e.Playthrough=1]=`Playthrough`,e})(Ic||{});lE=(()=>{class e{cachedInjectors=new Map;getOrCreateInjector(t,r,o,i){if(!this.cachedInjectors.has(t)){let s=o.length>0?bc(o,r,i):null;this.cachedInjectors.set(t,s)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=X({token:e,providedIn:`environment`,factory:()=>new e})}return e})(),Pm=new M(``);pE=null;fE=(()=>{class e{log(t){console.log(t)}warn(t){console.warn(t)}static ɵfac=function(r){return new(r||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`platform`})}return e})(),Hm=new M(``),Vm=new M(``);mE=10,Ur=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=C(gn);afterRenderManager=C(Hi);zonelessEnabled=C(Dr);rootEffectScheduler=C(li);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new ge;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=C(Un);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(Nn(t=>!t))}constructor(){C(Kn,{optional:!0})}whenStable(){let t;return new Promise(r=>{t=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{t.unsubscribe()})}_injector=C(ue);_rendererFactory=null;get injector(){return this._injector}bootstrap(t,r){return this.bootstrapImpl(t,r)}bootstrapImpl(t,r,o=ke.NULL){return this._injector.get(Se).run(()=>{if(A(N.BootstrapComponentStart),!this._injector.get(Cc).done)throw new k(405,``);let a=Ze(t),l=this._injector.get(At),c=new Mt(a,l);this.componentTypes.push(t);let{hostElement:u,directives:d,bindings:m}=gE(r),f=u||c.selector,g=c.create(o,[],f,l.injector,d,m),h=g.location.nativeElement,S=g.injector.get(Hm,null);return S?.registerApplication(h),g.onDestroy(()=>{this.detachView(g.hostView),Sr(this.components,g),S?.unregisterApplication(h)}),this._loadComponent(g),A(N.BootstrapComponentEnd,g),g})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){A(N.ChangeDetectionStart),this.tracingSnapshot!==null?this.tracingSnapshot.run(Fi.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw A(N.ChangeDetectionEnd),new k(101,!1);let t=y(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,y(t),this.afterTick.next(),A(N.ChangeDetectionEnd)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get($r,null,{optional:!0}));let t=0;for(;this.dirtyFlags!==0&&t++<mE;){A(N.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{A(N.ChangeDetectionSyncEnd)}}}synchronizeOnce(){this.dirtyFlags&16&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let t=!1;if(this.dirtyFlags&7){let r=!!(this.dirtyFlags&1);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews){if(!r&&!fr(o))continue;Jf(o,r&&!this.zonelessEnabled?0:1),t=!0}if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),this.dirtyFlags&23)return}t||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),this.dirtyFlags&8&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){if(this.allViews.some(({_lView:t})=>fr(t))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(t){let r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){let r=t;Sr(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(t),this._injector.get(Vm,[]).forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>Sr(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new k(406,!1);let t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}static ɵfac=function(r){return new(r||e)};static ɵprov=Or({token:e,factory:e.ɵfac})}return e})();yE=(()=>{class e{buckets=new Map;callbackBucket=new Map;applicationRef=C(Ur);ngZone=C(Se);idleService=C(pf);add(t,r){let o=Fp(r);this.callbackBucket.set(t,o);let i=this.buckets.get(o);i??(i={idleId:null,queue:new Set},this.buckets.set(o,i)),i.queue.add(t),this.scheduleBucket(i,r)}remove(t){let r=this.callbackBucket.get(t);if(r===void 0)return;this.callbackBucket.delete(t);let o=this.buckets.get(r);o&&(o.queue.delete(t),o.queue.size===0&&(this.cancelBucket(o),this.buckets.delete(r)))}scheduleBucket(t,r){if(t.idleId!==null)return;let o=Fp(r),i=s=>{for(let a of t.queue)if(a(),this.applicationRef._tick(),t.queue.delete(a),this.callbackBucket.delete(a),s&&s.timeRemaining()===0&&!s.didTimeout)break;t.idleId=null,t.queue.size>0?this.scheduleBucket(t,r):this.buckets.delete(o)};t.idleId=this.idleService.requestOnIdle(s=>this.ngZone.run(()=>i(s)),r)}cancelBucket(t){t.idleId!==null&&(this.idleService.cancelOnIdle(t.idleId),t.idleId=null)}ngOnDestroy(){for(let t of this.buckets.values())this.cancelBucket(t);this.buckets.clear(),this.callbackBucket.clear()}static ɵprov=X({token:e,providedIn:`root`,factory:()=>new e})}return e})();El=class{destroy(n){}updateValue(n,t){}swap(n,t){let r=Math.min(n,t),o=Math.max(n,t),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(n,t){this.attach(t,this.detach(n))}};Ri=class{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;let t=this.kvMap.get(n);return this._vMap!==void 0&&this._vMap.has(t)?(this.kvMap.set(n,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,t){if(this.kvMap.has(n)){let r=this.kvMap.get(n);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,t)}else this.kvMap.set(n,t)}forEach(n){for(let[t,r]of this.kvMap)if(n(r,t),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),n(r,t)}}};Sl=class{lContainer;$implicit;$index;constructor(n,t,r){this.lContainer=n,this.$implicit=t,this.$index=r}get $count(){return this.lContainer.length-P}};Tl=class{hasEmptyBlock;trackByFn;liveCollection;constructor(n,t,r){this.hasEmptyBlock=n,this.trackByFn=t,this.liveCollection=r}};Nl=class extends El{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,t,r){super(),this.lContainer=n,this.hostLView=t,this.templateTNode=r}get length(){return this.lContainer.length-P}at(n){return this.getLView(n)[F].$implicit}attach(n,t){let r=t[mt];this.needsIndexUpdate||=n!==this.length,Hr(this.lContainer,t,n,Nt(this.templateTNode,r)),NE(this.lContainer,n)}detach(n){return this.needsIndexUpdate||=n!==this.length-1,ME(this.lContainer,n),AE(this.lContainer,n)}create(n,t){let r=ml(this.lContainer,this.templateTNode.tView.ssrId);return Fr(this.hostLView,this.templateTNode,new Sl(this.lContainer,t,n),{dehydratedView:r})}destroy(n){zi(n[v],n)}updateValue(n,t){this.getLView(n)[F].$implicit=t}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n<this.length;n++)this.getLView(n)[F].$index=n}getLView(n){return xE(this.lContainer,n)}};Zm=(e,n,t,r,o)=>(yr(!0),Mf(n[L],r,Pa()));$E=(e,n,t,r,o)=>(yr(!0),dD(n[L],``));Ir=void 0;LE=[`en`,[[`a`,`p`],[`AM`,`PM`]],[[`AM`,`PM`]],[[`S`,`M`,`T`,`W`,`T`,`F`,`S`],[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`]],Ir,[[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]],Ir,[[`B`,`A`],[`BC`,`AD`],[`Before Christ`,`Anno Domini`]],0,[6,0],[`M/d/yy`,`MMM d, y`,`MMMM d, y`,`EEEE, MMMM d, y`],[`h:mm a`,`h:mm:ss a`,`h:mm:ss a z`,`h:mm:ss a zzzz`],[`{1}, {0}`,Ir,Ir,Ir],[`.`,`,`,`;`,`%`,`+`,`-`,`E`,`×`,`‰`,`∞`,`NaN`,`:`],[`#,##0.###`,`#,##0%`,`¤#,##0.00`,`#E0`],`USD`,`$`,`US Dollar`,{},`ltr`,RE],Ya=Object.create(null);PE={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,Directionality:19,PluralCase:20,ExtraData:21};Gr=`en-US`;xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};fk=(e,n,t,r)=>(yr(!0),cD(n[L],r));yg={};Ig=(()=>{class e{applicationErrorHandler=C(gn);appRef=C(Ur);taskService=C(Un);ngZone=C(Se);zonelessEnabled=C(Dr);tracing=C(Kn,{optional:!0});zoneIsDefined=typeof Zone<`u`&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new te;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Xt):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(C(za,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{let t=this.taskService.add();if(!this.runningTick&&(this.cleanup(),!this.zonelessEnabled||this.appRef.includeAllTestViews)){this.taskService.remove(t);return}this.switchToMicrotaskScheduler(),this.taskService.remove(t)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{let t=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(t)})})}notify(t){if(!this.zonelessEnabled&&t===5)return;switch(t){case 0:case 2:this.appRef.dirtyFlags|=2;break;case 3:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 6:this.appRef.dirtyFlags|=2;break;case 12:this.appRef.dirtyFlags|=16;break;case 13:this.appRef.dirtyFlags|=2;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;let r=this.useMicrotaskScheduler?Jd:Fa;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>r(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>r(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Xt+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let t=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){this.applicationErrorHandler(r)}finally{this.taskService.remove(t),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let t=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(t)}}static ɵfac=function(r){return new(r||e)};static ɵprov=Or({token:e,factory:e.ɵfac})}return e})();_k=(()=>{class e{compileModuleSync(t){return new $i(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static ɵfac=function(r){return new(r||e)};static ɵprov=Or({token:e,factory:e.ɵfac})}return e})();_c=new M(``,{factory:()=>C(_c,{optional:!0,skipSelf:!0})||Rk()})});function Lk(e){let n=e.length-1;for(;n>-1;)e[n]===null&&e.splice(n,1),n--}function y_(e){return e.destroyRef}function Ot(e,n){return Ht(e,n?.equal)}function Tg(e){return nu(e)}function Pk(e,n){if(typeof e==`function`)return Sg(ls(e,Ok,n?.equal),n?.debugName,n?.set);else return Sg(ls(e.source,e.computation,e.equal),e.debugName,e.set)}function Sg(e,n,t){let r=e[j],o=e;if(t!==void 0){let i=s=>cs(r,s);o.set=s=>t(s,i),o.update=s=>t(s(Tg(e)),i)}else o.set=i=>cs(r,i),o.update=i=>eu(r,i);return o.asReadonly=wr.bind(e),o}var Zr;var Ok;var Ng=p(()=>{Cr();En();tu();Zr=class{destroyed=!1;listeners=null;errorHandler=C(Ge,{optional:!0});isEmitting=!1;hasNullListeners=!1;destroyRef=C(ve);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(n){if(this.destroyed)throw new k(953,!1);return(this.listeners??=[]).push(n),{unsubscribe:()=>{let t=this.listeners?this.listeners.indexOf(n):-1;t>-1&&(this.isEmitting?(this.hasNullListeners=!0,this.listeners[t]=null):this.listeners.splice(t,1))}}}emit(n){if(this.destroyed){console.warn(nr(953,!1));return}if(this.listeners===null)return;this.isEmitting=!0;let t=y(null);try{for(let r of this.listeners)try{r!==null&&r(n)}catch(o){this.errorHandler?.handleError(o)}}finally{this.hasNullListeners&&(this.hasNullListeners=!1,this.listeners&&Lk(this.listeners)),y(t),this.isEmitting=!1}}};(class e extends Error{_brand;constructor(n){super(n)}static IDLE=new e(`IDLE`);static LOADING=new e(`LOADING`)}),Ok=e=>e});function Lg(e,n){let t=Object.create(Rl);t.value=e,t.transformFn=n?.transform;function r(){if(He(t),t.value===Lr)throw new k(-950,null);return t.value}return r[j]=t,r}function pj(e){return Fk(e)?e.default:e}function Fk(e){return e&&typeof e==`object`&&`default`in e}function fj(e){return new Zr}function Ag(e,n){return Lg(e,n)}function Hk(e){return Lg(Lr,e)}function Og(e,n){let t=Object.create(Rl),r=new Zr;t.value=e;function o(){return He(t),xg(t.value),t.value}return o[j]=t,o.asReadonly=wr.bind(o),o.set=i=>{t.equal(t.value,i)||(ze(t,i),r.emit(i))},o.update=i=>{xg(t.value),o.set(i(t.value))},o.subscribe=r.subscribe.bind(r),o.destroyRef=r.destroyRef,o}function xg(e){if(e===Lr)throw new k(952,!1)}function $g(e,n){return Og(e,n)}function Vk(e){return Og(Lr,e)}function _g(e,n){return hc(n)}function zk(e,n){return vc(n)}function Rg(e,n){return hc(n)}function Uk(e,n){return vc(n)}function vj(e,n){return Im(n)}function qk(e){return Wk(H(),b(),(e&16)===16)}function Wk(e,n,t){if(Ye(e)&&!t){let r=De(e.index,n);return new yn(r,r)}else if(e.type&175){let r=n[de];return new yn(r,n)}return null}function Kr(e){return!e.moduleRef}function Zk(e){let n=Kr(e)?e.r3Injector:e.moduleRef.injector,t=n.get(Se);return t.run(()=>{Kr(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=n.get(gn),o;if(t.runOutsideAngular(()=>{o=t.onError.subscribe({next:r})}),Kr(e)){let i=()=>n.destroy(),s=e.platformInjector.get(Oc);s.add(i),n.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(Oc);s.add(i),e.moduleRef.onDestroy(()=>{Sr(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return Qk(r,t,()=>{let i=n.get(Un),s=i.add(),a=n.get(Cc);return a.runInitializers(),a.donePromise.then(()=>{if(Ym(n.get(_c,Gr)||Gr),!n.get(Gk,!0))return Kr(e)?n.get(Ur):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(Kr(e)){let u=n.get(Ur);return e.rootComponent!==void 0&&u.bootstrap(e.rootComponent),u}else return Kk?.(e.moduleRef,e.allPlatformModules),e.moduleRef}).finally(()=>{i.remove(s)})})})}function Qk(e,n,t){try{let r=t();return yc(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e(r)),r}}function Yk(e=[],n){return ke.create({name:n,providers:[{provide:va,useValue:`platform`},{provide:Oc,useValue:new Set([()=>Qi=null])},...e]})}function Jk(e=[]){if(Qi)return Qi;let n=Yk(e);return Qi=n,zm(),Xk(n),n}function Xk(e){let n=e.get(tp,null);Zo(e,()=>{n?.forEach(t=>t())})}function wj(e){let{rootComponent:n,appProviders:t,platformProviders:r,platformRef:o}=e;A(N.BootstrapApplicationStart);try{let i=o?.injector??Jk(r),s=[Eg(),ep,...t||[]];return Zk({r3Injector:new _r({providers:s,parent:i,debugName:``,runEnvironmentInitializers:!1}).injector,platformInjector:i,rootComponent:n})}catch(i){return Promise.reject(i)}finally{A(N.BootstrapApplicationEnd)}}function Dj(e){return typeof e==`boolean`?e:e!=null&&e!==`false`}function Cj(e,n){let t=n?.injector??C(ke),r=t.get(Le),o=t.get(Hi),i=t.get(Kn,null,{optional:!0});o.impl??=t.get(Wl);let s=e;typeof s==`function`&&(s={mixedReadWrite:e});let a=t.get(Dt,null,{optional:!0}),l=new Pc(o.impl,[s.earlyRead,s.write,s.mixedReadWrite,s.read],a?.view,r,t,i?.snapshot(null));return o.impl.register(l),l}function Ij(e){let n=Ze(e);if(!n)return null;let t=new Mt(n);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}function Ej(){return!1}var Mg;var jc;var mj;var gj;var hj;var Bk;var bj;var Oc;var Gk;var Kk;var Qi;var Lc;var Pg;var eS;var Pc;var Qr=p(()=>{Cr();Cr();Rc();Rc();Ng();En();Mg=class{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>df(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}};jc=(Ag.required=Hk,Ag);mj=($g.required=Vk,$g);gj=(_g.required=zk,_g);hj=(Rg.required=Uk,Rg);Bk=1e4,Bk-1e3,bj=(()=>{class e{static __NG_ELEMENT_ID__=qk}return e})();Oc=new M(``),Gk=new M(``);Qi=null;Lc=Symbol(`NOT_SET`),Pg=new Set,eS=G(W({},et),{kind:`afterRenderEffectPhase`,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:Lc,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(this.sequence.lastPhase===null||this.sequence.lastPhase<this.phase)return;this.sequence.erroredOrDestroyed=!0}this.sequence.scheduler.notify(7)},phaseFn(e){if(this.sequence.lastPhase=this.phase,!this.dirty)return this.signal;if(this.dirty=!1,this.value!==Lc&&!Jn(this))return this.signal;try{for(let o of this.cleanup??Pg)o()}finally{this.cleanup?.clear()}let n=[];e!==void 0&&n.push(e),n.push(this.registerCleanupFn);let t=Ve(this),r;try{r=this.userFn.apply(null,n)}finally{nn(this,t)}return(this.value===Lc||!this.equal(this.value,r))&&(this.value=r,this.version++),this.signal}}),Pc=class extends Nr{scheduler;lastPhase=null;nodes=[void 0,void 0,void 0,void 0];onDestroyFns=null;constructor(n,t,r,o,i,s=null){super(n,[void 0,void 0,void 0,void 0],r,!1,i.get(ve),s),this.scheduler=o;for(let a of ql){let l=t[a];if(l===void 0)continue;let c=Object.create(eS);c.sequence=this,c.phase=a,c.userFn=l,c.dirty=!0,c.signal=()=>(He(c),c.value),c.signal[j]=c,c.registerCleanupFn=u=>(c.cleanup??=new Set).add(u),this.nodes[a]=c,this.hooks[a]=u=>c.phaseFn(u)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(this.onDestroyFns!==null)for(let n of this.onDestroyFns)n();super.destroy();for(let n of this.nodes)if(n)try{for(let t of n.cleanup??Pg)t()}finally{tn(n)}}}});var Fg;var Hg=p(()=>{Fg={cancel:`Abbrechen`,close:`Schließen`,remove:`Entfernen`,retry:`Erneut versuchen`,refresh:`Aktualisieren`,search:`Suchen`,loading:`Wird geladen…`,save:`Speichern`,copy:`Kopieren`,copied:`Kopiert`,start:`Starten`,stop:`Stoppen`,restart:`Neu starten`,yes:`Ja`,no:`Nein`,none:`Keine`,unknown:`Unbekannt`,nothingToPrune:`Es gab nichts aufzuräumen.`}});var Vg;var zg=p(()=>{Vg={title:`Compose`,intro:`Projekte aus den Labels Ihrer Container, und die, die die App schon gesehen hat: Nach down bleibt ein Projekt hier stehen, mit Up daneben.`,updating:`Wird aktualisiert…`,state:{running:`läuft`,partial:`teilweise`,stopped:`gestoppt`,down:`nicht gestartet`},runningOf:(e,n)=>`${String(e)} von ${String(n)}`,expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,menuAria:e=>`Aktionen f\xFCr ${e}`,upAria:e=>`${e} hochfahren`,startAria:e=>`${e} starten`,stopAria:e=>`${e} stoppen`,restartAria:e=>`${e} neu starten`,downAria:e=>`${e} herunterfahren`,up:`Up`,down:`Down`,fileAria:e=>`Die Compose-Datei von ${e} anzeigen`,file:{button:`Datei`,title:e=>`Die Compose-Datei von ${e}`,loading:`Wird geladen…`,raw:`Wie geschrieben`,resolved:`Wie Compose sie liest`,rawHint:`Die Datei auf der Platte, unverändert.`,resolvedHint:"Overrides zusammengeführt und ${VAR} eingesetzt: darauf basiert das laufende Projekt.",empty:`Diese Datei ist leer.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},noCli:`Die docker-CLI ist nicht verfügbar`,noWorkingDir:`Es ist nicht bekannt, wo dieses Projekt liegt`,busy:`Läuft… ein Up kann dauern, wenn Images geholt werden müssen.`,empty:`Noch keine Compose-Projekte. Öffnen Sie eine Compose-Datei, oder starten Sie anderswo eines; es erscheint dann von selbst hier.`,openFile:`Compose-Datei öffnen…`,opening:`Wird gestartet…`,openHint:`docker compose -f <Datei> up -d`,forget:`Vergessen`,forgetHint:`Entfernt es aus dieser Liste; die Compose-Datei und etwaige Container bleiben.`,forgotten:e=>`'${e}' vergessen.`,missing:`Die Compose-Datei gibt es nicht mehr.`,notStarted:`keine Container`,downDialog:{title:`Projekt herunterfahren?`,description:e=>`Die Container und Netzwerke von '${e}' werden gestoppt und entfernt. Volumes bleiben erhalten, Ihre Daten bleiben also bestehen.`,confirm:`Herunterfahren`},recreate:`Neu`,recreateAria:e=>`${e} neu aufbauen`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} wurde neu aufgebaut.`,drift:`Datei geändert`,driftTitle:`Die Compose-Datei hat sich geändert, seit dieser Service erstellt wurde. Neu aufbauen übernimmt die Änderung.`,driftProject:e=>`Datei ge\xE4ndert: ${e}`,driftProblem:e=>`Compose kann die Datei nicht lesen: ${e}`,upDone:e=>`'${e}' l\xE4uft.`,downDone:e=>`'${e}' wurde heruntergefahren.`,update:{menu:`Aktualisieren`,hint:`Alle Images holen und erneuern, was sich geändert hat`,title:e=>`${e} aktualisieren`,description:`Alle Images dieses Projekts werden geholt. Danach werden nur die Services erneuert, deren Image sich geändert hat.`,loading:`Ermittle, welche Images das Projekt verwendet…`,waiting:`wartet`,pulling:`wird geholt…`,pulled:`geholt`,failed:e=>`fehlgeschlagen: ${e}`,skippedBuild:`mit build: gebaut, nichts zu holen`,skippedDigest:`auf einen Digest festgelegt`,checking:`Prüfe, was sich geändert hat…`,stale:e=>`Neueres Image f\xFCr: ${e}`,upToDate:`Alles war aktuell; es muss nichts erneuert werden.`,renew:`Erneuern`,renewing:`Wird erneuert…`,renewHint:`docker compose up -d --no-deps, nur diese Services`,renewed:e=>`Erneuert: ${e}.`,unchanged:e=>`L\xE4uft unver\xE4ndert weiter: ${e}.`,noImages:`Dieses Projekt hat keine Images zum Holen.`},build:{button:`Neu bauen`,busy:`Wird gebaut…`,title:`docker compose build --pull, danach up -d --no-deps`,aria:e=>`${e} neu bauen`,done:e=>`${e} wurde neu gebaut und gestartet.`,output:`Ausgabe des Builds`}}});var Ug;var Bg=p(()=>{Ug={actions:{pause:`Pausieren`,resume:`Fortsetzen`,copyDiagnosis:`Diagnose kopieren`,copyRunCommand:`Run-Befehl kopieren`,copyComposeService:`Als Compose-Service`,restartPolicy:`Restart Policy…`,memoryLimit:`Speichergrenze…`,cpuLimit:`CPU-Grenze…`,rename:`Umbenennen…`,commit:`Als Image speichern…`,kill:`Sofort stoppen…`,duplicate:`Duplizieren…`,mute:`Keine Benachrichtigungen`,unmute:`Benachrichtigungen wieder an`,muted:e=>`Keine Benachrichtigungen mehr f\xFCr ${e}.`,unmuted:e=>`Benachrichtigungen f\xFCr ${e} sind wieder an.`,adjust:`Anpassen…`,recreate:`Neu aufbauen`},page:{title:`Container`,cpuUsage:`CPU-Auslastung`,memoryUsage:`Speicherauslastung`,search:`Nach Name, Image oder ID suchen`,onlyRunning:`Nur laufende Container`,updating:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Container gefunden.`,columns:{name:`Name`,id:`Container-ID`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Speicher`,actions:`Aktionen`},group:{loose:`Einzelne Container`,expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,count:e=>e===1?`1 Container`:`${String(e)} Container`,running:e=>`${String(e)} laufend`,startAll:`Alle starten`,stopAll:`Alle stoppen`,restartAll:`Alle neu starten`,removeAll:`Alle entfernen`,menu:e=>`Aktionen f\xFCr alle in ${e}`,manual:`Eigene Gruppe`,addToGroup:`Zu Gruppe hinzufügen…`,removeFromGroup:`Aus Gruppe nehmen`,rename:`Gruppe umbenennen…`,dissolve:`Gruppe auflösen`},groupDialog:{assignTitle:`Zu Gruppe hinzufügen`,assignOne:e=>`'${e}' kommt in die Gruppe, die du hier benennst.`,assignMany:e=>`${String(e)} Container kommen in die Gruppe, die du hier benennst.`,renameTitle:`Gruppe umbenennen`,renameDescription:e=>`Alles in '${e}' zieht mit dem neuen Namen um.`,nameLabel:`Gruppenname`,namePlaceholder:`zum Beispiel mein-stack`,existing:`Vorhandene Gruppen`,hint:`Eine eigene Gruppe lebt in dieser App und folgt dem Containernamen; Docker selbst weiß nichts davon.`,empty:`Bitte einen Namen eingeben.`,reserved:e=>`'${e}' ist bereits ein Compose-Projekt.`,submit:`Speichern`},row:{diagnosisOf:e=>`Diagnose von ${e}`,missingNetwork:e=>`L\xE4uft, h\xE4ngt aber nicht an ${e}`,menu:e=>`Aktionen f\xFCr ${e}`,muted:`Keine Benachrichtigungen für diesen Container`},confirm:{title:`Container entfernen?`,one:e=>`'${e}' wird gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`,many:e=>`${e===1?`1 Container wird`:`${String(e)} Container werden`} gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`,group:(e,n)=>`Die ${String(e)} Container von '${n}' werden gestoppt und entfernt. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen; Volumes bleiben erhalten.`}},detail:{back:`‹ Container`,menu:`Aktionen für diesen Container`,gone:` existiert nicht mehr. Ein Container mit --rm verschwindet, sobald er stoppt, und compose legt beim Up einen neuen an.`,goneUnnamed:`Diesen Container gibt es nicht mehr.`,successor:(e,n)=>`Zum aktuellen ${e} (${n})`,tabsLabel:`Container-Details`,tabs:{logs:`Logs`,health:`Health`,events:`Ereignisse`,inspect:`Inspect`,env:`Umgebung`,stats:`Stats`,processes:`Prozesse`,terminal:`Terminal`,files:`Dateien`,networks:`Netzwerke`,assistant:`Claude`},wiring:{network:e=>`L\xE4uft, h\xE4ngt aber nicht an ${e}. \xDCber dieses Netzwerk erreicht ihn nichts, und er nichts.`,networkWhy:`Das passiert, wenn das Netzwerk entfernt und neu erstellt wurde, während der Container existierte.`,connect:e=>`An ${e} anh\xE4ngen`,ports:e=>`L\xE4uft, ver\xF6ffentlicht ${e} aber nicht.`,portsWhy:`Das passiert, wenn er nach einem Start, der an einem belegten Port scheiterte, noch einmal gestartet wurde.`,portsFromNetwork:`Das folgt aus dem fehlenden Netzwerk oben: Ports laufen über ein Netzwerk.`,restart:`Neu starten`},events:{loading:`Wird geladen…`,empty:`Noch nichts aufgezeichnet. Die App zeichnet ab ihrem Start auf, plus was Docker dann noch wusste.`,scope:`In der App seit ihrem Start aufgezeichnet, bis zu 100 pro Containername; nach einem Neustart der App ergänzt Docker, was es noch weiß.`,crashLoop:e=>`In der letzten Stunde ${String(e)}-mal abgest\xFCrzt.`,create:`Erstellt`,start:`Gestartet`,exited:e=>e===0?`Normal beendet`:`Beendet mit Code ${String(e)}`,exitedUnknown:`Beendet`,exitHint137:`SIGKILL: von außen beendet, oft Speicher voll oder ein Stopp, der zu lange dauerte`,exitHint143:`SIGTERM: zum Beenden aufgefordert`,kill:e=>`${e} gesendet`,oom:`Vom Kernel beendet: Speicher voll`,stop:`Gestoppt`,restart:`Neu gestartet`,pause:`Pausiert`,unpause:`Fortgesetzt`,destroy:`Entfernt`,rename:e=>`Umbenannt, war ${e}`,renamed:`Umbenannt`,health:{starting:`Healthcheck beginnt`,healthy:`Healthy geworden`,unhealthy:`Unhealthy geworden`}},health:{loading:`Wird geladen…`,refresh:`Aktualisieren`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`noch nicht gelaufen`},failingStreak:e=>e===1?`einmal fehlgeschlagen`:`${String(e)} mal hintereinander fehlgeschlagen`,command:`Befehl`,fromImage:`Kommt aus dem Image; der Daemon nennt den Befehl nicht.`,rhythm:`Rhythmus`,every:e=>`alle ${e}`,timeout:e=>`Timeout ${e}`,startPeriod:e=>`Start period ${e}`,retries:e=>e===1?`1 Versuch bis unhealthy`:`${String(e)} Versuche bis unhealthy`,defaults:`die Standardwerte von Docker`,probes:`Letzte Ergebnisse`,noProbes:`Die Prüfung ist noch nicht gelaufen.`,exitCode:e=>`Exit-Code ${String(e)}`,unknownExitCode:`kein Exit-Code`,noOutput:`keine Ausgabe`},networks:{title:`Hängt an diesen Netzwerken`,loading:`Wird geladen…`,empty:`Dieser Container hängt an keinem Netzwerk.`,noAddress:`keine Adresse`,alsoKnownAs:e=>`auch erreichbar als ${e}`,disconnect:`Trennen`,disconnectFrom:e=>`Von ${e} trennen`,addTitle:`Mit einem Netzwerk verbinden`,addHint:`Wirkt sofort, auch während der Container läuft.`,allConnected:`Dieser Container hängt schon an jedem Netzwerk.`,networkLabel:`Netzwerk`,choose:`Netzwerk wählen…`,alias:`Zusätzlicher Name im Netzwerk`,aliasHint:`Ein zusätzlicher Name, unter dem die anderen Container in diesem Netzwerk ihn ansprechen können, neben dem Containernamen.`,aliasPlaceholder:`datenbank`,connect:`Verbinden`,working:`Läuft…`,invalidAlias:e=>`'${e}' ist kein g\xFCltiger Name. Nehmen Sie Buchstaben, Ziffern, Punkte, Bindestriche und Unterstriche.`},fetching:`Wird geladen…`,terminalLoading:`Terminal wird geladen…`,shellOnlyRunning:`Eine Shell lässt sich nur in einem laufenden Container öffnen.`,cpu:`CPU`,lastMinute:e=>`letzte Minute \xB7 Spitze ${e} %`,chartPending:`das Diagramm erscheint nach ein paar Messwerten`,memory:`Speicher`,ofLimit:e=>`${e} % des Limits`,noLimit:`kein Limit gesetzt`,cpuOfLimit:(e,n)=>`${e} % der Grenze von ${n} CPU`,cpuNoLimit:`keine Grenze gesetzt: bis zu allen Prozessoren`,nearLimit:`Nahe an der Grenze: darüber beendet der Kernel Prozesse im Container.`,statsOnlyRunning:`Stats werden nur für einen laufenden Container erfasst.`,confirmTitle:`Container entfernen?`,confirmDescription:`Dieser Container wird gestoppt und entfernt. Das lässt sich nicht rückgängig machen; Volumes bleiben erhalten.`},diagnosis:{title:`Diagnose kopieren`,description:`Status, Health, Mounts, Events und die letzten Logzeilen, zum Einfügen in einen Chat oder ein Issue. Genau das wird kopiert.`,collecting:`Wird gesammelt…`,noRedactions:`Nichts ausgelassen; kein Wert sah nach einem Geheimnis aus.`,redactions:e=>`${e===1?`1 Wert`:`${String(e)} Werte`} ausgelassen: Umgebungsvariablen und alles, was nach einem Passwort, Token oder Schl\xFCssel aussah.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},memoryLimit:{title:`Speichergrenze`,description:`Wie viel Speicher der Container nutzen darf. Wirkt sofort; der Container wird dafür nicht neu erstellt.`,loading:`Wird geladen…`,current:e=>`Jetzt: ${e}`,none:`Jetzt: keine Grenze`,label:`Grenze`,unit:`Einheit`,noRemove:`Eine Grenze entfernen geht so nicht: Docker ändert sie nur. Für keine Grenze muss der Container neu erstellt werden.`,compose:`Das ist ein Compose-Container: compose up stellt wieder her, was in der Compose-Datei steht.`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`Die Speichergrenze ist jetzt ${e}.`,invalid:`Geben Sie eine Zahl größer als null ein.`},editor:{title:e=>`${e} bearbeiten`,loading:`Wird geladen…`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`${e} gespeichert.`,closeUnsaved:`Ohne Speichern schließen`,unsaved:`Nicht gespeichert`,conflict:`Trotzdem speichern, über die andere Änderung hinweg, oder die Datei neu laden und Ihre verlieren?`,reload:`Neu laden`,overwrite:`Trotzdem speichern`,onMount:`Diese Datei liegt auf einem Volume oder eingehängten Ordner: Die Änderung bleibt.`,notOnMount:`Diese Änderung liegt im Container selbst: Beim nächsten Neuaufbau ist sie weg. Speichern Sie den Container als Image, um sie zu behalten.`,saveAsImage:`Als Image speichern…`,restart:`Ein Programm liest seine Konfiguration meist beim Start; starten Sie den Container neu, um die Änderung zu nutzen.`,inVolume:`Container, die dieses Volume nutzen, sehen die Änderung sofort; die meisten Programme lesen ihre Konfiguration erst beim Neustart erneut.`},adjust:{title:e=>`${e} anpassen`,description:`Docker kann dies an einem bestehenden Container nicht ändern, daher wird er unter demselben Namen neu erstellt. Startet der neue nicht, bleibt der alte, wie er war. Volumes bleiben.`,loading:`Wird geladen…`,env:`Umgebungsvariablen`,envHint:`Eine pro Zeile, NAME=Wert. Auch Passwörter sind hier sichtbar.`,envInvalid:e=>`Zeile ${String(e)} ist kein NAME=Wert.`,ports:`Ports auf diesem Rechner`,portHint:`Leer: Docker wählt einen freien.`,hostPort:e=>`Port auf diesem Rechner f\xFCr ${e}`,restart:`Restart Policy`,compose:`Dies ist ein Compose-Container: Ändern Sie ihn in der Compose-Datei und bauen Sie ihn danach mit Neu aufbauen neu auf.`,openFile:`Compose-Datei ansehen`,save:`Anwenden`,saving:`Wird angewendet…`,done:e=>`${e} l\xE4uft mit den neuen Einstellungen.`},duplicate:{title:e=>`${e} duplizieren`,description:`Ein neuer Container mit denselben Einstellungen, um etwas nebeneinander auszuprobieren. Er startet sofort.`,loading:`Wird geladen…`,name:`Name`,invalid:`Mindestens zwei Zeichen: ein Buchstabe oder eine Ziffer, gefolgt von Buchstaben, Ziffern, _ . oder -.`,taken:`Es gibt bereits einen Container mit diesem Namen.`,ports:`Ports auf diesem Rechner`,portHint:`Derselbe Port zweimal geht nicht. Leer: Docker wählt einen freien.`,hostPort:e=>`Port auf diesem Rechner f\xFCr ${e}`,volumes:`Volumes`,volumesHint:`Zwei Container auf einem Volume schreiben in dieselben Dateien; für eine Datenbank ist eine Kopie sicherer. Bei einem großen Volume dauert das Kopieren.`,copy:`Kopie`,share:`Teilen`,compose:`Dies ist ein Compose-Container. Die Kopie steht außerhalb des Projekts: Compose kennt sie nicht.`,save:`Duplizieren`,saving:`Wird dupliziert…`,done:e=>`${e} l\xE4uft.`},processes:{notRunning:`In einem gestoppten Container läuft nichts.`,loading:`Wird geladen…`,hint:e=>`${String(e)} Prozesse, der aktivste oben. Aktualisiert sich alle paar Sekunden; klicken Sie auf einen Befehl, um ihn ganz zu sehen.`,pids:`Die PID ist die des Hosts, nicht die von ps im Container.`,user:`Benutzer`,memory:`Speicher`,elapsed:`Läuft seit`,command:`Befehl`,redacted:`Was wie ein Geheimnis aussieht, ist ausgelassen.`},kill:{title:`Sofort stoppen?`,description:e=>`${e} bekommt SIGKILL: Der Prozess endet sofort, ohne die Chance aufzur\xE4umen. Was noch nicht geschrieben ist, ist weg.`,confirm:`Sofort stoppen`,now:`Jetzt stoppen`,hint:`Das Stoppen dauert: Docker wartet, bis der Prozess selbst endet.`},rename:{title:`Container umbenennen`,description:e=>`Ein neuer Name f\xFCr ${e}. Geht auch, w\xE4hrend er l\xE4uft; der Container wird daf\xFCr nicht neu erstellt.`,label:`Name`,invalid:`Mindestens zwei Zeichen: ein Buchstabe oder eine Ziffer, gefolgt von Buchstaben, Ziffern, _ . oder -.`,taken:`Es gibt bereits einen Container mit diesem Namen.`,compose:`Dies ist ein Compose-Container. Compose erkennt ihn an seinen Labels, nicht am Namen: Er bleibt im Projekt, bekommt aber den Namen aus dem Projekt zurück, sobald Compose ihn neu erstellt.`,save:`Umbenennen`,saving:`Umbenennen…`,saved:(e,n)=>`${e} hei\xDFt jetzt ${n}.`},commit:{title:`Als Image speichern`,description:`Speichert das Dateisystem des Containers als neues Image, mit allem, was Sie darin geändert haben. Der Container selbst bleibt, wie er ist.`,label:`Name und Tag`,suffix:`-angepasst`,hint:`Kleinbuchstaben, etwa mein-app:1.0. Ohne Tag wird es latest.`,invalid:`Ein Image-Name ist kleingeschrieben, etwa mein-app oder registry.example.com/team/app, optional gefolgt von :tag.`,exists:e=>`${e} gibt es bereits; das Tag wandert zum neuen Image, das alte bleibt ohne Tag zur\xFCck.`,running:`Der Container ist während des Speicherns angehalten, meist ein paar Sekunden.`,mounts:`Nicht im Image: Volumes und Ordner, die im Container eingehängt sind. Die gehören zum Container, nicht zu seinem Dateisystem.`,save:`Speichern`,saving:`Speichern…`,saved:(e,n)=>`Gespeichert als ${e} (${n}).`,toImage:`Zum Image`,run:`Container starten…`},cpuLimit:{title:`CPU-Grenze`,description:`Wie viel Prozessorzeit der Container nutzen darf. Gilt sofort; der Container muss dafür nicht neu erstellt werden.`,loading:`Wird geladen…`,current:e=>`Jetzt: h\xF6chstens ${e} CPU`,none:`Jetzt: keine Grenze`,label:`Prozessoren`,hint:e=>`Zwischen 0,01 und ${e}; 1 ist ein ganzer Prozessor, 0,5 ein halber.`,noRemove:`Eine Grenze lässt sich so nicht entfernen: Docker ändert sie nur. Ohne Grenze muss der Container neu erstellt werden.`,compose:`Dies ist ein Compose-Container: compose up stellt wieder her, was in der Compose-Datei steht.`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`Die CPU-Grenze ist jetzt ${e} CPU.`,invalid:`Geben Sie eine Zahl größer als null ein.`},environment:{loading:`Wird geladen…`,name:`Name`,value:`Wert`,source:`Stammt aus`,sources:{image:`dem Image`,set:`beim Start`,changed:`beim Start, über das Image hinweg`},show:`anzeigen`,reveal:e=>`Den Wert von ${e} anzeigen`,emptyValue:`(leer)`,empty:`Dieser Container hat keine Umgebungsvariablen.`,copyAll:`Alles kopieren`,copied:(e,n)=>n===0?`${String(e)} kopiert.`:`${String(e)} kopiert; ${String(n)} verborgene Werte ausgelassen.`,readOnly:`Nur lesen: Eine Variable ändert sich erst, wenn der Container neu erstellt wird. Der run-Befehl im Menü ist ein Anfang.`,composeNote:`Nur lesen: Bei einem Compose-Container gehört eine Variable in die Compose-Datei, danach Neu.`},restartPolicy:{title:`Restart Policy`,description:`Was der Daemon tut, wenn dieser Container stoppt. Wirkt sofort; der Container wird dafür nicht neu erstellt.`,loading:`Wird geladen…`,label:`Richtlinie`,names:{no:`Nie`,always:`Immer`,"unless-stopped":`Außer wenn Sie ihn selbst gestoppt haben`,"on-failure":`Nur nach einem Fehlercode`},maximum:`Höchstens so viele Versuche`,maximumHint:`0 bedeutet, es weiter zu versuchen.`,save:`Speichern`,saving:`Wird gespeichert…`,saved:e=>`Die Restart Policy steht jetzt auf ${e}.`},runCommand:{title:`Run-Befehl kopieren`,description:`Der Befehl, der diesen Container neu erstellt, abgeleitet aus inspect. Was aus dem Image kommt, bleibt weg.`,building:`Wird abgeleitet…`,composeNote:e=>`Dieser Container geh\xF6rt zum Compose-Projekt ${e}; dort ist docker compose up die Antwort. So l\xE4uft er gerade.`,envWarning:e=>`${e===1?`1 Umgebungsvariable steht`:`${String(e)} Umgebungsvariablen stehen`} darin, samt Passw\xF6rtern: der Befehl muss funktionieren.`,noEnv:`Keine eigenen Umgebungsvariablen.`,formatRun:`docker run`,formatCompose:`compose`,composeTitle:`Als Compose-Service`,composeDescription:`Derselbe Container als Stück einer Compose-Datei, aus inspect abgeleitet. Vorhandene Volumes und Netzwerke stehen als external darin.`,composeEnvWarning:e=>`${e===1?`1 Umgebungsvariable steht`:`${String(e)} Umgebungsvariablen stehen`} darin, samt Passw\xF6rtern: die Datei muss funktionieren.`,copyFailed:e=>`Kopieren fehlgeschlagen: ${e}`},logs:{filter:`Nach Text filtern`,follow:`Folgen`,timestamps:`Zeitstempel`,clear:`Leeren`,save:`Speichern…`,saveHint:`Das ganze Log von Docker, mit Zeitstempeln; nicht nur, was Sie hier sehen.`,saved:(e,n)=>`${String(e)} Zeilen gespeichert in ${n}`,connecting:`Wird verbunden…`,count:(e,n)=>`${String(e)} von ${String(n)} Zeilen`,truncated:`älteste Zeilen verworfen`,empty:`Noch keine Logzeilen.`,noMatches:`Dazu passen keine Zeilen.`,range:`Zeitraum`,from:`Ab`,to:`Bis`,toHint:`Leer: bis jetzt, und live.`,apply:`Anzeigen`,lastHour:`Letzte Stunde`,sinceStart:`Seit dem letzten Start`,aroundCrash:`Um den letzten Absturz`,latest:`Letzte Zeilen`,active:(e,n)=>n===null?`Ab ${e}, live`:`${e} bis ${n}`,notLive:`Mit einer Endzeit folgt das Log nicht live.`,firstOnly:`mehr als 2000 Zeilen in diesem Zeitraum: die ersten stehen hier, speichern für alle`,saveRangeHint:`Dieser Zeitraum von Docker, mit Zeitstempeln; nicht nur, was hier zu sehen ist.`},files:{edit:e=>`${e} bearbeiten`,up:`Einen Ordner nach oben`,path:`Pfad im Container`,refresh:`Aktualisieren`,changed:`Geändert`,changesTitle:`Geändert gegenüber dem Image`,changesCount:e=>e===1?`1 Pfad`:`${String(e)} Pfade`,changesEmpty:`Dieser Container hat nichts an seinem Image geändert.`,changesHint:`Ordner, die sich nur geändert haben, weil etwas darin liegt, fehlen hier. Volumes zählen nicht mit.`,changeKind:{added:`hinzugefügt`,modified:`geändert`,deleted:`gelöscht`},openFolderOf:e=>`Den Ordner von ${e} \xF6ffnen`,upload:`Hochladen…`,empty:`Dieser Ordner ist leer.`,downloadFolder:e=>`Ordner als tar herunterladen: ${e}`,downloadFile:e=>`Herunterladen: ${e}`,hint:e=>`Legen Sie Dateien hier ab, um sie in ${e} zu legen. Ein Ordner wird als .tar heruntergeladen, damit Rechte und Symlinks erhalten bleiben.`,savedAs:e=>`Gespeichert als ${e}.`,uploaded:(e,n)=>`${e===1?`1 Datei`:`${String(e)} Dateien`} in ${n} gelegt.`},fileOps:{newFolder:`Neuer Ordner…`,rename:e=>`${e} umbenennen`,removeOf:e=>`${e} entfernen`,downloadFile:e=>`Herunterladen: ${e}`,downloadFolder:e=>`Ordner als tar herunterladen: ${e}`,renameLabel:e=>`Neuer Name f\xFCr ${e}`,createLabel:`Name des neuen Ordners`,save:`Umbenennen`,create:`Anlegen`,remove:`Entfernen`,counting:e=>`${e} entfernen? Inhalt wird gez\xE4hlt\u2026`,confirmFile:e=>`${e} entfernen? Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen.`,confirmDir:(e,n)=>n===0?`Den leeren Ordner ${e} entfernen?`:`${e} mit ${n===1?`1 Eintrag`:`${String(n)} Eintr\xE4gen`} darin entfernen? Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen.`,confirmDirUncounted:e=>`${e} mit allem darin entfernen? Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen.`,renamed:(e,n)=>`${e} hei\xDFt jetzt ${n}.`,created:e=>`Ordner ${e} angelegt.`,removed:e=>`${e} entfernt.`},terminal:{exited:`Die Shell wurde beendet.`,reopen:`Erneut öffnen`,connecting:`Wird verbunden…`,connected:`verbunden`,user:`Benutzer`,fromImage:`Aus dem Image`,other:`Anderer…`,otherPlaceholder:`Name oder UID`,open:`Öffnen`,asRoot:`Als root: Was Sie ändern, ändern Sie als root.`},assistant:{introHost:`Claude bekommt einen Überblick über die Engine und die Container, liest im Terminal mit und fordert Logs und Inspect selbst an. Jede Anfrage steht unten in der Liste, Geheimnisse bleiben draußen. Claude tippt nie selbst etwas: ein vorgeschlagener Befehl wird zu einer Schaltfläche, die ihn auf den Prompt setzt, und Sie drücken Enter.`,introContainer:`Claude bekommt die Diagnose dieses Containers, ohne Geheimnisse, und fordert danach selbst Logs, Inspect, Events oder die anderen Container an. Jede Anfrage steht unten in der Liste. Claude ändert selbst nichts: ein Vorschlag wird zu einer Schaltfläche, und Sie entscheiden.`,defaultQuestion:`Was ist mit diesem Container los, und was kann ich dagegen tun?`,defaultHostQuestion:`Was siehst du im Terminal, und was bedeutet das?`,onPrompt:`Auf dem Prompt`,done:`Fertig`,thinking:`Claude denkt nach…`,questionLabel:`Frage an Claude`,followUp:`Anschlussfrage`,ask:`Claude fragen`,putInTerminal:`Ins Terminal setzen`,composeUp:e=>`compose up f\xFCr ${e}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} neu starten`,panelClosed:`Das Panel wurde geschlossen.`,usage:(e,n,t)=>`${e} Tokens rein, ${n} aus dem Cache, ${t} raus`}}});var qg;var Wg=p(()=>{qg={title:`Dashboard`,engine:{connecting:`Verbindung zu Docker wird hergestellt…`,running:`Engine läuft`,unreachable:`Engine nicht erreichbar`,startDistro:e=>`${e} starten`,startingDistro:e=>`${e} wird gestartet\u2026`,startDaemon:e=>`Docker in ${e} starten`,startingDaemon:e=>`Docker wird in ${e} gestartet\u2026`,daemonHint:e=>`${e} l\xE4uft, es ist also der Daemon darin, der steht. Die App kann ihn dort starten.`,idleHint:{intro:e=>`${e} wurde vorhin gestartet, ist aber wieder gestoppt. WSL f\xE4hrt eine Distro ohne offene Sitzung nach 15 Sekunden herunter; setzen Sie`,under:`unter`,in:`in`,outro:`, damit sie weiterläuft.`}},contexts:{switchFailed:e=>`Wechsel zu ${e} nicht m\xF6glich`},usage:{cpu:`CPU über alle Container`,memory:`Arbeitsspeicher`,memoryChart:`Arbeitsspeicher über alle Container`,network:`Netzwerk über alle Container`,networkChart:`Netzwerkverkehr über alle Container`,received:`Empfangen`,sent:`Gesendet`,receivedAria:`empfangen`,sentAria:`gesendet`,hostNote:`Container mit network_mode: host zählen nicht mit; sie haben keine eigenen Zähler.`},counts:{containers:`Container`,runningOfTotal:`laufend von gesamt`,images:`Images`,volumesNetworks:`Volumes · Netzwerke`},space:{title:`Wo der Platz ist`,description:`Die zehn größten je Art. Nichts wird ohne die Bestätigung auf der eigenen Seite entfernt.`,loading:`Wird berechnet… Docker geht dafür seinen Speicher durch.`,images:`Images`,volumes:`Volumes`,containers:`Container (was sie selbst geschrieben haben)`,buildCache:`Build-Cache`,buildCacheItems:e=>`${String(e)} Eintr\xE4ge`,usedBy:e=>e===1?`von 1 Container genutzt`:`von ${String(e)} Containern genutzt`,unused:`nicht in Gebrauch`,running:`läuft`,stopped:`gestoppt`,open:`Öffnen`,remove:`Entfernen…`,prune:`Aufräumen…`,empty:`Nichts hier.`,imagesNote:`Die Größe eines Images enthält Schichten, die es mit anderen teilt: So viel wird frei, wenn es das letzte ist, das sie nutzt.`},disk:{title:`Speicherbelegung`,total:e=>`${e} insgesamt`,calculating:`wird berechnet…`,prune:`Aufräumen`,pruning:`Wird aufgeräumt…`,where:`Wo ist der Platz?`,unused:e=>`${String(e)} ungenutzt`,labels:{images:`Images`,containers:`Container`,volumes:`Volumes`,buildCache:`Build-Cache`},footnoteBefore:`Dieselben Zahlen wie`,footnoteAfter:`. Wie viel Platz das Aufräumen tatsächlich freigibt, steht hier nicht: das hängt von gemeinsam genutzten Layern ab, und eine Schätzung, die wie eine Tatsache aussieht, ist schlechter als gar keine Zahl.`},attention:{title:`Braucht Aufmerksamkeit`,none:`Alles in Ordnung: keine Absturzschleifen, nichts unhealthy, alles angehängt.`,loading:`Wird geprüft…`,crashLoop:e=>`in der letzten Stunde ${String(e)}-mal abgest\xFCrzt`,restarting:`startet immer wieder neu`,unhealthy:`Healthcheck schlägt fehl`,network:e=>`l\xE4uft, h\xE4ngt aber nicht an ${e}`,ports:e=>`l\xE4uft, ver\xF6ffentlicht ${e} aber nicht`,update:e=>`es gibt eine neuere Version von ${e}`,projectUpdate:e=>`neuere Versionen von ${e}`,updateProject:`Projekt aktualisieren`,projectDrift:e=>`Compose-Datei ge\xE4ndert; ${e} l\xE4uft noch mit den alten Einstellungen`,toCompose:`Zu Compose`},stopped:{clean:`sauber beendet`,failed:e=>`beendet mit Code ${String(e)}`,created:e=>`erstellt ${e}`},pruneDialog:{title:`Aufräumen`,description:`Was Sie ankreuzen, wird entfernt und lässt sich nicht wiederherstellen.`,confirm:`Aufräumen`,containers:`Gestoppte Container`,containersHint:`Ein pausierter Container bleibt erhalten.`,networks:`Ungenutzte Netzwerke`,networksHint:`bridge, host und none bleiben immer erhalten.`,images:`Images ohne Tag`,imagesHint:`Meist Überbleibsel eines neueren Builds.`,allImages:`Auch getaggte Images ohne Container`,allImagesHint:`Sie müssen sie danach erneut pullen.`,buildCache:`Build-Cache`,buildCacheHint:`Alles, was nicht in Gebrauch ist. Der nächste Build dauert länger.`,volumes:`Anonyme Volumes`,volumesHint:`Benannte Volumes bleiben erhalten. In denen stehen Daten.`},pruneResult:{removed:{containers:e=>e===1?`1 Container`:`${String(e)} Container`,networks:e=>e===1?`1 Netzwerk`:`${String(e)} Netzwerke`,volumes:e=>e===1?`1 Volume`:`${String(e)} Volumes`,images:e=>e===1?`1 Image`:`${String(e)} Images`,buildCache:e=>e===1?`1 Build-Cache-Eintrag`:`${String(e)} Build-Cache-Eintr\xE4ge`},kinds:{containers:`Container`,networks:`Netzwerke`,volumes:`Volumes`,images:`Images`,buildCache:`Build-Cache`},and:`und`,notice:(e,n)=>`${e} entfernt, ${n} freigegeben.`,problem:e=>`Aufr\xE4umen von ${e} nicht m\xF6glich`}}});var Gg;var Zg=p(()=>{Gg={justNow:`gerade eben`,hoursAgo:e=>e===1?`vor 1 Stunde`:`vor ${String(e)} Stunden`,yesterday:`gestern`,daysAgo:e=>`vor ${String(e)} Tagen`,lastMonth:`letzten Monat`,monthsAgo:e=>`vor ${String(e)} Monaten`,lastYear:`letztes Jahr`,yearsAgo:e=>`vor ${String(e)} Jahren`}});var Kg;var Qg;var Yg;var Jg=p(()=>{Kg=e=>`${String(e)} Image${e===1?``:`s`}`,Qg=e=>`${String(e)} Container`,Yg={title:`Images`,diskSpace:`Speicherplatz`,unused:`Ungenutzt`,menuLabel:`Image-Aktionen`,searchLabel:`Nach Repository, Tag oder ID suchen`,onlyUnused:`Nur ungenutzte Images`,refreshing:`Wird aktualisiert…`,updatesHint:`Beim Aktualisieren wird das neue Image geholt. Ein laufender Container behält das alte, bis er neu angelegt wird; bei einem Container aus einem Compose-Projekt bietet die App das nach dem Pull an.`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Images gefunden.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image-ID`,inUse:`In Gebrauch`,created:`Erstellt`,size:`Größe`,actions:`Aktionen`},badge:{newer:`neuere Version`,notInRegistry:`nicht in der Registry`,uncheckable:`nicht prüfbar`},containerCount:Qg,updateTitle:e=>`Aktualisieren: ${e} erneut pullen`,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowUpdate:`Neuere Version pullen`,rowRun:`Container starten…`,rowLayers:`Schichten…`,rowSave:`Als Datei speichern…`,rowTag:`Tag hinzufügen…`,rowUntag:`Dieses Tag entfernen`,rowPush:`Pushen…`,untagged:e=>`Tag ${e} entfernt; das Image bleibt.`,tagDialog:{title:e=>`Neues Tag f\xFCr ${e}`,description:`Ein weiterer Name für dasselbe Image. Mit einer Registry davor können Sie es dorthin pushen, etwa localhost:5000/app:1.0.`,label:`Name und Tag`,invalid:`Ein Image-Name ist kleingeschrieben, etwa mein-app oder registry.example.com/team/app, optional gefolgt von :tag.`,exists:e=>`${e} gibt es bereits; das Tag wandert zu diesem Image.`,save:`Tag hinzufügen`,saving:`Hinzufügen…`,saved:e=>`Getaggt als ${e}.`},buildDialog:{title:`Image bauen`,description:`Aus einem Ordner mit einem Dockerfile, mit docker build: BuildKit, .dockerignore und der Cache funktionieren wie gewohnt.`,choose:`Ordner wählen…`,other:`Anderer Ordner…`,none:`In diesem Ordner gibt es kein Dockerfile.`,file:`Dockerfile`,name:`Name und Tag`,invalid:`Ein Image-Name ist kleingeschrieben, etwa mein-app oder registry.example.com/team/app, optional gefolgt von :tag.`,exists:e=>`${e} gibt es bereits; das Tag wandert zum neuen Image.`,build:`Bauen`,building:`Wird gebaut… das kann dauern.`,done:e=>`Gebaut als ${e}.`,output:`Ausgabe des Builds`,run:`Container starten…`},pushDialog:{title:e=>`${e} pushen`,registry:e=>`Geht an ${e}, mit den Anmeldedaten von docker login.`,hub:`Geht an Docker Hub, mit den Anmeldedaten von docker login.`,hubPublic:`Ist das Repository auf Docker Hub öffentlich, kann jeder dieses Image holen.`,final:`Ein Push lässt sich nicht rückgängig machen: Was in der Registry liegt, bleibt dort, bis Sie es dort entfernen.`,other:`In eine andere Registry? Geben Sie ihm zuerst ein Tag mit dieser Registry davor.`,confirm:`Pushen`,pushing:`Wird gepusht…`,done:`Gepusht.`},runLabel:e=>`Einen Container aus ${e} starten`,runLabelDangling:`Einen Container aus diesem Image ohne Tag starten`,layers:{title:e=>`Schichten von ${e}`,description:`Neueste zuerst, so wie docker history sie zeigt: die letzte Zeile des Dockerfiles oben.`,loading:`Wird geladen…`,summary:(e,n)=>`${e===1?`1 Schicht`:`${String(e)} Schichten`} \xB7 Image ${n}`,packed:e=>`Die Schichten ergeben zusammen ${e}: bei diesem Speicher meldet Docker jede Schicht so, wie sie ankam \u2014 gepackt. Auf der Platte ist das Image gr\xF6\xDFer.`,noSize:`ändert nichts auf der Platte`,expand:`Den ganzen Befehl zeigen`,empty:`Dieses Image meldet keine Schichten.`},menu:{pull:`Image pullen`,check:`Nach Updates suchen`,checking:`Wird geprüft…`,pruneDangling:`Ohne Tag aufräumen`,pruneUnused:`Ungenutzte aufräumen`,load:`Aus Datei laden…`,build:`Image bauen…`},remove:{title:`Image entfernen?`,description:e=>`'${e}' wird entfernt. Hat dieses Image weitere Tags, verschwindet nur dieser Tag.`,forceTitle:`Image erzwungen entfernen?`,forceDescription:(e,n)=>`'${e}' wird von ${Qg(n)} benutzt. Es l\xE4sst sich nur erzwungen entfernen, und diese Container funktionieren dann nicht mehr.`,forceConfirm:`Trotzdem entfernen`,manyTitle:`Images entfernen?`,manyDescription:e=>`${Kg(e)} werden entfernt. Images, die noch in Gebrauch sind, werden \xFCbersprungen.`},prune:{allTitle:`Alle ungenutzten Images aufräumen?`,allDescription:`Alles ohne angehängten Container wird entfernt, auch Images, die Sie selbst gepullt haben. Sie müssen sie erneut pullen.`,danglingTitle:`Images ohne Tag aufräumen?`,danglingDescription:`Images ohne Tag werden entfernt. Das sind meist Überbleibsel eines neueren Builds.`,confirm:`Aufräumen`},pruned:(e,n)=>`${Kg(e)} entfernt, ${n} freigegeben.`,check:{allCurrent:`Alles ist aktuell`,updates:e=>`${e===1?`1 Image hat`:`${String(e)} Images haben`} eine neuere Version`,notInRegistry:e=>`${String(e)} nicht in einer Registry`,uncheckable:e=>`${String(e)} nicht pr\xFCfbar`,summary:(e,n)=>`${e} (${String(n)} gepr\xFCft).`},pullDialog:{hits:`Aus Docker Hub`,official:`offiziell`,stars:e=>`${String(e)} Sterne`,title:`Image pullen`,nameAndTag:`Name und Tag, zum Beispiel`,withoutTag:`Ohne Tag wird`,isUsed:`benutzt.`,inputLabel:`Image`,submit:`Pullen`,staleHeading:`Diese Container laufen noch mit der vorherigen Version:`,inProject:e=>`in ${e}`,notCompose:`nicht mit compose gestartet; legen Sie ihn selbst neu an`,renewed:e=>`Neu angelegt: ${e}.`,renew:`Container neu anlegen`,renewing:`Wird neu angelegt…`,renewHint:`Bei compose nur diese Services.`},runDialog:{title:`Container starten`,fromImage:`Aus Image`,name:`Name`,namePlaceholder:`leer lassen = Docker wählt einen`,autoRestart:`Automatisch neu starten`,autoRestartHint:`Nach einem Absturz oder wenn Docker neu startet. Nicht, wenn Sie ihn selbst stoppen.`,ports:`Ports`,portsHint:`Einen Port des Containers von diesem Rechner aus erreichbar machen, zum Beispiel localhost:8080.`,onThisComputer:`Auf diesem Rechner`,inContainer:`Im Container`,protocolHeader:`Protokoll`,hostPortPlaceholder:`leer = beliebiger freier Port`,addPort:`Port hinzufügen`,hostPort:e=>`Host-Port ${String(e)}`,containerPort:e=>`Container-Port ${String(e)}`,protocol:e=>`Protokoll ${String(e)}`,removePort:e=>`Port ${String(e)} entfernen`,network:`Netzwerk`,networkHint:`Container in einem selbst angelegten Netzwerk erreichen sich gegenseitig über den Namen. Im Standardnetzwerk nicht.`,networkDefault:`Standard (bridge)`,networkAlias:`Zusätzlicher Name im Netzwerk`,networkAliasHint:`Ein zusätzlicher Name, unter dem die anderen Container in diesem Netzwerk ihn ansprechen können, neben dem Containernamen.`,networkAliasPlaceholder:`datenbank`,invalidAlias:e=>`'${e}' ist kein g\xFCltiger Name. Nehmen Sie Buchstaben, Ziffern, Punkte, Bindestriche und Unterstriche.`,volumes:`Volumes`,volumesHint:`Daten, die den Container überleben müssen: ein Volume oder ein Ordner auf der Docker-Maschine.`,source:`Volume oder Ordner`,addVolume:`Volume hinzufügen`,sourcePlaceholder:`my-data oder /srv/data`,targetPlaceholder:`/pfad/im/container`,volumeSource:e=>`Volume-Quelle ${String(e)}`,volumeTarget:e=>`Volume-Ziel ${String(e)}`,readOnly:`nur lesen`,readOnlyHint:`Der Container kann die Dateien lesen, aber nicht ändern.`,removeVolume:e=>`Volume ${String(e)} entfernen`,env:`Umgebungsvariablen`,envHint:`Einstellungen für das Programm im Container. Sie können auch NAME=wert einfügen.`,envNameHeader:`Name`,envValueHeader:`Wert`,addEnv:`Variable hinzufügen`,envName:e=>`Variablenname ${String(e)}`,envValue:e=>`Variablenwert ${String(e)}`,removeEnv:e=>`Variable ${String(e)} entfernen`,submit:`Starten`,starting:`Wird gestartet…`,invalidContainerPort:e=>`'${e}' ist kein g\xFCltiger Container-Port. Nehmen Sie eine Zahl von 1 bis 65535.`,invalidHostPort:e=>`'${e}' ist kein g\xFCltiger Host-Port. Lassen Sie ihn leer, damit Docker einen w\xE4hlt.`,volumeIncomplete:`Ein Volume braucht eine Quelle und ein Ziel.`,notAbsolute:e=>`'${e}' ist kein absoluter Pfad. Das Ziel im Container beginnt mit einem /.`,envNameMissing:`Eine Variable braucht einen Namen.`,envNameWithEquals:e=>`'${e}' darf kein = enthalten; das trennt den Namen vom Wert.`},file:{saving:e=>`${e} wird gespeichert\u2026`,loading:`Wird aus Datei geladen…`,saved:(e,n)=>`Gespeichert als ${e} (${n}).`,loaded:e=>`Geladen: ${e}.`,loadedNothing:`Die Datei wurde gelesen, enthielt aber kein Image.`}}});var Xg;var eh=p(()=>{Xg={title:`Logs`,intro:`Alles, was Ihre laufenden Container schreiben, nach Zeit ineinander verschränkt. Ein Container, der startet oder stoppt, kommt von selbst hinzu oder fällt weg.`,projectLabel:`Compose-Projekt`,allProjects:`Alle Container`,searchLabel:`Logs durchsuchen`,searchPlaceholder:`Suchbegriff oder ein Ausdruck wie /error|warn/`,caseSensitive:`Groß-/Kleinschreibung beachten`,containers:`Container`,nothingRunning:`Es läuft nichts.`,showAll:`Alles wieder einschalten`,timestamps:`Zeitstempel`,clear:`Leeren`,columns:{time:`Zeit`,object:`Objekt`,line:`Zeile`},allFiltered:e=>e===1?`Die einzige Zeile wird vom Filter verborgen.`:`Alle ${String(e)} Zeilen werden vom Filter verborgen.`,empty:`Noch keine Zeilen. Sobald ein Container etwas schreibt, erscheint es hier.`,lineCount:e=>e===1?`1 Zeile`:`${String(e)} Zeilen`,filteredOut:e=>`${String(e)} herausgefiltert`,truncated:`Ältere Zeilen sind aus dem Puffer gefallen.`,invalidExpression:e=>`Kein g\xFCltiger Ausdruck: ${e}`,levels:{label:`Stufe`,errors:`Fehler`,warnings:`Warnungen`,unknownHidden:`Zeilen ohne erkennbare Stufe, etwa ein Stacktrace unter einem Fehler, blendet dieser Filter aus.`}}});var nh;var th;var rh;var oh=p(()=>{nh=e=>`${String(e)} ${e===1?`Netzwerk`:`Netzwerke`}`,th=e=>`${String(e)} Container`,rh={title:`Netzwerke`,unused:`Ungenutzt`,menuLabel:`Netzwerkaktionen`,searchLabel:`Nach Name oder Driver suchen`,hideBuiltIn:`Eingebaute Netzwerke ausblenden`,refreshing:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Netzwerke gefunden.`,builtIn:`eingebaut`,internal:`intern`,columns:{name:`Name`,driver:`Driver`,scope:`Scope`,subnet:`Subnetz`,connected:`Verbunden`,actions:`Aktionen`},containerCount:th,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowMembers:`Wer ist verbunden…`,members:{title:e=>`Verbunden mit ${e}`,description:`Dieselben Container, auf denen die Anzahl auf dieser Seite beruht, auch gestoppte.`,loading:`Wird geladen…`,empty:`Kein Container ist mit diesem Netzwerk verbunden.`,noAddress:`keine Adresse`,stopped:`gestoppt`},builtInReason:`Eingebautes Docker-Netzwerk; kann nicht entfernt werden`,connectedReason:e=>`${th(e)} verbunden; trennen Sie sie zuerst`,menu:{create:`Netzwerk anlegen…`,pruneUnused:`Ungenutzte aufräumen`},createDialog:{title:`Netzwerk anlegen`,description:`Ein eigenes Netzwerk, in dem Container einander über den Namen finden.`,nameLabel:`Name`,namePlaceholder:`mein-netzwerk`,internal:`Nur intern`,internalHint:`Die Container erreichen einander, haben aber keine Route nach außen.`,advanced:`Erweitert`,driverLabel:`Driver`,driverHint:`Lassen Sie das auf bridge, außer Sie betreiben einen Swarm oder benutzen ein Netzwerk-Plugin.`,subnetLabel:`Subnetz`,subnetHint:`Leer lassen, dann sucht Docker selbst einen freien Bereich aus.`,gatewayLabel:`Gateway`,gatewayHint:`Muss im Subnetz liegen. Leer bedeutet die erste Adresse des Bereichs.`,submit:`Anlegen`,creating:`Wird angelegt…`},remove:{title:`Netzwerk entfernen?`,description:e=>`'${e}' wird entfernt. Container, die sp\xE4ter daran h\xE4ngen, finden es nicht mehr.`,manyTitle:`Netzwerke entfernen?`,manyDescription:e=>`${nh(e)} werden entfernt. Netzwerke mit verbundenen Containern und die eingebauten Netzwerke werden \xFCbersprungen.`},prune:{title:`Ungenutzte Netzwerke aufräumen?`,description:`Jedes Netzwerk ohne verbundenen Container wird entfernt. Das gibt keinen Speicherplatz frei; es hält die Liste übersichtlich.`,confirm:`Aufräumen`},pruned:e=>`${nh(e)} entfernt.`,created:e=>`Netzwerk ${e} wurde angelegt.`,ports:{title:`Ports`,none:`Kein Container veröffentlicht einen Port.`,missing:`nicht veröffentlicht`,missingTitle:`Angefordert, aber Docker hat ihn nicht veröffentlicht. Neu aufbauen behebt das.`,open:e=>`localhost:${String(e)} im Browser \xF6ffnen`,searchLabel:`Nach Port oder Container suchen`,intro:`Jeder veröffentlichte Port jedes laufenden Containers, in einer Liste.`,allAddresses:`alle Adressen`,empty:`Kein passender Port.`,columns:{hostPort:`Port`,container:`Container`,target:`Im Container`,address:`Adresse`}}}});var ih;var sh=p(()=>{ih={title:`Einstellungen`,language:{heading:`Sprache`,label:`Sprache der App`,hint:`Fachbegriffe wie container, image und volume bleiben englisch.`},startup:{heading:`Start`,startAtLogin:`Beim Anmelden starten, direkt in den Infobereich`,paletteShortcut:`Strg+Umschalt+Leertaste öffnet die Suche, überall in Windows`,shortcutTaken:`Strg+Umschalt+Leertaste gehört schon einem anderen Programm; die Tastenkombination funktioniert jetzt nicht.`,hintAvailable:`So kommen die Meldungen unten auch an, wenn Sie die App nicht selbst öffnen. Hier ausschalten, oder im Task-Manager unter Autostart-Apps.`,hintUnavailable:`Funktioniert nur in der installierten App. Hier würde Windows eine nackte electron.exe starten.`},backups:{heading:`Automatische Sicherungen`,empty:`Noch kein Volume. Richten Sie es im Menü eines Volumes ein.`,line:(e,n)=>`${e}, nach ${n}`,edit:`Ändern…`,remove:`Beenden`},prune:{heading:`Aufräumen`,auto:`Einmal pro Woche Images ohne Tag und Build-Cache aufräumen`,hint:`Nie Volumes, gestoppte Container oder Images mit Tag: die hat jemand bewusst stehen lassen. Sie bekommen eine Meldung, was es gebracht hat.`,last:e=>`Zuletzt: ${e}.`,never:`Noch nicht geschehen.`},notifications:{heading:`Meldungen`,crash:`Wenn ein Container unerwartet stoppt`,unhealthy:`Wenn ein Container unhealthy wird`,wiring:`Wenn ein Container sein Netzwerk oder seine Ports verliert`,hint:`Ein Container, den Sie selbst stoppen — aus der App, dem Terminal oder mit compose down — löst nie eine Meldung aus. Derselbe Container meldet sich höchstens einmal pro Minute.`,muted:e=>e===1?`1 Container ohne Benachrichtigungen`:`${String(e)} Container ohne Benachrichtigungen`,unmute:`Einschalten`,unmuteAll:`Alle wieder an`,mutedHint:`Nach Name gemerkt: Ein Container, den Compose neu erstellt, bleibt still. Unter Braucht Aufmerksamkeit erscheint er trotzdem.`},update:{heading:`Updates`,version:e=>`Version ${e}`,install:`Neu starten und aktualisieren`,check:`Jetzt prüfen`,auto:`Nach neuen Versionen suchen und sie vorab herunterladen`,unavailable:`Nur die installierte App unter Windows aktualisiert sich selbst. Bei npm aktualisieren Sie über npm.`,idle:`Eine neue Version wird heruntergeladen und installiert, sobald Sie die App schließen.`,checking:`Es wird nach einer neuen Version gesucht…`,upToDate:e=>`Das ist die neueste Version. Gepr\xFCft um ${e}.`,downloading:(e,n)=>`Version ${e} wird heruntergeladen\u2026 ${String(n)} %`,ready:e=>`Version ${e} liegt bereit und wird installiert, wenn Sie die App schlie\xDFen. Starten Sie neu, um sie jetzt zu installieren.`,error:e=>`Pr\xFCfen fehlgeschlagen: ${e}`},servers:{heading:`Server`,hint:`Docker-Hosts über SSH oder TCP. Sie werden als docker-Contexts gespeichert, also kennt die docker-CLI sie auch. Mit der Auswahl in der Statusleiste wechseln Sie zwischen ihnen.`,empty:`Noch keine Server.`,inUse:`in Gebrauch`,cli:`CLI`,test:`Testen`,testing:`Wird getestet…`,remove:`Entfernen`,removeBlocked:`Von der App oder der docker-CLI benutzt. Wechseln Sie zuerst zu einem anderen Context.`,removeTitle:e=>`Server '${e}' entfernen?`,removeDescription:`Das entfernt den docker-Context, auch für die docker-CLI. Auf dem Server selbst ändert sich nichts.`,connected:(e,n,t)=>`Verbunden: Docker ${e} auf ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} ist noch nicht bekannt. Vergleichen Sie diesen ${n}-Fingerabdruck mit dem auf dem Server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub), bevor Sie ihm vertrauen:`,trust:`Vertrauen und erneut testen`,add:{heading:`Einen Server hinzufügen`,name:`Name`,namePlaceholder:`heimserver`,kind:`Verbindung`,ssh:`SSH`,tcp:`TCP`,username:`Benutzer`,usernamePlaceholder:`leer: Benutzer dieses Rechners`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Beschreibung`,descriptionPlaceholder:`optional`,submit:`Hinzufügen`,tcpWarning:`Reines TCP hat keine Authentifizierung: wer im Netzwerk den Port erreicht, steuert Docker. Nehmen Sie lieber SSH.`,added:e=>`Server '${e}' hinzugef\xFCgt.`}},assistant:{configured:`Ein Schlüssel ist hinterlegt.`,clearKey:`Schlüssel entfernen`,keyLabel:`API-Schlüssel`,model:`Modell`,modelHint:`Opus denkt am besten über ein hartnäckiges Problem nach; Sonnet und Haiku antworten schneller und kosten weniger. Haiku liest außerdem weniger auf einmal.`,hint:`Mit Ihrem eigenen Claude-API-Schlüssel bekommt jeder Container einen Claude-Tab, der beim Eingrenzen eines Problems hilft. Der Schlüssel wird verschlüsselt auf diesem Rechner gespeichert und ist nur für Ihren Windows-Benutzer lesbar. Jede Frage kostet ein paar Cent API-Nutzung, auf Ihrem Konto.`}}});var ah;var lh=p(()=>{ah={nav:{label:`Hauptnavigation`,dashboard:`Dashboard`,containers:`Container`,images:`Images`,volumes:`Volumes`,networks:`Netzwerke`,ports:`Ports`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Einstellungen`},routes:{container:`Container`},header:{search:`Suchen (Strg+K)`,lightTheme:`Helles Design`,darkTheme:`Dunkles Design`,quit:`Docker Client MX beenden`},statusBar:{connecting:`Verbindung zu Docker wird hergestellt…`,engineRunning:`Engine läuft`,engineUnreachable:`Engine nicht erreichbar`,containers:(e,n)=>`${String(e)} von ${String(n)} Containern`,images:e=>e===1?`1 Image`:`${String(e)} Images`,reconnect:`Neu verbinden`},contextPicker:{label:`Docker-Context`,switching:`Wird gewechselt…`,unsupported:`nicht unterstützt`,inUseByCli:`von der CLI benutzt`},actionMenu:{label:`Aktionen`},confirmDialog:{confirm:`Entfernen`},dataTable:{empty:`Nichts gefunden.`,selectAll:`Alle auswählen`,clearSelection:`Auswahl aufheben`,select:e=>`${e} ausw\xE4hlen`},jsonView:{expand:e=>`Ausklappen: ${e}`,collapse:e=>`Einklappen: ${e}`,empty:`Nichts anzuzeigen.`},toast:{region:`Meldungen (F8)`,close:`Meldung schließen`},usageChart:{ago:e=>`vor ${e}`,max:e=>`max. ${e}`,now:`jetzt`,values:(e,n,t)=>`jetzt ${e}, h\xF6chster Wert ${n}, niedrigster Wert ${t}`,noData:e=>`${e}: noch keine Messwerte.`,summary:(e,n,t)=>`${e} \xFCber die letzten ${n}: ${t}.`},palette:{title:`Gehe zu`,description:`Tippen Sie, um Seiten, Container, Images, Volumes und Netzwerke zu suchen. Pfeiltasten wählen, Enter führt aus.`,placeholder:`Nach einer Seite, einem Container, Image, Volume oder Netzwerk suchen…`,results:`Ergebnisse`,empty:`Nichts gefunden.`,groups:{page:`Seite`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Netzwerk`,action:`Aktion`},sections:{page:`Seiten`,container:`Container`,image:`Images`,volume:`Volumes`,compose:`Compose-Projekte`,network:`Netzwerke`,action:`Aktionen`},recent:`Zuletzt`,attention:`Braucht Aufmerksamkeit`,hint:`c Container · i Images · v Volumes · n Netzwerke · p Compose · > Aktionen · → Aktionen einer Zeile`,actions:`Aktionen`,verbs:{start:`Starten`,stop:`Stoppen`,restart:`Neu starten`,pause:`Pausieren`,unpause:`Fortsetzen`,recreate:`Neu aufbauen`},commandHint:`Enter führt es aus`,commandNothing:`Nichts auszuführen`,problems:{unknown:e=>`${e}: nicht gefunden`,ambiguous:(e,n)=>`${e}: ${String(n)} Container, bitte genauer`,state:e=>`${e}: in diesem Zustand nicht m\xF6glich`,notCompose:e=>`${e}: kein Compose-Container`},commandDone:e=>e===1?`1 Befehl ausgeführt.`:`${String(e)} Befehle ausgef\xFChrt.`,events:e=>`Ereignisse von ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Speichergrenze von ${e}\u2026`,cpu:e=>`CPU-Grenze von ${e}\u2026`,rename:e=>`${e} umbenennen\u2026`,processes:e=>`Prozesse in ${e}`,kill:e=>`Kill: ${e}\u2026`,duplicate:e=>`${e} duplizieren\u2026`,commit:e=>`${e} als Image speichern\u2026`,adjust:e=>`${e} anpassen\u2026`,logsHour:e=>`Logs von ${e}, letzte Stunde`,logsCrash:e=>`Logs von ${e} um den Absturz`,imageTag:e=>`Tag zu ${e} hinzuf\xFCgen\u2026`,imagePush:e=>`${e} pushen\u2026`,buildImage:`Image bauen…`,openCompose:`Compose-Datei öffnen…`,composeService:e=>`Compose-Service von ${e}`,copyId:e=>`ID von ${e} kopieren`,imageRun:e=>`${e} starten\u2026`,imageLayers:e=>`Schichten von ${e}`,imagePull:e=>`${e} neu holen`,imageRemove:e=>`${e} entfernen\u2026`,volumeBackup:e=>`Sicherung von ${e}\u2026`,composeLogs:e=>`Logs von ${e} verfolgen`,prune:`Aufräumen…`,space:`Wo ist der Platz?`,mute:e=>`Keine Benachrichtigungen: ${e}`,unmute:e=>`Benachrichtigungen wieder an: ${e}`,volumeSchedule:e=>`Automatische Sicherung von ${e}\u2026`,checkUpdates:`Images auf Updates prüfen`,theme:`Zwischen hell und dunkel wechseln`,useContext:e=>`Zu ${e} wechseln`,copied:e=>`Kopiert: ${e}`,askClaude:e=>`Claude fragen: ${e}`,askNote:`Nur Ihre Frage geht an Claude`,thinking:`Claude denkt nach…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Dafür hat Claude Ihre Container angesehen, mit denselben Tools wie der Tab Claude.`,commandNote:`Dafür hat Claude die Namen und den Zustand Ihrer Container bekommen.`,aiNothing:`Claude hat nichts Passendes gefunden.`,aiMatches:e=>e===1?`1 Treffer`:`${e} Treffer`,noContainerSize:`Die Größe von Containern kennt die Palette nicht, die von Images und Volumes schon.`,updateProject:e=>`${e} aktualisieren`,copyCommand:e=>`Kopieren: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} neu starten`,diagnose:e=>`${e} diagnostizieren`,imageInUse:e=>`Image \xB7 von ${String(e)} Container${e===1?``:`n`} benutzt`,imageUnused:`Image · ungenutzt`,network:e=>`Netzwerk \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} von ${String(n)} laufen`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: Compose-Datei anzeigen`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`${e} neu aufbauen`,recreateDetail:`up --force-recreate nur für diesen Service`,volumeBrowse:e=>`Dateien in ${e}`,networkMembers:e=>`Wer ist mit ${e} verbunden`}}});var ch;var uh=p(()=>{ch={title:`Terminal`,intro:{start:`Eine Shell auf der Maschine, auf der der Docker-Daemon läuft, etwa Ihrer WSL-Distro.`,afterDocker:` funktioniert hier wie gewohnt. Sie sind `,afterRoot:`: die Shell läuft über einen kurzlebigen, privilegierten `,afterAlpine:`-Container, der verschwindet, sobald Sie die Shell oder diese Seite schließen.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Terminal wird geladen…`}});var dh;var Fc;var ph;var fh=p(()=>{dh=e=>`${String(e)} Volume${e===1?``:`s`}`,Fc=e=>`${String(e)} Container`,ph={title:`Volumes`,diskSpace:`Speicherplatz`,calculating:`wird berechnet…`,unused:`Ungenutzt`,menuLabel:`Volume-Aktionen`,searchLabel:`Nach Name suchen`,onlyUnused:`Nur ungenutzte Volumes`,refreshing:`Wird aktualisiert…`,selected:e=>`${String(e)} ausgew\xE4hlt`,empty:`Keine Volumes gefunden.`,columns:{name:`Name`,driver:`Driver`,inUse:`In Gebrauch`,created:`Erstellt`,size:`Größe`,actions:`Aktionen`},containerCount:Fc,rowMenu:e=>`Aktionen f\xFCr ${e}`,rowBrowse:`Inhalt ansehen…`,browse:{title:e=>`In ${e}`,description:`Durchsuchen ist schreibgeschützt, über einen kurzlebigen Hilfscontainer, der verschwindet, wenn Sie dies schließen. Speichern und Hochladen nutzen je einen eigenen.`,loading:`Wird geladen…`,empty:`Dieser Ordner ist leer.`,up:`Ordner nach oben`,path:`Pfad im Volume`,upload:`Hochladen…`,edit:e=>`${e} bearbeiten`,uploaded:(e,n)=>`${String(e)} ${e===1?`Datei`:`Dateien`} nach ${n} gelegt.`},rowBackup:`Als .tar sichern`,rowRestore:`Sicherung zurückspielen…`,rowCopy:`In neues Volume kopieren…`,rowSchedule:`Automatische Sicherung…`,schedule:{title:e=>`Automatische Sicherung von ${e}`,description:`Dieselbe .tar wie Sichern, ohne jedes Mal nach dem Ziel zu fragen. Zurückspielen geht mit Sicherung zurückspielen.`,every:`Wie oft`,daily:`Jeden Tag`,weekly:`Jede Woche`,folder:`Ordner`,noFolder:`Noch kein Ordner gewählt`,chooseFolder:`Wählen…`,keep:`Wie viele bleiben`,inUse:`Wenn ein laufender Container das Volume nutzt`,skip:`Überspringen und es jede Stunde erneut versuchen`,skipHint:`Eine Datenbank, die während der Sicherung schreibt, liefert eine .tar, die sich nicht immer zurückspielen lässt.`,pause:`Diese Container während der Sicherung pausieren`,pauseHint:e=>`Ein paar Sekunden still: ${e}.`,pauseHintNone:`Ein paar Sekunden still für die Container, die es nutzen. Gerade läuft keiner.`,save:`Speichern`,remove:`Keine Sicherungen mehr`,saved:e=>`${e} wird automatisch gesichert. Die erste Sicherung folgt sofort.`,removed:e=>`Keine automatischen Sicherungen mehr von ${e}. Vorhandene bleiben.`,lastOk:(e,n)=>`Letzte Sicherung: ${e}, ${n}.`,lastSkipped:(e,n)=>`\xDCbersprungen am ${e}: in Gebrauch durch ${n}.`,lastFailed:(e,n)=>`Fehlgeschlagen am ${e}: ${n}`,badgeNone:e=>`Automatische Sicherung: ${e}. Noch keine.`,badgeOk:(e,n)=>`Automatische Sicherung: ${e}. Zuletzt: ${n}.`,badgeSkipped:(e,n,t)=>`Automatische Sicherung: ${e}. \xDCbersprungen am ${n}, in Gebrauch durch ${t}.`,badgeFailed:(e,n,t)=>`Automatische Sicherung: ${e}. Fehlgeschlagen am ${n}: ${t}`},backupTitle:e=>`${e} als .tar sichern`,backupTitleInUse:e=>`${e} sichern. Es ist in Gebrauch: eine Datenbank, die w\xE4hrend der Sicherung schreibt, kann eine Sicherung hinterlassen, die sich nicht immer zur\xFCckspielen l\xE4sst. Stoppen Sie den Container zuerst, oder nehmen Sie ihren eigenen Dump.`,restoreTitle:e=>`Eine Sicherung in ${e} zur\xFCckspielen`,inUseReason:e=>`Von ${Fc(e)} benutzt; entfernen oder stoppen Sie sie zuerst`,menu:{create:`Volume anlegen…`,pruneAnonymous:`Anonyme aufräumen`,pruneUnused:`Ungenutzte aufräumen`},createDialog:{title:`Volume anlegen`,description:`Ein leeres Volume mit einem Namen, das Sie später an einen Container hängen.`,nameLabel:`Name`,namePlaceholder:`my-data`,storageLabel:`Wo werden die Daten gespeichert?`,storage:{docker:`Von Docker verwaltet`,dockerHint:`Empfohlen. Docker entscheidet, wo die Daten liegen.`,folder:`Ein Ordner auf der Docker-Maschine`,folderHint:`Ein vorhandener Ordner, etwa um Dateien mit einem Container zu teilen.`,nfs:`Eine NFS-Freigabe im Netzwerk`,nfsHint:`Ein freigegebener Ordner auf einem NAS oder Server.`},folderLabel:`Ordner`,folderHint:`Der Ordner muss auf der Maschine, auf der Docker läuft, schon vorhanden sein. Unter WSL ist C:\\data gleich /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Freigegebener Ordner`,nfsHint:`Wird erst geprüft, wenn ein Container dieses Volume benutzt.`,advanced:`Erweitert`,driverLabel:`Driver`,driverHint:`Lassen Sie das auf local, außer Sie benutzen ein Volume-Plugin.`,submit:`Anlegen`,creating:`Wird angelegt…`},copy:{title:e=>`${e} kopieren`,description:`Alles in diesem Volume kommt in ein neues, mit Eigentümern und Rechten. Das Original bleibt, wie es ist.`,name:`Name des neuen Volumes`,taken:`Es gibt bereits ein Volume mit diesem Namen; wählen Sie einen anderen.`,running:e=>`Wird von ${e} verwendet, und das l\xE4uft. Eine Datenbank, die w\xE4hrend des Kopierens schreibt, liefert eine Kopie, die sie selbst vielleicht nicht mehr liest: erst stoppen.`,stopped:e=>`Wird von ${e} verwendet, das steht still: w\xE4hrend des Kopierens schreibt nichts.`,copy:`Kopieren`,copying:`Wird kopiert…`,copied:(e,n)=>`${e} wurde nach ${n} kopiert.`},restore:{title:e=>`Eine Sicherung in ${e} zur\xFCckspielen?`,description:e=>`Dateien mit demselben Namen werden überschrieben; was nicht in der Sicherung steht, bleibt. `+(e>0?`Stoppen Sie zuerst ${Fc(e)}, die dieses Volume benutzen: eine laufende Datenbank merkt nicht, dass sich ihre Dateien ge\xE4ndert haben. `:``)+`Die Datei wählen Sie als Nächstes.`,confirm:`Datei wählen`},remove:{title:`Volume entfernen?`,description:e=>`Alle Daten in '${e}' gehen verloren. Das l\xE4sst sich nicht r\xFCckg\xE4ngig machen.`,manyTitle:`Volumes entfernen?`,manyDescription:e=>`Alle Daten in ${dh(e)} gehen verloren. Volumes, die noch in Gebrauch sind, werden \xFCbersprungen.`},prune:{allTitle:`Alle ungenutzten Volumes aufräumen?`,allDescription:`Jedes Volume ohne angehängten Container wird entfernt, auch benannte Volumes, die Sie selbst angelegt haben. Die Daten darin sind danach weg.`,anonymousTitle:`Anonyme Volumes aufräumen?`,anonymousDescription:`Volumes ohne Namen, die kein Container mehr benutzt, werden entfernt. Das sind meist Überbleibsel von Containern, die es längst nicht mehr gibt.`,confirm:`Aufräumen`},created:e=>`Volume ${e} wurde angelegt.`,pruned:(e,n)=>`${dh(e)} entfernt, ${n} freigegeben.`,backedUp:(e,n)=>`Sicherung von ${e} gespeichert als ${n}.`,restored:(e,n)=>`${e} wurde in ${n} zur\xFCckgespielt.`}});var mh;var gh=p(()=>{Hg();zg();Bg();Wg();Zg();Jg();eh();oh();sh();lh();uh();fh();mh={common:Fg,compose:Vg,containers:Ug,dashboard:qg,format:Gg,images:Yg,logs:Xg,networks:rh,settings:ih,shell:ah,terminal:ch,volumes:ph}});var hh;var vh=p(()=>{hh={cancel:`Cancelar`,close:`Cerrar`,remove:`Eliminar`,retry:`Reintentar`,refresh:`Actualizar`,search:`Buscar`,loading:`Cargando…`,save:`Guardar`,copy:`Copiar`,copied:`Copiado`,start:`Iniciar`,stop:`Detener`,restart:`Reiniciar`,yes:`Sí`,no:`No`,none:`Ninguno`,unknown:`Desconocido`,nothingToPrune:`No había nada que limpiar.`}});var yh;var bh=p(()=>{yh={title:`Compose`,intro:`Proyectos a partir de las labels de tus contenedores, y los que la aplicación ya vio: después de down, un proyecto sigue aquí, con Up al lado.`,updating:`Actualizando…`,state:{running:`en marcha`,partial:`parcial`,stopped:`detenido`,down:`no iniciado`},runningOf:(e,n)=>`${String(e)} de ${String(n)}`,expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,menuAria:e=>`Acciones para ${e}`,upAria:e=>`Levantar ${e}`,startAria:e=>`Iniciar ${e}`,stopAria:e=>`Detener ${e}`,restartAria:e=>`Reiniciar ${e}`,downAria:e=>`Bajar ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Mostrar el archivo compose de ${e}`,file:{button:`Archivo`,title:e=>`El archivo compose de ${e}`,loading:`Cargando…`,raw:`Tal como está escrito`,resolved:`Tal como lo lee compose`,rawHint:`El archivo en el disco, sin cambios.`,resolvedHint:"Overrides combinados y ${VAR} sustituidas: en esto se basa el proyecto en marcha.",empty:`Este archivo está vacío.`,copyFailed:e=>`No se ha podido copiar: ${e}`},noCli:`La CLI de docker no está disponible`,noWorkingDir:`No se sabe dónde está este proyecto`,busy:`Trabajando… un up puede tardar si hay que descargar images.`,empty:`Todavía no hay proyectos de Compose. Abre un archivo compose, o inicia uno en otro sitio; aparecerá aquí solo.`,openFile:`Abrir archivo compose…`,opening:`Iniciando…`,openHint:`docker compose -f <archivo> up -d`,forget:`Olvidar`,forgetHint:`Lo quita de esta lista; el archivo compose y los contenedores que haya se quedan.`,forgotten:e=>`'${e}' olvidado.`,missing:`El archivo compose ya no existe.`,notStarted:`sin contenedores`,downDialog:{title:`¿Bajar el proyecto?`,description:e=>`Los contenedores y las redes de '${e}' se detendr\xE1n y se eliminar\xE1n. Los volumes se conservan, as\xED que tus datos se mantienen.`,confirm:`Bajar`},recreate:`Recrear`,recreateAria:e=>`Recrear ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} se ha recreado.`,drift:`archivo modificado`,driftTitle:`El archivo compose cambió desde que se creó este servicio. Recrearlo aplica el cambio.`,driftProject:e=>`Archivo modificado: ${e}`,driftProblem:e=>`Compose no puede leer el archivo: ${e}`,upDone:e=>`'${e}' est\xE1 en marcha.`,downDone:e=>`'${e}' se ha bajado.`,update:{menu:`Actualizar`,hint:`Descargar todas las imágenes y renovar lo que cambió`,title:e=>`Actualizar ${e}`,description:`Se descargan todas las imágenes de este proyecto. Después solo se renuevan los servicios cuya imagen cambió.`,loading:`Buscando qué imágenes usa el proyecto…`,waiting:`en espera`,pulling:`descargando…`,pulled:`descargada`,failed:e=>`fall\xF3: ${e}`,skippedBuild:`construida con build:, nada que descargar`,skippedDigest:`fijada a un digest`,checking:`Comprobando qué cambió…`,stale:e=>`Imagen m\xE1s reciente para: ${e}`,upToDate:`Todo estaba al día; no hace falta renovar nada.`,renew:`Renovar`,renewing:`Renovando…`,renewHint:`docker compose up -d --no-deps, solo estos servicios`,renewed:e=>`Renovados: ${e}.`,unchanged:e=>`Siguen en marcha: ${e}.`,noImages:`Este proyecto no tiene imágenes que descargar.`},build:{button:`Reconstruir`,busy:`Construyendo…`,title:`docker compose build --pull, después up -d --no-deps`,aria:e=>`Reconstruir ${e}`,done:e=>`${e} se ha reconstruido y arrancado.`,output:`Salida del build`}}});var wh;var Dh=p(()=>{wh={actions:{pause:`Pausar`,resume:`Reanudar`,copyDiagnosis:`Copiar el diagnóstico`,copyRunCommand:`Copiar el comando run`,copyComposeService:`Como servicio compose`,restartPolicy:`Política de reinicio…`,memoryLimit:`Límite de memoria…`,cpuLimit:`Límite de CPU…`,rename:`Renombrar…`,commit:`Guardar como imagen…`,kill:`Detener de inmediato…`,duplicate:`Duplicar…`,mute:`Sin notificaciones`,unmute:`Activar notificaciones de nuevo`,muted:e=>`Ya no hay notificaciones para ${e}.`,unmuted:e=>`Las notificaciones para ${e} vuelven a estar activas.`,adjust:`Ajustar…`,recreate:`Reconstruir`},page:{title:`Contenedores`,cpuUsage:`Uso de CPU`,memoryUsage:`Uso de memoria`,search:`Buscar por nombre, image o ID`,onlyRunning:`Solo los contenedores en marcha`,updating:`Actualizando…`,selected:e=>`${String(e)} seleccionados`,empty:`No se han encontrado contenedores.`,columns:{name:`Nombre`,id:`ID del contenedor`,image:`Image`,ports:`Puertos`,cpu:`CPU`,memory:`Memoria`,actions:`Acciones`},group:{loose:`Contenedores sueltos`,expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,count:e=>e===1?`1 contenedor`:`${String(e)} contenedores`,running:e=>`${String(e)} en marcha`,startAll:`Iniciar todos`,stopAll:`Detener todos`,restartAll:`Reiniciar todos`,removeAll:`Eliminar todos`,menu:e=>`Acciones para todo en ${e}`,manual:`Grupo propio`,addToGroup:`Añadir a un grupo…`,removeFromGroup:`Sacar del grupo`,rename:`Renombrar el grupo…`,dissolve:`Deshacer el grupo`},groupDialog:{assignTitle:`Añadir a un grupo`,assignOne:e=>`'${e}' pasa al grupo al que des nombre aqu\xED.`,assignMany:e=>`${String(e)} contenedores pasan al grupo al que des nombre aqu\xED.`,renameTitle:`Renombrar el grupo`,renameDescription:e=>`Todo lo que hay en '${e}' se mueve al nombre nuevo.`,nameLabel:`Nombre del grupo`,namePlaceholder:`por ejemplo mi-stack`,existing:`Grupos existentes`,hint:`Un grupo propio vive en esta aplicación y sigue el nombre del contenedor; Docker no sabe nada de él.`,empty:`Escribe un nombre.`,reserved:e=>`'${e}' ya es un proyecto de Compose.`,submit:`Guardar`},row:{diagnosisOf:e=>`Diagn\xF3stico de ${e}`,missingNetwork:e=>`Funciona, pero no est\xE1 conectado a ${e}`,menu:e=>`Acciones para ${e}`,muted:`Sin notificaciones para este contenedor`},confirm:{title:`¿Eliminar el contenedor?`,one:e=>`'${e}' se detendr\xE1 y se eliminar\xE1. Esto no se puede deshacer; los volumes se conservan.`,many:e=>`${e===1?`1 contenedor se detendrá y se eliminará`:`${String(e)} contenedores se detendr\xE1n y se eliminar\xE1n`}. Esto no se puede deshacer; los volumes se conservan.`,group:(e,n)=>`Los ${String(e)} contenedores de '${n}' se detendr\xE1n y se eliminar\xE1n. Esto no se puede deshacer; los volumes se conservan.`}},detail:{back:`‹ Contenedores`,menu:`Acciones para este contenedor`,gone:` ya no existe. Un contenedor con --rm desaparece en cuanto se detiene, y compose crea uno nuevo al hacer up.`,goneUnnamed:`Este contenedor ya no existe.`,successor:(e,n)=>`Ir al ${e} actual (${n})`,tabsLabel:`Detalles del contenedor`,tabs:{logs:`Logs`,health:`Health`,events:`Eventos`,inspect:`Inspect`,env:`Entorno`,stats:`Stats`,processes:`Procesos`,terminal:`Terminal`,files:`Archivos`,networks:`Redes`,assistant:`Claude`},wiring:{network:e=>`Funciona, pero no est\xE1 conectado a ${e}. Nada lo alcanza por esa red, y \xE9l no alcanza nada.`,networkWhy:`Esto pasa cuando la red se eliminó y se volvió a crear mientras el contenedor existía.`,connect:e=>`Conectar a ${e}`,ports:e=>`Funciona, pero no publica ${e}.`,portsWhy:`Esto pasa cuando se inició otra vez tras un inicio que falló por un puerto ocupado.`,portsFromNetwork:`Eso se debe a la red que falta arriba: los puertos pasan por una red.`,restart:`Reiniciar`},events:{loading:`Cargando…`,empty:`Aún no hay nada registrado. La app registra desde que arranca, más lo que Docker recordaba entonces.`,scope:`Registrado en la app desde que arrancó, hasta 100 por nombre de contenedor; tras reiniciar la app, Docker completa lo que aún recuerda.`,crashLoop:e=>`Se cay\xF3 ${String(e)} veces en la \xFAltima hora.`,create:`Creado`,start:`Iniciado`,exited:e=>e===0?`Terminó con normalidad`:`Termin\xF3 con el c\xF3digo ${String(e)}`,exitedUnknown:`Terminó`,exitHint137:`SIGKILL: matado desde fuera, a menudo memoria llena o una parada que tardó demasiado`,exitHint143:`SIGTERM: se le pidió parar`,kill:e=>`${e} enviado`,oom:`Detenido por el kernel: memoria llena`,stop:`Detenido`,restart:`Reiniciado`,pause:`En pausa`,unpause:`Reanudado`,destroy:`Eliminado`,rename:e=>`Renombrado, antes ${e}`,renamed:`Renombrado`,health:{starting:`Healthcheck empieza`,healthy:`Pasó a healthy`,unhealthy:`Pasó a unhealthy`}},health:{loading:`Cargando…`,refresh:`Actualizar`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`aún no se ha ejecutado`},failingStreak:e=>e===1?`ha fallado una vez`:`ha fallado ${String(e)} veces seguidas`,command:`Comando`,fromImage:`Viene de la imagen; el daemon no indica el comando.`,rhythm:`Ritmo`,every:e=>`cada ${e}`,timeout:e=>`tiempo de espera ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 intento antes de unhealthy`:`${String(e)} intentos antes de unhealthy`,defaults:`los valores por defecto de Docker`,probes:`Últimos resultados`,noProbes:`La comprobación aún no se ha ejecutado.`,exitCode:e=>`c\xF3digo de salida ${String(e)}`,unknownExitCode:`sin código de salida`,noOutput:`sin salida`},networks:{title:`En estas redes`,loading:`Cargando…`,empty:`Este contenedor no está en ninguna red.`,noAddress:`sin dirección`,alsoKnownAs:e=>`tambi\xE9n accesible como ${e}`,disconnect:`Desconectar`,disconnectFrom:e=>`Desconectar de ${e}`,addTitle:`Conectar a una red`,addHint:`Surte efecto de inmediato, también mientras el contenedor está en marcha.`,allConnected:`Este contenedor ya está en todas las redes.`,networkLabel:`Red`,choose:`Elige una red…`,alias:`Nombre adicional en la red`,aliasHint:`Un nombre adicional que los demás contenedores de esta red pueden usar, junto al nombre del contenedor.`,aliasPlaceholder:`base-de-datos`,connect:`Conectar`,working:`En curso…`,invalidAlias:e=>`'${e}' no es un nombre v\xE1lido. Use letras, d\xEDgitos, puntos, guiones y guiones bajos.`},fetching:`Cargando…`,terminalLoading:`Cargando la terminal…`,shellOnlyRunning:`Solo se puede abrir un shell en un contenedor en marcha.`,cpu:`CPU`,lastMinute:e=>`\xFAltimo minuto \xB7 pico ${e} %`,chartPending:`el gráfico aparece tras unas cuantas muestras`,memory:`Memoria`,ofLimit:e=>`${e} % del l\xEDmite`,noLimit:`sin límite definido`,cpuOfLimit:(e,n)=>`${e} % del l\xEDmite de ${n} CPU`,cpuNoLimit:`sin límite: hasta todos los procesadores`,nearLimit:`Cerca del límite: por encima, el kernel empieza a matar procesos del contenedor.`,statsOnlyRunning:`Las stats solo se recogen de un contenedor en marcha.`,confirmTitle:`¿Eliminar el contenedor?`,confirmDescription:`Este contenedor se detendrá y se eliminará. Esto no se puede deshacer; los volumes se conservan.`},diagnosis:{title:`Copiar el diagnóstico`,description:`Estado, health, mounts, events y las últimas líneas de log, para pegarlos en un chat o en una issue. Esto es exactamente lo que se copia.`,collecting:`Recogiendo…`,noRedactions:`No se ha omitido nada; ningún valor parecía un secreto.`,redactions:e=>`${e===1?`1 valor omitido`:`${String(e)} valores omitidos`}: las variables de entorno y todo lo que parec\xEDa una contrase\xF1a, un token o una clave.`,copyFailed:e=>`No se ha podido copiar: ${e}`},memoryLimit:{title:`Límite de memoria`,description:`Cuánta memoria puede usar el contenedor. Surte efecto al momento; el contenedor no se vuelve a crear.`,loading:`Cargando…`,current:e=>`Ahora: ${e}`,none:`Ahora: sin límite`,label:`Límite`,unit:`Unidad`,noRemove:`Quitar un límite no se puede así: Docker solo lo cambia. Para no tener límite, hay que volver a crear el contenedor.`,compose:`Es un contenedor de compose: compose up vuelve a poner lo que dice el archivo compose.`,save:`Guardar`,saving:`Guardando…`,saved:e=>`El l\xEDmite de memoria es ahora ${e}.`,invalid:`Escribe un número mayor que cero.`},editor:{title:e=>`Editar ${e}`,loading:`Cargando…`,save:`Guardar`,saving:`Guardando…`,saved:e=>`${e} guardado.`,closeUnsaved:`Cerrar sin guardar`,unsaved:`Sin guardar`,conflict:`¿Guardar de todos modos, encima del otro cambio, o volver a cargar el archivo y perder el tuyo?`,reload:`Volver a cargar`,overwrite:`Guardar de todos modos`,onMount:`Este archivo está en un volumen o una carpeta montada: el cambio se queda.`,notOnMount:`Este cambio está en el propio contenedor: desaparece en la próxima reconstrucción. Guarda el contenedor como imagen para conservarlo.`,saveAsImage:`Guardar como imagen…`,restart:`Un programa suele leer su configuración al arrancar; reinicia el contenedor para usar el cambio.`,inVolume:`Los contenedores que usan este volumen ven el cambio de inmediato; la mayoría de los programas solo releen su configuración al reiniciarse.`},adjust:{title:e=>`Ajustar ${e}`,description:`Docker no puede cambiar esto en un contenedor existente, así que se vuelve a crear con el mismo nombre. Si el nuevo no arranca, el antiguo queda como estaba. Los volúmenes se quedan.`,loading:`Cargando…`,env:`Variables de entorno`,envHint:`Una por línea, NOMBRE=valor. Las contraseñas también se ven aquí.`,envInvalid:e=>`La l\xEDnea ${String(e)} no es NOMBRE=valor.`,ports:`Puertos en esta máquina`,portHint:`Vacío: Docker elige uno libre.`,hostPort:e=>`Puerto en esta m\xE1quina para ${e}`,restart:`Política de reinicio`,compose:`Es un contenedor de compose: cámbialo en el archivo compose y después vuelve a crearlo con Reconstruir.`,openFile:`Ver archivo compose`,save:`Aplicar`,saving:`Aplicando…`,done:e=>`${e} funciona con los nuevos ajustes.`},duplicate:{title:e=>`Duplicar ${e}`,description:`Un contenedor nuevo con los mismos ajustes, para probar algo en paralelo. Arranca enseguida.`,loading:`Cargando…`,name:`Nombre`,invalid:`Al menos dos caracteres: una letra o cifra, seguida de letras, cifras, _ . o -.`,taken:`Ya existe un contenedor con este nombre.`,ports:`Puertos en esta máquina`,portHint:`El mismo puerto dos veces no es posible. Vacío: Docker elige uno libre.`,hostPort:e=>`Puerto en esta m\xE1quina para ${e}`,volumes:`Volúmenes`,volumesHint:`Dos contenedores en un volumen escriben en los mismos archivos; para una base de datos una copia es más segura. Copiar un volumen grande tarda un poco.`,copy:`Copia`,share:`Compartir`,compose:`Es un contenedor de compose. La copia queda fuera del proyecto: compose no la conoce.`,save:`Duplicar`,saving:`Duplicando…`,done:e=>`${e} est\xE1 en marcha.`},processes:{notRunning:`En un contenedor detenido no se ejecuta nada.`,loading:`Cargando…`,hint:e=>`${String(e)} procesos, el m\xE1s activo arriba. Se actualiza cada pocos segundos; haz clic en un comando para verlo entero.`,pids:`El PID es el del host, no el de ps dentro del contenedor.`,user:`Usuario`,memory:`Memoria`,elapsed:`En marcha desde hace`,command:`Comando`,redacted:`Lo que parece un secreto se ha omitido.`},kill:{title:`¿Detener de inmediato?`,description:e=>`${e} recibe SIGKILL: el proceso se detiene al instante, sin poder limpiar. Lo que a\xFAn no se haya escrito se pierde.`,confirm:`Detener de inmediato`,now:`Detener ahora`,hint:`Detenerlo tarda: Docker espera a que el proceso se detenga solo.`},rename:{title:`Renombrar contenedor`,description:e=>`Un nombre nuevo para ${e}. Funciona tambi\xE9n mientras se ejecuta; el contenedor no se vuelve a crear.`,label:`Nombre`,invalid:`Al menos dos caracteres: una letra o cifra, seguida de letras, cifras, _ . o -.`,taken:`Ya existe un contenedor con este nombre.`,compose:`Es un contenedor de compose. Compose lo reconoce por sus etiquetas, no por su nombre: sigue en el proyecto, pero recupera el nombre del proyecto en cuanto compose lo vuelve a crear.`,save:`Renombrar`,saving:`Renombrando…`,saved:(e,n)=>`${e} ahora se llama ${n}.`},commit:{title:`Guardar como imagen`,description:`Guarda el sistema de archivos del contenedor como una imagen nueva, con lo que hayas cambiado dentro. El contenedor sigue igual.`,label:`Nombre y etiqueta`,suffix:`-propia`,hint:`En minúsculas, como mi-app:1.0. Sin etiqueta será latest.`,invalid:`Un nombre de imagen va en minúsculas, como mi-app o registry.example.com/equipo/app, seguido opcionalmente de :tag.`,exists:e=>`${e} ya existe; la etiqueta pasa a la imagen nueva y la antigua se queda sin etiqueta.`,running:`El contenedor se pausa mientras se guarda, normalmente unos segundos.`,mounts:`No en la imagen: los volúmenes y carpetas montados en el contenedor. Pertenecen al contenedor, no a su sistema de archivos.`,save:`Guardar`,saving:`Guardando…`,saved:(e,n)=>`Guardada como ${e} (${n}).`,toImage:`A la imagen`,run:`Iniciar un contenedor…`},cpuLimit:{title:`Límite de CPU`,description:`Cuánto tiempo de procesador puede usar el contenedor. Se aplica al momento; no hace falta recrear el contenedor.`,loading:`Cargando…`,current:e=>`Ahora: como m\xE1ximo ${e} CPU`,none:`Ahora: sin límite`,label:`Procesadores`,hint:e=>`Entre 0,01 y ${e}; 1 es un procesador entero, 0,5 medio.`,noRemove:`Un límite no se puede quitar así: Docker solo lo cambia. Sin límite, hay que recrear el contenedor.`,compose:`Es un contenedor compose: compose up restablece lo que dice el archivo compose.`,save:`Guardar`,saving:`Guardando…`,saved:e=>`El l\xEDmite de CPU es ahora ${e} CPU.`,invalid:`Introduce un número mayor que cero.`},environment:{loading:`Cargando…`,name:`Nombre`,value:`Valor`,source:`Viene de`,sources:{image:`la imagen`,set:`al arrancar`,changed:`al arrancar, sobre la imagen`},show:`mostrar`,reveal:e=>`Mostrar el valor de ${e}`,emptyValue:`(vacío)`,empty:`Este contenedor no tiene variables de entorno.`,copyAll:`Copiar todo`,copied:(e,n)=>n===0?`${String(e)} copiadas.`:`${String(e)} copiadas; ${String(n)} valores ocultos omitidos.`,readOnly:`Solo lectura: una variable solo cambia al recrear el contenedor. El comando run del menú es un comienzo.`,composeNote:`Solo lectura: en un contenedor compose, una variable va en el archivo compose, y luego Recrear.`},restartPolicy:{title:`Política de reinicio`,description:`Lo que hace el daemon cuando este contenedor se detiene. Surte efecto de inmediato; el contenedor no se vuelve a crear.`,loading:`Cargando…`,label:`Política`,names:{no:`Nunca`,always:`Siempre`,"unless-stopped":`Salvo si lo has parado tú`,"on-failure":`Solo tras un código de error`},maximum:`Como máximo tantos intentos`,maximumHint:`0 significa seguir intentándolo.`,save:`Guardar`,saving:`Guardando…`,saved:e=>`La pol\xEDtica de reinicio es ahora ${e}.`},runCommand:{title:`Copiar el comando run`,description:`El comando que vuelve a crear este contenedor, deducido de inspect. Lo que viene de la imagen se omite.`,building:`Deduciendo…`,composeNote:e=>`Este contenedor pertenece al proyecto de compose ${e}, donde docker compose up es la respuesta. As\xED es como se ejecuta ahora.`,envWarning:e=>`${e===1?`Incluye 1 variable de entorno`:`Incluye ${String(e)} variables de entorno`}, contrase\xF1as incluidas: el comando tiene que funcionar.`,noEnv:`Sin variables de entorno propias.`,formatRun:`docker run`,formatCompose:`compose`,composeTitle:`Como servicio compose`,composeDescription:`El mismo contenedor como parte de un archivo compose, derivado de inspect. Los volúmenes y redes existentes aparecen como external.`,composeEnvWarning:e=>`${e===1?`Incluye 1 variable de entorno`:`Incluye ${String(e)} variables de entorno`}, contrase\xF1as incluidas: el archivo tiene que funcionar.`,copyFailed:e=>`No se ha podido copiar: ${e}`},logs:{filter:`Filtrar por texto`,follow:`Seguir`,timestamps:`Marcas de tiempo`,clear:`Limpiar`,save:`Guardar…`,saveHint:`Todo el log de Docker, con marcas de tiempo; no solo lo que ves aquí.`,saved:(e,n)=>`${String(e)} l\xEDneas guardadas en ${n}`,connecting:`Conectando…`,count:(e,n)=>`${String(e)} de ${String(n)} l\xEDneas`,truncated:`se han descartado las líneas más antiguas`,empty:`Todavía no hay líneas de log.`,noMatches:`No hay líneas que coincidan.`,range:`Periodo`,from:`Desde`,to:`Hasta`,toHint:`Vacío: hasta ahora, y en directo.`,apply:`Mostrar`,lastHour:`Última hora`,sinceStart:`Desde el último arranque`,aroundCrash:`Alrededor del último fallo`,latest:`Últimas líneas`,active:(e,n)=>n===null?`Desde ${e}, en directo`:`${e} a ${n}`,notLive:`Con una hora de fin, el log no sigue en directo.`,firstOnly:`más de 2000 líneas en este periodo: aquí están las primeras, guarda para todas`,saveRangeHint:`Este periodo desde Docker, con marcas de tiempo; no solo lo que se ve aquí.`},files:{edit:e=>`Editar ${e}`,up:`Subir una carpeta`,path:`Ruta en el contenedor`,refresh:`Actualizar`,changed:`Modificado`,changesTitle:`Modificado respecto a la imagen`,changesCount:e=>e===1?`1 ruta`:`${String(e)} rutas`,changesEmpty:`Este contenedor no ha cambiado nada de su imagen.`,changesHint:`Las carpetas que solo cambiaron porque algo dentro cambió no aparecen. Los volúmenes no cuentan.`,changeKind:{added:`añadido`,modified:`modificado`,deleted:`eliminado`},openFolderOf:e=>`Abrir la carpeta de ${e}`,upload:`Subir…`,empty:`Esta carpeta está vacía.`,downloadFolder:e=>`Descargar la carpeta como tar: ${e}`,downloadFile:e=>`Descargar: ${e}`,hint:e=>`Suelta archivos aqu\xED para ponerlos en ${e}. Descargar una carpeta da un .tar, as\xED se conservan los permisos y los symlinks.`,savedAs:e=>`Guardado como ${e}.`,uploaded:(e,n)=>`${e===1?`1 archivo puesto`:`${String(e)} archivos puestos`} en ${n}.`},fileOps:{newFolder:`Carpeta nueva…`,rename:e=>`Cambiar el nombre de ${e}`,removeOf:e=>`Eliminar ${e}`,downloadFile:e=>`Descargar: ${e}`,downloadFolder:e=>`Descargar carpeta como tar: ${e}`,renameLabel:e=>`Nombre nuevo para ${e}`,createLabel:`Nombre de la carpeta nueva`,save:`Cambiar nombre`,create:`Crear`,remove:`Eliminar`,counting:e=>`\xBFEliminar ${e}? Contando lo que contiene\u2026`,confirmFile:e=>`\xBFEliminar ${e}? No se puede deshacer.`,confirmDir:(e,n)=>n===0?`\xBFEliminar la carpeta vac\xEDa ${e}?`:`\xBFEliminar ${e} con ${n===1?`1 elemento`:`${String(n)} elementos`} dentro? No se puede deshacer.`,confirmDirUncounted:e=>`\xBFEliminar ${e} con todo lo que contiene? No se puede deshacer.`,renamed:(e,n)=>`${e} ahora se llama ${n}.`,created:e=>`Carpeta ${e} creada.`,removed:e=>`${e} eliminado.`},terminal:{exited:`El shell ha terminado.`,reopen:`Volver a abrir`,connecting:`Conectando…`,connected:`conectado`,user:`Usuario`,fromImage:`El de la imagen`,other:`Otro…`,otherPlaceholder:`nombre o uid`,open:`Abrir`,asRoot:`Como root: lo que cambies, lo cambias como root.`},assistant:{introHost:`Claude recibe una visión general del engine y de los contenedores, va leyendo la terminal y pide logs e inspect por su cuenta. Cada petición aparece abajo, y los secretos quedan fuera. Claude nunca escribe nada él mismo: un comando sugerido se convierte en un botón que lo pone en el prompt, y tú pulsas Intro.`,introContainer:`Claude recibe el diagnóstico de este contenedor, sin secretos, y luego pide por su cuenta logs, inspect, events o los demás contenedores. Cada petición aparece abajo. Claude no cambia nada por su cuenta: una sugerencia se convierte en un botón, y decides tú.`,defaultQuestion:`¿Qué le pasa a este contenedor, y qué puedo hacer al respecto?`,defaultHostQuestion:`¿Qué ves en la terminal, y qué significa?`,onPrompt:`En el prompt`,done:`Listo`,thinking:`Claude está pensando…`,questionLabel:`Pregunta para Claude`,followUp:`Pregunta de seguimiento`,ask:`Preguntar a Claude`,putInTerminal:`Poner en la terminal`,composeUp:e=>`compose up para ${e}`,start:e=>`Iniciar ${e}`,stop:e=>`Detener ${e}`,restart:e=>`Reiniciar ${e}`,panelClosed:`El panel se ha cerrado.`,usage:(e,n,t)=>`${e} tokens de entrada, ${n} de la cach\xE9, ${t} de salida`}}});var Ch;var Ih=p(()=>{Ch={title:`Panel`,engine:{connecting:`Conectando con Docker…`,running:`Engine en marcha`,unreachable:`Engine inaccesible`,startDistro:e=>`Iniciar ${e}`,startingDistro:e=>`Iniciando ${e}\u2026`,startDaemon:e=>`Iniciar Docker en ${e}`,startingDaemon:e=>`Iniciando Docker en ${e}\u2026`,daemonHint:e=>`${e} est\xE1 en marcha, as\xED que es el daemon de dentro el que est\xE1 parado. La app puede iniciarlo ah\xED.`,idleHint:{intro:e=>`${e} arranc\xF3 antes pero se volvi\xF3 a detener. WSL apaga una distro sin sesi\xF3n abierta a los 15 segundos; pon`,under:`en`,in:`en`,outro:`para que siga en marcha.`}},contexts:{switchFailed:e=>`No se ha podido cambiar a ${e}`},usage:{cpu:`CPU de todos los contenedores`,memory:`Memoria`,memoryChart:`Memoria de todos los contenedores`,network:`Red de todos los contenedores`,networkChart:`Tráfico de red de todos los contenedores`,received:`Recibido`,sent:`Enviado`,receivedAria:`recibido`,sentAria:`enviado`,hostNote:`Los contenedores con network_mode: host no cuentan; no tienen contadores propios.`},counts:{containers:`Contenedores`,runningOfTotal:`en marcha del total`,images:`Images`,volumesNetworks:`Volumes · redes`},space:{title:`Dónde está el espacio`,description:`Los diez más grandes de cada tipo. No se elimina nada sin la confirmación en su propia página.`,loading:`Calculando… Docker recorre su almacenamiento para esto.`,images:`Imágenes`,volumes:`Volúmenes`,containers:`Contenedores (lo que escribieron ellos mismos)`,buildCache:`Caché de construcción`,buildCacheItems:e=>`${String(e)} entradas`,usedBy:e=>e===1?`en uso por 1 contenedor`:`en uso por ${String(e)} contenedores`,unused:`sin usar`,running:`en marcha`,stopped:`detenido`,open:`Abrir`,remove:`Eliminar…`,prune:`Limpiar…`,empty:`Nada aquí.`,imagesNote:`El tamaño de una imagen incluye las capas que comparte con otras: es lo que se libera cuando es la última que las usa.`},disk:{title:`Uso de disco`,total:e=>`${e} en total`,calculating:`calculando…`,prune:`Limpiar`,pruning:`Limpiando…`,where:`¿Dónde está el espacio?`,unused:e=>`${String(e)} sin usar`,labels:{images:`Images`,containers:`Contenedores`,volumes:`Volumes`,buildCache:`Caché de build`},footnoteBefore:`Las mismas cifras que`,footnoteAfter:`. Cuánto espacio libera realmente la limpieza no se muestra: depende de las layers compartidas, y una estimación que parece un hecho es peor que no dar ninguna cifra.`},attention:{title:`Requiere atención`,none:`Todo en orden: sin bucles de caídas, nada unhealthy, todo conectado.`,loading:`Comprobando…`,crashLoop:e=>`se cay\xF3 ${String(e)} veces en la \xFAltima hora`,restarting:`se reinicia una y otra vez`,unhealthy:`el healthcheck falla`,network:e=>`funciona, pero no est\xE1 conectado a ${e}`,ports:e=>`funciona, pero no publica ${e}`,update:e=>`hay una versi\xF3n m\xE1s reciente de ${e}`,projectUpdate:e=>`versiones m\xE1s recientes de ${e}`,updateProject:`Actualizar proyecto`,projectDrift:e=>`archivo compose modificado; ${e} sigue con la configuraci\xF3n antigua`,toCompose:`A Compose`},stopped:{clean:`terminó limpiamente`,failed:e=>`termin\xF3 con el c\xF3digo ${String(e)}`,created:e=>`creado ${e}`},pruneDialog:{title:`Limpiar`,description:`Todo lo que marques se elimina y no se puede recuperar.`,confirm:`Limpiar`,containers:`Contenedores detenidos`,containersHint:`Un contenedor en pausa se conserva.`,networks:`Redes sin usar`,networksHint:`bridge, host y none se conservan siempre.`,images:`Images sin tag`,imagesHint:`Normalmente restos de un build más reciente.`,allImages:`También las images con tag sin contenedor`,allImagesHint:`Después tendrás que volver a descargarlas.`,buildCache:`Caché de build`,buildCacheHint:`Todo lo que no está en uso. El siguiente build tardará más.`,volumes:`Volumes anónimos`,volumesHint:`Los volumes con nombre se conservan. Ahí hay datos.`},pruneResult:{removed:{containers:e=>e===1?`1 contenedor`:`${String(e)} contenedores`,networks:e=>e===1?`1 red`:`${String(e)} redes`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 entrada de caché de build`:`${String(e)} entradas de cach\xE9 de build`},kinds:{containers:`contenedores`,networks:`redes`,volumes:`volumes`,images:`images`,buildCache:`caché de build`},and:`y`,notice:(e,n)=>`${e} eliminados, ${n} liberados.`,problem:e=>`No se ha podido limpiar ${e}`}}});var Eh;var kh=p(()=>{Eh={justNow:`ahora mismo`,hoursAgo:e=>e===1?`hace 1 hora`:`hace ${String(e)} horas`,yesterday:`ayer`,daysAgo:e=>`hace ${String(e)} d\xEDas`,lastMonth:`el mes pasado`,monthsAgo:e=>`hace ${String(e)} meses`,lastYear:`el año pasado`,yearsAgo:e=>`hace ${String(e)} a\xF1os`}});var Sh;var Th;var Nh;var Mh=p(()=>{Sh=e=>`${String(e)} image${e===1?``:`s`}`,Th=e=>`${String(e)} contenedor${e===1?``:`es`}`,Nh={title:`Images`,diskSpace:`Espacio en disco`,unused:`Sin usar`,menuLabel:`Acciones de image`,searchLabel:`Buscar por repository, tag o ID`,onlyUnused:`Solo las images sin usar`,refreshing:`Actualizando…`,updatesHint:`Actualizar descarga la image nueva. Un contenedor en marcha conserva la antigua hasta que se vuelva a crear; para un contenedor de un proyecto de Compose, la app ofrece hacerlo tras la descarga.`,selected:e=>`${String(e)} seleccionadas`,empty:`No se han encontrado images.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`ID de la image`,inUse:`En uso`,created:`Creada`,size:`Tamaño`,actions:`Acciones`},badge:{newer:`versión más reciente`,notInRegistry:`no está en el registry`,uncheckable:`no se ha podido comprobar`},containerCount:Th,updateTitle:e=>`Actualizar: volver a descargar ${e}`,rowMenu:e=>`Acciones para ${e}`,rowUpdate:`Descargar la versión más reciente`,rowRun:`Ejecutar un contenedor…`,rowLayers:`Capas…`,rowSave:`Guardar como archivo…`,rowTag:`Añadir etiqueta…`,rowUntag:`Quitar esta etiqueta`,rowPush:`Hacer push…`,untagged:e=>`Etiqueta ${e} quitada; la imagen se queda.`,tagDialog:{title:e=>`Nueva etiqueta para ${e}`,description:`Otro nombre para la misma imagen. Con un registry delante puedes hacer push allí, como localhost:5000/app:1.0.`,label:`Nombre y etiqueta`,invalid:`Un nombre de imagen va en minúsculas, como mi-app o registry.example.com/equipo/app, seguido opcionalmente de :tag.`,exists:e=>`${e} ya existe; la etiqueta pasa a esta imagen.`,save:`Añadir etiqueta`,saving:`Añadiendo…`,saved:e=>`Etiquetada como ${e}.`},buildDialog:{title:`Construir imagen`,description:`Desde una carpeta con un Dockerfile, con docker build: BuildKit, .dockerignore y la caché funcionan como siempre.`,choose:`Elegir carpeta…`,other:`Otra carpeta…`,none:`No hay ningún Dockerfile en esta carpeta.`,file:`Dockerfile`,name:`Nombre y etiqueta`,invalid:`Un nombre de imagen va en minúsculas, como mi-app o registry.example.com/equipo/app, seguido opcionalmente de :tag.`,exists:e=>`${e} ya existe; la etiqueta pasa a la imagen nueva.`,build:`Construir`,building:`Construyendo… puede tardar un poco.`,done:e=>`Construida como ${e}.`,output:`Salida de la construcción`,run:`Iniciar un contenedor…`},pushDialog:{title:e=>`Push de ${e}`,registry:e=>`Va a ${e}, con las credenciales de docker login.`,hub:`Va a Docker Hub, con las credenciales de docker login.`,hubPublic:`Si el repositorio en Docker Hub es público, cualquiera puede descargar esta imagen.`,final:`Un push no se puede deshacer: lo que está en el registry se queda allí hasta que lo borres allí.`,other:`¿A otro registry? Añade primero una etiqueta con ese registry delante.`,confirm:`Hacer push`,pushing:`Haciendo push…`,done:`Push hecho.`},runLabel:e=>`Iniciar un contenedor a partir de ${e}`,runLabelDangling:`Iniciar un contenedor a partir de esta image sin tag`,layers:{title:e=>`Capas de ${e}`,description:`Las más nuevas primero, como las muestra docker history: la última línea del Dockerfile arriba.`,loading:`Cargando…`,summary:(e,n)=>`${e===1?`1 capa`:`${String(e)} capas`} \xB7 imagen ${n}`,packed:e=>`Las capas suman ${e}: con este almacenamiento Docker informa de cada capa tal como lleg\xF3, comprimida. En el disco la imagen es mayor.`,noSize:`no cambia nada en el disco`,expand:`Mostrar el comando completo`,empty:`Esta imagen no informa de ninguna capa.`},menu:{pull:`Descargar una image`,check:`Buscar actualizaciones`,checking:`Comprobando…`,pruneDangling:`Limpiar las que no tienen tag`,pruneUnused:`Limpiar las que no se usan`,load:`Cargar desde archivo…`,build:`Construir imagen…`},remove:{title:`¿Eliminar la image?`,description:e=>`'${e}' se eliminar\xE1. Si esta image tiene otros tags, solo se va este tag.`,forceTitle:`¿Forzar la eliminación de la image?`,forceDescription:(e,n)=>`'${e}' la usa ${Th(n)}. Solo se puede eliminar a la fuerza, y esos contenedores dejar\xE1n de funcionar.`,forceConfirm:`Eliminar igualmente`,manyTitle:`¿Eliminar las images?`,manyDescription:e=>`Se eliminar\xE1n ${Sh(e)}. Las images que todav\xEDa est\xE1n en uso se omiten.`},prune:{allTitle:`¿Limpiar todas las images sin usar?`,allDescription:`Se elimina todo lo que no tenga un contenedor asociado, incluidas las images que descargaste tú. Tendrás que volver a descargarlas.`,danglingTitle:`¿Limpiar las images sin tag?`,danglingDescription:`Se eliminan las images sin tag. Suelen ser restos de un build más reciente.`,confirm:`Limpiar`},pruned:(e,n)=>`${Sh(e)} eliminadas, ${n} liberados.`,check:{allCurrent:`Todo está al día`,updates:e=>`${e===1?`1 image tiene`:`${String(e)} images tienen`} una versi\xF3n m\xE1s reciente`,notInRegistry:e=>`${String(e)} no est\xE1n en ning\xFAn registry`,uncheckable:e=>`${String(e)} no se han podido comprobar`,summary:(e,n)=>`${e} (${String(n)} comprobadas).`},pullDialog:{hits:`De Docker Hub`,official:`oficial`,stars:e=>`${String(e)} estrellas`,title:`Descargar una image`,nameAndTag:`Nombre y tag, por ejemplo`,withoutTag:`Sin tag se usa`,isUsed:`.`,inputLabel:`Image`,submit:`Descargar`,staleHeading:`Estos contenedores siguen con la versión anterior:`,inProject:e=>`en ${e}`,notCompose:`no se inició con compose; vuelve a crearlo tú`,renewed:e=>`Vueltos a crear: ${e}.`,renew:`Volver a crear los contenedores`,renewing:`Volviendo a crear…`,renewHint:`Con compose, solo estos servicios.`},runDialog:{title:`Iniciar un contenedor`,fromImage:`A partir de la image`,name:`Nombre`,namePlaceholder:`déjalo vacío = Docker elige uno`,autoRestart:`Reiniciar automáticamente`,autoRestartHint:`Tras un fallo o cuando Docker se reinicie. No cuando lo detienes tú.`,ports:`Puertos`,portsHint:`Hacer accesible un puerto del contenedor desde este ordenador, por ejemplo localhost:8080.`,onThisComputer:`En este ordenador`,inContainer:`En el contenedor`,protocolHeader:`Protocolo`,hostPortPlaceholder:`vacío = cualquier puerto libre`,addPort:`Añadir un puerto`,hostPort:e=>`Puerto del host ${String(e)}`,containerPort:e=>`Puerto del contenedor ${String(e)}`,protocol:e=>`Protocolo ${String(e)}`,removePort:e=>`Eliminar el puerto ${String(e)}`,network:`Red`,networkHint:`Los contenedores de una red que hayas creado tú se alcanzan por su nombre. En la red por defecto, no.`,networkDefault:`Por defecto (bridge)`,networkAlias:`Nombre adicional en la red`,networkAliasHint:`Un nombre adicional que los demás contenedores de esta red pueden usar, junto al nombre del contenedor.`,networkAliasPlaceholder:`base-de-datos`,invalidAlias:e=>`'${e}' no es un nombre v\xE1lido. Usa letras, d\xEDgitos, puntos, guiones y guiones bajos.`,volumes:`Volumes`,volumesHint:`Datos que deben sobrevivir al contenedor: un volume, o una carpeta en la máquina de Docker.`,source:`Volume o carpeta`,addVolume:`Añadir un volume`,sourcePlaceholder:`my-data o /srv/data`,targetPlaceholder:`/ruta/en/contenedor`,volumeSource:e=>`Origen del volume ${String(e)}`,volumeTarget:e=>`Destino del volume ${String(e)}`,readOnly:`solo lectura`,readOnlyHint:`El contenedor puede leer los archivos pero no cambiarlos.`,removeVolume:e=>`Eliminar el volume ${String(e)}`,env:`Variables de entorno`,envHint:`Ajustes para el programa del contenedor. También puedes pegar NOMBRE=valor.`,envNameHeader:`Nombre`,envValueHeader:`Valor`,addEnv:`Añadir una variable`,envName:e=>`Nombre de la variable ${String(e)}`,envValue:e=>`Valor de la variable ${String(e)}`,removeEnv:e=>`Eliminar la variable ${String(e)}`,submit:`Iniciar`,starting:`Iniciando…`,invalidContainerPort:e=>`'${e}' no es un puerto de contenedor v\xE1lido. Usa un n\xFAmero del 1 al 65535.`,invalidHostPort:e=>`'${e}' no es un puerto de host v\xE1lido. D\xE9jalo vac\xEDo para que Docker elija uno.`,volumeIncomplete:`Un volume necesita un origen y un destino.`,notAbsolute:e=>`'${e}' no es una ruta absoluta. El destino en el contenedor empieza por /.`,envNameMissing:`Una variable necesita un nombre.`,envNameWithEquals:e=>`'${e}' no puede contener =; eso separa el nombre del valor.`},file:{saving:e=>`Guardando ${e}\u2026`,loading:`Cargando desde archivo…`,saved:(e,n)=>`Guardado como ${e} (${n}).`,loaded:e=>`Cargado: ${e}.`,loadedNothing:`Se leyó el archivo, pero no contenía ninguna imagen.`}}});var Ah;var xh=p(()=>{Ah={title:`Logs`,intro:`Todo lo que escriben tus contenedores en marcha, entrelazado por hora. Un contenedor que arranca o se detiene entra o sale por su cuenta.`,projectLabel:`Proyecto de compose`,allProjects:`Todos los contenedores`,searchLabel:`Buscar en los logs`,searchPlaceholder:`Un término, o una expresión como /error|warn/`,caseSensitive:`Distinguir mayúsculas y minúsculas`,containers:`Contenedores`,nothingRunning:`No hay nada en marcha.`,showAll:`Volver a activarlo todo`,timestamps:`Marcas de tiempo`,clear:`Limpiar`,columns:{time:`Hora`,object:`Objeto`,line:`Línea`},allFiltered:e=>e===1?`La única línea está oculta por el filtro.`:`Las ${String(e)} l\xEDneas est\xE1n ocultas por el filtro.`,empty:`Todavía no hay líneas. En cuanto un contenedor escriba algo, aparecerá aquí.`,lineCount:e=>e===1?`1 línea`:`${String(e)} l\xEDneas`,filteredOut:e=>`${String(e)} filtradas`,truncated:`Las líneas más antiguas han salido del búfer.`,invalidExpression:e=>`No es una expresi\xF3n v\xE1lida: ${e}`,levels:{label:`Nivel`,errors:`Errores`,warnings:`Avisos`,unknownHidden:`Las líneas sin un nivel reconocible, como una traza bajo un error, quedan ocultas con este filtro.`}}});var $h;var _h;var Rh;var Lh=p(()=>{$h=e=>`${String(e)} ${e===1?`red`:`redes`}`,_h=e=>`${String(e)} contenedor${e===1?``:`es`}`,Rh={title:`Redes`,unused:`Sin usar`,menuLabel:`Acciones de red`,searchLabel:`Buscar por nombre o driver`,hideBuiltIn:`Ocultar las redes integradas`,refreshing:`Actualizando…`,selected:e=>`${String(e)} seleccionadas`,empty:`No se han encontrado redes.`,builtIn:`integrada`,internal:`interna`,columns:{name:`Nombre`,driver:`Driver`,scope:`Alcance`,subnet:`Subred`,connected:`Conectados`,actions:`Acciones`},containerCount:_h,rowMenu:e=>`Acciones para ${e}`,rowMembers:`Quién está conectado…`,members:{title:e=>`Conectados a ${e}`,description:`Los mismos contenedores en los que se basa el recuento de esta página, también los detenidos.`,loading:`Cargando…`,empty:`Ningún contenedor está conectado a esta red.`,noAddress:`sin dirección`,stopped:`detenido`},builtInReason:`Red integrada de Docker; no se puede eliminar`,connectedReason:e=>`${_h(e)} conectado${e===1?``:`s`}; descon\xE9ctalos primero`,menu:{create:`Crear una red…`,pruneUnused:`Limpiar las que no se usan`},createDialog:{title:`Crear una red`,description:`Una red propia, en la que los contenedores se encuentran por su nombre.`,nameLabel:`Nombre`,namePlaceholder:`mi-red`,internal:`Solo interna`,internalHint:`Los contenedores se alcanzan entre sí, pero no tienen ruta hacia fuera.`,advanced:`Avanzado`,driverLabel:`Driver`,driverHint:`Déjalo en bridge salvo que uses un swarm o un plugin de red.`,subnetLabel:`Subred`,subnetHint:`Déjalo vacío y Docker elige por su cuenta un rango libre.`,gatewayLabel:`Puerta de enlace`,gatewayHint:`Debe estar dentro de la subred. Vacío significa la primera dirección del rango.`,submit:`Crear`,creating:`Creando…`},remove:{title:`¿Eliminar la red?`,description:e=>`'${e}' se eliminar\xE1. Los contenedores que se conecten a ella m\xE1s adelante ya no la encontrar\xE1n.`,manyTitle:`¿Eliminar las redes?`,manyDescription:e=>`Se eliminar\xE1n ${$h(e)}. Las redes con contenedores conectados y las redes integradas se omiten.`},prune:{title:`¿Limpiar las redes que no se usan?`,description:`Se elimina toda red sin ningún contenedor conectado. Esto no libera espacio en disco; mantiene la lista ordenada.`,confirm:`Limpiar`},pruned:e=>`${$h(e)} eliminadas.`,created:e=>`La red ${e} se ha creado.`,ports:{title:`Puertos`,none:`Ningún contenedor publica un puerto.`,missing:`no publicado`,missingTitle:`Solicitado, pero Docker no lo publicó. Reconstruir el contenedor lo arregla.`,open:e=>`Abrir localhost:${String(e)} en el navegador`,searchLabel:`Buscar por puerto o contenedor`,intro:`Cada puerto publicado de cada contenedor en marcha, en una sola lista.`,allAddresses:`todas las direcciones`,empty:`Ningún puerto coincide.`,columns:{hostPort:`Puerto`,container:`Contenedor`,target:`En el contenedor`,address:`Dirección`}}}});var Oh;var Ph=p(()=>{Oh={title:`Ajustes`,language:{heading:`Idioma`,label:`Idioma de la aplicación`,hint:`Los términos técnicos como container, image y volume se quedan en inglés.`},startup:{heading:`Inicio`,startAtLogin:`Iniciar al entrar en la sesión, directo al área de notificación`,paletteShortcut:`Ctrl+Mayús+Espacio abre la búsqueda, en cualquier parte de Windows`,shortcutTaken:`Ctrl+Mayús+Espacio ya lo usa otro programa; el atajo no funciona ahora.`,hintAvailable:`Así las notificaciones de abajo también llegan cuando no abres la aplicación tú. Desactívalo aquí, o en el Administrador de tareas en Aplicaciones de inicio.`,hintUnavailable:`Solo funciona en la aplicación instalada. Aquí Windows iniciaría un electron.exe pelado.`},backups:{heading:`Copias automáticas`,empty:`Aún ningún volume. Actívalo desde el menú de un volume.`,line:(e,n)=>`${e}, a ${n}`,edit:`Cambiar…`,remove:`Detener`},prune:{heading:`Limpieza`,auto:`Limpiar una vez por semana imágenes sin etiqueta y caché de build`,hint:`Nunca volúmenes, contenedores detenidos ni imágenes con etiqueta: alguien los dejó a propósito. Recibes un aviso con lo que liberó.`,last:e=>`\xDAltima vez: ${e}.`,never:`Todavía no.`},notifications:{heading:`Notificaciones`,crash:`Cuando un contenedor se detiene de forma inesperada`,unhealthy:`Cuando un contenedor pasa a unhealthy`,wiring:`Cuando un contenedor pierde su red o sus puertos`,hint:`Un contenedor que detienes tú, desde la aplicación, la terminal o con compose down, nunca provoca una notificación. Un mismo contenedor avisa como mucho una vez por minuto.`,muted:e=>e===1?`1 contenedor sin notificaciones`:`${String(e)} contenedores sin notificaciones`,unmute:`Activar`,unmuteAll:`Activar todo de nuevo`,mutedHint:`Se recuerda por nombre: un contenedor que compose recrea sigue en silencio. Aun así aparece en Necesita atención.`},update:{heading:`Actualizaciones`,version:e=>`versi\xF3n ${e}`,install:`Reiniciar y actualizar`,check:`Comprobar ahora`,auto:`Buscar versiones nuevas y descargarlas por adelantado`,unavailable:`Solo la aplicación instalada en Windows se actualiza sola. Con npm, actualizas por npm.`,idle:`Se descarga una versión nueva y se instala en cuanto cierras la aplicación.`,checking:`Buscando una versión nueva…`,upToDate:e=>`Esta es la \xFAltima versi\xF3n. Comprobado a las ${e}.`,downloading:(e,n)=>`Descargando la versi\xF3n ${e}\u2026 ${String(n)} %`,ready:e=>`La versi\xF3n ${e} est\xE1 lista y se instalar\xE1 cuando cierres la aplicaci\xF3n. Reinicia para instalarla ahora.`,error:e=>`No se ha podido comprobar: ${e}`},servers:{heading:`Servidores`,hint:`Hosts de Docker por SSH o TCP. Se guardan como contexts de docker, así que la CLI de docker también los conoce. Cambia entre ellos con el selector de la barra de estado.`,empty:`Todavía no hay servidores.`,inUse:`en uso`,cli:`CLI`,test:`Probar`,testing:`Probando…`,remove:`Eliminar`,removeBlocked:`En uso por la aplicación o por la CLI de docker. Cambia antes a otro context.`,removeTitle:e=>`\xBFEliminar el servidor '${e}'?`,removeDescription:`Esto elimina el context de docker, también para la CLI de docker. En el servidor mismo no cambia nada.`,connected:(e,n,t)=>`Conectado: Docker ${e} en ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} todav\xEDa no se conoce. Compara esta huella ${n} con la del servidor (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) antes de confiar en ella:`,trust:`Confiar y volver a probar`,add:{heading:`Añadir un servidor`,name:`Nombre`,namePlaceholder:`servidor-casa`,kind:`Conexión`,ssh:`SSH`,tcp:`TCP`,username:`Usuario`,usernamePlaceholder:`vacío: usuario de este ordenador`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Puerto`,description:`Descripción`,descriptionPlaceholder:`opcional`,submit:`Añadir`,tcpWarning:`El TCP a secas no tiene autenticación: quien alcance el puerto en la red controla Docker. Mejor usa SSH.`,added:e=>`Servidor '${e}' a\xF1adido.`}},assistant:{configured:`Hay una clave guardada.`,clearKey:`Eliminar la clave`,keyLabel:`Clave de API`,model:`Modelo`,modelHint:`Opus razona mejor sobre un problema difícil; Sonnet y Haiku responden más rápido y cuestan menos. Haiku además lee menos de una vez.`,hint:`Con tu propia clave de API de Claude, cada contenedor tiene una pestaña de Claude que ayuda a mirar un problema. La clave se guarda cifrada en este ordenador, y solo la puede leer tu usuario de Windows. Cada pregunta cuesta unos céntimos de uso de API, en tu cuenta.`}}});var jh;var Fh=p(()=>{jh={nav:{label:`Navegación principal`,dashboard:`Panel`,containers:`Contenedores`,images:`Images`,volumes:`Volumes`,networks:`Redes`,ports:`Puertos`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Ajustes`},routes:{container:`Contenedor`},header:{search:`Buscar (Ctrl+K)`,lightTheme:`Tema claro`,darkTheme:`Tema oscuro`,quit:`Salir de Docker Client MX`},statusBar:{connecting:`Conectando con Docker…`,engineRunning:`Engine en marcha`,engineUnreachable:`Engine inaccesible`,containers:(e,n)=>`${String(e)} de ${String(n)} contenedores`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconectar`},contextPicker:{label:`Context de Docker`,switching:`Cambiando…`,unsupported:`no compatible`,inUseByCli:`en uso por la CLI`},actionMenu:{label:`Acciones`},confirmDialog:{confirm:`Eliminar`},dataTable:{empty:`No se ha encontrado nada.`,selectAll:`Seleccionar todo`,clearSelection:`Borrar la selección`,select:e=>`Seleccionar ${e}`},jsonView:{expand:e=>`Desplegar: ${e}`,collapse:e=>`Plegar: ${e}`,empty:`No hay nada que mostrar.`},toast:{region:`Notificaciones (F8)`,close:`Cerrar la notificación`},usageChart:{ago:e=>`hace ${e}`,max:e=>`m\xE1x. ${e}`,now:`ahora`,values:(e,n,t)=>`ahora ${e}, m\xE1ximo ${n}, m\xEDnimo ${t}`,noData:e=>`${e}: todav\xEDa no hay mediciones.`,summary:(e,n,t)=>`${e} en ${n}: ${t}.`},palette:{title:`Ir a`,description:`Escribe para buscar páginas, contenedores, images, volumes y redes. Las flechas eligen, Intro ejecuta.`,placeholder:`Busca una página, un contenedor, una image, un volume o una red…`,results:`Resultados`,empty:`No se ha encontrado nada.`,groups:{page:`Página`,container:`Contenedor`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Red`,action:`Acción`},sections:{page:`Páginas`,container:`Contenedores`,image:`Imágenes`,volume:`Volúmenes`,compose:`Proyectos compose`,network:`Redes`,action:`Acciones`},recent:`Recientes`,attention:`Requiere atención`,hint:`c contenedores · i imágenes · v volúmenes · n redes · p compose · > acciones · → acciones de una línea`,actions:`Acciones`,verbs:{start:`Iniciar`,stop:`Detener`,restart:`Reiniciar`,pause:`Pausar`,unpause:`Reanudar`,recreate:`Reconstruir`},commandHint:`Intro lo ejecuta`,commandNothing:`Nada que ejecutar`,problems:{unknown:e=>`${e}: no encontrado`,ambiguous:(e,n)=>`${e}: ${String(n)} contenedores, s\xE9 m\xE1s preciso`,state:e=>`${e}: no es posible en este estado`,notCompose:e=>`${e}: no es un contenedor de compose`},commandDone:e=>e===1?`1 orden ejecutada.`:`${String(e)} \xF3rdenes ejecutadas.`,events:e=>`Eventos de ${e}`,terminal:e=>`Terminal en ${e}`,memory:e=>`L\xEDmite de memoria de ${e}\u2026`,cpu:e=>`L\xEDmite de CPU de ${e}\u2026`,rename:e=>`Renombrar ${e}\u2026`,processes:e=>`Procesos de ${e}`,kill:e=>`Matar ${e}\u2026`,duplicate:e=>`Duplicar ${e}\u2026`,commit:e=>`Guardar ${e} como imagen\u2026`,adjust:e=>`Ajustar ${e}\u2026`,logsHour:e=>`Logs de ${e}, \xFAltima hora`,logsCrash:e=>`Logs de ${e} alrededor del fallo`,imageTag:e=>`A\xF1adir etiqueta a ${e}\u2026`,imagePush:e=>`Push de ${e}\u2026`,buildImage:`Construir imagen…`,openCompose:`Abrir archivo compose…`,composeService:e=>`Servicio compose de ${e}`,copyId:e=>`Copiar el ID de ${e}`,imageRun:e=>`Iniciar ${e}\u2026`,imageLayers:e=>`Capas de ${e}`,imagePull:e=>`Volver a descargar ${e}`,imageRemove:e=>`Eliminar ${e}\u2026`,volumeBackup:e=>`Copia de seguridad de ${e}\u2026`,composeLogs:e=>`Seguir los logs de ${e}`,prune:`Limpiar…`,space:`¿Dónde está el espacio?`,mute:e=>`Sin notificaciones: ${e}`,unmute:e=>`Activar notificaciones de nuevo: ${e}`,volumeSchedule:e=>`Copia autom\xE1tica de ${e}\u2026`,checkUpdates:`Buscar actualizaciones de imágenes`,theme:`Cambiar entre claro y oscuro`,useContext:e=>`Cambiar a ${e}`,copied:e=>`Copiado: ${e}`,askClaude:e=>`Preguntar a Claude: ${e}`,askNote:`Solo tu pregunta va a Claude`,thinking:`Claude está pensando…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Para esto, Claude miró tus contenedores, con las mismas herramientas que la pestaña Claude.`,commandNote:`Para esto, Claude recibió los nombres y el estado de tus contenedores.`,aiNothing:`Claude no encontró nada que encaje.`,aiMatches:e=>e===1?`1 resultado`:`${e} resultados`,noContainerSize:`La paleta no conoce el tamaño de los contenedores; el de imágenes y volúmenes sí.`,updateProject:e=>`Actualizar ${e}`,copyCommand:e=>`Copiar: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`Iniciar ${e}`,stop:e=>`Detener ${e}`,restart:e=>`Reiniciar ${e}`,diagnose:e=>`Diagnosticar ${e}`,imageInUse:e=>`Image \xB7 usada por ${String(e)} contenedor${e===1?``:`es`}`,imageUnused:`Image · sin usar`,network:e=>`Red \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} de ${String(n)} en marcha`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: mostrar el archivo compose`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`Recrear ${e}`,recreateDetail:`up --force-recreate solo para este servicio`,volumeBrowse:e=>`Archivos en ${e}`,networkMembers:e=>`Qui\xE9n est\xE1 conectado a ${e}`}}});var Hh;var Vh=p(()=>{Hh={title:`Terminal`,intro:{start:`Un shell en la máquina donde se ejecuta el daemon de Docker, como tu distro de WSL.`,afterDocker:` funciona aquí como siempre. Eres `,afterRoot:`: el shell va por un contenedor `,afterAlpine:` efímero y privilegiado que desaparece en cuanto cierras el shell o esta página.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Cargando la terminal…`}});var zh;var Hc;var Uh;var Bh=p(()=>{zh=e=>`${String(e)} volume${e===1?``:`s`}`,Hc=e=>`${String(e)} contenedor${e===1?``:`es`}`,Uh={title:`Volumes`,diskSpace:`Espacio en disco`,calculating:`calculando…`,unused:`Sin usar`,menuLabel:`Acciones de volume`,searchLabel:`Buscar por nombre`,onlyUnused:`Solo los volumes sin usar`,refreshing:`Actualizando…`,selected:e=>`${String(e)} seleccionados`,empty:`No se han encontrado volumes.`,columns:{name:`Nombre`,driver:`Driver`,inUse:`En uso`,created:`Creado`,size:`Tamaño`,actions:`Acciones`},containerCount:Hc,rowMenu:e=>`Acciones para ${e}`,rowBrowse:`Ver el contenido…`,browse:{title:e=>`Dentro de ${e}`,description:`Explorar es de solo lectura, mediante un contenedor auxiliar efímero que desaparece al cerrar esto. Guardar y subir usan cada uno el suyo.`,loading:`Cargando…`,empty:`Esta carpeta está vacía.`,up:`Carpeta superior`,path:`Ruta en el volumen`,upload:`Subir…`,edit:e=>`Editar ${e}`,uploaded:(e,n)=>`${String(e)} ${e===1?`archivo puesto`:`archivos puestos`} en ${n}.`},rowBackup:`Hacer copia como .tar`,rowRestore:`Restaurar una copia…`,rowCopy:`Copiar a un volume nuevo…`,rowSchedule:`Copia automática…`,schedule:{title:e=>`Copia autom\xE1tica de ${e}`,description:`El mismo .tar que Hacer copia, sin preguntar el destino cada vez. Se restaura con Restaurar copia.`,every:`Con qué frecuencia`,daily:`Cada día`,weekly:`Cada semana`,folder:`Carpeta`,noFolder:`Aún no hay carpeta`,chooseFolder:`Elegir…`,keep:`Cuántas conservar`,inUse:`Cuando un contenedor en marcha usa el volume`,skip:`Saltarla, y volver a intentarlo cada hora`,skipHint:`Una base de datos que escribe durante la copia puede dejar un .tar que no siempre se restaura.`,pause:`Pausar esos contenedores durante la copia`,pauseHint:e=>`Unos segundos sin respuesta: ${e}.`,pauseHintNone:`Unos segundos sin respuesta para los contenedores que lo usan. Ahora no hay ninguno en marcha.`,save:`Guardar`,remove:`Dejar de hacer copias`,saved:e=>`${e} tendr\xE1 copias autom\xE1ticas. La primera se hace ya.`,removed:e=>`No habr\xE1 m\xE1s copias autom\xE1ticas de ${e}. Las que hay se quedan.`,lastOk:(e,n)=>`\xDAltima copia: ${e}, ${n}.`,lastSkipped:(e,n)=>`Saltada el ${e}: en uso por ${n}.`,lastFailed:(e,n)=>`Fall\xF3 el ${e}: ${n}`,badgeNone:e=>`Copia autom\xE1tica: ${e}. A\xFAn ninguna.`,badgeOk:(e,n)=>`Copia autom\xE1tica: ${e}. \xDAltima: ${n}.`,badgeSkipped:(e,n,t)=>`Copia autom\xE1tica: ${e}. Saltada el ${n}, en uso por ${t}.`,badgeFailed:(e,n,t)=>`Copia autom\xE1tica: ${e}. Fall\xF3 el ${n}: ${t}`},backupTitle:e=>`Hacer una copia de ${e} como .tar`,backupTitleInUse:e=>`Hacer una copia de ${e}. Est\xE1 en uso: una base de datos que escriba durante la copia puede dejar una copia que no siempre se restaura bien. Det\xE9n antes ese contenedor, o usa su propio dump.`,restoreTitle:e=>`Restaurar una copia en ${e}`,inUseReason:e=>`Lo usa ${Hc(e)}; elim\xEDnalos o detenlos primero`,menu:{create:`Crear un volume…`,pruneAnonymous:`Limpiar los anónimos`,pruneUnused:`Limpiar los que no se usan`},createDialog:{title:`Crear un volume`,description:`Un volume vacío con un nombre, para asociarlo después a un contenedor.`,nameLabel:`Nombre`,namePlaceholder:`my-data`,storageLabel:`¿Dónde se guardan los datos?`,storage:{docker:`Gestionado por Docker`,dockerHint:`Recomendado. Docker decide dónde van los datos.`,folder:`Una carpeta en la máquina de Docker`,folderHint:`Una carpeta que ya exista, por ejemplo para compartir archivos con un contenedor.`,nfs:`Un recurso NFS en la red`,nfsHint:`Una carpeta compartida en un NAS o un servidor.`},folderLabel:`Carpeta`,folderHint:`La carpeta ya debe existir en la máquina donde se ejecuta Docker. En WSL, C:\\data es /mnt/c/data.`,nfsServerLabel:`Servidor`,nfsPathLabel:`Carpeta compartida`,nfsHint:`Solo se comprueba cuando un contenedor empieza a usar este volume.`,advanced:`Avanzado`,driverLabel:`Driver`,driverHint:`Déjalo en local salvo que uses un plugin de volume.`,submit:`Crear`,creating:`Creando…`},copy:{title:e=>`Copiar ${e}`,description:`Todo lo de este volume pasa a uno nuevo, con propietarios y permisos. El original queda igual.`,name:`Nombre del volume nuevo`,taken:`Ya existe un volume con este nombre; elige otro.`,running:e=>`En uso por ${e}, que est\xE1 en marcha. Una base de datos que escribe durante la copia da una copia que quiz\xE1 no pueda leer: detenla antes.`,stopped:e=>`Usado por ${e}, que est\xE1 detenido: nada escribe durante la copia.`,copy:`Copiar`,copying:`Copiando…`,copied:(e,n)=>`${e} se ha copiado a ${n}.`},restore:{title:e=>`\xBFRestaurar una copia en ${e}?`,description:e=>`Los archivos con el mismo nombre se sobrescriben; lo que no esté en la copia se queda. `+(e>0?`Det\xE9n primero ${Hc(e)} que usan este volume: una base de datos en marcha no se entera de que sus archivos han cambiado. `:``)+`El archivo lo eliges a continuación.`,confirm:`Elegir un archivo`},remove:{title:`¿Eliminar el volume?`,description:e=>`Se perder\xE1n todos los datos de '${e}'. Esto no se puede deshacer.`,manyTitle:`¿Eliminar los volumes?`,manyDescription:e=>`Se perder\xE1n todos los datos de ${zh(e)}. Los volumes que todav\xEDa est\xE1n en uso se omiten.`},prune:{allTitle:`¿Limpiar todos los volumes sin usar?`,allDescription:`Se elimina todo volume sin un contenedor asociado, incluidos los volumes con nombre que creaste tú. Los datos que contienen se pierden.`,anonymousTitle:`¿Limpiar los volumes anónimos?`,anonymousDescription:`Se eliminan los volumes sin nombre que ya no usa ningún contenedor. Suelen ser restos de contenedores que ya no existen.`,confirm:`Limpiar`},created:e=>`El volume ${e} se ha creado.`,pruned:(e,n)=>`${zh(e)} eliminados, ${n} liberados.`,backedUp:(e,n)=>`Copia de ${e} guardada como ${n}.`,restored:(e,n)=>`${e} se ha restaurado en ${n}.`}});var qh;var Wh=p(()=>{vh();bh();Dh();Ih();kh();Mh();xh();Lh();Ph();Fh();Vh();Bh();qh={common:hh,compose:yh,containers:wh,dashboard:Ch,format:Eh,images:Nh,logs:Ah,networks:Rh,settings:Oh,shell:jh,terminal:Hh,volumes:Uh}});var Gh;var Zh=p(()=>{Gh={cancel:`Annuler`,close:`Fermer`,remove:`Supprimer`,retry:`Réessayer`,refresh:`Actualiser`,search:`Rechercher`,loading:`Chargement…`,save:`Enregistrer`,copy:`Copier`,copied:`Copié`,start:`Démarrer`,stop:`Arrêter`,restart:`Redémarrer`,yes:`Oui`,no:`Non`,none:`Aucun`,unknown:`Inconnu`,nothingToPrune:`Il n’y avait rien à nettoyer.`}});var Kh;var Qh=p(()=>{Kh={title:`Compose`,intro:`Les projets issus des labels de vos conteneurs, et ceux que l’application a déjà vus : après down, un projet reste ici, avec Up à côté.`,updating:`Mise à jour…`,state:{running:`en cours`,partial:`partiel`,stopped:`arrêté`,down:`non démarré`},runningOf:(e,n)=>`${String(e)} sur ${String(n)}`,expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,menuAria:e=>`Actions pour ${e}`,upAria:e=>`D\xE9marrer ${e} (up)`,startAria:e=>`D\xE9marrer ${e}`,stopAria:e=>`Arr\xEAter ${e}`,restartAria:e=>`Red\xE9marrer ${e}`,downAria:e=>`Arr\xEAter ${e} (down)`,up:`Up`,down:`Down`,fileAria:e=>`Afficher le fichier compose de ${e}`,file:{button:`Fichier`,title:e=>`Le fichier compose de ${e}`,loading:`Chargement…`,raw:`Tel qu’écrit`,resolved:`Tel que compose le lit`,rawHint:`Le fichier sur le disque, inchangé.`,resolvedHint:"Overrides fusionnés et ${VAR} remplacées : c’est la base du projet en cours.",empty:`Ce fichier est vide.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},noCli:`La CLI docker n’est pas disponible`,noWorkingDir:`L’emplacement de ce projet est inconnu`,busy:`En cours… un up peut prendre du temps si des images doivent être téléchargées.`,empty:`Pas encore de projets Compose. Ouvrez un fichier compose, ou démarrez-en un ailleurs ; il apparaîtra ici tout seul.`,openFile:`Ouvrir un fichier compose…`,opening:`Démarrage…`,openHint:`docker compose -f <fichier> up -d`,forget:`Oublier`,forgetHint:`Le retire de cette liste ; le fichier compose et les éventuels conteneurs restent.`,forgotten:e=>`'${e}' oubli\xE9.`,missing:`Le fichier compose n’existe plus.`,notStarted:`aucun conteneur`,downDialog:{title:`Arrêter le projet ?`,description:e=>`Les conteneurs et les r\xE9seaux de '${e}' seront arr\xEAt\xE9s et supprim\xE9s. Les volumes sont conserv\xE9s, vos donn\xE9es sont donc pr\xE9serv\xE9es.`,confirm:`Arrêter`},recreate:`Recréer`,recreateAria:e=>`Recr\xE9er ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} a \xE9t\xE9 recr\xE9\xE9.`,drift:`fichier modifié`,driftTitle:`Le fichier compose a changé depuis la création de ce service. Le recréer applique la modification.`,driftProject:e=>`Fichier modifi\xE9 : ${e}`,driftProblem:e=>`Compose ne peut pas lire le fichier : ${e}`,upDone:e=>`'${e}' est d\xE9marr\xE9.`,downDone:e=>`'${e}' a \xE9t\xE9 arr\xEAt\xE9.`,update:{menu:`Mettre à jour`,hint:`Récupérer toutes les images, puis renouveler ce qui a changé`,title:e=>`Mettre \xE0 jour ${e}`,description:`Toutes les images de ce projet sont récupérées. Ensuite, seuls les services dont l’image a changé sont renouvelés.`,loading:`Recherche des images utilisées par le projet…`,waiting:`en attente`,pulling:`récupération…`,pulled:`récupérée`,failed:e=>`\xE9chec : ${e}`,skippedBuild:`construite avec build:, rien à récupérer`,skippedDigest:`figée sur un digest`,checking:`Vérification de ce qui a changé…`,stale:e=>`Image plus r\xE9cente pour : ${e}`,upToDate:`Tout était à jour ; rien à renouveler.`,renew:`Renouveler`,renewing:`Renouvellement…`,renewHint:`docker compose up -d --no-deps, uniquement ces services`,renewed:e=>`Renouvel\xE9s : ${e}.`,unchanged:e=>`Laiss\xE9s en marche : ${e}.`,noImages:`Ce projet n’a aucune image à récupérer.`},build:{button:`Reconstruire`,busy:`Construction…`,title:`docker compose build --pull, puis up -d --no-deps`,aria:e=>`Reconstruire ${e}`,done:e=>`${e} a \xE9t\xE9 reconstruit et d\xE9marr\xE9.`,output:`Sortie du build`}}});var Yh;var Jh=p(()=>{Yh={actions:{pause:`Mettre en pause`,resume:`Reprendre`,copyDiagnosis:`Copier le diagnostic`,copyRunCommand:`Copier la commande run`,copyComposeService:`En service compose`,restartPolicy:`Politique de redémarrage…`,memoryLimit:`Limite de mémoire…`,cpuLimit:`Limite de CPU…`,rename:`Renommer…`,commit:`Enregistrer comme image…`,kill:`Arrêter immédiatement…`,duplicate:`Dupliquer…`,mute:`Pas de notifications`,unmute:`Réactiver les notifications`,muted:e=>`Plus de notifications pour ${e}.`,unmuted:e=>`Les notifications pour ${e} sont r\xE9activ\xE9es.`,adjust:`Ajuster…`,recreate:`Reconstruire`},page:{title:`Conteneurs`,cpuUsage:`Utilisation CPU`,memoryUsage:`Utilisation mémoire`,search:`Rechercher par nom, image ou ID`,onlyRunning:`Seulement les conteneurs en cours`,updating:`Mise à jour…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun conteneur trouvé.`,columns:{name:`Nom`,id:`ID du conteneur`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Mémoire`,actions:`Actions`},group:{loose:`Conteneurs isolés`,expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,count:e=>e===1?`1 conteneur`:`${String(e)} conteneurs`,running:e=>`${String(e)} en cours`,startAll:`Tout démarrer`,stopAll:`Tout arrêter`,restartAll:`Tout redémarrer`,removeAll:`Tout supprimer`,menu:e=>`Actions pour tout dans ${e}`,manual:`Groupe personnel`,addToGroup:`Ajouter à un groupe…`,removeFromGroup:`Retirer du groupe`,rename:`Renommer le groupe…`,dissolve:`Dissoudre le groupe`},groupDialog:{assignTitle:`Ajouter à un groupe`,assignOne:e=>`'${e}' rejoint le groupe que vous nommez ici.`,assignMany:e=>`${String(e)} conteneurs rejoignent le groupe que vous nommez ici.`,renameTitle:`Renommer le groupe`,renameDescription:e=>`Tout ce qui est dans '${e}' suit le nouveau nom.`,nameLabel:`Nom du groupe`,namePlaceholder:`par exemple mon-stack`,existing:`Groupes existants`,hint:`Un groupe personnel vit dans cette application et suit le nom du conteneur ; Docker lui-même n’en sait rien.`,empty:`Saisissez un nom.`,reserved:e=>`'${e}' est d\xE9j\xE0 un projet Compose.`,submit:`Enregistrer`},row:{diagnosisOf:e=>`Diagnostic de ${e}`,missingNetwork:e=>`Tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}`,menu:e=>`Actions pour ${e}`,muted:`Pas de notifications pour ce conteneur`},confirm:{title:`Supprimer le conteneur ?`,one:e=>`'${e}' sera arr\xEAt\xE9 et supprim\xE9. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`,many:e=>`${e===1?`1 conteneur sera arrêté et supprimé`:`${String(e)} conteneurs seront arr\xEAt\xE9s et supprim\xE9s`}. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`,group:(e,n)=>`Les ${String(e)} conteneurs de '${n}' seront arr\xEAt\xE9s et supprim\xE9s. C\u2019est irr\xE9versible ; les volumes sont conserv\xE9s.`}},detail:{back:`‹ Conteneurs`,menu:`Actions pour ce conteneur`,gone:` n’existe plus. Un conteneur lancé avec --rm disparaît dès qu’il s’arrête, et compose en crée un nouveau au up.`,goneUnnamed:`Ce conteneur n’existe plus.`,successor:(e,n)=>`Aller au ${e} actuel (${n})`,tabsLabel:`Détails du conteneur`,tabs:{logs:`Logs`,health:`Health`,events:`Événements`,inspect:`Inspect`,env:`Environnement`,stats:`Stats`,processes:`Processus`,terminal:`Terminal`,files:`Fichiers`,networks:`Réseaux`,assistant:`Claude`},wiring:{network:e=>`Tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}. Rien ne le joint par ce r\xE9seau, et il ne joint rien.`,networkWhy:`Cela arrive quand le réseau a été supprimé puis recréé alors que le conteneur existait.`,connect:e=>`Relier \xE0 ${e}`,ports:e=>`Tourne, mais ne publie pas ${e}.`,portsWhy:`Cela arrive quand il a été redémarré après un démarrage qui a échoué sur un port pris.`,portsFromNetwork:`Cela découle du réseau manquant ci-dessus : les ports passent par un réseau.`,restart:`Redémarrer`},events:{loading:`Chargement…`,empty:`Rien d’enregistré pour l’instant. L’app enregistre depuis son démarrage, plus ce dont Docker se souvenait alors.`,scope:`Enregistré dans l’app depuis son démarrage, jusqu’à 100 par nom de conteneur ; après un redémarrage de l’app, Docker complète avec ce dont il se souvient.`,crashLoop:e=>`Plant\xE9 ${String(e)} fois dans la derni\xE8re heure.`,create:`Créé`,start:`Démarré`,exited:e=>e===0?`Arrêté normalement`:`Arr\xEAt\xE9 avec le code ${String(e)}`,exitedUnknown:`Arrêté`,exitHint137:`SIGKILL : tué de l’extérieur, souvent mémoire pleine ou un arrêt trop long`,exitHint143:`SIGTERM : prié de s’arrêter`,kill:e=>`${e} envoy\xE9`,oom:`Tué par le noyau : mémoire pleine`,stop:`Arrêté`,restart:`Redémarré`,pause:`En pause`,unpause:`Repris`,destroy:`Supprimé`,rename:e=>`Renomm\xE9, \xE9tait ${e}`,renamed:`Renommé`,health:{starting:`Healthcheck démarre`,healthy:`Devenu healthy`,unhealthy:`Devenu unhealthy`}},health:{loading:`Chargement…`,refresh:`Actualiser`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`pas encore exécuté`},failingStreak:e=>e===1?`a échoué une fois`:`a \xE9chou\xE9 ${String(e)} fois de suite`,command:`Commande`,fromImage:`Vient de l’image ; le daemon ne donne pas la commande.`,rhythm:`Rythme`,every:e=>`toutes les ${e}`,timeout:e=>`d\xE9lai ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 tentative avant unhealthy`:`${String(e)} tentatives avant unhealthy`,defaults:`les valeurs par défaut de Docker`,probes:`Derniers résultats`,noProbes:`La vérification n’a pas encore été exécutée.`,exitCode:e=>`code de sortie ${String(e)}`,unknownExitCode:`pas de code de sortie`,noOutput:`pas de sortie`},networks:{title:`Sur ces réseaux`,loading:`Chargement…`,empty:`Ce conteneur n’est sur aucun réseau.`,noAddress:`pas d’adresse`,alsoKnownAs:e=>`aussi joignable comme ${e}`,disconnect:`Déconnecter`,disconnectFrom:e=>`D\xE9connecter de ${e}`,addTitle:`Connecter à un réseau`,addHint:`Prend effet tout de suite, même pendant que le conteneur tourne.`,allConnected:`Ce conteneur est déjà sur tous les réseaux.`,networkLabel:`Réseau`,choose:`Choisissez un réseau…`,alias:`Nom supplémentaire dans le réseau`,aliasHint:`Un nom supplémentaire que les autres conteneurs de ce réseau peuvent utiliser, en plus du nom du conteneur.`,aliasPlaceholder:`base-de-donnees`,connect:`Connecter`,working:`En cours…`,invalidAlias:e=>`'${e}' n\u2019est pas un nom valide. Utilisez des lettres, des chiffres, des points, des tirets et des underscores.`},fetching:`Chargement…`,terminalLoading:`Chargement du terminal…`,shellOnlyRunning:`Un shell ne peut être ouvert que dans un conteneur en cours d’exécution.`,cpu:`CPU`,lastMinute:e=>`derni\xE8re minute \xB7 pic ${e} %`,chartPending:`le graphique apparaît après quelques mesures`,memory:`Mémoire`,ofLimit:e=>`${e} % de la limite`,noLimit:`aucune limite définie`,cpuOfLimit:(e,n)=>`${e} % de la limite de ${n} CPU`,cpuNoLimit:`aucune limite : jusqu’à tous les processeurs`,nearLimit:`Proche de la limite : au-delà, le noyau commence à tuer des processus du conteneur.`,statsOnlyRunning:`Les stats ne sont collectées que pour un conteneur en cours d’exécution.`,confirmTitle:`Supprimer le conteneur ?`,confirmDescription:`Ce conteneur sera arrêté et supprimé. C’est irréversible ; les volumes sont conservés.`},diagnosis:{title:`Copier le diagnostic`,description:`Statut, health, mounts, events et les dernières lignes de log, à coller dans un chat ou une issue. C’est exactement ce qui est copié.`,collecting:`Collecte…`,noRedactions:`Rien n’a été omis ; aucune valeur ne ressemblait à un secret.`,redactions:e=>`${e===1?`1 valeur omise`:`${String(e)} valeurs omises`} : les variables d\u2019environnement et tout ce qui ressemblait \xE0 un mot de passe, un token ou une cl\xE9.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},memoryLimit:{title:`Limite de mémoire`,description:`La mémoire que le conteneur peut utiliser. Effet immédiat ; le conteneur n’est pas recréé pour autant.`,loading:`Chargement…`,current:e=>`Actuellement : ${e}`,none:`Actuellement : pas de limite`,label:`Limite`,unit:`Unité`,noRemove:`Supprimer une limite n’est pas possible ainsi : Docker ne fait que la modifier. Sans limite, il faut recréer le conteneur.`,compose:`C’est un conteneur compose : compose up remet ce que dit le fichier compose.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`La limite de m\xE9moire est maintenant de ${e}.`,invalid:`Saisissez un nombre supérieur à zéro.`},editor:{title:e=>`Modifier ${e}`,loading:`Chargement…`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`${e} enregistr\xE9.`,closeUnsaved:`Fermer sans enregistrer`,unsaved:`Non enregistré`,conflict:`Enregistrer quand même, par-dessus l’autre modification, ou recharger le fichier et perdre la vôtre ?`,reload:`Recharger`,overwrite:`Enregistrer quand même`,onMount:`Ce fichier est sur un volume ou un dossier monté : la modification reste.`,notOnMount:`Cette modification est dans le conteneur lui-même : elle disparaît à la prochaine reconstruction. Enregistrez le conteneur comme image pour la garder.`,saveAsImage:`Enregistrer comme image…`,restart:`Un programme lit généralement sa configuration au démarrage ; redémarrez le conteneur pour utiliser la modification.`,inVolume:`Les conteneurs qui utilisent ce volume voient la modification tout de suite ; la plupart des programmes ne relisent leur configuration qu’au redémarrage.`},adjust:{title:e=>`Ajuster ${e}`,description:`Docker ne peut pas modifier cela sur un conteneur existant ; il est donc recréé sous le même nom. Si le nouveau ne démarre pas, l’ancien reste tel quel. Les volumes restent.`,loading:`Chargement…`,env:`Variables d’environnement`,envHint:`Une par ligne, NOM=valeur. Les mots de passe sont visibles ici aussi.`,envInvalid:e=>`La ligne ${String(e)} n\u2019est pas NOM=valeur.`,ports:`Ports sur cette machine`,portHint:`Vide : Docker en choisit un libre.`,hostPort:e=>`Port sur cette machine pour ${e}`,restart:`Politique de redémarrage`,compose:`C’est un conteneur compose : modifiez-le dans le fichier compose, puis recréez-le avec Reconstruire.`,openFile:`Voir le fichier compose`,save:`Appliquer`,saving:`Application…`,done:e=>`${e} tourne avec les nouveaux r\xE9glages.`},duplicate:{title:e=>`Dupliquer ${e}`,description:`Un nouveau conteneur avec les mêmes réglages, pour essayer quelque chose côte à côte. Il démarre aussitôt.`,loading:`Chargement…`,name:`Nom`,invalid:`Au moins deux caractères : une lettre ou un chiffre, suivi de lettres, chiffres, _ . ou -.`,taken:`Un conteneur porte déjà ce nom.`,ports:`Ports sur cette machine`,portHint:`Le même port deux fois n’est pas possible. Vide : Docker en choisit un libre.`,hostPort:e=>`Port sur cette machine pour ${e}`,volumes:`Volumes`,volumesHint:`Deux conteneurs sur un volume écrivent dans les mêmes fichiers ; pour une base de données, une copie est plus sûre. La copie prend du temps pour un gros volume.`,copy:`Copie`,share:`Partager`,compose:`C’est un conteneur compose. La copie est indépendante du projet : compose ne la connaît pas.`,save:`Dupliquer`,saving:`Duplication…`,done:e=>`${e} tourne.`},processes:{notRunning:`Rien ne tourne dans un conteneur arrêté.`,loading:`Chargement…`,hint:e=>`${String(e)} processus, le plus actif en haut. Actualis\xE9 toutes les quelques secondes ; cliquez sur une commande pour la voir en entier.`,pids:`Le PID est celui de l’hôte, pas celui de ps dans le conteneur.`,user:`Utilisateur`,memory:`Mémoire`,elapsed:`Tourne depuis`,command:`Commande`,redacted:`Ce qui ressemble à un secret est omis.`},kill:{title:`Arrêter immédiatement ?`,description:e=>`${e} re\xE7oit SIGKILL : le processus s\u2019arr\xEAte aussit\xF4t, sans pouvoir faire le m\xE9nage. Ce qui n\u2019est pas encore \xE9crit est perdu.`,confirm:`Arrêter immédiatement`,now:`Arrêter maintenant`,hint:`L’arrêt prend du temps : Docker attend que le processus s’arrête de lui-même.`},rename:{title:`Renommer le conteneur`,description:e=>`Un nouveau nom pour ${e}. Possible m\xEAme en cours d\u2019ex\xE9cution ; le conteneur n\u2019est pas recr\xE9\xE9.`,label:`Nom`,invalid:`Au moins deux caractères : une lettre ou un chiffre, suivi de lettres, chiffres, _ . ou -.`,taken:`Un conteneur porte déjà ce nom.`,compose:`C’est un conteneur compose. Compose le reconnaît à ses labels, pas à son nom : il reste dans le projet, mais reprend le nom du projet dès que compose le recrée.`,save:`Renommer`,saving:`Renommage…`,saved:(e,n)=>`${e} s\u2019appelle maintenant ${n}.`},commit:{title:`Enregistrer comme image`,description:`Enregistre le système de fichiers du conteneur comme nouvelle image, avec ce que vous y avez modifié. Le conteneur lui-même reste tel quel.`,label:`Nom et tag`,suffix:`-perso`,hint:`En minuscules, comme mon-app:1.0. Sans tag, ce sera latest.`,invalid:`Un nom d’image est en minuscules, comme mon-app ou registry.example.com/equipe/app, suivi éventuellement de :tag.`,exists:e=>`${e} existe d\xE9j\xE0 ; le tag passe \xE0 la nouvelle image, et l\u2019ancienne reste sans tag.`,running:`Le conteneur est en pause pendant l’enregistrement, en général quelques secondes.`,mounts:`Pas dans l’image : les volumes et dossiers montés dans le conteneur. Ils appartiennent au conteneur, pas à son système de fichiers.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:(e,n)=>`Enregistr\xE9e comme ${e} (${n}).`,toImage:`Vers l’image`,run:`Démarrer un conteneur…`},cpuLimit:{title:`Limite de CPU`,description:`Le temps processeur que le conteneur peut utiliser. S’applique tout de suite ; le conteneur n’a pas besoin d’être recréé.`,loading:`Chargement…`,current:e=>`Actuellement : au plus ${e} CPU`,none:`Actuellement : aucune limite`,label:`Processeurs`,hint:e=>`Entre 0,01 et ${e} ; 1 est un processeur entier, 0,5 un demi.`,noRemove:`On ne peut pas retirer une limite ainsi : Docker la modifie seulement. Sans limite, il faut recréer le conteneur.`,compose:`C’est un conteneur compose : compose up rétablit ce que dit le fichier compose.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`La limite de CPU est maintenant de ${e} CPU.`,invalid:`Saisissez un nombre supérieur à zéro.`},environment:{loading:`Chargement…`,name:`Nom`,value:`Valeur`,source:`Provient de`,sources:{image:`l’image`,set:`au démarrage`,changed:`au démarrage, par-dessus l’image`},show:`afficher`,reveal:e=>`Afficher la valeur de ${e}`,emptyValue:`(vide)`,empty:`Ce conteneur n’a pas de variables d’environnement.`,copyAll:`Tout copier`,copied:(e,n)=>n===0?`${String(e)} copi\xE9es.`:`${String(e)} copi\xE9es ; ${String(n)} valeurs masqu\xE9es laiss\xE9es de c\xF4t\xE9.`,readOnly:`Lecture seule : une variable ne change que si le conteneur est recréé. La commande run du menu est un début.`,composeNote:`Lecture seule : pour un conteneur compose, une variable se modifie dans le fichier compose, puis Recréer.`},restartPolicy:{title:`Politique de redémarrage`,description:`Ce que fait le daemon quand ce conteneur s’arrête. Effet immédiat ; le conteneur n’est pas recréé.`,loading:`Chargement…`,label:`Politique`,names:{no:`Jamais`,always:`Toujours`,"unless-stopped":`Sauf si vous l’avez arrêté vous-même`,"on-failure":`Seulement après un code d’erreur`},maximum:`Nombre maximal de tentatives`,maximumHint:`0 signifie continuer d’essayer.`,save:`Enregistrer`,saving:`Enregistrement…`,saved:e=>`La politique de red\xE9marrage est maintenant ${e}.`},runCommand:{title:`Copier la commande run`,description:`La commande qui recrée ce conteneur, déduite de inspect. Ce qui vient de l’image est omis.`,building:`Déduction…`,composeNote:e=>`Ce conteneur appartient au projet compose ${e}, o\xF9 docker compose up est la r\xE9ponse. Voici comment il tourne actuellement.`,envWarning:e=>`${e===1?`1 variable d’environnement y figure`:`${String(e)} variables d\u2019environnement y figurent`}, mots de passe compris : la commande doit fonctionner.`,noEnv:`Pas de variables d’environnement propres.`,formatRun:`docker run`,formatCompose:`compose`,composeTitle:`En service compose`,composeDescription:`Le même conteneur sous forme de fichier compose, dérivé d’inspect. Les volumes et réseaux existants y figurent en external.`,composeEnvWarning:e=>`${e===1?`1 variable d’environnement y figure`:`${String(e)} variables d\u2019environnement y figurent`}, mots de passe compris : le fichier doit fonctionner.`,copyFailed:e=>`\xC9chec de la copie : ${e}`},logs:{filter:`Filtrer par texte`,follow:`Suivre`,timestamps:`Horodatages`,clear:`Effacer`,save:`Enregistrer…`,saveHint:`Tout le log de Docker, avec horodatage ; pas seulement ce que vous voyez ici.`,saved:(e,n)=>`${String(e)} lignes enregistr\xE9es dans ${n}`,connecting:`Connexion…`,count:(e,n)=>`${String(e)} lignes sur ${String(n)}`,truncated:`lignes les plus anciennes supprimées`,empty:`Pas encore de lignes de log.`,noMatches:`Aucune ligne ne correspond.`,range:`Période`,from:`Depuis`,to:`Jusqu’à`,toHint:`Vide : jusqu’à maintenant, et en direct.`,apply:`Afficher`,lastHour:`Dernière heure`,sinceStart:`Depuis le dernier démarrage`,aroundCrash:`Autour du dernier plantage`,latest:`Dernières lignes`,active:(e,n)=>n===null?`Depuis ${e}, en direct`:`${e} \xE0 ${n}`,notLive:`Avec une heure de fin, le journal ne suit pas en direct.`,firstOnly:`plus de 2000 lignes sur cette période : les premières sont ici, enregistrez pour tout`,saveRangeHint:`Cette période depuis Docker, avec horodatage ; pas seulement ce qui est affiché ici.`},files:{edit:e=>`Modifier ${e}`,up:`Remonter d’un dossier`,path:`Chemin dans le conteneur`,refresh:`Actualiser`,changed:`Modifié`,changesTitle:`Modifié par rapport à l’image`,changesCount:e=>e===1?`1 chemin`:`${String(e)} chemins`,changesEmpty:`Ce conteneur n’a rien changé à son image.`,changesHint:`Les dossiers qui n’ont changé que parce qu’ils contiennent autre chose sont omis. Les volumes ne comptent pas.`,changeKind:{added:`ajouté`,modified:`modifié`,deleted:`supprimé`},openFolderOf:e=>`Ouvrir le dossier de ${e}`,upload:`Envoyer…`,empty:`Ce dossier est vide.`,downloadFolder:e=>`T\xE9l\xE9charger le dossier en tar : ${e}`,downloadFile:e=>`T\xE9l\xE9charger : ${e}`,hint:e=>`D\xE9posez des fichiers ici pour les placer dans ${e}. Le t\xE9l\xE9chargement d\u2019un dossier donne un .tar, ce qui pr\xE9serve les permissions et les liens symboliques.`,savedAs:e=>`Enregistr\xE9 sous ${e}.`,uploaded:(e,n)=>`${e===1?`1 fichier placé`:`${String(e)} fichiers plac\xE9s`} dans ${n}.`},fileOps:{newFolder:`Nouveau dossier…`,rename:e=>`Renommer ${e}`,removeOf:e=>`Supprimer ${e}`,downloadFile:e=>`T\xE9l\xE9charger : ${e}`,downloadFolder:e=>`T\xE9l\xE9charger le dossier en tar : ${e}`,renameLabel:e=>`Nouveau nom pour ${e}`,createLabel:`Nom du nouveau dossier`,save:`Renommer`,create:`Créer`,remove:`Supprimer`,counting:e=>`Supprimer ${e} ? Comptage du contenu\u2026`,confirmFile:e=>`Supprimer ${e} ? C\u2019est d\xE9finitif.`,confirmDir:(e,n)=>n===0?`Supprimer le dossier vide ${e} ?`:`Supprimer ${e} avec ${n===1?`1 élément`:`${String(n)} \xE9l\xE9ments`} dedans ? C\u2019est d\xE9finitif.`,confirmDirUncounted:e=>`Supprimer ${e} avec tout son contenu ? C\u2019est d\xE9finitif.`,renamed:(e,n)=>`${e} s\u2019appelle maintenant ${n}.`,created:e=>`Dossier ${e} cr\xE9\xE9.`,removed:e=>`${e} supprim\xE9.`},terminal:{exited:`Le shell s’est terminé.`,reopen:`Rouvrir`,connecting:`Connexion…`,connected:`connecté`,user:`Utilisateur`,fromImage:`Celui de l’image`,other:`Autre…`,otherPlaceholder:`nom ou uid`,open:`Ouvrir`,asRoot:`En tant que root : ce que vous modifiez, vous le modifiez en root.`},assistant:{introHost:`Claude reçoit une vue d’ensemble de l’engine et des conteneurs, suit ce qui se passe dans le terminal et demande logs et inspect de lui-même. Chaque demande est listée ci-dessous, et les secrets sont exclus. Claude ne tape jamais rien lui-même : une commande suggérée devient un bouton qui la place sur le prompt, et vous appuyez sur Entrée.`,introContainer:`Claude reçoit le diagnostic de ce conteneur, sans les secrets, puis demande de lui-même les logs, l’inspect, les events ou les autres conteneurs. Chaque demande est listée ci-dessous. Claude ne modifie rien lui-même : une suggestion devient un bouton, et c’est vous qui décidez.`,defaultQuestion:`Que se passe-t-il avec ce conteneur, et que puis-je y faire ?`,defaultHostQuestion:`Que vois-tu dans le terminal, et qu’est-ce que cela veut dire ?`,onPrompt:`Sur le prompt`,done:`Terminé`,thinking:`Claude réfléchit…`,questionLabel:`Question pour Claude`,followUp:`Question de suivi`,ask:`Demander à Claude`,putInTerminal:`Placer dans le terminal`,composeUp:e=>`compose up pour ${e}`,start:e=>`D\xE9marrer ${e}`,stop:e=>`Arr\xEAter ${e}`,restart:e=>`Red\xE9marrer ${e}`,panelClosed:`Le panneau a été fermé.`,usage:(e,n,t)=>`${e} tokens en entr\xE9e, ${n} depuis le cache, ${t} en sortie`}}});var Xh;var ev=p(()=>{Xh={title:`Tableau de bord`,engine:{connecting:`Connexion à Docker…`,running:`Engine en cours`,unreachable:`Engine injoignable`,startDistro:e=>`D\xE9marrer ${e}`,startingDistro:e=>`D\xE9marrage de ${e}\u2026`,startDaemon:e=>`D\xE9marrer Docker dans ${e}`,startingDaemon:e=>`D\xE9marrage de Docker dans ${e}\u2026`,daemonHint:e=>`${e} tourne : c\u2019est donc le daemon \xE0 l\u2019int\xE9rieur qui est arr\xEAt\xE9. L\u2019application peut l\u2019y d\xE9marrer.`,idleHint:{intro:e=>`${e} a d\xE9marr\xE9 puis s\u2019est arr\xEAt\xE9. WSL \xE9teint une distro sans session ouverte au bout de 15 secondes ; d\xE9finissez`,under:`sous`,in:`dans`,outro:`pour la garder active.`}},contexts:{switchFailed:e=>`Impossible de basculer vers ${e}`},usage:{cpu:`CPU de tous les conteneurs`,memory:`Mémoire`,memoryChart:`Mémoire de tous les conteneurs`,network:`Réseau de tous les conteneurs`,networkChart:`Trafic réseau de tous les conteneurs`,received:`Reçu`,sent:`Envoyé`,receivedAria:`reçu`,sentAria:`envoyé`,hostNote:`Les conteneurs en network_mode: host ne sont pas comptés ; ils n’ont pas de compteurs propres.`},counts:{containers:`Conteneurs`,runningOfTotal:`en cours sur le total`,images:`Images`,volumesNetworks:`Volumes · réseaux`},space:{title:`Où est la place`,description:`Les dix plus gros de chaque type. Rien n’est supprimé sans la confirmation sur sa propre page.`,loading:`Calcul… Docker parcourt son stockage pour cela.`,images:`Images`,volumes:`Volumes`,containers:`Conteneurs (ce qu’ils ont écrit eux-mêmes)`,buildCache:`Cache de construction`,buildCacheItems:e=>`${String(e)} entr\xE9es`,usedBy:e=>e===1?`utilisé par 1 conteneur`:`utilis\xE9 par ${String(e)} conteneurs`,unused:`inutilisé`,running:`en marche`,stopped:`arrêté`,open:`Ouvrir`,remove:`Supprimer…`,prune:`Nettoyer…`,empty:`Rien ici.`,imagesNote:`La taille d’une image inclut les couches partagées avec d’autres : c’est ce qui est libéré quand elle est la dernière à les utiliser.`},disk:{title:`Espace disque`,total:e=>`${e} au total`,calculating:`calcul en cours…`,prune:`Nettoyer`,pruning:`Nettoyage…`,where:`Où est la place ?`,unused:e=>`${String(e)} inutilis\xE9s`,labels:{images:`Images`,containers:`Conteneurs`,volumes:`Volumes`,buildCache:`Cache de build`},footnoteBefore:`Les mêmes chiffres que`,footnoteAfter:`. L’espace réellement libéré par un nettoyage n’est pas indiqué : cela dépend des layers partagés, et une estimation qui ressemble à un fait vaut moins que pas de chiffre du tout.`},attention:{title:`À surveiller`,none:`Tout est en ordre : pas de boucle de plantage, rien d’unhealthy, tout est relié.`,loading:`Vérification…`,crashLoop:e=>`plant\xE9 ${String(e)} fois dans la derni\xE8re heure`,restarting:`redémarre sans cesse`,unhealthy:`le healthcheck échoue`,network:e=>`tourne, mais n\u2019est pas reli\xE9 \xE0 ${e}`,ports:e=>`tourne, mais ne publie pas ${e}`,update:e=>`une version plus r\xE9cente de ${e} est disponible`,projectUpdate:e=>`versions plus r\xE9centes de ${e}`,updateProject:`Mettre à jour le projet`,projectDrift:e=>`fichier compose modifi\xE9 ; ${e} tourne encore avec les anciens r\xE9glages`,toCompose:`Vers Compose`},stopped:{clean:`terminé proprement`,failed:e=>`termin\xE9 avec le code ${String(e)}`,created:e=>`cr\xE9\xE9 ${e}`},pruneDialog:{title:`Nettoyer`,description:`Tout ce que vous cochez est supprimé et ne peut pas être récupéré.`,confirm:`Nettoyer`,containers:`Conteneurs arrêtés`,containersHint:`Un conteneur en pause est conservé.`,networks:`Réseaux inutilisés`,networksHint:`bridge, host et none sont toujours conservés.`,images:`Images sans tag`,imagesHint:`En général des restes d’un build plus récent.`,allImages:`Aussi les images taguées sans conteneur`,allImagesHint:`Vous devrez les retélécharger ensuite.`,buildCache:`Cache de build`,buildCacheHint:`Tout ce qui n’est pas utilisé. Le prochain build sera plus long.`,volumes:`Volumes anonymes`,volumesHint:`Les volumes nommés sont conservés. Ils contiennent des données.`},pruneResult:{removed:{containers:e=>e===1?`1 conteneur`:`${String(e)} conteneurs`,networks:e=>e===1?`1 réseau`:`${String(e)} r\xE9seaux`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 entrée de cache de build`:`${String(e)} entr\xE9es de cache de build`},kinds:{containers:`conteneurs`,networks:`réseaux`,volumes:`volumes`,images:`images`,buildCache:`cache de build`},and:`et`,notice:(e,n)=>`${e} supprim\xE9s, ${n} lib\xE9r\xE9s.`,problem:e=>`Impossible de nettoyer ${e}`}}});var nv;var tv=p(()=>{nv={justNow:`à l’instant`,hoursAgo:e=>e===1?`il y a 1 heure`:`il y a ${String(e)} heures`,yesterday:`hier`,daysAgo:e=>`il y a ${String(e)} jours`,lastMonth:`le mois dernier`,monthsAgo:e=>`il y a ${String(e)} mois`,lastYear:`l’an dernier`,yearsAgo:e=>`il y a ${String(e)} ans`}});var rv;var ov;var iv;var sv=p(()=>{rv=e=>`${String(e)} image${e===1?``:`s`}`,ov=e=>`${String(e)} conteneur${e===1?``:`s`}`,iv={title:`Images`,diskSpace:`Espace disque`,unused:`Inutilisées`,menuLabel:`Actions sur les images`,searchLabel:`Rechercher par repository, tag ou ID`,onlyUnused:`Seulement les images inutilisées`,refreshing:`Actualisation…`,updatesHint:`La mise à jour télécharge la nouvelle image. Un conteneur en cours garde l’ancienne jusqu’à ce qu’il soit recréé ; pour un conteneur d’un projet Compose, l’app propose de le faire après le pull.`,selected:e=>`${String(e)} s\xE9lectionn\xE9es`,empty:`Aucune image trouvée.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`ID de l’image`,inUse:`Utilisée`,created:`Créée`,size:`Taille`,actions:`Actions`},badge:{newer:`version plus récente`,notInRegistry:`absente du registry`,uncheckable:`vérification impossible`},containerCount:ov,updateTitle:e=>`Mettre \xE0 jour : ret\xE9l\xE9charger ${e}`,rowMenu:e=>`Actions pour ${e}`,rowUpdate:`Télécharger la version plus récente`,rowRun:`Lancer un conteneur…`,rowLayers:`Couches…`,rowSave:`Enregistrer comme fichier…`,rowTag:`Ajouter un tag…`,rowUntag:`Retirer ce tag`,rowPush:`Pousser…`,untagged:e=>`Tag ${e} retir\xE9 ; l\u2019image reste.`,tagDialog:{title:e=>`Nouveau tag pour ${e}`,description:`Un autre nom pour la même image. Avec un registry devant, vous pouvez la pousser là-bas, comme localhost:5000/app:1.0.`,label:`Nom et tag`,invalid:`Un nom d’image est en minuscules, comme mon-app ou registry.example.com/equipe/app, suivi éventuellement de :tag.`,exists:e=>`${e} existe d\xE9j\xE0 ; le tag passe \xE0 cette image.`,save:`Ajouter le tag`,saving:`Ajout…`,saved:e=>`Tag ajout\xE9 : ${e}.`},buildDialog:{title:`Construire une image`,description:`À partir d’un dossier avec un Dockerfile, avec docker build : BuildKit, .dockerignore et le cache fonctionnent comme d’habitude.`,choose:`Choisir un dossier…`,other:`Autre dossier…`,none:`Il n’y a pas de Dockerfile dans ce dossier.`,file:`Dockerfile`,name:`Nom et tag`,invalid:`Un nom d’image est en minuscules, comme mon-app ou registry.example.com/equipe/app, suivi éventuellement de :tag.`,exists:e=>`${e} existe d\xE9j\xE0 ; le tag passe \xE0 la nouvelle image.`,build:`Construire`,building:`Construction… cela peut prendre un moment.`,done:e=>`Construite : ${e}.`,output:`Sortie de la construction`,run:`Démarrer un conteneur…`},pushDialog:{title:e=>`Pousser ${e}`,registry:e=>`Va vers ${e}, avec les identifiants de docker login.`,hub:`Va vers Docker Hub, avec les identifiants de docker login.`,hubPublic:`Si le dépôt sur Docker Hub est public, tout le monde peut récupérer cette image.`,final:`Un push ne s’annule pas : ce qui est dans le registry y reste jusqu’à ce que vous l’y supprimiez.`,other:`Vers un autre registry ? Ajoutez d’abord un tag avec ce registry devant.`,confirm:`Pousser`,pushing:`Push en cours…`,done:`Poussée.`},runLabel:e=>`D\xE9marrer un conteneur depuis ${e}`,runLabelDangling:`Démarrer un conteneur depuis cette image sans tag`,layers:{title:e=>`Couches de ${e}`,description:`Les plus récentes d’abord, comme docker history les montre : la dernière ligne du Dockerfile en haut.`,loading:`Chargement…`,summary:(e,n)=>`${e===1?`1 couche`:`${String(e)} couches`} \xB7 image ${n}`,packed:e=>`Les couches totalisent ${e} : avec ce stockage, Docker indique chaque couche telle qu\u2019elle est arriv\xE9e, compress\xE9e. Sur le disque, l\u2019image est plus grande.`,noSize:`ne change rien sur le disque`,expand:`Afficher toute la commande`,empty:`Cette image ne signale aucune couche.`},menu:{pull:`Télécharger une image`,check:`Rechercher des mises à jour`,checking:`Vérification…`,pruneDangling:`Nettoyer les images sans tag`,pruneUnused:`Nettoyer les inutilisées`,load:`Charger depuis un fichier…`,build:`Construire une image…`},remove:{title:`Supprimer l’image ?`,description:e=>`'${e}' sera supprim\xE9e. Si cette image a d\u2019autres tags, seul ce tag dispara\xEEt.`,forceTitle:`Forcer la suppression de l’image ?`,forceDescription:(e,n)=>`'${e}' est utilis\xE9e par ${ov(n)}. Elle ne peut \xEAtre supprim\xE9e que de force, et ces conteneurs cesseront de fonctionner.`,forceConfirm:`Supprimer quand même`,manyTitle:`Supprimer les images ?`,manyDescription:e=>`${rv(e)} seront supprim\xE9es. Les images encore utilis\xE9es sont ignor\xE9es.`},prune:{allTitle:`Nettoyer toutes les images inutilisées ?`,allDescription:`Tout ce qui n’a pas de conteneur attaché est supprimé, y compris les images que vous avez téléchargées vous-même. Vous devrez les retélécharger.`,danglingTitle:`Nettoyer les images sans tag ?`,danglingDescription:`Les images sans tag sont supprimées. Ce sont en général des restes d’un build plus récent.`,confirm:`Nettoyer`},pruned:(e,n)=>`${rv(e)} supprim\xE9es, ${n} lib\xE9r\xE9s.`,check:{allCurrent:`Tout est à jour`,updates:e=>`${e===1?`1 image a`:`${String(e)} images ont`} une version plus r\xE9cente`,notInRegistry:e=>`${String(e)} absentes d\u2019un registry`,uncheckable:e=>`${String(e)} n\u2019ont pas pu \xEAtre v\xE9rifi\xE9es`,summary:(e,n)=>`${e} (${String(n)} v\xE9rifi\xE9es).`},pullDialog:{hits:`Depuis Docker Hub`,official:`officielle`,stars:e=>`${String(e)} \xE9toiles`,title:`Télécharger une image`,nameAndTag:`Nom et tag, par exemple`,withoutTag:`Sans tag,`,isUsed:`est utilisé.`,inputLabel:`Image`,submit:`Télécharger`,staleHeading:`Ces conteneurs tournent encore avec la version précédente :`,inProject:e=>`dans ${e}`,notCompose:`pas démarré avec compose ; recréez-le vous-même`,renewed:e=>`Recr\xE9\xE9s : ${e}.`,renew:`Recréer les conteneurs`,renewing:`Recréation…`,renewHint:`Avec compose, seulement ces services.`},runDialog:{title:`Démarrer un conteneur`,fromImage:`Depuis l’image`,name:`Nom`,namePlaceholder:`laisser vide = Docker en choisit un`,autoRestart:`Redémarrer automatiquement`,autoRestartHint:`Après un crash ou au redémarrage de Docker. Pas quand vous l’arrêtez vous-même.`,ports:`Ports`,portsHint:`Rendre un port du conteneur joignable depuis cet ordinateur, par exemple localhost:8080.`,onThisComputer:`Sur cet ordinateur`,inContainer:`Dans le conteneur`,protocolHeader:`Protocole`,hostPortPlaceholder:`vide = n’importe quel port libre`,addPort:`Ajouter un port`,hostPort:e=>`Port h\xF4te ${String(e)}`,containerPort:e=>`Port du conteneur ${String(e)}`,protocol:e=>`Protocole ${String(e)}`,removePort:e=>`Supprimer le port ${String(e)}`,network:`Réseau`,networkHint:`Les conteneurs d’un réseau que vous avez créé vous-même se joignent par leur nom. Sur le réseau par défaut, non.`,networkDefault:`Par défaut (bridge)`,networkAlias:`Nom supplémentaire dans le réseau`,networkAliasHint:`Un nom supplémentaire que les autres conteneurs de ce réseau peuvent utiliser, en plus du nom du conteneur.`,networkAliasPlaceholder:`base-de-donnees`,invalidAlias:e=>`'${e}' n\u2019est pas un nom valide. Utilisez des lettres, des chiffres, des points, des tirets et des underscores.`,volumes:`Volumes`,volumesHint:`Les données qui doivent survivre au conteneur : un volume, ou un dossier sur la machine Docker.`,source:`Volume ou dossier`,addVolume:`Ajouter un volume`,sourcePlaceholder:`my-data ou /srv/data`,targetPlaceholder:`/chemin/dans/conteneur`,volumeSource:e=>`Source du volume ${String(e)}`,volumeTarget:e=>`Cible du volume ${String(e)}`,readOnly:`lecture seule`,readOnlyHint:`Le conteneur peut lire les fichiers mais pas les modifier.`,removeVolume:e=>`Supprimer le volume ${String(e)}`,env:`Variables d’environnement`,envHint:`Les réglages du programme dans le conteneur. Vous pouvez aussi coller NOM=valeur.`,envNameHeader:`Nom`,envValueHeader:`Valeur`,addEnv:`Ajouter une variable`,envName:e=>`Nom de la variable ${String(e)}`,envValue:e=>`Valeur de la variable ${String(e)}`,removeEnv:e=>`Supprimer la variable ${String(e)}`,submit:`Démarrer`,starting:`Démarrage…`,invalidContainerPort:e=>`'${e}' n\u2019est pas un port de conteneur valide. Utilisez un nombre de 1 \xE0 65535.`,invalidHostPort:e=>`'${e}' n\u2019est pas un port h\xF4te valide. Laissez-le vide pour que Docker en choisisse un.`,volumeIncomplete:`Un volume a besoin d’une source et d’une cible.`,notAbsolute:e=>`'${e}' n\u2019est pas un chemin absolu. La cible dans le conteneur commence par un /.`,envNameMissing:`Une variable a besoin d’un nom.`,envNameWithEquals:e=>`'${e}' ne peut pas contenir de = ; c\u2019est ce qui s\xE9pare le nom de la valeur.`},file:{saving:e=>`Enregistrement de ${e}\u2026`,loading:`Chargement depuis le fichier…`,saved:(e,n)=>`Enregistr\xE9 sous ${e} (${n}).`,loaded:e=>`Charg\xE9 : ${e}.`,loadedNothing:`Le fichier a été lu, mais il ne contenait aucune image.`}}});var av;var lv=p(()=>{av={title:`Logs`,intro:`Tout ce qu’écrivent vos conteneurs en cours d’exécution, entrelacé par horodatage. Un conteneur qui démarre ou s’arrête rejoint ou quitte la liste tout seul.`,projectLabel:`Projet compose`,allProjects:`Tous les conteneurs`,searchLabel:`Rechercher dans les logs`,searchPlaceholder:`Un terme, ou une expression telle que /error|warn/`,caseSensitive:`Respecter la casse`,containers:`Conteneurs`,nothingRunning:`Rien ne tourne.`,showAll:`Tout réactiver`,timestamps:`Horodatages`,clear:`Effacer`,columns:{time:`Heure`,object:`Objet`,line:`Ligne`},allFiltered:e=>e===1?`La seule ligne est masquée par le filtre.`:`Les ${String(e)} lignes sont masqu\xE9es par le filtre.`,empty:`Aucune ligne pour l’instant. Dès qu’un conteneur écrit quelque chose, cela apparaît ici.`,lineCount:e=>e===1?`1 ligne`:`${String(e)} lignes`,filteredOut:e=>`${String(e)} filtr\xE9es`,truncated:`Les lignes les plus anciennes sont sorties du tampon.`,invalidExpression:e=>`Expression non valide : ${e}`,levels:{label:`Niveau`,errors:`Erreurs`,warnings:`Avertissements`,unknownHidden:`Les lignes sans niveau reconnaissable, comme une trace de pile sous une erreur, sont masquées par ce filtre.`}}});var cv;var uv;var dv;var pv=p(()=>{cv=e=>`${String(e)} r\xE9seau${e===1?``:`x`}`,uv=e=>`${String(e)} conteneur${e===1?``:`s`}`,dv={title:`Réseaux`,unused:`Inutilisés`,menuLabel:`Actions sur les réseaux`,searchLabel:`Rechercher par nom ou driver`,hideBuiltIn:`Masquer les réseaux intégrés`,refreshing:`Actualisation…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun réseau trouvé.`,builtIn:`intégré`,internal:`interne`,columns:{name:`Nom`,driver:`Driver`,scope:`Portée`,subnet:`Sous-réseau`,connected:`Connectés`,actions:`Actions`},containerCount:uv,rowMenu:e=>`Actions pour ${e}`,rowMembers:`Qui est connecté…`,members:{title:e=>`Connect\xE9s \xE0 ${e}`,description:`Les mêmes conteneurs que ceux comptés sur cette page, y compris ceux arrêtés.`,loading:`Chargement…`,empty:`Aucun conteneur n’est connecté à ce réseau.`,noAddress:`pas d’adresse`,stopped:`arrêté`},builtInReason:`Réseau Docker intégré ; ne peut pas être supprimé`,connectedReason:e=>`${uv(e)} connect\xE9${e===1?``:`s`} ; d\xE9connectez-les d\u2019abord`,menu:{create:`Créer un réseau…`,pruneUnused:`Nettoyer les inutilisés`},createDialog:{title:`Créer un réseau`,description:`Un réseau à vous, sur lequel les conteneurs se trouvent par leur nom.`,nameLabel:`Nom`,namePlaceholder:`mon-reseau`,internal:`Interne uniquement`,internalHint:`Les conteneurs se joignent entre eux, mais n’ont aucune route vers l’extérieur.`,advanced:`Avancé`,driverLabel:`Driver`,driverHint:`Laissez bridge, sauf si vous faites tourner un swarm ou utilisez un plugin réseau.`,subnetLabel:`Sous-réseau`,subnetHint:`Laissez vide et Docker choisit lui-même une plage libre.`,gatewayLabel:`Passerelle`,gatewayHint:`Doit être dans le sous-réseau. Vide signifie la première adresse de la plage.`,submit:`Créer`,creating:`Création…`},remove:{title:`Supprimer le réseau ?`,description:e=>`'${e}' sera supprim\xE9. Les conteneurs qui s\u2019y rattacheront plus tard ne le trouveront plus.`,manyTitle:`Supprimer les réseaux ?`,manyDescription:e=>`${cv(e)} seront supprim\xE9s. Les r\xE9seaux avec des conteneurs connect\xE9s et les r\xE9seaux int\xE9gr\xE9s sont ignor\xE9s.`},prune:{title:`Nettoyer les réseaux inutilisés ?`,description:`Tout réseau sans conteneur connecté est supprimé. Cela ne libère pas d’espace disque ; cela garde la liste lisible.`,confirm:`Nettoyer`},pruned:e=>`${cv(e)} supprim\xE9s.`,created:e=>`Le r\xE9seau ${e} a \xE9t\xE9 cr\xE9\xE9.`,ports:{title:`Ports`,none:`Aucun conteneur ne publie de port.`,missing:`non publié`,missingTitle:`Demandé, mais Docker ne l’a pas publié. Reconstruire le conteneur corrige cela.`,open:e=>`Ouvrir localhost:${String(e)} dans le navigateur`,searchLabel:`Rechercher par port ou conteneur`,intro:`Chaque port publié de chaque conteneur en cours, dans une seule liste.`,allAddresses:`toutes les adresses`,empty:`Aucun port ne correspond.`,columns:{hostPort:`Port`,container:`Conteneur`,target:`Dans le conteneur`,address:`Adresse`}}}});var fv;var mv=p(()=>{fv={title:`Paramètres`,language:{heading:`Langue`,label:`Langue de l’application`,hint:`Les termes techniques comme container, image et volume restent en anglais.`},startup:{heading:`Démarrage`,startAtLogin:`Démarrer à l’ouverture de session, directement dans la zone de notification`,paletteShortcut:`Ctrl+Maj+Espace ouvre la recherche, partout dans Windows`,shortcutTaken:`Ctrl+Maj+Espace est déjà pris par un autre programme ; le raccourci ne marche pas pour l’instant.`,hintAvailable:`Ainsi, les notifications ci-dessous arrivent aussi quand vous n’ouvrez pas l’application vous-même. Désactivez-le ici, ou dans le Gestionnaire des tâches sous Applications de démarrage.`,hintUnavailable:`Ne fonctionne que dans l’application installée. Ici, Windows démarrerait un electron.exe nu.`},backups:{heading:`Sauvegardes automatiques`,empty:`Aucun volume pour l’instant. Activez-la depuis le menu d’un volume.`,line:(e,n)=>`${e}, vers ${n}`,edit:`Modifier…`,remove:`Arrêter`},prune:{heading:`Nettoyage`,auto:`Nettoyer une fois par semaine les images sans tag et le cache de build`,hint:`Jamais les volumes, les conteneurs arrêtés ni les images avec un tag : quelqu’un les a laissés exprès. Une notification indique ce que cela a libéré.`,last:e=>`Derni\xE8re fois : ${e}.`,never:`Pas encore fait.`},notifications:{heading:`Notifications`,crash:`Quand un conteneur s’arrête de façon inattendue`,unhealthy:`Quand un conteneur devient unhealthy`,wiring:`Quand un conteneur perd son réseau ou ses ports`,hint:`Un conteneur que vous arrêtez vous-même, depuis l’application, le terminal ou avec compose down, ne déclenche jamais de notification. Un même conteneur ne notifie qu’une fois par minute au maximum.`,muted:e=>e===1?`1 conteneur sans notifications`:`${String(e)} conteneurs sans notifications`,unmute:`Activer`,unmuteAll:`Tout réactiver`,mutedHint:`Mémorisé par nom : un conteneur que compose recrée reste silencieux. Il apparaît quand même sous À surveiller.`},update:{heading:`Mises à jour`,version:e=>`version ${e}`,install:`Redémarrer et mettre à jour`,check:`Vérifier maintenant`,auto:`Rechercher les nouvelles versions et les télécharger à l’avance`,unavailable:`Seule l’application installée sous Windows se met à jour toute seule. Avec npm, la mise à jour passe par npm.`,idle:`Une nouvelle version est téléchargée et installée dès que vous fermez l’application.`,checking:`Recherche d’une nouvelle version…`,upToDate:e=>`C\u2019est la derni\xE8re version. V\xE9rifi\xE9 \xE0 ${e}.`,downloading:(e,n)=>`T\xE9l\xE9chargement de la version ${e}\u2026 ${String(n)} %`,ready:e=>`La version ${e} est pr\xEAte et sera install\xE9e \xE0 la fermeture de l\u2019application. Red\xE9marrez pour l\u2019installer maintenant.`,error:e=>`\xC9chec de la v\xE9rification : ${e}`},servers:{heading:`Serveurs`,hint:`Des hôtes Docker via SSH ou TCP. Ils sont enregistrés comme contexts docker, la CLI docker les connaît donc aussi. Basculez de l’un à l’autre avec le sélecteur dans la barre d’état.`,empty:`Pas encore de serveurs.`,inUse:`utilisé`,cli:`CLI`,test:`Tester`,testing:`Test en cours…`,remove:`Supprimer`,removeBlocked:`Utilisé par l’application ou par la CLI docker. Basculez d’abord vers un autre context.`,removeTitle:e=>`Supprimer le serveur '${e}' ?`,removeDescription:`Cela supprime le context docker, y compris pour la CLI docker. Rien ne change sur le serveur lui-même.`,connected:(e,n,t)=>`Connect\xE9 : Docker ${e} sur ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} n\u2019est pas encore connu. Comparez cette empreinte ${n} avec celle du serveur (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) avant de lui faire confiance :`,trust:`Faire confiance et tester à nouveau`,add:{heading:`Ajouter un serveur`,name:`Nom`,namePlaceholder:`serveur-maison`,kind:`Connexion`,ssh:`SSH`,tcp:`TCP`,username:`Utilisateur`,usernamePlaceholder:`vide : utilisateur de cet ordinateur`,host:`Hôte`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Description`,descriptionPlaceholder:`facultatif`,submit:`Ajouter`,tcpWarning:`Le TCP simple n’a pas d’authentification : quiconque atteint le port sur le réseau contrôle Docker. Préférez SSH.`,added:e=>`Serveur '${e}' ajout\xE9.`}},assistant:{configured:`Une clé est enregistrée.`,clearKey:`Supprimer la clé`,keyLabel:`Clé API`,model:`Modèle`,modelHint:`Opus raisonne le mieux sur un problème tenace ; Sonnet et Haiku répondent plus vite et coûtent moins cher. Haiku lit aussi moins de choses à la fois.`,hint:`Avec votre propre clé API Claude, chaque conteneur reçoit un onglet Claude qui aide à creuser un problème. La clé est stockée chiffrée sur cet ordinateur, lisible seulement par votre utilisateur Windows. Chaque question coûte quelques centimes d’usage API, sur votre compte.`}}});var gv;var hv=p(()=>{gv={nav:{label:`Navigation principale`,dashboard:`Tableau de bord`,containers:`Conteneurs`,images:`Images`,volumes:`Volumes`,networks:`Réseaux`,ports:`Ports`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Paramètres`},routes:{container:`Conteneur`},header:{search:`Rechercher (Ctrl+K)`,lightTheme:`Thème clair`,darkTheme:`Thème sombre`,quit:`Quitter Docker Client MX`},statusBar:{connecting:`Connexion à Docker…`,engineRunning:`Engine en cours`,engineUnreachable:`Engine injoignable`,containers:(e,n)=>`${String(e)} conteneurs sur ${String(n)}`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconnecter`},contextPicker:{label:`Context Docker`,switching:`Basculement…`,unsupported:`non pris en charge`,inUseByCli:`utilisé par la CLI`},actionMenu:{label:`Actions`},confirmDialog:{confirm:`Supprimer`},dataTable:{empty:`Rien trouvé.`,selectAll:`Tout sélectionner`,clearSelection:`Effacer la sélection`,select:e=>`S\xE9lectionner ${e}`},jsonView:{expand:e=>`D\xE9plier : ${e}`,collapse:e=>`Replier : ${e}`,empty:`Rien à afficher.`},toast:{region:`Notifications (F8)`,close:`Fermer la notification`},usageChart:{ago:e=>`il y a ${e}`,max:e=>`max. ${e}`,now:`maintenant`,values:(e,n,t)=>`maintenant ${e}, maximum ${n}, minimum ${t}`,noData:e=>`${e} : pas encore de mesures.`,summary:(e,n,t)=>`${e} sur les ${n} \xE9coul\xE9es : ${t}.`},palette:{title:`Aller à`,description:`Tapez pour rechercher des pages, conteneurs, images, volumes et réseaux. Les flèches choisissent, Entrée exécute.`,placeholder:`Rechercher une page, un conteneur, une image, un volume ou un réseau…`,results:`Résultats`,empty:`Rien trouvé.`,groups:{page:`Page`,container:`Conteneur`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Réseau`,action:`Action`},sections:{page:`Pages`,container:`Conteneurs`,image:`Images`,volume:`Volumes`,compose:`Projets compose`,network:`Réseaux`,action:`Actions`},recent:`Récents`,attention:`À surveiller`,hint:`c conteneurs · i images · v volumes · n réseaux · p compose · > actions · → actions d’une ligne`,actions:`Actions`,verbs:{start:`Démarrer`,stop:`Arrêter`,restart:`Redémarrer`,pause:`Mettre en pause`,unpause:`Reprendre`,recreate:`Reconstruire`},commandHint:`Entrée l’exécute`,commandNothing:`Rien à exécuter`,problems:{unknown:e=>`${e} : introuvable`,ambiguous:(e,n)=>`${e} : ${String(n)} conteneurs, soyez plus pr\xE9cis`,state:e=>`${e} : impossible dans cet \xE9tat`,notCompose:e=>`${e} : pas un conteneur compose`},commandDone:e=>e===1?`1 commande exécutée.`:`${String(e)} commandes ex\xE9cut\xE9es.`,events:e=>`\xC9v\xE9nements de ${e}`,terminal:e=>`Terminal dans ${e}`,memory:e=>`Limite de m\xE9moire de ${e}\u2026`,cpu:e=>`Limite de CPU de ${e}\u2026`,rename:e=>`Renommer ${e}\u2026`,processes:e=>`Processus de ${e}`,kill:e=>`Tuer ${e}\u2026`,duplicate:e=>`Dupliquer ${e}\u2026`,commit:e=>`Enregistrer ${e} comme image\u2026`,adjust:e=>`Ajuster ${e}\u2026`,logsHour:e=>`Journaux de ${e}, derni\xE8re heure`,logsCrash:e=>`Journaux de ${e} autour du plantage`,imageTag:e=>`Ajouter un tag \xE0 ${e}\u2026`,imagePush:e=>`Pousser ${e}\u2026`,buildImage:`Construire une image…`,openCompose:`Ouvrir un fichier compose…`,composeService:e=>`Service compose de ${e}`,copyId:e=>`Copier l\u2019ID de ${e}`,imageRun:e=>`D\xE9marrer ${e}\u2026`,imageLayers:e=>`Couches de ${e}`,imagePull:e=>`R\xE9cup\xE9rer ${e} \xE0 nouveau`,imageRemove:e=>`Supprimer ${e}\u2026`,volumeBackup:e=>`Sauvegarder ${e}\u2026`,composeLogs:e=>`Suivre les logs de ${e}`,prune:`Nettoyer…`,space:`Où est la place ?`,mute:e=>`Pas de notifications : ${e}`,unmute:e=>`R\xE9activer les notifications : ${e}`,volumeSchedule:e=>`Sauvegarde automatique de ${e}\u2026`,checkUpdates:`Vérifier les mises à jour des images`,theme:`Basculer entre clair et sombre`,useContext:e=>`Passer \xE0 ${e}`,copied:e=>`Copi\xE9 : ${e}`,askClaude:e=>`Demander \xE0 Claude : ${e}`,askNote:`Seule votre question est envoyée à Claude`,thinking:`Claude réfléchit…`,claudeSays:e=>`Claude : ${e}`,questionNote:`Pour cela, Claude a regardé vos conteneurs, avec les mêmes outils que l’onglet Claude.`,commandNote:`Pour cela, Claude a reçu les noms et l’état de vos conteneurs.`,aiNothing:`Claude n’a rien trouvé qui corresponde.`,aiMatches:e=>e===1?`1 résultat`:`${e} r\xE9sultats`,noContainerSize:`La palette ne connaît pas la taille des conteneurs, seulement celle des images et des volumes.`,updateProject:e=>`Mettre \xE0 jour ${e}`,copyCommand:e=>`Copier : ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`D\xE9marrer ${e}`,stop:e=>`Arr\xEAter ${e}`,restart:e=>`Red\xE9marrer ${e}`,diagnose:e=>`Diagnostiquer ${e}`,imageInUse:e=>`Image \xB7 utilis\xE9e par ${String(e)} conteneur${e===1?``:`s`}`,imageUnused:`Image · inutilisée`,network:e=>`R\xE9seau \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} sur ${String(n)} en marche`,composeUp:e=>`${e} : up`,composeFile:e=>`${e} : afficher le fichier compose`,composeDown:e=>`${e} : down\u2026`,recreate:e=>`Recr\xE9er ${e}`,recreateDetail:`up --force-recreate pour ce service seulement`,volumeBrowse:e=>`Fichiers dans ${e}`,networkMembers:e=>`Qui est connect\xE9 \xE0 ${e}`}}});var vv;var yv=p(()=>{vv={title:`Terminal`,intro:{start:`Un shell sur la machine où tourne le démon Docker, par exemple votre distro WSL.`,afterDocker:` fonctionne ici comme d’habitude. Vous êtes `,afterRoot:` : le shell passe par un conteneur `,afterAlpine:` éphémère et privilégié, qui disparaît dès que vous fermez le shell ou cette page.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Chargement du terminal…`}});var bv;var Vc;var wv;var Dv=p(()=>{bv=e=>`${String(e)} volume${e===1?``:`s`}`,Vc=e=>`${String(e)} conteneur${e===1?``:`s`}`,wv={title:`Volumes`,diskSpace:`Espace disque`,calculating:`calcul en cours…`,unused:`Inutilisés`,menuLabel:`Actions sur les volumes`,searchLabel:`Rechercher par nom`,onlyUnused:`Seulement les volumes inutilisés`,refreshing:`Actualisation…`,selected:e=>`${String(e)} s\xE9lectionn\xE9s`,empty:`Aucun volume trouvé.`,columns:{name:`Nom`,driver:`Driver`,inUse:`Utilisé`,created:`Créé`,size:`Taille`,actions:`Actions`},containerCount:Vc,rowMenu:e=>`Actions pour ${e}`,rowBrowse:`Voir le contenu…`,browse:{title:e=>`Dans ${e}`,description:`La navigation est en lecture seule, via un conteneur d’aide éphémère qui disparaît quand vous fermez ceci. L’enregistrement et l’envoi utilisent chacun le leur.`,loading:`Chargement…`,empty:`Ce dossier est vide.`,up:`Dossier parent`,path:`Chemin dans le volume`,upload:`Envoyer…`,edit:e=>`Modifier ${e}`,uploaded:(e,n)=>`${String(e)} ${e===1?`fichier placé`:`fichiers placés`} dans ${n}.`},rowBackup:`Sauvegarder en .tar`,rowRestore:`Restaurer une sauvegarde…`,rowCopy:`Copier vers un nouveau volume…`,rowSchedule:`Sauvegarde automatique…`,schedule:{title:e=>`Sauvegarde automatique de ${e}`,description:`Le même .tar que Sauvegarder, sans demander la destination à chaque fois. La restauration passe par Restaurer une sauvegarde.`,every:`À quelle fréquence`,daily:`Chaque jour`,weekly:`Chaque semaine`,folder:`Dossier`,noFolder:`Aucun dossier choisi`,chooseFolder:`Choisir…`,keep:`Combien en garder`,inUse:`Quand un conteneur en marche utilise le volume`,skip:`Passer, et réessayer chaque heure`,skipHint:`Une base de données qui écrit pendant la sauvegarde peut laisser un .tar impossible à restaurer.`,pause:`Mettre ces conteneurs en pause pendant la sauvegarde`,pauseHint:e=>`Quelques secondes sans r\xE9ponse : ${e}.`,pauseHintNone:`Quelques secondes sans réponse pour les conteneurs qui l’utilisent. Aucun ne tourne en ce moment.`,save:`Enregistrer`,remove:`Arrêter les sauvegardes`,saved:e=>`${e} sera sauvegard\xE9 automatiquement. La premi\xE8re sauvegarde suit tout de suite.`,removed:e=>`Plus de sauvegardes automatiques de ${e}. Celles qui existent restent.`,lastOk:(e,n)=>`Derni\xE8re sauvegarde : ${e}, ${n}.`,lastSkipped:(e,n)=>`Pass\xE9e le ${e} : utilis\xE9 par ${n}.`,lastFailed:(e,n)=>`\xC9chec le ${e} : ${n}`,badgeNone:e=>`Sauvegarde automatique : ${e}. Aucune encore.`,badgeOk:(e,n)=>`Sauvegarde automatique : ${e}. Derni\xE8re : ${n}.`,badgeSkipped:(e,n,t)=>`Sauvegarde automatique : ${e}. Pass\xE9e le ${n}, utilis\xE9 par ${t}.`,badgeFailed:(e,n,t)=>`Sauvegarde automatique : ${e}. \xC9chec le ${n} : ${t}`},backupTitle:e=>`Sauvegarder ${e} en .tar`,backupTitleInUse:e=>`Sauvegarder ${e}. Il est utilis\xE9 : une base de donn\xE9es qui \xE9crit pendant la sauvegarde peut laisser une sauvegarde qui ne se restaure pas toujours. Arr\xEAtez d\u2019abord ce conteneur, ou utilisez son propre dump.`,restoreTitle:e=>`Restaurer une sauvegarde dans ${e}`,inUseReason:e=>`Utilis\xE9 par ${Vc(e)} ; supprimez-les ou arr\xEAtez-les d\u2019abord`,menu:{create:`Créer un volume…`,pruneAnonymous:`Nettoyer les anonymes`,pruneUnused:`Nettoyer les inutilisés`},createDialog:{title:`Créer un volume`,description:`Un volume vide avec un nom, à rattacher plus tard à un conteneur.`,nameLabel:`Nom`,namePlaceholder:`my-data`,storageLabel:`Où les données sont-elles stockées ?`,storage:{docker:`Géré par Docker`,dockerHint:`Recommandé. Docker décide où vont les données.`,folder:`Un dossier sur la machine Docker`,folderHint:`Un dossier existant, par exemple pour partager des fichiers avec un conteneur.`,nfs:`Un partage NFS sur le réseau`,nfsHint:`Un dossier partagé sur un NAS ou un serveur.`},folderLabel:`Dossier`,folderHint:`Le dossier doit déjà exister sur la machine qui fait tourner Docker. Sous WSL, C:\\data correspond à /mnt/c/data.`,nfsServerLabel:`Serveur`,nfsPathLabel:`Dossier partagé`,nfsHint:`Vérifié seulement au moment où un conteneur se met à utiliser ce volume.`,advanced:`Avancé`,driverLabel:`Driver`,driverHint:`Laissez local, sauf si vous utilisez un plugin de volume.`,submit:`Créer`,creating:`Création…`},copy:{title:e=>`Copier ${e}`,description:`Tout le contenu de ce volume va dans un nouveau, avec propriétaires et droits. L’original reste tel quel.`,name:`Nom du nouveau volume`,taken:`Un volume porte déjà ce nom ; choisissez-en un autre.`,running:e=>`Utilis\xE9 par ${e}, qui tourne. Une base de donn\xE9es qui \xE9crit pendant la copie donne une copie qu\u2019elle ne relira peut-\xEAtre pas : arr\xEAtez-la d\u2019abord.`,stopped:e=>`Utilis\xE9 par ${e}, qui est arr\xEAt\xE9 : rien n\u2019\xE9crit pendant la copie.`,copy:`Copier`,copying:`Copie…`,copied:(e,n)=>`${e} a \xE9t\xE9 copi\xE9 vers ${n}.`},restore:{title:e=>`Restaurer une sauvegarde dans ${e} ?`,description:e=>`Les fichiers de même nom sont écrasés ; ce qui n’est pas dans la sauvegarde reste en place. `+(e>0?`Arr\xEAtez d\u2019abord ${Vc(e)} qui utilisent ce volume : une base de donn\xE9es en cours ne remarque pas que ses fichiers ont chang\xE9. `:``)+`Vous choisirez le fichier ensuite.`,confirm:`Choisir un fichier`},remove:{title:`Supprimer le volume ?`,description:e=>`Toutes les donn\xE9es de '${e}' seront perdues. C\u2019est irr\xE9versible.`,manyTitle:`Supprimer les volumes ?`,manyDescription:e=>`Toutes les donn\xE9es de ${bv(e)} seront perdues. Les volumes encore utilis\xE9s sont ignor\xE9s.`},prune:{allTitle:`Nettoyer tous les volumes inutilisés ?`,allDescription:`Tout volume sans conteneur attaché est supprimé, y compris les volumes nommés que vous avez créés vous-même. Les données qu’ils contiennent seront perdues.`,anonymousTitle:`Nettoyer les volumes anonymes ?`,anonymousDescription:`Les volumes sans nom qu’aucun conteneur n’utilise plus sont supprimés. Ce sont en général des restes de conteneurs qui n’existent déjà plus.`,confirm:`Nettoyer`},created:e=>`Le volume ${e} a \xE9t\xE9 cr\xE9\xE9.`,pruned:(e,n)=>`${bv(e)} supprim\xE9s, ${n} lib\xE9r\xE9s.`,backedUp:(e,n)=>`Sauvegarde de ${e} enregistr\xE9e sous ${n}.`,restored:(e,n)=>`${e} a \xE9t\xE9 restaur\xE9 dans ${n}.`}});var Cv;var Iv=p(()=>{Zh();Qh();Jh();ev();tv();sv();lv();pv();mv();hv();yv();Dv();Cv={common:Gh,compose:Kh,containers:Yh,dashboard:Xh,format:nv,images:iv,logs:av,networks:dv,settings:fv,shell:gv,terminal:vv,volumes:wv}});var Ev;var kv=p(()=>{Ev={cancel:`Cancel`,close:`Close`,remove:`Remove`,retry:`Try again`,refresh:`Refresh`,search:`Search`,loading:`Loading…`,save:`Save`,copy:`Copy`,copied:`Copied`,start:`Start`,stop:`Stop`,restart:`Restart`,yes:`Yes`,no:`No`,none:`None`,unknown:`Unknown`,nothingToPrune:`There was nothing to clean up.`}});var Sv;var Tv=p(()=>{Sv={title:`Compose`,intro:`Projects from the labels on your containers, and the ones the app has seen before: after down, a project stays here with Up next to it.`,updating:`Updating…`,state:{running:`running`,partial:`partial`,stopped:`stopped`,down:`not started`},runningOf:(e,n)=>`${String(e)} of ${String(n)}`,expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,menuAria:e=>`Actions for ${e}`,upAria:e=>`Up ${e}`,startAria:e=>`Start ${e}`,stopAria:e=>`Stop ${e}`,restartAria:e=>`Restart ${e}`,downAria:e=>`Down ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Show the compose file of ${e}`,file:{button:`File`,title:e=>`The compose file of ${e}`,loading:`Loading…`,raw:`As written`,resolved:`As compose reads it`,rawHint:`The file on disk, unchanged.`,resolvedHint:"Overrides merged and ${VAR} filled in: this is what the running project is based on.",empty:`This file is empty.`,copyFailed:e=>`Copying failed: ${e}`},noCli:`The docker CLI isn't available`,noWorkingDir:`It's not known where this project lives`,busy:`Working… an up can take a while if images need to be pulled.`,empty:`No compose projects yet. Open a compose file, or start one elsewhere; it shows up here by itself.`,openFile:`Open compose file…`,opening:`Starting…`,openHint:`docker compose -f <file> up -d`,forget:`Forget`,forgetHint:`Removes it from this list; the compose file and any containers stay.`,forgotten:e=>`'${e}' forgotten.`,missing:`The compose file is no longer there.`,notStarted:`no containers`,downDialog:{title:`Take project down?`,description:e=>`The containers and networks of '${e}' will be stopped and removed. Volumes are kept, so your data is preserved.`,confirm:`Take down`},recreate:`Rebuild`,recreateAria:e=>`Rebuild ${e}`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} has been rebuilt.`,drift:`file changed`,driftTitle:`The compose file changed since this service was created. Rebuild it to apply the change.`,driftProject:e=>`File changed: ${e}`,driftProblem:e=>`Compose cannot read the file: ${e}`,upDone:e=>`'${e}' is up.`,downDone:e=>`'${e}' has been taken down.`,update:{menu:`Update`,hint:`Pull every image, then renew what changed`,title:e=>`Update ${e}`,description:`Every image of this project is pulled. Then only the services whose image changed are renewed.`,loading:`Looking up which images the project uses…`,waiting:`waiting`,pulling:`pulling…`,pulled:`pulled`,failed:e=>`failed: ${e}`,skippedBuild:`built with build:, nothing to pull`,skippedDigest:`pinned to a digest`,checking:`Checking what changed…`,stale:e=>`Newer image for: ${e}`,upToDate:`Everything was up to date; nothing needs renewing.`,renew:`Renew`,renewing:`Renewing…`,renewHint:`docker compose up -d --no-deps, only these services`,renewed:e=>`Renewed: ${e}.`,unchanged:e=>`Left running: ${e}.`,noImages:`This project has no images to pull.`},build:{button:`Rebuild`,busy:`Building…`,title:`docker compose build --pull, then up -d --no-deps`,aria:e=>`Rebuild ${e}`,done:e=>`${e} has been rebuilt and started.`,output:`Build output`}}});var Nv;var Mv=p(()=>{Nv={actions:{pause:`Pause`,resume:`Resume`,copyDiagnosis:`Copy diagnosis`,copyRunCommand:`Copy run command`,copyComposeService:`As compose service`,restartPolicy:`Restart policy…`,memoryLimit:`Memory limit…`,cpuLimit:`CPU limit…`,rename:`Rename…`,commit:`Save as image…`,kill:`Stop immediately…`,duplicate:`Duplicate…`,mute:`No notifications`,unmute:`Notifications on again`,muted:e=>`No more notifications for ${e}.`,unmuted:e=>`Notifications for ${e} are on again.`,adjust:`Adjust…`,recreate:`Rebuild`},page:{title:`Containers`,cpuUsage:`CPU usage`,memoryUsage:`Memory usage`,search:`Search by name, image or ID`,onlyRunning:`Only running containers`,updating:`Updating…`,selected:e=>`${String(e)} selected`,empty:`No containers found.`,columns:{name:`Name`,id:`Container ID`,image:`Image`,ports:`Ports`,cpu:`CPU`,memory:`Memory`,actions:`Actions`},group:{loose:`Standalone containers`,expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,count:e=>e===1?`1 container`:`${String(e)} containers`,running:e=>`${String(e)} running`,startAll:`Start all`,stopAll:`Stop all`,restartAll:`Restart all`,removeAll:`Remove all`,menu:e=>`Actions for all in ${e}`,manual:`Your own group`,addToGroup:`Add to group…`,removeFromGroup:`Remove from group`,rename:`Rename group…`,dissolve:`Dissolve group`},groupDialog:{assignTitle:`Add to group`,assignOne:e=>`'${e}' goes into the group you name here.`,assignMany:e=>`${String(e)} containers go into the group you name here.`,renameTitle:`Rename group`,renameDescription:e=>`Everything in '${e}' moves along to the new name.`,nameLabel:`Group name`,namePlaceholder:`e.g. my-stack`,existing:`Existing groups`,hint:`A group of your own lives in this app and follows the container name; Docker itself knows nothing about it.`,empty:`Fill in a name.`,reserved:e=>`'${e}' is already a Compose project.`,submit:`Save`},row:{diagnosisOf:e=>`Diagnosis of ${e}`,missingNetwork:e=>`Running, but not attached to ${e}`,menu:e=>`Actions for ${e}`,muted:`No notifications for this container`},confirm:{title:`Remove container?`,one:e=>`'${e}' will be stopped and removed. This can't be undone; volumes are kept.`,many:e=>`${e===1?`1 container`:`${String(e)} containers`} will be stopped and removed. This can't be undone; volumes are kept.`,group:(e,n)=>`The ${String(e)} containers of '${n}' will be stopped and removed. This can't be undone; volumes are kept.`}},detail:{back:`‹ Containers`,menu:`Actions for this container`,gone:` no longer exists. A container with --rm disappears once it stops, and compose creates a new one on up.`,goneUnnamed:`This container no longer exists.`,successor:(e,n)=>`Go to the current ${e} (${n})`,tabsLabel:`Container details`,tabs:{logs:`Logs`,health:`Health`,events:`Events`,inspect:`Inspect`,env:`Environment`,stats:`Stats`,processes:`Processes`,terminal:`Terminal`,files:`Files`,networks:`Networks`,assistant:`Claude`},wiring:{network:e=>`Running, but not attached to ${e}. Nothing reaches it over that network, and it reaches nothing.`,networkWhy:`This happens when the network was removed and created again while the container existed.`,connect:e=>`Attach to ${e}`,ports:e=>`Running, but not publishing ${e}.`,portsWhy:`This happens when it was started again after a start that failed on a taken port.`,portsFromNetwork:`That follows from the missing network above: ports are published through a network.`,restart:`Restart`},events:{loading:`Loading…`,empty:`Nothing recorded yet. The app keeps track from the moment it starts, plus what Docker still remembered then.`,scope:`Kept in the app since it started, up to 100 per container name; after a restart of the app, Docker fills in what it still remembers.`,crashLoop:e=>`Crashed ${String(e)} times in the last hour.`,create:`Created`,start:`Started`,exited:e=>e===0?`Exited normally`:`Exited with code ${String(e)}`,exitedUnknown:`Exited`,exitHint137:`SIGKILL: killed from outside, often out of memory or a stop that took too long`,exitHint143:`SIGTERM: asked to stop`,kill:e=>`Sent ${e}`,oom:`Killed by the kernel: out of memory`,stop:`Stopped`,restart:`Restarted`,pause:`Paused`,unpause:`Resumed`,destroy:`Removed`,rename:e=>`Renamed, was ${e}`,renamed:`Renamed`,health:{starting:`Health check starting`,healthy:`Became healthy`,unhealthy:`Became unhealthy`}},health:{loading:`Loading…`,refresh:`Refresh`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`has not run yet`},failingStreak:e=>e===1?`failed once`:`failed ${String(e)} times in a row`,command:`Command`,fromImage:`Comes from the image; the daemon does not report the command itself.`,rhythm:`Rhythm`,every:e=>`every ${e}`,timeout:e=>`timeout ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 try before unhealthy`:`${String(e)} tries before unhealthy`,defaults:`Docker's own defaults`,probes:`Last results`,noProbes:`The check has not run yet.`,exitCode:e=>`exit code ${String(e)}`,unknownExitCode:`no exit code`,noOutput:`no output`},networks:{title:`On these networks`,loading:`Loading…`,empty:`This container is not on any network.`,noAddress:`no address`,alsoKnownAs:e=>`also reachable as ${e}`,disconnect:`Disconnect`,disconnectFrom:e=>`Disconnect from ${e}`,addTitle:`Connect to a network`,addHint:`Takes effect right away, also while the container is running.`,allConnected:`This container is already on every network.`,networkLabel:`Network`,choose:`Choose a network…`,alias:`Extra name in the network`,aliasHint:`An extra name the other containers on this network can use, next to the container name.`,aliasPlaceholder:`database`,connect:`Connect`,working:`Busy…`,invalidAlias:e=>`'${e}' is not a valid name. Use letters, digits, dots, hyphens and underscores.`},fetching:`Loading…`,terminalLoading:`Loading terminal…`,shellOnlyRunning:`A shell can only be opened in a running container.`,cpu:`CPU`,lastMinute:e=>`last minute \xB7 peak ${e}%`,chartPending:`the chart appears after a few samples`,memory:`Memory`,ofLimit:e=>`${e}% of the limit`,noLimit:`no limit set`,cpuOfLimit:(e,n)=>`${e}% of the limit of ${n} CPU`,cpuNoLimit:`no limit set: up to all processors`,nearLimit:`Close to its limit: above this the kernel starts killing processes in the container.`,statsOnlyRunning:`Stats are only collected for a running container.`,confirmTitle:`Remove container?`,confirmDescription:`This container will be stopped and removed. This can't be undone; volumes are kept.`},diagnosis:{title:`Copy diagnosis`,description:`Status, health, mounts, events and the latest log lines, to paste into a chat or an issue. This is exactly what gets copied.`,collecting:`Collecting…`,noRedactions:`Nothing left out; no value looked like a secret.`,redactions:e=>`${e===1?`1 value`:`${String(e)} values`} left out: environment variables and anything that looked like a password, token or key.`,copyFailed:e=>`Copying failed: ${e}`},memoryLimit:{title:`Memory limit`,description:`How much memory the container may use. Applies immediately; the container is not recreated for it.`,loading:`Loading…`,current:e=>`Now: ${e}`,none:`Now: no limit`,label:`Limit`,unit:`Unit`,noRemove:`Removing a limit cannot be done this way: Docker only changes it. For no limit, the container has to be recreated.`,compose:`This is a compose container: compose up puts back what the compose file says.`,save:`Save`,saving:`Saving…`,saved:e=>`The memory limit is now ${e}.`,invalid:`Enter a number greater than zero.`},editor:{title:e=>`Edit ${e}`,loading:`Loading…`,save:`Save`,saving:`Saving…`,saved:e=>`${e} saved.`,closeUnsaved:`Close without saving`,unsaved:`Not saved`,conflict:`Save anyway, over their change, or load the file again and lose yours?`,reload:`Load again`,overwrite:`Save anyway`,onMount:`This file is on a volume or mounted folder: the change stays.`,notOnMount:`This change is in the container itself: it is gone at the next Rebuild. Save the container as an image to keep it.`,saveAsImage:`Save as image…`,restart:`A program usually reads its configuration when it starts; restart the container to use the change.`,inVolume:`Containers using this volume see the change right away; most programs only reread their configuration when they restart.`},adjust:{title:e=>`Adjust ${e}`,description:`Docker cannot change these on an existing container, so it is recreated under the same name. If the new one does not start, the old one stays as it was. Volumes stay.`,loading:`Loading…`,env:`Environment variables`,envHint:`One per line, NAME=value. Passwords are visible here too.`,envInvalid:e=>`Line ${String(e)} is not NAME=value.`,ports:`Ports on this machine`,portHint:`Empty: Docker picks a free one.`,hostPort:e=>`Port on this machine for ${e}`,restart:`Restart policy`,compose:`This is a compose container: change it in the compose file, then recreate it with Rebuild.`,openFile:`View compose file`,save:`Apply`,saving:`Applying…`,done:e=>`${e} runs with the new settings.`},duplicate:{title:e=>`Duplicate ${e}`,description:`A new container with the same settings, to try something side by side. It starts right away.`,loading:`Loading…`,name:`Name`,invalid:`At least two characters: a letter or digit, followed by letters, digits, _ . or -.`,taken:`There already is a container with this name.`,ports:`Ports on this machine`,portHint:`The same port twice is not possible. Empty: Docker picks a free one.`,hostPort:e=>`Port on this machine for ${e}`,volumes:`Volumes`,volumesHint:`Two containers on one volume write to the same files; for a database a copy is safer. Copying takes a while for a large volume.`,copy:`Copy`,share:`Share`,compose:`This is a compose container. The copy stands apart from the project: compose does not know it.`,save:`Duplicate`,saving:`Duplicating…`,done:e=>`${e} is running.`},processes:{notRunning:`Nothing runs in a stopped container.`,loading:`Loading…`,hint:e=>`${String(e)} processes, busiest first. Refreshes every few seconds; click a command to see all of it.`,pids:`PIDs are as the host sees them, not as ps inside the container shows them.`,user:`User`,memory:`Memory`,elapsed:`Running for`,command:`Command`,redacted:`Something that looks like a secret is left out.`},kill:{title:`Stop immediately?`,description:e=>`${e} gets SIGKILL: the process stops at once, without a chance to clean up. Anything not yet written is lost.`,confirm:`Stop immediately`,now:`Stop now`,hint:`Stopping takes a while: Docker waits until the process stops by itself.`},rename:{title:`Rename container`,description:e=>`A new name for ${e}. Works while it runs; the container is not recreated.`,label:`Name`,invalid:`At least two characters: a letter or digit, followed by letters, digits, _ . or -.`,taken:`There already is a container with this name.`,compose:`This is a compose container. Compose finds it by its labels, not its name: it stays part of the project, but gets the project's name back as soon as compose recreates it.`,save:`Rename`,saving:`Renaming…`,saved:(e,n)=>`${e} is now called ${n}.`},commit:{title:`Save as image`,description:`Saves the container’s filesystem as a new image, including what you changed in it. The container itself stays as it is.`,label:`Name and tag`,suffix:`-custom`,hint:`Lowercase, like my-app:1.0. Without a tag it becomes latest.`,invalid:`An image name is lowercase, like my-app or registry.example.com/team/app, optionally followed by :tag.`,exists:e=>`${e} already exists; the tag moves to the new image, and the old one stays behind untagged.`,running:`The container is paused while saving, usually for a few seconds.`,mounts:`Not in the image: volumes and folders mounted into the container. Those belong to the container, not to its filesystem.`,save:`Save`,saving:`Saving…`,saved:(e,n)=>`Saved as ${e} (${n}).`,toImage:`To the image`,run:`Start a container…`},cpuLimit:{title:`CPU limit`,description:`How much processor time the container may use. Applies immediately; the container is not recreated for it.`,loading:`Loading…`,current:e=>`Now: at most ${e} CPU`,none:`Now: no limit`,label:`Processors`,hint:e=>`Between 0.01 and ${e}; 1 is one full processor, 0.5 half of one.`,noRemove:`Removing a limit cannot be done this way: Docker only changes it. For no limit, the container has to be recreated.`,compose:`This is a compose container: compose up puts back what the compose file says.`,save:`Save`,saving:`Saving…`,saved:e=>`The CPU limit is now ${e} CPU.`,invalid:`Enter a number greater than zero.`},environment:{loading:`Loading…`,name:`Name`,value:`Value`,source:`From`,sources:{image:`the image`,set:`set at start`,changed:`set, over the image`},show:`show`,reveal:e=>`Show the value of ${e}`,emptyValue:`(empty)`,empty:`This container has no environment variables.`,copyAll:`Copy all`,copied:(e,n)=>n===0?`${String(e)} copied.`:`${String(e)} copied; ${String(n)} hidden values left out.`,readOnly:`Read only: a variable only changes when the container is recreated. The run command in the menu is a start.`,composeNote:`Read only: for a compose container, a variable belongs in the compose file, then Recreate.`},restartPolicy:{title:`Restart policy`,description:`What the daemon does when this container stops. Takes effect right away; the container is not recreated.`,loading:`Loading…`,label:`Policy`,names:{no:`Never`,always:`Always`,"unless-stopped":`Unless you stopped it yourself`,"on-failure":`Only after a non-zero exit code`},maximum:`Attempts at most`,maximumHint:`0 means keep trying.`,save:`Save`,saving:`Saving…`,saved:e=>`Restart policy is now ${e}.`},runCommand:{title:`Copy run command`,description:`The command that recreates this container, derived from inspect. Whatever comes from the image is left out.`,building:`Deriving…`,composeNote:e=>`This container belongs to compose project ${e}, where docker compose up is the answer. This is how it runs right now.`,envWarning:e=>`${e===1?`1 environment variable is`:`${String(e)} environment variables are`} in there, passwords and all: the command has to work.`,noEnv:`No environment variables of its own.`,formatRun:`docker run`,formatCompose:`compose`,composeTitle:`As compose service`,composeDescription:`The same container as a piece of compose file, derived from inspect. Existing volumes and networks are included as external.`,composeEnvWarning:e=>`${e===1?`1 environment variable is`:`${String(e)} environment variables are`} in there, passwords and all: the file has to work.`,copyFailed:e=>`Copying failed: ${e}`},logs:{filter:`Filter by text`,follow:`Follow`,timestamps:`Timestamps`,clear:`Clear`,save:`Save…`,saveHint:`The whole log from Docker, with timestamps; not just what you see here.`,saved:(e,n)=>`${String(e)} lines saved to ${n}`,connecting:`Connecting…`,count:(e,n)=>`${String(e)} of ${String(n)} lines`,truncated:`oldest lines dropped`,empty:`No log lines yet.`,noMatches:`No lines match that.`,range:`Time range`,from:`From`,to:`Until`,toHint:`Empty: until now, and live.`,apply:`Show`,lastHour:`Last hour`,sinceStart:`Since last start`,aroundCrash:`Around last crash`,latest:`Latest lines`,active:(e,n)=>n===null?`From ${e}, live`:`${e} to ${n}`,notLive:`With an end time the log does not follow live.`,firstOnly:`more than 2000 lines in this range: the first ones are shown, save for all`,saveRangeHint:`This time range from Docker, with timestamps; not just what you see here.`},files:{edit:e=>`Edit ${e}`,up:`Up one folder`,path:`Path in the container`,refresh:`Refresh`,changed:`Changed`,changesTitle:`Changed compared to the image`,changesCount:e=>e===1?`1 path`:`${String(e)} paths`,changesEmpty:`This container has changed nothing in its image.`,changesHint:`Folders that only changed because something inside them did are left out. Volumes are not part of this.`,changeKind:{added:`added`,modified:`changed`,deleted:`deleted`},openFolderOf:e=>`Open the folder of ${e}`,upload:`Upload…`,empty:`This folder is empty.`,downloadFolder:e=>`Download folder as tar: ${e}`,downloadFile:e=>`Download: ${e}`,hint:e=>`Drop files here to put them in ${e}. Downloading a folder gives a .tar, so permissions and symlinks are kept.`,savedAs:e=>`Saved as ${e}.`,uploaded:(e,n)=>`${e===1?`1 file`:`${String(e)} files`} put in ${n}.`},fileOps:{newFolder:`New folder…`,rename:e=>`Rename ${e}`,removeOf:e=>`Remove ${e}`,downloadFile:e=>`Download: ${e}`,downloadFolder:e=>`Download folder as tar: ${e}`,renameLabel:e=>`New name for ${e}`,createLabel:`Name of the new folder`,save:`Rename`,create:`Create`,remove:`Remove`,counting:e=>`Remove ${e}? Counting what is in it\u2026`,confirmFile:e=>`Remove ${e}? This cannot be undone.`,confirmDir:(e,n)=>n===0?`Remove the empty folder ${e}?`:`Remove ${e} with ${n===1?`1 item`:`${String(n)} items`} in it? This cannot be undone.`,confirmDirUncounted:e=>`Remove ${e} with everything in it? This cannot be undone.`,renamed:(e,n)=>`${e} is now ${n}.`,created:e=>`Folder ${e} created.`,removed:e=>`${e} removed.`},terminal:{exited:`The shell has exited.`,reopen:`Reopen`,connecting:`Connecting…`,connected:`connected`,user:`User`,fromImage:`From the image`,other:`Other…`,otherPlaceholder:`name or uid`,open:`Open`,asRoot:`As root: what you change, changes as root.`},assistant:{introHost:`Claude gets an overview of the engine and the containers, reads along in the terminal and requests logs and inspect on its own. Every request is listed below, and secrets are left out. Claude never types anything itself: a suggested command becomes a button that puts it on the prompt, and you press Enter.`,introContainer:`Claude gets the diagnosis of this container, without secrets, and then requests logs, inspect, events or the other containers on its own. Every request is listed below. Claude changes nothing itself: a suggestion becomes a button, and you decide.`,defaultQuestion:`What's going on with this container, and what can I do about it?`,defaultHostQuestion:`What do you see in the terminal, and what does it mean?`,onPrompt:`On the prompt`,done:`Done`,thinking:`Claude is thinking…`,questionLabel:`Question for Claude`,followUp:`Follow-up question`,ask:`Ask Claude`,putInTerminal:`Put in terminal`,composeUp:e=>`compose up for ${e}`,start:e=>`Start ${e}`,stop:e=>`Stop ${e}`,restart:e=>`Restart ${e}`,panelClosed:`The panel was closed.`,usage:(e,n,t)=>`${e} tokens in, ${n} from cache, ${t} out`}}});var Av;var xv=p(()=>{Av={title:`Dashboard`,engine:{connecting:`Connecting to Docker…`,running:`Engine running`,unreachable:`Engine unreachable`,startDistro:e=>`Start ${e}`,startingDistro:e=>`Starting ${e}\u2026`,startDaemon:e=>`Start Docker in ${e}`,startingDaemon:e=>`Starting Docker in ${e}\u2026`,daemonHint:e=>`${e} is running, so it is the daemon inside it that is not. The app can start it there.`,idleHint:{intro:e=>`${e} started earlier but stopped again. WSL shuts down a distro without an open session after 15 seconds; set`,under:`under`,in:`in`,outro:`to keep it running.`}},contexts:{switchFailed:e=>`Couldn't switch to ${e}`},usage:{cpu:`CPU across all containers`,memory:`Memory`,memoryChart:`Memory across all containers`,network:`Network across all containers`,networkChart:`Network traffic across all containers`,received:`Received`,sent:`Sent`,receivedAria:`received`,sentAria:`sent`,hostNote:`Containers with network_mode: host aren't counted; they have no counters of their own.`},counts:{containers:`Containers`,runningOfTotal:`running of total`,images:`Images`,volumesNetworks:`Volumes · networks`},space:{title:`Where the space is`,description:`The ten largest of each kind. Nothing is removed without the confirmation on its own page.`,loading:`Calculating… Docker walks through its storage for this.`,images:`Images`,volumes:`Volumes`,containers:`Containers (what they wrote themselves)`,buildCache:`Build cache`,buildCacheItems:e=>`${String(e)} entries`,usedBy:e=>e===1?`used by 1 container`:`used by ${String(e)} containers`,unused:`not in use`,running:`running`,stopped:`stopped`,open:`Open`,remove:`Remove…`,prune:`Clean up…`,empty:`Nothing here.`,imagesNote:`The size of an image includes layers it shares with others: that is what is freed when it is the last one using them.`},disk:{title:`Disk usage`,total:e=>`${e} total`,calculating:`calculating…`,prune:`Clean up`,pruning:`Cleaning up…`,where:`Where is it?`,unused:e=>`${String(e)} unused`,labels:{images:`Images`,containers:`Containers`,volumes:`Volumes`,buildCache:`Build cache`},footnoteBefore:`The same figures as`,footnoteAfter:`. How much space cleaning up actually frees isn't shown: that depends on shared layers, and an estimate that looks like a fact is worse than no number at all.`},attention:{title:`Needs attention`,none:`Everything checks out: no crash loops, nothing unhealthy, everything attached.`,loading:`Checking…`,crashLoop:e=>`crashed ${String(e)} times in the last hour`,restarting:`keeps restarting`,unhealthy:`health check failing`,network:e=>`running, but not attached to ${e}`,ports:e=>`running, but not publishing ${e}`,update:e=>`a newer version of ${e} is available`,projectUpdate:e=>`newer versions of ${e}`,updateProject:`Update project`,projectDrift:e=>`compose file changed; ${e} still runs on the old settings`,toCompose:`To Compose`},stopped:{clean:`exited cleanly`,failed:e=>`exited with code ${String(e)}`,created:e=>`created ${e}`},pruneDialog:{title:`Clean up`,description:`Whatever you tick is removed and can't be recovered.`,confirm:`Clean up`,containers:`Stopped containers`,containersHint:`A paused container is kept.`,networks:`Unused networks`,networksHint:`bridge, host and none are always kept.`,images:`Untagged images`,imagesHint:`Usually leftovers from a newer build.`,allImages:`Tagged images without a container too`,allImagesHint:`You'll have to pull them again afterwards.`,buildCache:`Build cache`,buildCacheHint:`Everything that isn't in use. The next build will take longer.`,volumes:`Anonymous volumes`,volumesHint:`Named volumes are kept. These hold data.`},pruneResult:{removed:{containers:e=>e===1?`1 container`:`${String(e)} containers`,networks:e=>e===1?`1 network`:`${String(e)} networks`,volumes:e=>e===1?`1 volume`:`${String(e)} volumes`,images:e=>e===1?`1 image`:`${String(e)} images`,buildCache:e=>e===1?`1 build cache item`:`${String(e)} build cache items`},kinds:{containers:`containers`,networks:`networks`,volumes:`volumes`,images:`images`,buildCache:`build cache`},and:`and`,notice:(e,n)=>`${e} removed, ${n} freed.`,problem:e=>`Couldn't clean up ${e}`}}});var $v;var _v=p(()=>{$v={justNow:`just now`,hoursAgo:e=>e===1?`1 hour ago`:`${String(e)} hours ago`,yesterday:`yesterday`,daysAgo:e=>`${String(e)} days ago`,lastMonth:`last month`,monthsAgo:e=>`${String(e)} months ago`,lastYear:`last year`,yearsAgo:e=>`${String(e)} years ago`}});var Rv;var Lv;var Ov;var Pv=p(()=>{Rv=e=>`${String(e)} image${e===1?``:`s`}`,Lv=e=>`${String(e)} container${e===1?``:`s`}`,Ov={title:`Images`,diskSpace:`Disk space`,unused:`Unused`,menuLabel:`Image actions`,searchLabel:`Search by repository, tag or ID`,onlyUnused:`Only unused images`,refreshing:`Refreshing…`,updatesHint:`Updating pulls the new image. A running container keeps the old one until it is recreated; for a container from a compose project, the app offers to do that after the pull.`,selected:e=>`${String(e)} selected`,empty:`No images found.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image ID`,inUse:`In use`,created:`Created`,size:`Size`,actions:`Actions`},badge:{newer:`newer version`,notInRegistry:`not in registry`,uncheckable:`could not check`},containerCount:Lv,updateTitle:e=>`Update: pull ${e} again`,rowMenu:e=>`Actions for ${e}`,rowUpdate:`Pull newer version`,rowRun:`Run container…`,rowLayers:`Layers…`,rowSave:`Save as file…`,rowTag:`Add tag…`,rowUntag:`Remove this tag`,rowPush:`Push…`,untagged:e=>`Tag ${e} removed; the image stays.`,tagDialog:{title:e=>`New tag for ${e}`,description:`Another name for the same image. Put a registry in front to push it there, like localhost:5000/app:1.0.`,label:`Name and tag`,invalid:`An image name is lowercase, like my-app or registry.example.com/team/app, optionally followed by :tag.`,exists:e=>`${e} already exists; the tag moves to this image.`,save:`Add tag`,saving:`Adding…`,saved:e=>`Tagged as ${e}.`},buildDialog:{title:`Build image`,description:`From a folder with a Dockerfile, with docker build: BuildKit, .dockerignore and the cache work as usual.`,choose:`Choose folder…`,other:`Other folder…`,none:`There is no Dockerfile in this folder.`,file:`Dockerfile`,name:`Name and tag`,invalid:`An image name is lowercase, like my-app or registry.example.com/team/app, optionally followed by :tag.`,exists:e=>`${e} already exists; the tag moves to the new image.`,build:`Build`,building:`Building… this can take a while.`,done:e=>`Built as ${e}.`,output:`Build output`,run:`Start a container…`},pushDialog:{title:e=>`Push ${e}`,registry:e=>`Goes to ${e}, with the credentials from docker login.`,hub:`Goes to Docker Hub, with the credentials from docker login.`,hubPublic:`If the repository on Docker Hub is public, anyone can pull this image.`,final:`A push cannot be undone: what is in the registry stays there until you remove it there.`,other:`To another registry? First add a tag with that registry in front.`,confirm:`Push`,pushing:`Pushing…`,done:`Pushed.`},runLabel:e=>`Start a container from ${e}`,runLabelDangling:`Start a container from this untagged image`,layers:{title:e=>`Layers of ${e}`,description:`Newest first, the way docker history shows them: the last line of the Dockerfile at the top.`,loading:`Loading…`,summary:(e,n)=>`${e===1?`1 layer`:`${String(e)} layers`} \xB7 image ${n}`,packed:e=>`The layers add up to ${e}: with this storage Docker reports each layer the way it arrived, packed. On disk the image is bigger.`,noSize:`changes nothing on disk`,expand:`Show the whole command`,empty:`This image reports no layers.`},menu:{pull:`Pull image`,check:`Check for updates`,checking:`Checking…`,pruneDangling:`Clean up untagged`,pruneUnused:`Clean up unused`,load:`Load from file…`,build:`Build image…`},remove:{title:`Remove image?`,description:e=>`'${e}' will be removed. If this image has other tags, only this tag goes.`,forceTitle:`Force remove image?`,forceDescription:(e,n)=>`'${e}' is used by ${Lv(n)}. It can only be removed by force, and those containers will stop working.`,forceConfirm:`Remove anyway`,manyTitle:`Remove images?`,manyDescription:e=>`${Rv(e)} will be removed. Images that are still in use are skipped.`},prune:{allTitle:`Clean up all unused images?`,allDescription:`Everything without a container attached is removed, including images you pulled yourself. You will have to pull them again.`,danglingTitle:`Clean up untagged images?`,danglingDescription:`Images without a tag are removed. These are usually leftovers from a newer build.`,confirm:`Clean up`},pruned:(e,n)=>`${Rv(e)} removed, ${n} freed.`,check:{allCurrent:`Everything is up to date`,updates:e=>`${e===1?`1 image has`:`${String(e)} images have`} a newer version`,notInRegistry:e=>`${String(e)} not in a registry`,uncheckable:e=>`${String(e)} could not be checked`,summary:(e,n)=>`${e} (${String(n)} checked).`},pullDialog:{hits:`From Docker Hub`,official:`official`,stars:e=>`${String(e)} stars`,title:`Pull image`,nameAndTag:`Name and tag, for example`,withoutTag:`Without a tag,`,isUsed:`is used.`,inputLabel:`Image`,submit:`Pull`,staleHeading:`These containers are still running the previous version:`,inProject:e=>`in ${e}`,notCompose:`not started with compose; recreate it yourself`,renewed:e=>`Recreated: ${e}.`,renew:`Recreate containers`,renewing:`Recreating…`,renewHint:`With compose, only these services.`},runDialog:{title:`Start container`,fromImage:`From image`,name:`Name`,namePlaceholder:`leave empty = Docker picks one`,autoRestart:`Restart automatically`,autoRestartHint:`After a crash or when Docker restarts. Not when you stop it yourself.`,ports:`Ports`,portsHint:`Make a port of the container reachable from this computer, for example localhost:8080.`,onThisComputer:`On this computer`,inContainer:`In the container`,protocolHeader:`Protocol`,hostPortPlaceholder:`empty = any free port`,addPort:`Add port`,hostPort:e=>`Host port ${String(e)}`,containerPort:e=>`Container port ${String(e)}`,protocol:e=>`Protocol ${String(e)}`,removePort:e=>`Remove port ${String(e)}`,network:`Network`,networkHint:`Containers on a network you made yourself can reach each other by name. On the default network they cannot.`,networkDefault:`Default (bridge)`,networkAlias:`Extra name in the network`,networkAliasHint:`An extra name the other containers on this network can use, next to the container name.`,networkAliasPlaceholder:`database`,invalidAlias:e=>`'${e}' is not a valid name. Use letters, digits, dots, hyphens and underscores.`,volumes:`Volumes`,volumesHint:`Data that must survive the container: a volume, or a folder on the Docker machine.`,source:`Volume or folder`,addVolume:`Add volume`,sourcePlaceholder:`my-data or /srv/data`,targetPlaceholder:`/path/in/container`,volumeSource:e=>`Volume source ${String(e)}`,volumeTarget:e=>`Volume target ${String(e)}`,readOnly:`read-only`,readOnlyHint:`The container can read the files but not change them.`,removeVolume:e=>`Remove volume ${String(e)}`,env:`Environment variables`,envHint:`Settings for the program in the container. You can also paste NAME=value.`,envNameHeader:`Name`,envValueHeader:`Value`,addEnv:`Add variable`,envName:e=>`Variable name ${String(e)}`,envValue:e=>`Variable value ${String(e)}`,removeEnv:e=>`Remove variable ${String(e)}`,submit:`Start`,starting:`Starting…`,invalidContainerPort:e=>`'${e}' is not a valid container port. Use a number from 1 to 65535.`,invalidHostPort:e=>`'${e}' is not a valid host port. Leave it empty to let Docker pick one.`,volumeIncomplete:`A volume needs both a source and a target.`,notAbsolute:e=>`'${e}' is not an absolute path. The target in the container starts with a /.`,envNameMissing:`A variable needs a name.`,envNameWithEquals:e=>`'${e}' cannot contain =; that separates the name from the value.`},file:{saving:e=>`Saving ${e}\u2026`,loading:`Loading from file…`,saved:(e,n)=>`Saved as ${e} (${n}).`,loaded:e=>`Loaded: ${e}.`,loadedNothing:`The file was read, but it contained no image.`}}});var jv;var Fv=p(()=>{jv={title:`Logs`,intro:`Everything your running containers write, interleaved by time. A container that starts or stops joins or leaves automatically.`,projectLabel:`Compose project`,allProjects:`All containers`,searchLabel:`Search the logs`,searchPlaceholder:`Search, or an expression such as /error|warn/`,caseSensitive:`Case-sensitive search`,containers:`Containers`,nothingRunning:`Nothing is running.`,showAll:`Turn everything back on`,timestamps:`Timestamps`,clear:`Clear`,columns:{time:`Time`,object:`Object`,line:`Line`},allFiltered:e=>e===1?`The only line is hidden by the filter.`:`All ${String(e)} lines are hidden by the filter.`,empty:`No lines yet. As soon as a container writes something, it shows up here.`,lineCount:e=>e===1?`1 line`:`${String(e)} lines`,filteredOut:e=>`${String(e)} filtered out`,truncated:`Older lines have dropped out of the buffer.`,invalidExpression:e=>`Not a valid expression: ${e}`,levels:{label:`Level`,errors:`Errors`,warnings:`Warnings`,unknownHidden:`Lines without a recognisable level, such as a stack trace under an error, are hidden by this filter.`}}});var Hv;var Vv;var zv;var Uv=p(()=>{Hv=e=>`${String(e)} network${e===1?``:`s`}`,Vv=e=>`${String(e)} container${e===1?``:`s`}`,zv={title:`Networks`,unused:`Unused`,menuLabel:`Network actions`,searchLabel:`Search by name or driver`,hideBuiltIn:`Hide built-in networks`,refreshing:`Refreshing…`,selected:e=>`${String(e)} selected`,empty:`No networks found.`,builtIn:`built-in`,internal:`internal`,columns:{name:`Name`,driver:`Driver`,scope:`Scope`,subnet:`Subnet`,connected:`Connected`,actions:`Actions`},containerCount:Vv,rowMenu:e=>`Actions for ${e}`,rowMembers:`Who is connected…`,members:{title:e=>`Connected to ${e}`,description:`The same containers the count on this page is based on, including stopped ones.`,loading:`Loading…`,empty:`No container is connected to this network.`,noAddress:`no address`,stopped:`stopped`},builtInReason:`Built-in Docker network; cannot be removed`,connectedReason:e=>`${Vv(e)} connected; disconnect them first`,menu:{create:`Create network…`,pruneUnused:`Clean up unused`},createDialog:{title:`Create network`,description:`A network of your own, on which containers find each other by name.`,nameLabel:`Name`,namePlaceholder:`my-network`,internal:`Internal only`,internalHint:`The containers reach each other, but have no route to the outside world.`,advanced:`Advanced`,driverLabel:`Driver`,driverHint:`Leave this at bridge unless you run a swarm or use a network plugin.`,subnetLabel:`Subnet`,subnetHint:`Leave this empty and Docker picks a free range itself.`,gatewayLabel:`Gateway`,gatewayHint:`Has to be inside the subnet. Empty means the first address in the range.`,submit:`Create`,creating:`Creating…`},remove:{title:`Remove network?`,description:e=>`'${e}' will be removed. Containers that are attached to it later will no longer find it.`,manyTitle:`Remove networks?`,manyDescription:e=>`${Hv(e)} will be removed. Networks with attached containers and the built-in networks are skipped.`},prune:{title:`Clean up unused networks?`,description:`Every network without a container attached is removed. This frees no disk space; it keeps the list tidy.`,confirm:`Clean up`},pruned:e=>`${Hv(e)} removed.`,created:e=>`Network ${e} has been created.`,ports:{title:`Ports`,none:`No container publishes a port.`,missing:`not published`,missingTitle:`Requested, but Docker did not publish it. Recreating the container fixes it.`,open:e=>`Open localhost:${String(e)} in the browser`,searchLabel:`Search by port or container`,intro:`Every published port of every running container, in one list.`,allAddresses:`all addresses`,empty:`No port matches.`,columns:{hostPort:`Port`,container:`Container`,target:`In the container`,address:`Address`}}}});var Bv;var qv=p(()=>{Bv={title:`Settings`,language:{heading:`Language`,label:`Language of the app`,hint:`Technical terms such as container, image and volume stay in English.`},startup:{heading:`Startup`,startAtLogin:`Start at sign-in, straight to the system tray`,paletteShortcut:`Ctrl+Shift+Space opens search, anywhere in Windows`,shortcutTaken:`Ctrl+Shift+Space is already taken by another program, so the shortcut does not work now.`,hintAvailable:`That way the notifications below also arrive when you don’t open the app yourself. Turn it off here, or in Task Manager under Startup apps.`,hintUnavailable:`Only works in the installed app. Here Windows would start a bare electron.exe.`},backups:{heading:`Automatic backups`,empty:`No volume has one. Set it up from the menu of a volume.`,line:(e,n)=>`${e}, to ${n}`,edit:`Change…`,remove:`Stop`},prune:{heading:`Cleaning up`,auto:`Clean up untagged images and build cache once a week`,hint:`Never volumes, stopped containers or images with a tag: those were left on purpose. You get a notification with what it freed.`,last:e=>`Last time: ${e}.`,never:`Not done yet.`},notifications:{heading:`Notifications`,crash:`When a container stops unexpectedly`,unhealthy:`When a container becomes unhealthy`,wiring:`When a container loses its network or its ports`,hint:`A container you stop yourself, from the app, the terminal or compose down, never triggers a notification. The same container notifies at most once a minute.`,muted:e=>e===1?`1 container without notifications`:`${String(e)} containers without notifications`,unmute:`Turn on`,unmuteAll:`All on again`,mutedHint:`Remembered by name, so a container that compose recreates stays quiet. It still shows under Needs attention.`},update:{heading:`Updates`,version:e=>`version ${e}`,install:`Restart and update`,check:`Check now`,auto:`Check for new versions and download them in advance`,unavailable:`Only the installed app on Windows updates itself. With npm, you update through npm.`,idle:`A new version is downloaded and installed as soon as you close the app.`,checking:`Checking for a new version…`,upToDate:e=>`This is the latest version. Checked at ${e}.`,downloading:(e,n)=>`Downloading version ${e}\u2026 ${String(n)}%`,ready:e=>`Version ${e} is ready and will be installed when you close the app. Restart to install it now.`,error:e=>`Checking failed: ${e}`},servers:{heading:`Servers`,hint:`Docker hosts over SSH or TCP. They are stored as docker contexts, so the docker CLI knows them too. Switch between them with the picker in the status bar.`,empty:`No servers yet.`,inUse:`in use`,cli:`CLI`,test:`Test`,testing:`Testing…`,remove:`Remove`,removeBlocked:`In use by the app or the docker CLI. Switch to another context first.`,removeTitle:e=>`Remove server '${e}'?`,removeDescription:`This removes the docker context, also for the docker CLI. Nothing changes on the server itself.`,connected:(e,n,t)=>`Connected: Docker ${e} on ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} is not known yet. Compare this ${n} fingerprint with the one on the server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) before trusting it:`,trust:`Trust and test again`,add:{heading:`Add a server`,name:`Name`,namePlaceholder:`homeserver`,kind:`Connection`,ssh:`SSH`,tcp:`TCP`,username:`User`,usernamePlaceholder:`empty: user of this computer`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Port`,description:`Description`,descriptionPlaceholder:`optional`,submit:`Add`,tcpWarning:`Plain TCP has no authentication: anyone on the network who reaches the port controls Docker. Prefer SSH.`,added:e=>`Server '${e}' added.`}},assistant:{configured:`A key is set.`,clearKey:`Remove key`,keyLabel:`API key`,model:`Model`,modelHint:`Opus reasons best about a stubborn problem; Sonnet and Haiku answer faster and cost less. Haiku also reads less at once.`,hint:`With your own Claude API key, every container gets a Claude tab that helps look into a problem. The key is stored encrypted on this computer, readable only by your Windows user. Each question costs a few cents of API usage, on your account.`}}});var Wv;var Gv=p(()=>{Wv={nav:{label:`Main navigation`,dashboard:`Dashboard`,containers:`Containers`,images:`Images`,volumes:`Volumes`,networks:`Networks`,ports:`Ports`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Settings`},routes:{container:`Container`},header:{search:`Search (Ctrl+K)`,lightTheme:`Light theme`,darkTheme:`Dark theme`,quit:`Quit Docker Client MX`},statusBar:{connecting:`Connecting to Docker…`,engineRunning:`Engine running`,engineUnreachable:`Engine unreachable`,containers:(e,n)=>`${String(e)} of ${String(n)} containers`,images:e=>e===1?`1 image`:`${String(e)} images`,reconnect:`Reconnect`},contextPicker:{label:`Docker context`,switching:`Switching…`,unsupported:`not supported`,inUseByCli:`in use by the CLI`},actionMenu:{label:`Actions`},confirmDialog:{confirm:`Remove`},dataTable:{empty:`Nothing found.`,selectAll:`Select all`,clearSelection:`Clear selection`,select:e=>`Select ${e}`},jsonView:{expand:e=>`Expand: ${e}`,collapse:e=>`Collapse: ${e}`,empty:`Nothing to show.`},toast:{region:`Notifications (F8)`,close:`Close notification`},usageChart:{ago:e=>`${e} ago`,max:e=>`max ${e}`,now:`now`,values:(e,n,t)=>`now ${e}, highest ${n}, lowest ${t}`,noData:e=>`${e}: no measurements yet.`,summary:(e,n,t)=>`${e} over the last ${n}: ${t}.`},palette:{title:`Go to`,description:`Type to search pages, containers, images, volumes and networks. Arrow keys choose, Enter runs.`,placeholder:`Search for a page, container, image, volume or network…`,results:`Results`,empty:`Nothing found.`,groups:{page:`Page`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Network`,action:`Action`},sections:{page:`Pages`,container:`Containers`,image:`Images`,volume:`Volumes`,compose:`Compose projects`,network:`Networks`,action:`Actions`},recent:`Recent`,attention:`Needs attention`,hint:`c containers · i images · v volumes · n networks · p compose · > actions · → actions of a line`,actions:`Actions`,verbs:{start:`Start`,stop:`Stop`,restart:`Restart`,pause:`Pause`,unpause:`Resume`,recreate:`Rebuild`},commandHint:`Enter runs this`,commandNothing:`Nothing to run`,problems:{unknown:e=>`${e}: not found`,ambiguous:(e,n)=>`${e}: ${String(n)} containers, be more specific`,state:e=>`${e}: not possible in its current state`,notCompose:e=>`${e}: not a compose container`},commandDone:e=>e===1?`1 command run.`:`${String(e)} commands run.`,events:e=>`Events of ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Memory limit of ${e}\u2026`,cpu:e=>`CPU limit of ${e}\u2026`,rename:e=>`Rename ${e}\u2026`,processes:e=>`Processes in ${e}`,kill:e=>`Kill ${e}\u2026`,duplicate:e=>`Duplicate ${e}\u2026`,commit:e=>`Save ${e} as image\u2026`,adjust:e=>`Adjust ${e}\u2026`,logsHour:e=>`Logs of ${e}, last hour`,logsCrash:e=>`Logs of ${e} around the crash`,imageTag:e=>`Add a tag to ${e}\u2026`,imagePush:e=>`Push ${e}\u2026`,buildImage:`Build image…`,openCompose:`Open compose file…`,composeService:e=>`Compose service of ${e}`,copyId:e=>`Copy the ID of ${e}`,imageRun:e=>`Run ${e}\u2026`,imageLayers:e=>`Layers of ${e}`,imagePull:e=>`Pull ${e} again`,imageRemove:e=>`Remove ${e}\u2026`,volumeBackup:e=>`Back up ${e}\u2026`,composeLogs:e=>`Follow the logs of ${e}`,prune:`Clean up…`,space:`Where is the space?`,mute:e=>`No notifications: ${e}`,unmute:e=>`Notifications on again: ${e}`,volumeSchedule:e=>`Automatic backup of ${e}\u2026`,checkUpdates:`Check images for updates`,theme:`Switch between light and dark`,useContext:e=>`Switch to ${e}`,copied:e=>`Copied: ${e}`,askClaude:e=>`Ask Claude: ${e}`,askNote:`Only your question goes to Claude`,thinking:`Claude is thinking…`,claudeSays:e=>`Claude: ${e}`,questionNote:`For this, Claude looked at your containers, with the same tools as the Claude tab.`,commandNote:`For this, Claude got the names and state of your containers.`,aiNothing:`Claude found nothing that matches.`,aiMatches:e=>e===1?`1 match`:`${e} matches`,noContainerSize:`Containers have no size here; images and volumes do.`,updateProject:e=>`Update ${e}`,copyCommand:e=>`Copy: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`Start ${e}`,stop:e=>`Stop ${e}`,restart:e=>`Restart ${e}`,diagnose:e=>`Diagnose ${e}`,imageInUse:e=>`Image \xB7 used by ${String(e)} ${e===1?`container`:`containers`}`,imageUnused:`Image · unused`,network:e=>`Network \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} of ${String(n)} running`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: show the compose file`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`Rebuild ${e}`,recreateDetail:`up --force-recreate for this service only`,volumeBrowse:e=>`Files in ${e}`,networkMembers:e=>`Who is connected to ${e}`}}});var Zv;var Kv=p(()=>{Zv={title:`Terminal`,intro:{start:`A shell on the machine where the Docker daemon runs, such as your WSL distro.`,afterDocker:` works as usual here. You are `,afterRoot:`: the shell runs through a short-lived, privileged `,afterAlpine:` container that disappears as soon as you close the shell or this page.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Loading terminal…`}});var Qv;var zc;var Yv;var Jv=p(()=>{Qv=e=>`${String(e)} volume${e===1?``:`s`}`,zc=e=>`${String(e)} container${e===1?``:`s`}`,Yv={title:`Volumes`,diskSpace:`Disk space`,calculating:`calculating…`,unused:`Unused`,menuLabel:`Volume actions`,searchLabel:`Search by name`,onlyUnused:`Only unused volumes`,refreshing:`Refreshing…`,selected:e=>`${String(e)} selected`,empty:`No volumes found.`,columns:{name:`Name`,driver:`Driver`,inUse:`In use`,created:`Created`,size:`Size`,actions:`Actions`},containerCount:zc,rowMenu:e=>`Actions for ${e}`,rowBrowse:`Look inside…`,browse:{title:e=>`Inside ${e}`,description:`Browsing is read-only, through a short-lived helper container that disappears when you close this. Saving and uploading each use their own.`,loading:`Loading…`,empty:`This folder is empty.`,up:`Up one folder`,path:`Path in the volume`,upload:`Upload…`,edit:e=>`Edit ${e}`,uploaded:(e,n)=>`${String(e)} ${e===1?`file`:`files`} put in ${n}.`},rowBackup:`Back up as .tar`,rowRestore:`Restore backup…`,rowCopy:`Copy to new volume…`,rowSchedule:`Automatic backup…`,schedule:{title:e=>`Automatic backup of ${e}`,description:`The same .tar as Back up, without asking where each time. It restores with Restore backup.`,every:`How often`,daily:`Every day`,weekly:`Every week`,folder:`Folder`,noFolder:`No folder chosen yet`,chooseFolder:`Choose…`,keep:`Backups to keep`,inUse:`When a running container uses the volume`,skip:`Skip, and try again every hour`,skipHint:`A database that writes during the backup can leave a .tar that does not restore.`,pause:`Pause those containers during the backup`,pauseHint:e=>`A few seconds without response from ${e}.`,pauseHintNone:`A few seconds without response from the containers using it. Right now none are running.`,save:`Save`,remove:`Stop automatic backups`,saved:e=>`${e} gets automatic backups. The first one follows right away.`,removed:e=>`No more automatic backups of ${e}. The existing ones stay.`,lastOk:(e,n)=>`Last backup: ${e}, ${n}.`,lastSkipped:(e,n)=>`Skipped at ${e}: in use by ${n}.`,lastFailed:(e,n)=>`Failed at ${e}: ${n}`,badgeNone:e=>`Automatic backup: ${e}. None yet.`,badgeOk:(e,n)=>`Automatic backup: ${e}. Last: ${n}.`,badgeSkipped:(e,n,t)=>`Automatic backup: ${e}. Skipped at ${n}, in use by ${t}.`,badgeFailed:(e,n,t)=>`Automatic backup: ${e}. Failed at ${n}: ${t}`},backupTitle:e=>`Back up ${e} as .tar`,backupTitleInUse:e=>`Back up ${e}. It is in use: a database that writes during the backup can leave a backup that does not always restore. Stop that container first, or use its own dump.`,restoreTitle:e=>`Restore a backup into ${e}`,inUseReason:e=>`In use by ${zc(e)}; remove or stop them first`,menu:{create:`Create volume…`,pruneAnonymous:`Clean up anonymous`,pruneUnused:`Clean up unused`},createDialog:{title:`Create volume`,description:`An empty volume with a name, to attach to a container later.`,nameLabel:`Name`,namePlaceholder:`my-data`,storageLabel:`Where is the data stored?`,storage:{docker:`Managed by Docker`,dockerHint:`Recommended. Docker decides where the data goes.`,folder:`A folder on the Docker machine`,folderHint:`An existing folder, for example to share files with a container.`,nfs:`An NFS share on the network`,nfsHint:`A shared folder on a NAS or server.`},folderLabel:`Folder`,folderHint:`The folder must already exist on the machine running Docker. On WSL, C:\\data is /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Shared folder`,nfsHint:`Only checked when a container starts using this volume.`,advanced:`Advanced`,driverLabel:`Driver`,driverHint:`Leave this at local unless you use a volume plugin.`,submit:`Create`,creating:`Creating…`},copy:{title:e=>`Copy ${e}`,description:`Everything in this volume goes into a new one, with owners and permissions. The original stays as it is.`,name:`Name of the new volume`,taken:`A volume with this name already exists; pick another name.`,running:e=>`In use by ${e}, which is running. A database that writes during the copy gives a copy it may not read itself: stop it first.`,stopped:e=>`Used by ${e}, which is stopped: nothing writes during the copy.`,copy:`Copy`,copying:`Copying…`,copied:(e,n)=>`${e} has been copied to ${n}.`},restore:{title:e=>`Restore a backup into ${e}?`,description:e=>`Files with the same name are overwritten; anything not in the backup stays. `+(e>0?`First stop the ${zc(e)} using this volume: a running database does not notice that its files have changed. `:``)+`You pick the file next.`,confirm:`Choose file`},remove:{title:`Remove volume?`,description:e=>`All data in '${e}' will be lost. This cannot be undone.`,manyTitle:`Remove volumes?`,manyDescription:e=>`All data in ${Qv(e)} will be lost. Volumes that are still in use are skipped.`},prune:{allTitle:`Clean up all unused volumes?`,allDescription:`Every volume without a container attached is removed, including named volumes you created yourself. The data in them is gone afterwards.`,anonymousTitle:`Clean up anonymous volumes?`,anonymousDescription:`Volumes without a name that no container uses any more are removed. These are usually leftovers from containers that are already gone.`,confirm:`Clean up`},created:e=>`Volume ${e} has been created.`,pruned:(e,n)=>`${Qv(e)} removed, ${n} freed.`,backedUp:(e,n)=>`Backup of ${e} saved as ${n}.`,restored:(e,n)=>`${e} has been restored into ${n}.`}});var Xv;var ey=p(()=>{kv();Tv();Mv();xv();_v();Pv();Fv();Uv();qv();Gv();Kv();Jv();Xv={common:Ev,compose:Sv,containers:Nv,dashboard:Av,format:$v,images:Ov,logs:jv,networks:zv,settings:Bv,shell:Wv,terminal:Zv,volumes:Yv}});var ny;var ty=p(()=>{ny={cancel:`Annuleren`,close:`Sluiten`,remove:`Verwijderen`,retry:`Opnieuw proberen`,refresh:`Verversen`,search:`Zoeken`,loading:`Laden…`,save:`Bewaren`,copy:`Kopiëren`,copied:`Gekopieerd`,start:`Starten`,stop:`Stoppen`,restart:`Herstarten`,yes:`Ja`,no:`Nee`,none:`Geen`,unknown:`Onbekend`,nothingToPrune:`Er was niets op te ruimen.`}});var ry;var oy=p(()=>{ry={title:`Compose`,intro:`Projecten uit de labels op je containers, en die de app eerder zag: na down blijft een project hier staan, met Up ernaast.`,updating:`Bijwerken…`,state:{running:`draait`,partial:`deels`,stopped:`gestopt`,down:`niet gestart`},runningOf:(e,n)=>`${String(e)} van ${String(n)}`,expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,menuAria:e=>`Acties voor ${e}`,upAria:e=>`Up ${e}`,startAria:e=>`Start ${e}`,stopAria:e=>`Stop ${e}`,restartAria:e=>`Herstart ${e}`,downAria:e=>`Down ${e}`,up:`Up`,down:`Down`,fileAria:e=>`Toon het compose-bestand van ${e}`,file:{button:`Bestand`,title:e=>`Het compose-bestand van ${e}`,loading:`Ophalen…`,raw:`Zoals het er staat`,resolved:`Zoals compose het leest`,rawHint:`Het bestand op schijf, ongewijzigd.`,resolvedHint:"Overrides samengevoegd en ${VAR} ingevuld: hierop is het draaiende project gebaseerd.",empty:`Dit bestand is leeg.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},noCli:`De docker CLI is niet beschikbaar`,noWorkingDir:`Van dit project is niet bekend waar het staat`,busy:`Bezig… een up kan even duren als er images opgehaald worden.`,empty:`Nog geen compose-projecten. Open een compose-bestand, of start er ergens anders een; dan verschijnt hij hier vanzelf.`,openFile:`Compose-bestand openen…`,opening:`Starten…`,openHint:`docker compose -f <bestand> up -d`,forget:`Vergeten`,forgetHint:`Haalt hem uit deze lijst; het compose-bestand en eventuele containers blijven.`,forgotten:e=>`'${e}' vergeten.`,missing:`Het compose-bestand is er niet meer.`,notStarted:`geen containers`,downDialog:{title:`Project afbreken?`,description:e=>`De containers en netwerken van '${e}' worden gestopt en verwijderd. Volumes blijven staan, dus je gegevens blijven behouden.`,confirm:`Afbreken`},recreate:`Opnieuw`,recreateAria:e=>`${e} opnieuw opbouwen`,recreateTitle:`docker compose up -d --no-deps --force-recreate`,recreateDone:e=>`${e} is opnieuw opgebouwd.`,drift:`bestand gewijzigd`,driftTitle:`Het compose-bestand is veranderd sinds deze service gemaakt is. Opnieuw opbouwen voert de wijziging door.`,driftProject:e=>`Bestand gewijzigd: ${e}`,driftProblem:e=>`Compose kan het bestand niet lezen: ${e}`,upDone:e=>`'${e}' is opgestart.`,downDone:e=>`'${e}' is afgebroken.`,update:{menu:`Bijwerken`,hint:`Alle images ophalen, en vernieuwen wat veranderde`,title:e=>`${e} bijwerken`,description:`Alle images van dit project worden opgehaald. Daarna worden alleen de services vernieuwd waarvan de image veranderde.`,loading:`Kijken welke images het project gebruikt…`,waiting:`wacht`,pulling:`ophalen…`,pulled:`opgehaald`,failed:e=>`mislukt: ${e}`,skippedBuild:`gebouwd met build:, niets op te halen`,skippedDigest:`vast op een digest`,checking:`Kijken wat er veranderde…`,stale:e=>`Nieuwere image voor: ${e}`,upToDate:`Alles was al bij; er hoeft niets vernieuwd te worden.`,renew:`Vernieuwen`,renewing:`Vernieuwen…`,renewHint:`docker compose up -d --no-deps, alleen deze services`,renewed:e=>`Vernieuwd: ${e}.`,unchanged:e=>`Bleef staan: ${e}.`,noImages:`Dit project heeft geen images om op te halen.`},build:{button:`Opnieuw bouwen`,busy:`Bouwen…`,title:`docker compose build --pull, daarna up -d --no-deps`,aria:e=>`${e} opnieuw bouwen`,done:e=>`${e} is opnieuw gebouwd en gestart.`,output:`Uitvoer van de build`}}});var iy;var sy=p(()=>{iy={actions:{pause:`Pauzeren`,resume:`Hervatten`,copyDiagnosis:`Diagnose kopiëren`,copyRunCommand:`Run-commando kopiëren`,copyComposeService:`Als compose-service`,restartPolicy:`Restart policy…`,memoryLimit:`Geheugengrens…`,cpuLimit:`Processorgrens…`,rename:`Hernoemen…`,commit:`Bewaren als image…`,kill:`Nu stoppen…`,duplicate:`Dupliceren…`,mute:`Geen meldingen`,unmute:`Meldingen weer aan`,muted:e=>`Geen meldingen meer voor ${e}.`,unmuted:e=>`Meldingen voor ${e} staan weer aan.`,adjust:`Aanpassen…`,recreate:`Opnieuw opbouwen`},page:{title:`Containers`,cpuUsage:`CPU-gebruik`,memoryUsage:`Geheugengebruik`,search:`Zoeken op naam, image of ID`,onlyRunning:`Alleen draaiende containers`,updating:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen containers gevonden.`,columns:{name:`Naam`,id:`Container ID`,image:`Image`,ports:`Poorten`,cpu:`CPU`,memory:`Geheugen`,actions:`Acties`},group:{loose:`Losse containers`,expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,count:e=>`${String(e)} container${e===1?``:`s`}`,running:e=>`${String(e)} ${e===1?`draait`:`draaien`}`,startAll:`Alles starten`,stopAll:`Alles stoppen`,restartAll:`Alles herstarten`,removeAll:`Alles verwijderen`,menu:e=>`Acties voor alles in ${e}`,manual:`Eigen groep`,addToGroup:`Aan groep toevoegen…`,removeFromGroup:`Uit groep halen`,rename:`Groep hernoemen…`,dissolve:`Groep opheffen`},groupDialog:{assignTitle:`Aan groep toevoegen`,assignOne:e=>`'${e}' komt in de groep die je hier een naam geeft.`,assignMany:e=>`${String(e)} containers komen in de groep die je hier een naam geeft.`,renameTitle:`Groep hernoemen`,renameDescription:e=>`Alles in '${e}' verhuist mee naar de nieuwe naam.`,nameLabel:`Groepsnaam`,namePlaceholder:`bijvoorbeeld mijn-stack`,existing:`Bestaande groepen`,hint:`Een eigen groep leeft in deze app en volgt de containernaam; Docker zelf weet er niets van.`,empty:`Vul een naam in.`,reserved:e=>`'${e}' is al de naam van een Compose-project.`,submit:`Opslaan`},row:{diagnosisOf:e=>`Diagnose van ${e}`,missingNetwork:e=>`Draait, maar hangt niet aan ${e}`,menu:e=>`Acties voor ${e}`,muted:`Geen meldingen voor deze container`},confirm:{title:`Container verwijderen?`,one:e=>`'${e}' wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`,many:e=>`${String(e)} containers wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`,group:(e,n)=>`de ${String(e)} containers van '${n}' wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`}},detail:{back:`‹ Containers`,menu:`Acties voor deze container`,gone:` bestaat niet meer. Een container met --rm verdwijnt na het stoppen, en compose maakt bij up een nieuwe aan.`,goneUnnamed:`Deze container bestaat niet meer.`,successor:(e,n)=>`Naar de huidige ${e} (${n})`,tabsLabel:`Containerdetails`,tabs:{logs:`Logs`,health:`Health`,events:`Gebeurtenissen`,inspect:`Inspect`,env:`Omgeving`,stats:`Stats`,processes:`Processen`,terminal:`Terminal`,files:`Bestanden`,networks:`Netwerken`,assistant:`Claude`},wiring:{network:e=>`Draait, maar hangt niet aan ${e}. Via dat netwerk bereikt niets hem, en hij niets.`,networkWhy:`Dat gebeurt als het netwerk weggehaald en opnieuw gemaakt werd terwijl de container bestond.`,connect:e=>`Aanhangen aan ${e}`,ports:e=>`Draait, maar publiceert ${e} niet.`,portsWhy:`Dat gebeurt als hij nog eens gestart werd na een start die op een bezette poort mislukte.`,portsFromNetwork:`Dat volgt uit het ontbrekende netwerk hierboven: poorten lopen via een netwerk.`,restart:`Herstarten`},events:{loading:`Ophalen…`,empty:`Nog niets bijgehouden. De app houdt het bij vanaf het moment dat hij start, plus wat Docker dan nog wist.`,scope:`Bijgehouden in de app sinds hij startte, tot 100 per containernaam; na een herstart van de app vult Docker aan wat hij nog weet.`,crashLoop:e=>`Het afgelopen uur ${String(e)} keer omgevallen.`,create:`Aangemaakt`,start:`Gestart`,exited:e=>e===0?`Netjes gestopt`:`Gestopt met code ${String(e)}`,exitedUnknown:`Gestopt`,exitHint137:`SIGKILL: van buitenaf afgeschoten, vaak geheugen vol of een stop die te lang duurde`,exitHint143:`SIGTERM: gevraagd te stoppen`,kill:e=>`${e} gestuurd`,oom:`Door de kernel gestopt: geheugen vol`,stop:`Gestopt`,restart:`Herstart`,pause:`Gepauzeerd`,unpause:`Hervat`,destroy:`Verwijderd`,rename:e=>`Hernoemd, was ${e}`,renamed:`Hernoemd`,health:{starting:`Healthcheck begint`,healthy:`Healthy geworden`,unhealthy:`Unhealthy geworden`}},health:{loading:`Ophalen…`,refresh:`Verversen`,status:{starting:`starting`,healthy:`healthy`,unhealthy:`unhealthy`,unknown:`nog niet gedraaid`},failingStreak:e=>e===1?`één keer mislukt`:`${String(e)} keer op rij mislukt`,command:`Commando`,fromImage:`Komt uit de image; de daemon noemt het commando zelf niet.`,rhythm:`Ritme`,every:e=>`elke ${e}`,timeout:e=>`timeout ${e}`,startPeriod:e=>`start period ${e}`,retries:e=>e===1?`1 poging voor unhealthy`:`${String(e)} pogingen voor unhealthy`,defaults:`de standaard van Docker`,probes:`Laatste uitslagen`,noProbes:`De check heeft nog niet gedraaid.`,exitCode:e=>`exitcode ${String(e)}`,unknownExitCode:`geen exitcode`,noOutput:`geen uitvoer`},networks:{title:`Hangt aan deze netwerken`,loading:`Ophalen…`,empty:`Deze container hangt aan geen enkel netwerk.`,noAddress:`geen adres`,alsoKnownAs:e=>`ook bereikbaar als ${e}`,disconnect:`Loskoppelen`,disconnectFrom:e=>`Loskoppelen van ${e}`,addTitle:`Aan een netwerk koppelen`,addHint:`Werkt meteen, ook terwijl de container draait.`,allConnected:`Deze container hangt al aan elk netwerk.`,networkLabel:`Netwerk`,choose:`Kies een netwerk…`,alias:`Extra naam in het netwerk`,aliasHint:`Een extra naam waarop de andere containers op dit netwerk hem kunnen aanspreken, naast de containernaam.`,aliasPlaceholder:`database`,connect:`Koppelen`,working:`Bezig…`,invalidAlias:e=>`'${e}' is geen geldige naam. Gebruik letters, cijfers, punt, streepje en underscore.`},fetching:`Ophalen…`,terminalLoading:`Terminal laden…`,shellOnlyRunning:`Een shell openen kan alleen in een draaiende container.`,cpu:`CPU`,lastMinute:e=>`laatste minuut \xB7 piek ${e}%`,chartPending:`grafiek verschijnt na een paar metingen`,memory:`Geheugen`,ofLimit:e=>`${e}% van de limiet`,noLimit:`geen limiet ingesteld`,cpuOfLimit:(e,n)=>`${e}% van de grens van ${n} CPU`,cpuNoLimit:`geen grens ingesteld: tot alle processors`,nearLimit:`Dicht bij de grens: daarboven begint de kernel processen in de container af te schieten.`,statsOnlyRunning:`Metingen lopen alleen voor een draaiende container.`,confirmTitle:`Container verwijderen?`,confirmDescription:`Deze container wordt gestopt en verwijderd. Dit kan niet ongedaan gemaakt worden; volumes blijven staan.`},diagnosis:{title:`Diagnose kopiëren`,description:`Status, health, mounts, events en de laatste logregels, om in een chat of een issue te plakken. Dit is precies wat er gekopieerd wordt.`,collecting:`Verzamelen…`,noRedactions:`Niets weggelaten; er stond geen waarde in die op een geheim leek.`,redactions:e=>`${String(e)} ${e===1?`waarde`:`waarden`} weggelaten: omgevingsvariabelen en wat op een wachtwoord, token of sleutel leek.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},memoryLimit:{title:`Geheugengrens`,description:`Hoeveel geheugen de container mag gebruiken. Werkt meteen; de container wordt er niet voor opnieuw gemaakt.`,loading:`Ophalen…`,current:e=>`Nu: ${e}`,none:`Nu: geen grens`,label:`Grens`,unit:`Eenheid`,noRemove:`Een grens weghalen kan zo niet: Docker verandert hem alleen. Voor geen grens moet de container opnieuw gemaakt worden.`,compose:`Dit is een compose-container: compose up zet terug wat er in het compose-bestand staat.`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`De geheugengrens is nu ${e}.`,invalid:`Vul een getal groter dan nul in.`},editor:{title:e=>`${e} bewerken`,loading:`Laden…`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`${e} opgeslagen.`,closeUnsaved:`Sluiten zonder opslaan`,unsaved:`Niet opgeslagen`,conflict:`Toch opslaan, over hun wijziging heen, of het bestand opnieuw laden en de jouwe kwijtraken?`,reload:`Opnieuw laden`,overwrite:`Toch opslaan`,onMount:`Dit bestand staat op een volume of gekoppelde map: de wijziging blijft.`,notOnMount:`Deze wijziging staat in de container zelf: bij de volgende "Opnieuw" is hij weg. Bewaar de container als image om hem te houden.`,saveAsImage:`Bewaren als image…`,restart:`Een programma leest zijn configuratie meestal bij het starten; herstart de container om de wijziging te gebruiken.`,inVolume:`Containers die dit volume gebruiken, zien de wijziging meteen; de meeste programma’s lezen hun configuratie pas opnieuw bij een herstart.`},adjust:{title:e=>`${e} aanpassen`,description:`Docker kan dit niet veranderen op een bestaande container, dus hij wordt opnieuw gemaakt onder dezelfde naam. Start de nieuwe niet, dan blijft de oude zoals hij was. Volumes blijven.`,loading:`Laden…`,env:`Omgevingsvariabelen`,envHint:`Eén per regel, NAAM=waarde. Ook wachtwoorden staan hier zichtbaar.`,envInvalid:e=>`Regel ${String(e)} is geen NAAM=waarde.`,ports:`Poorten op deze machine`,portHint:`Leeg: Docker kiest een vrije.`,hostPort:e=>`Poort op deze machine voor ${e}`,restart:`Restart policy`,compose:`Dit is een compose-container: pas hem aan in het compose-bestand, en maak hem daarna opnieuw met "Opnieuw".`,openFile:`Compose-bestand bekijken`,save:`Toepassen`,saving:`Toepassen…`,done:e=>`${e} draait met de nieuwe instellingen.`},duplicate:{title:e=>`${e} dupliceren`,description:`Een nieuwe container met dezelfde instellingen, om iets naast elkaar te proberen. Hij start meteen.`,loading:`Laden…`,name:`Naam`,invalid:`Minstens twee tekens: een letter of cijfer, gevolgd door letters, cijfers, _ . of -.`,taken:`Er is al een container met deze naam.`,ports:`Poorten op deze machine`,portHint:`Dezelfde poort twee keer kan niet. Leeg: Docker kiest een vrije.`,hostPort:e=>`Poort op deze machine voor ${e}`,volumes:`Volumes`,volumesHint:`Twee containers op één volume schrijven in dezelfde bestanden; voor een database is een kopie veiliger. Kopiëren duurt even bij een groot volume.`,copy:`Kopie`,share:`Delen`,compose:`Dit is een compose-container. De kopie staat los van het project: compose kent hem niet.`,save:`Dupliceren`,saving:`Dupliceren…`,done:e=>`${e} draait.`},processes:{notRunning:`In een gestopte container draait niets.`,loading:`Laden…`,hint:e=>`${String(e)} processen, de drukste bovenaan. Ververst elke paar seconden; klik op een commando om het helemaal te zien.`,pids:`De pid is die van de host, niet die van ps in de container.`,user:`Gebruiker`,memory:`Geheugen`,elapsed:`Draait al`,command:`Commando`,redacted:`Wat op een geheim lijkt, is weggelaten.`},kill:{title:`Nu stoppen?`,description:e=>`${e} krijgt SIGKILL: het proces stopt meteen, zonder de kans om op te ruimen. Wat nog niet geschreven is, is weg.`,confirm:`Nu stoppen`,now:`Nu stoppen`,hint:`Stoppen duurt lang: Docker wacht tot het proces zelf stopt.`},rename:{title:`Container hernoemen`,description:e=>`Een nieuwe naam voor ${e}. Kan ook terwijl hij draait; de container wordt er niet voor opnieuw gemaakt.`,label:`Naam`,invalid:`Minstens twee tekens: een letter of cijfer, gevolgd door letters, cijfers, _ . of -.`,taken:`Er is al een container met deze naam.`,compose:`Dit is een compose-container. Compose herkent hem aan zijn labels, niet aan zijn naam: hij blijft bij het project, maar krijgt zijn oude naam terug zodra compose hem opnieuw maakt.`,save:`Hernoemen`,saving:`Hernoemen…`,saved:(e,n)=>`${e} heet nu ${n}.`},commit:{title:`Bewaren als image`,description:`Bewaart het bestandssysteem van de container als een nieuwe image, met wat je erin veranderd hebt. De container zelf blijft zoals hij is.`,label:`Naam en tag`,suffix:`-aangepast`,hint:`In kleine letters, zoals mijn-app:1.0. Zonder tag wordt het latest.`,invalid:`Een imagenaam is in kleine letters, zoals mijn-app of registry.example.com/team/app, eventueel gevolgd door :tag.`,exists:e=>`${e} bestaat al; de tag gaat naar de nieuwe image, en de oude blijft zonder tag achter.`,running:`De container staat stil zolang het bewaren duurt, meestal een paar tellen.`,mounts:`Niet in de image: volumes en mappen die aan de container hangen. Die horen bij de container, niet bij zijn bestandssysteem.`,save:`Bewaren`,saving:`Bewaren…`,saved:(e,n)=>`Bewaard als ${e} (${n}).`,toImage:`Naar de image`,run:`Container starten…`},cpuLimit:{title:`Processorgrens`,description:`Hoeveel processortijd de container mag gebruiken. Geldt meteen; de container hoeft er niet voor opnieuw.`,loading:`Laden…`,current:e=>`Nu: hooguit ${e} CPU`,none:`Nu: geen grens`,label:`Processors`,hint:e=>`Tussen 0,01 en ${e}; 1 is \xE9\xE9n volle processor, 0,5 een halve.`,noRemove:`Een grens weghalen kan zo niet: Docker past hem alleen aan. Voor geen grens moet de container opnieuw worden aangemaakt.`,compose:`Dit is een compose-container: compose up zet terug wat in het compose-bestand staat.`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`De processorgrens is nu ${e} CPU.`,invalid:`Vul een getal groter dan nul in.`},environment:{loading:`Laden…`,name:`Naam`,value:`Waarde`,source:`Komt van`,sources:{image:`de image`,set:`bij het starten`,changed:`bij het starten, over de image heen`},show:`tonen`,reveal:e=>`De waarde van ${e} tonen`,emptyValue:`(leeg)`,empty:`Deze container heeft geen omgevingsvariabelen.`,copyAll:`Alles kopiëren`,copied:(e,n)=>n===0?`${String(e)} gekopieerd.`:`${String(e)} gekopieerd; ${String(n)} verborgen waarden weggelaten.`,readOnly:`Alleen lezen: een variabele verandert pas als de container opnieuw wordt gemaakt. Het run-commando in het menu is een begin.`,composeNote:`Alleen lezen: bij een compose-container hoort een variabele in het compose-bestand, daarna Opnieuw.`},restartPolicy:{title:`Restart policy`,description:`Wat de daemon doet als deze container stopt. Werkt meteen; de container wordt er niet voor opnieuw gemaakt.`,loading:`Ophalen…`,label:`Beleid`,names:{no:`Nooit`,always:`Altijd`,"unless-stopped":`Tenzij je hem zelf stopte`,"on-failure":`Alleen na een foutcode`},maximum:`Hoogstens zoveel pogingen`,maximumHint:`0 betekent blijven proberen.`,save:`Opslaan`,saving:`Opslaan…`,saved:e=>`De restart policy staat nu op ${e}.`},runCommand:{title:`Run-commando kopiëren`,description:`Het commando waarmee je deze container opnieuw maakt, afgeleid uit inspect. Wat uit de image komt, blijft weg.`,building:`Afleiden…`,composeNote:e=>`Deze container hoort bij compose-project ${e}, en daar is docker compose up het antwoord. Dit is hoe hij nu draait.`,envWarning:e=>`${e===1?`Er staat 1 omgevingsvariabele`:`Er staan ${String(e)} omgevingsvariabelen`} in, wachtwoorden en al: het commando moet werken.`,noEnv:`Geen eigen omgevingsvariabelen.`,formatRun:`docker run`,formatCompose:`compose`,composeTitle:`Als compose-service`,composeDescription:`Dezelfde container als stukje compose-bestand, afgeleid uit inspect. Bestaande volumes en netwerken staan erbij als external.`,composeEnvWarning:e=>`${e===1?`Er staat 1 omgevingsvariabele`:`Er staan ${String(e)} omgevingsvariabelen`} in, wachtwoorden en al: het bestand moet werken.`,copyFailed:e=>`Kopi\xEBren lukte niet: ${e}`},logs:{filter:`Filteren op tekst`,follow:`Volgen`,timestamps:`Tijdstempels`,clear:`Wissen`,save:`Opslaan…`,saveHint:`De hele log van Docker, met tijdstempels; niet alleen wat je hier ziet.`,saved:(e,n)=>`${String(e)} regels bewaard in ${n}`,connecting:`Verbinden…`,count:(e,n)=>`${String(e)} van ${String(n)} regels`,truncated:`oudste regels afgevallen`,empty:`Nog geen logregels.`,noMatches:`Geen regels die daarop passen.`,range:`Tijdvak`,from:`Vanaf`,to:`Tot`,toHint:`Leeg: tot nu, en live.`,apply:`Tonen`,lastHour:`Laatste uur`,sinceStart:`Sinds de laatste start`,aroundCrash:`Rond de laatste crash`,latest:`Laatste regels`,active:(e,n)=>n===null?`Vanaf ${e}, live`:`${e} tot ${n}`,notLive:`Met een eindtijd volgt de log niet live.`,firstOnly:`meer dan 2000 regels in dit tijdvak: de eerste staan hier, bewaar voor alles`,saveRangeHint:`Dit tijdvak van Docker, met tijdstempels; niet alleen wat hier in beeld staat.`},files:{edit:e=>`${e} bewerken`,up:`Map omhoog`,path:`Pad in de container`,refresh:`Vernieuwen`,changed:`Gewijzigd`,changesTitle:`Gewijzigd ten opzichte van de image`,changesCount:e=>e===1?`1 pad`:`${String(e)} paden`,changesEmpty:`Deze container heeft niets veranderd aan zijn image.`,changesHint:`Mappen die alleen meeveranderden omdat er iets in zit, staan er niet bij. Volumes tellen niet mee.`,changeKind:{added:`toegevoegd`,modified:`gewijzigd`,deleted:`verwijderd`},openFolderOf:e=>`Open de map van ${e}`,upload:`Uploaden…`,empty:`Deze map is leeg.`,downloadFolder:e=>`Map downloaden als tar: ${e}`,downloadFile:e=>`Downloaden: ${e}`,hint:e=>`Sleep bestanden hierheen om ze in ${e} te zetten. Een map downloaden geeft een .tar, zodat rechten en symlinks bewaard blijven.`,savedAs:e=>`Opgeslagen als ${e}.`,uploaded:(e,n)=>`${String(e)} ${e===1?`bestand`:`bestanden`} in ${n} gezet.`},fileOps:{newFolder:`Nieuwe map…`,rename:e=>`Naam van ${e} wijzigen`,removeOf:e=>`${e} verwijderen`,downloadFile:e=>`Downloaden: ${e}`,downloadFolder:e=>`Map downloaden als tar: ${e}`,renameLabel:e=>`Nieuwe naam voor ${e}`,createLabel:`Naam van de nieuwe map`,save:`Naam wijzigen`,create:`Maken`,remove:`Verwijderen`,counting:e=>`${e} verwijderen? Tellen wat erin zit\u2026`,confirmFile:e=>`${e} verwijderen? Dat kan niet terug.`,confirmDir:(e,n)=>n===0?`De lege map ${e} verwijderen?`:`${e} verwijderen, met ${n===1?`1 ding`:`${String(n)} dingen`} erin? Dat kan niet terug.`,confirmDirUncounted:e=>`${e} verwijderen, met alles erin? Dat kan niet terug.`,renamed:(e,n)=>`${e} heet nu ${n}.`,created:e=>`Map ${e} gemaakt.`,removed:e=>`${e} verwijderd.`},terminal:{exited:`De shell is afgesloten.`,reopen:`Opnieuw openen`,connecting:`Verbinden…`,connected:`verbonden`,user:`Gebruiker`,fromImage:`Van de image`,other:`Andere…`,otherPlaceholder:`naam of uid`,open:`Openen`,asRoot:`Als root: wat je verandert, verandert als root.`},assistant:{introHost:`Claude krijgt een overzicht van de engine en de containers, en leest zelf mee in de terminal of vraagt logs en inspect op. Elke opvraging staat hieronder, en geheimen worden weggelaten. Claude typt zelf niets: een voorgesteld commando wordt een knop die het op de prompt zet, en jij drukt op Enter.`,introContainer:`Claude krijgt de diagnose van deze container, zonder geheimen, en vraagt daarna zelf logs, inspect, events of de andere containers op. Elke opvraging staat hieronder. Claude verandert zelf niets: een voorstel wordt een knop, en jij beslist.`,defaultQuestion:`Wat is er met deze container aan de hand, en wat kan ik eraan doen?`,defaultHostQuestion:`Wat zie je in de terminal, en wat betekent het?`,onPrompt:`Staat op de prompt`,done:`Gedaan`,thinking:`Claude denkt na…`,questionLabel:`Vraag aan Claude`,followUp:`Vervolgvraag`,ask:`Vraag Claude`,putInTerminal:`In de terminal zetten`,composeUp:e=>`compose up voor ${e}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} herstarten`,panelClosed:`Het paneel is gesloten.`,usage:(e,n,t)=>`${e} tokens in, ${n} uit de cache, ${t} uit`}}});var ay;var ly=p(()=>{ay={title:`Dashboard`,engine:{connecting:`Verbinden met Docker…`,running:`Engine draait`,unreachable:`Engine niet bereikbaar`,startDistro:e=>`${e} starten`,startingDistro:e=>`${e} starten\u2026`,startDaemon:e=>`Docker starten in ${e}`,startingDaemon:e=>`Docker starten in ${e}\u2026`,daemonHint:e=>`${e} draait, dus het is de daemon erin die stilstaat. De app kan hem daar starten.`,idleHint:{intro:e=>`${e} is eerder gestart en toch weer gestopt. WSL legt een distro zonder open sessie na 15 seconden stil; zet`,under:`onder`,in:`in`,outro:`om hem te laten draaien.`}},contexts:{switchFailed:e=>`Omschakelen naar ${e} lukte niet`},usage:{cpu:`CPU over alle containers`,memory:`Geheugen`,memoryChart:`Geheugen over alle containers`,network:`Netwerk over alle containers`,networkChart:`Netwerkverkeer over alle containers`,received:`Ontvangen`,sent:`Verzonden`,receivedAria:`ontvangen`,sentAria:`verzonden`,hostNote:`Containers met network_mode: host tellen niet mee; die hebben geen eigen tellers.`},counts:{containers:`Containers`,runningOfTotal:`draaiend van totaal`,images:`Images`,volumesNetworks:`Volumes · netwerken`},space:{title:`Waar de ruimte zit`,description:`De tien grootste per soort. Er gaat niets weg zonder de bevestiging op de eigen pagina.`,loading:`Rekenen… Docker loopt hiervoor zijn opslag door.`,images:`Images`,volumes:`Volumes`,containers:`Containers (wat ze zelf schreven)`,buildCache:`Build cache`,buildCacheItems:e=>`${String(e)} stukken`,usedBy:e=>e===1?`in gebruik door 1 container`:`in gebruik door ${String(e)} containers`,unused:`niet in gebruik`,running:`draait`,stopped:`gestopt`,open:`Openen`,remove:`Verwijderen…`,prune:`Opruimen…`,empty:`Niets hier.`,imagesNote:`De grootte van een image is met de lagen die hij met andere deelt: zoveel komt vrij als hij de laatste is die ze gebruikt.`},disk:{title:`Schijfgebruik`,total:e=>`${e} samen`,calculating:`berekenen…`,prune:`Opruimen`,pruning:`Opruimen…`,where:`Waar zit het?`,unused:e=>`${String(e)} ongebruikt`,labels:{images:`Images`,containers:`Containers`,volumes:`Volumes`,buildCache:`Build cache`},footnoteBefore:`Dezelfde cijfers als`,footnoteAfter:`. Hoeveel ruimte opruimen precies oplevert staat er niet bij: dat verrekent gedeelde lagen, en een schatting die als feit oogt is erger dan geen getal.`},attention:{title:`Aandacht nodig`,none:`Alles klopt: geen crashlussen, niets unhealthy, alles aangesloten.`,loading:`Nakijken…`,crashLoop:e=>`het afgelopen uur ${String(e)} keer omgevallen`,restarting:`blijft herstarten`,unhealthy:`healthcheck faalt`,network:e=>`draait, maar hangt niet aan ${e}`,ports:e=>`draait, maar publiceert ${e} niet`,update:e=>`er is een nieuwere versie van ${e}`,projectUpdate:e=>`nieuwere versies van ${e}`,updateProject:`Project bijwerken`,projectDrift:e=>`compose-bestand gewijzigd; ${e} draait nog op de oude instellingen`,toCompose:`Naar Compose`},stopped:{clean:`netjes gestopt`,failed:e=>`afgebroken met code ${String(e)}`,created:e=>`${e} aangemaakt`},pruneDialog:{title:`Opruimen`,description:`Wat je aanvinkt wordt verwijderd en is niet terug te halen.`,confirm:`Opruimen`,containers:`Gestopte containers`,containersHint:`Een gepauzeerde container blijft staan.`,networks:`Ongebruikte netwerken`,networksHint:`bridge, host en none blijven altijd staan.`,images:`Images zonder tag`,imagesHint:`Meestal restanten van een nieuwere build.`,allImages:`Ook getagde images zonder container`,allImagesHint:`Die moet je daarna opnieuw pullen.`,buildCache:`Build cache`,buildCacheHint:`Alles wat niet in gebruik is. Een volgende build duurt langer.`,volumes:`Anonieme volumes`,volumesHint:`Volumes met een naam blijven staan. Hierin zit data.`},pruneResult:{removed:{containers:e=>`${String(e)} containers`,networks:e=>`${String(e)} netwerken`,volumes:e=>`${String(e)} volumes`,images:e=>`${String(e)} images`,buildCache:e=>`${String(e)} build-cache-items`},kinds:{containers:`containers`,networks:`netwerken`,volumes:`volumes`,images:`images`,buildCache:`build-cache-items`},and:`en`,notice:(e,n)=>`${e} verwijderd, ${n} vrijgemaakt.`,problem:e=>`Niet gelukt bij ${e}`}}});var cy;var uy=p(()=>{cy={justNow:`net`,hoursAgo:e=>`${String(e)} uur geleden`,yesterday:`gisteren`,daysAgo:e=>`${String(e)} dagen geleden`,lastMonth:`vorige maand`,monthsAgo:e=>`${String(e)} maanden geleden`,lastYear:`vorig jaar`,yearsAgo:e=>`${String(e)} jaar geleden`}});var dy;var py=p(()=>{dy={title:`Images`,diskSpace:`Schijfruimte`,unused:`Ongebruikt`,menuLabel:`Acties voor images`,searchLabel:`Zoeken op repository, tag of ID`,onlyUnused:`Alleen ongebruikte images`,refreshing:`Bijwerken…`,updatesHint:`Bijwerken haalt de nieuwe image op. Een container die al draait houdt de oude tot hij opnieuw aangemaakt wordt; voor een container uit een compose-project biedt de app dat na het ophalen aan.`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen images gevonden.`,columns:{repository:`Repository`,tag:`Tag`,imageId:`Image ID`,inUse:`In gebruik`,created:`Aangemaakt`,size:`Grootte`,actions:`Acties`},badge:{newer:`nieuwere versie`,notInRegistry:`niet in registry`,uncheckable:`niet te controleren`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,updateTitle:e=>`Bijwerken: ${e} opnieuw ophalen`,rowMenu:e=>`Acties voor ${e}`,rowUpdate:`Nieuwere versie ophalen`,rowRun:`Container starten…`,rowLayers:`Lagen…`,rowSave:`Opslaan als bestand…`,rowTag:`Tag toevoegen…`,rowUntag:`Deze tag weghalen`,rowPush:`Pushen…`,untagged:e=>`Tag ${e} weggehaald; de image blijft staan.`,tagDialog:{title:e=>`Nieuwe tag voor ${e}`,description:`Een tweede naam voor dezelfde image. Met een registry ervoor kun je hem daarheen pushen, zoals localhost:5000/app:1.0.`,label:`Naam en tag`,invalid:`Een imagenaam is in kleine letters, zoals mijn-app of registry.example.com/team/app, eventueel gevolgd door :tag.`,exists:e=>`${e} bestaat al; de tag gaat naar deze image.`,save:`Tag toevoegen`,saving:`Toevoegen…`,saved:e=>`Getagd als ${e}.`},buildDialog:{title:`Image bouwen`,description:`Uit een map met een Dockerfile, met docker build: BuildKit, .dockerignore en de cache werken zoals je gewend bent.`,choose:`Map kiezen…`,other:`Andere map…`,none:`Er staat geen Dockerfile in deze map.`,file:`Dockerfile`,name:`Naam en tag`,invalid:`Een imagenaam is in kleine letters, zoals mijn-app of registry.example.com/team/app, eventueel gevolgd door :tag.`,exists:e=>`${e} bestaat al; de tag gaat naar de nieuwe image.`,build:`Bouwen`,building:`Bouwen… dit kan even duren.`,done:e=>`Gebouwd als ${e}.`,output:`Uitvoer van de build`,run:`Container starten…`},pushDialog:{title:e=>`${e} pushen`,registry:e=>`Gaat naar ${e}, met de inloggegevens van docker login.`,hub:`Gaat naar Docker Hub, met de inloggegevens van docker login.`,hubPublic:`Is de repository op Docker Hub openbaar, dan kan iedereen deze image ophalen.`,final:`Een push is niet terug te draaien: wat in de registry staat, blijft daar tot je het daar weghaalt.`,other:`Naar een andere registry? Geef hem eerst een tag met die registry ervoor.`,confirm:`Pushen`,pushing:`Pushen…`,done:`Gepusht.`},runLabel:e=>`Container starten van ${e}`,runLabelDangling:`Container starten van deze ongetagde image`,layers:{title:e=>`Lagen van ${e}`,description:`Nieuwste eerst, zoals docker history ze toont: de laatste regel van de Dockerfile bovenaan.`,loading:`Ophalen…`,summary:(e,n)=>`${e===1?`1 laag`:`${String(e)} lagen`} \xB7 image ${n}`,packed:e=>`De lagen tellen op tot ${e}: bij deze opslag meldt Docker elke laag zoals hij binnenkwam, ingepakt. Op schijf is de image groter.`,noSize:`verandert niets op schijf`,expand:`Het hele commando tonen`,empty:`Deze image meldt geen lagen.`},menu:{pull:`Image ophalen`,check:`Op updates controleren`,checking:`Controleren…`,pruneDangling:`Ongetagd opruimen`,pruneUnused:`Ongebruikt opruimen`,load:`Inlezen uit bestand…`,build:`Image bouwen…`},remove:{title:`Image verwijderen?`,description:e=>`'${e}' wordt verwijderd. Heeft deze image nog andere tags, dan verdwijnt alleen deze tag.`,forceTitle:`Image forceren te verwijderen?`,forceDescription:(e,n)=>`'${e}' wordt gebruikt door ${String(n)} container(s). Verwijderen lukt alleen geforceerd, en die containers werken daarna niet meer.`,forceConfirm:`Toch verwijderen`,manyTitle:`Images verwijderen?`,manyDescription:e=>`${String(e)} images worden verwijderd. Images die nog in gebruik zijn worden overgeslagen.`},prune:{allTitle:`Alle ongebruikte images opruimen?`,allDescription:`Alles waar geen container aan hangt wordt verwijderd, ook images die je zelf hebt opgehaald. Je moet ze daarna opnieuw pullen.`,danglingTitle:`Ongetagde images opruimen?`,danglingDescription:`Images zonder tag worden verwijderd. Dat zijn meestal restanten van een nieuwere build.`,confirm:`Opruimen`},pruned:(e,n)=>`${String(e)} images verwijderd, ${n} vrijgemaakt.`,check:{allCurrent:`Alles is bijgewerkt`,updates:e=>`${String(e)} ${e===1?`image heeft`:`images hebben`} een nieuwere versie`,notInRegistry:e=>`${String(e)} niet in een registry`,uncheckable:e=>`${String(e)} niet te controleren`,summary:(e,n)=>`${e} (${String(n)} gecontroleerd).`},pullDialog:{hits:`Uit Docker Hub`,official:`officieel`,stars:e=>`${String(e)} sterren`,title:`Image ophalen`,nameAndTag:`Naam en tag, bijvoorbeeld`,withoutTag:`Zonder tag wordt`,isUsed:`gebruikt.`,inputLabel:`Image`,submit:`Ophalen`,staleHeading:`Deze containers draaien nog op de vorige versie:`,inProject:e=>`in ${e}`,notCompose:`niet met compose gestart; die maak je zelf opnieuw aan`,renewed:e=>`Vernieuwd: ${e}.`,renew:`Containers vernieuwen`,renewing:`Vernieuwen…`,renewHint:`Met compose, alleen deze services.`},runDialog:{title:`Container starten`,fromImage:`Vanaf image`,name:`Naam`,namePlaceholder:`leeg laten = Docker kiest er een`,autoRestart:`Automatisch herstarten`,autoRestartHint:`Na een crash of als Docker opnieuw opstart. Niet als je hem zelf stopt.`,ports:`Poorten`,portsHint:`Maak een poort van de container bereikbaar vanaf deze computer, bijvoorbeeld localhost:8080.`,onThisComputer:`Op deze computer`,inContainer:`In de container`,protocolHeader:`Protocol`,hostPortPlaceholder:`leeg = een vrije poort`,addPort:`Poort toevoegen`,hostPort:e=>`Hostpoort ${String(e)}`,containerPort:e=>`Containerpoort ${String(e)}`,protocol:e=>`Protocol ${String(e)}`,removePort:e=>`Poort ${String(e)} weghalen`,network:`Netwerk`,networkHint:`Containers op een netwerk dat je zelf gemaakt hebt, kunnen elkaar op naam bereiken. Op het standaardnetwerk niet.`,networkDefault:`Standaard (bridge)`,networkAlias:`Extra naam in het netwerk`,networkAliasHint:`Een extra naam waarop de andere containers op dit netwerk hem kunnen aanspreken, naast de containernaam.`,networkAliasPlaceholder:`database`,invalidAlias:e=>`'${e}' is geen geldige naam. Gebruik letters, cijfers, punt, streepje en underscore.`,volumes:`Volumes`,volumesHint:`Gegevens die de container moeten overleven: een volume, of een map op de Docker-machine.`,source:`Volume of map`,addVolume:`Volume toevoegen`,sourcePlaceholder:`mijn-data of /srv/data`,targetPlaceholder:`/pad/in/container`,volumeSource:e=>`Volumebron ${String(e)}`,volumeTarget:e=>`Volumedoel ${String(e)}`,readOnly:`alleen lezen`,readOnlyHint:`De container kan de bestanden lezen, maar niet veranderen.`,removeVolume:e=>`Volume ${String(e)} weghalen`,env:`Omgevingsvariabelen`,envHint:`Instellingen voor het programma in de container. Je kunt ook NAAM=waarde plakken.`,envNameHeader:`Naam`,envValueHeader:`Waarde`,addEnv:`Variabele toevoegen`,envName:e=>`Naam variabele ${String(e)}`,envValue:e=>`Waarde variabele ${String(e)}`,removeEnv:e=>`Variabele ${String(e)} weghalen`,submit:`Starten`,starting:`Starten…`,invalidContainerPort:e=>`'${e}' is geen geldige containerpoort. Gebruik een getal van 1 tot 65535.`,invalidHostPort:e=>`'${e}' is geen geldige hostpoort. Laat hem leeg om Docker er een te laten kiezen.`,volumeIncomplete:`Een volume heeft zowel een bron als een doel nodig.`,notAbsolute:e=>`'${e}' is geen absoluut pad. Het doel in de container begint met een /.`,envNameMissing:`Een variabele heeft een naam nodig.`,envNameWithEquals:e=>`'${e}' mag geen = bevatten; dat scheidt de naam van de waarde.`},file:{saving:e=>`${e} opslaan\u2026`,loading:`Inlezen uit bestand…`,saved:(e,n)=>`Opgeslagen als ${e} (${n}).`,loaded:e=>`Ingelezen: ${e}.`,loadedNothing:`Het bestand is gelezen, maar er stond geen image in.`}}});var fy;var my=p(()=>{fy={title:`Logs`,intro:`Alles wat je draaiende containers schrijven, op tijd door elkaar heen. Een container die start of stopt haakt vanzelf aan of af.`,projectLabel:`Compose-project`,allProjects:`Alle containers`,searchLabel:`Zoeken in de logs`,searchPlaceholder:`Zoeken, of een expressie zoals /error|warn/`,caseSensitive:`Hoofdlettergevoelig zoeken`,containers:`Containers`,nothingRunning:`Er draait niets.`,showAll:`Alles weer aanzetten`,timestamps:`Tijdstempels`,clear:`Wissen`,columns:{time:`Tijd`,object:`Object`,line:`Regel`},allFiltered:e=>`Alle ${String(e)} regels vallen weg door het filter.`,empty:`Nog geen regels. Zodra een container iets schrijft staat het hier.`,lineCount:e=>`${String(e)} regels`,filteredOut:e=>`${String(e)} weggefilterd`,truncated:`Oudere regels zijn uit de buffer gevallen.`,invalidExpression:e=>`Geen geldige expressie: ${e}`,levels:{label:`Niveau`,errors:`Fouten`,warnings:`Waarschuwingen`,unknownHidden:`Regels zonder herkenbaar niveau, zoals een stacktrace onder een fout, vallen weg bij dit filter.`}}});var gy;var hy=p(()=>{gy={title:`Networks`,unused:`Ongebruikt`,menuLabel:`Acties voor netwerken`,searchLabel:`Zoeken op naam of driver`,hideBuiltIn:`Ingebouwde netwerken verbergen`,refreshing:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen netwerken gevonden.`,builtIn:`ingebouwd`,internal:`intern`,columns:{name:`Naam`,driver:`Driver`,scope:`Scope`,subnet:`Subnet`,connected:`Aangesloten`,actions:`Acties`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,rowMenu:e=>`Acties voor ${e}`,rowMembers:`Wie hangt eraan…`,members:{title:e=>`Aan ${e}`,description:`Dezelfde containers als waar het aantal op deze pagina op gebaseerd is, ook de gestopte.`,loading:`Ophalen…`,empty:`Er hangt geen container aan dit netwerk.`,noAddress:`geen adres`,stopped:`gestopt`},builtInReason:`Ingebouwd netwerk van Docker; niet te verwijderen`,connectedReason:e=>`${String(e)} container(s) aangesloten; koppel die eerst los`,menu:{create:`Netwerk aanmaken…`,pruneUnused:`Ongebruikt opruimen`},createDialog:{title:`Netwerk aanmaken`,description:`Een eigen netwerk, waarop containers elkaar op naam vinden.`,nameLabel:`Naam`,namePlaceholder:`mijn-netwerk`,internal:`Alleen intern`,internalHint:`De containers bereiken elkaar, maar hebben geen route naar buiten.`,advanced:`Geavanceerd`,driverLabel:`Driver`,driverHint:`Laat dit op bridge staan, tenzij je een swarm draait of een netwerkplugin gebruikt.`,subnetLabel:`Subnet`,subnetHint:`Laat dit leeg, dan kiest Docker zelf een bereik dat vrij is.`,gatewayLabel:`Gateway`,gatewayHint:`Moet in het subnet liggen. Leeg betekent het eerste adres uit het bereik.`,submit:`Aanmaken`,creating:`Bezig met aanmaken…`},remove:{title:`Netwerk verwijderen?`,description:e=>`'${e}' wordt verwijderd. Containers die er later aan gekoppeld worden, vinden het niet meer.`,manyTitle:`Netwerken verwijderen?`,manyDescription:e=>`${String(e)} netwerken worden verwijderd. Netwerken met aangesloten containers en de ingebouwde netwerken worden overgeslagen.`},prune:{title:`Ongebruikte netwerken opruimen?`,description:`Elk netwerk waar geen container aan hangt wordt verwijderd. Dit levert geen schijfruimte op; het houdt de lijst overzichtelijk.`,confirm:`Opruimen`},pruned:e=>`${String(e)} netwerken verwijderd.`,created:e=>`Netwerk ${e} is aangemaakt.`,ports:{title:`Poorten`,none:`Geen enkele container publiceert een poort.`,missing:`niet gepubliceerd`,missingTitle:`Gevraagd, maar Docker publiceerde hem niet. Opnieuw opbouwen zet het recht.`,open:e=>`localhost:${String(e)} openen in de browser`,searchLabel:`Zoek op poort of container`,intro:`Elke gepubliceerde poort van elke draaiende container, in één lijst.`,allAddresses:`alle adressen`,empty:`Geen poort die past.`,columns:{hostPort:`Poort`,container:`Container`,target:`In de container`,address:`Adres`}}}});var vy;var yy=p(()=>{vy={title:`Instellingen`,language:{heading:`Taal`,label:`Taal van de app`,hint:`Technische termen zoals container, image en volume blijven Engels.`},startup:{heading:`Opstarten`,startAtLogin:`Starten bij aanmelden, meteen in het systeemvak`,paletteShortcut:`Ctrl+Shift+Spatie opent het zoekvenster, overal in Windows`,shortcutTaken:`Ctrl+Shift+Spatie is al van een ander programma; de sneltoets werkt nu niet.`,hintAvailable:`Zo lopen de meldingen hieronder ook als je de app niet zelf opent. Uitzetten kan hier, of in Taakbeheer onder Opstarten.`,hintUnavailable:`Kan alleen in de geïnstalleerde app. Hier zou Windows een kale electron.exe gaan starten.`},backups:{heading:`Vanzelf een back-up`,empty:`Nog geen volume. Zet het aan via het menu van een volume.`,line:(e,n)=>`${e}, naar ${n}`,edit:`Aanpassen…`,remove:`Stoppen`},prune:{heading:`Opruimen`,auto:`Eens per week ongetagde images en build cache opruimen`,hint:`Nooit volumes, gestopte containers of images met een tag: die heeft iemand bewust laten staan. Je krijgt een melding met wat het opleverde.`,last:e=>`Laatste keer: ${e}.`,never:`Nog niet gebeurd.`},notifications:{heading:`Meldingen`,crash:`Als een container onverwacht stopt`,unhealthy:`Als een container unhealthy wordt`,wiring:`Als een container zijn netwerk of poorten kwijt is`,hint:`Een container die je zelf stopt, uit de app, de terminal of compose down, geeft nooit een melding. Van dezelfde container komt hooguit één melding per minuut.`,muted:e=>e===1?`1 container zonder meldingen`:`${String(e)} containers zonder meldingen`,unmute:`Aanzetten`,unmuteAll:`Alles weer aan`,mutedHint:`Onthouden op naam, dus een container die compose opnieuw maakt, blijft stil. Onder Aandacht nodig staat hij wel.`},update:{heading:`Bijwerken`,version:e=>`versie ${e}`,install:`Herstarten en bijwerken`,check:`Nu zoeken`,auto:`Zelf naar een nieuwe versie zoeken en die alvast binnenhalen`,unavailable:`Alleen de geïnstalleerde app op Windows werkt zichzelf bij. Via npm werk je bij met npm.`,idle:`Een nieuwe versie wordt binnengehaald en geïnstalleerd zodra je de app afsluit.`,checking:`Zoeken naar een nieuwe versie…`,upToDate:e=>`Dit is de nieuwste versie. Gekeken om ${e}.`,downloading:(e,n)=>`Versie ${e} binnenhalen\u2026 ${String(n)}%`,ready:e=>`Versie ${e} staat klaar en wordt ge\xEFnstalleerd als je de app afsluit. Herstarten doet het nu.`,error:e=>`Zoeken lukte niet: ${e}`},servers:{heading:`Servers`,hint:`Docker-hosts via SSH of TCP. Ze worden bewaard als docker contexts, dus de docker CLI kent ze ook. Wisselen doe je met de kiezer in de statusbalk.`,empty:`Nog geen servers.`,inUse:`in gebruik`,cli:`CLI`,test:`Testen`,testing:`Bezig met testen…`,remove:`Verwijderen`,removeBlocked:`In gebruik door de app of de docker CLI. Schakel eerst naar een andere context.`,removeTitle:e=>`Server '${e}' verwijderen?`,removeDescription:`Dit haalt de docker context weg, ook voor de docker CLI. Op de server zelf verandert niets.`,connected:(e,n,t)=>`Verbonden: Docker ${e} op ${n}/${t}.`,unknownHostKey:(e,n)=>`${e} is nog niet bekend. Vergelijk deze ${n}-vingerafdruk met die op de server (ssh-keygen -lf /etc/ssh/ssh_host_*_key.pub) voordat je hem vertrouwt:`,trust:`Vertrouwen en opnieuw testen`,add:{heading:`Server toevoegen`,name:`Naam`,namePlaceholder:`thuisserver`,kind:`Verbinding`,ssh:`SSH`,tcp:`TCP`,username:`Gebruiker`,usernamePlaceholder:`leeg: gebruiker van deze computer`,host:`Host`,hostPlaceholder:`192.168.1.16`,port:`Poort`,description:`Omschrijving`,descriptionPlaceholder:`optioneel`,submit:`Toevoegen`,tcpWarning:`Kaal TCP heeft geen authenticatie: wie de poort op het netwerk bereikt, bestuurt Docker. Kies liever SSH.`,added:e=>`Server '${e}' toegevoegd.`}},assistant:{configured:`Er is een sleutel ingesteld.`,clearKey:`Sleutel weghalen`,keyLabel:`API-sleutel`,model:`Model`,modelHint:`Opus denkt het best na over een hardnekkig probleem; Sonnet en Haiku antwoorden sneller en kosten minder. Haiku leest ook minder in één keer.`,hint:`Met een eigen sleutel van de Claude API krijgt elke container een tab Claude, die meekijkt bij een probleem. De sleutel staat versleuteld op deze computer, alleen leesbaar voor jouw Windows-gebruiker. Elke vraag kost een paar dubbeltjes aan API-gebruik, op jouw rekening.`}}});var by;var wy=p(()=>{by={nav:{label:`Hoofdnavigatie`,dashboard:`Dashboard`,containers:`Containers`,images:`Images`,volumes:`Volumes`,networks:`Networks`,ports:`Poorten`,compose:`Compose`,logs:`Logs`,terminal:`Terminal`,settings:`Instellingen`},routes:{container:`Container`},header:{search:`Zoeken (Ctrl+K)`,lightTheme:`Licht thema`,darkTheme:`Donker thema`,quit:`Docker Client MX afsluiten`},statusBar:{connecting:`Verbinden met Docker…`,engineRunning:`Engine draait`,engineUnreachable:`Engine niet bereikbaar`,containers:(e,n)=>`${String(e)} van ${String(n)} containers`,images:e=>`${String(e)} images`,reconnect:`Opnieuw verbinden`},contextPicker:{label:`Docker context`,switching:`Omschakelen…`,unsupported:`niet ondersteund`,inUseByCli:`in gebruik door de CLI`},actionMenu:{label:`Acties`},confirmDialog:{confirm:`Verwijderen`},dataTable:{empty:`Niets gevonden.`,selectAll:`Alles selecteren`,clearSelection:`Selectie opheffen`,select:e=>`Selecteer ${e}`},jsonView:{expand:e=>`Uitklappen: ${e}`,collapse:e=>`Inklappen: ${e}`,empty:`Niets om te tonen.`},toast:{region:`Meldingen (F8)`,close:`Melding sluiten`},usageChart:{ago:e=>`${e} geleden`,max:e=>`max ${e}`,now:`nu`,values:(e,n,t)=>`nu ${e}, hoogste ${n}, laagste ${t}`,noData:e=>`${e}: nog geen metingen.`,summary:(e,n,t)=>`${e} over de laatste ${n}: ${t}.`},palette:{title:`Snel naar`,description:`Typ om te zoeken in pagina's, containers, images, volumes en netwerken. Pijltjes kiezen, Enter voert uit.`,placeholder:`Zoek een pagina, container, image, volume of netwerk…`,results:`Resultaten`,empty:`Niets gevonden.`,groups:{page:`Pagina`,container:`Container`,image:`Image`,volume:`Volume`,compose:`Compose`,network:`Netwerk`,action:`Actie`},sections:{page:`Pagina's`,container:`Containers`,image:`Images`,volume:`Volumes`,compose:`Compose-projecten`,network:`Netwerken`,action:`Acties`},recent:`Onlangs`,attention:`Aandacht nodig`,hint:`c containers · i images · v volumes · n netwerken · p compose · > acties · → acties van een regel`,actions:`Acties`,verbs:{start:`Starten`,stop:`Stoppen`,restart:`Herstarten`,pause:`Pauzeren`,unpause:`Hervatten`,recreate:`Opnieuw opbouwen`},commandHint:`Enter voert dit uit`,commandNothing:`Niets uit te voeren`,problems:{unknown:e=>`${e}: niet gevonden`,ambiguous:(e,n)=>`${e}: ${String(n)} containers, wees preciezer`,state:e=>`${e}: kan niet in deze toestand`,notCompose:e=>`${e}: geen compose-container`},commandDone:e=>e===1?`1 opdracht uitgevoerd.`:`${String(e)} opdrachten uitgevoerd.`,events:e=>`Gebeurtenissen van ${e}`,terminal:e=>`Terminal in ${e}`,memory:e=>`Geheugengrens van ${e}\u2026`,cpu:e=>`Processorgrens van ${e}\u2026`,rename:e=>`Naam van ${e} wijzigen\u2026`,processes:e=>`Processen in ${e}`,kill:e=>`Afschieten: ${e}\u2026`,duplicate:e=>`Kopie maken van ${e}\u2026`,commit:e=>`Image maken van ${e}\u2026`,adjust:e=>`Instellingen van ${e} aanpassen\u2026`,logsHour:e=>`Logs van ${e}, laatste uur`,logsCrash:e=>`Logs van ${e} rond de crash`,imageTag:e=>`Tag toevoegen aan ${e}\u2026`,imagePush:e=>`Pushen: ${e}\u2026`,buildImage:`Image bouwen…`,openCompose:`Compose-bestand openen…`,composeService:e=>`Compose-service van ${e}`,copyId:e=>`ID van ${e} kopi\xEBren`,imageRun:e=>`${e} starten\u2026`,imageLayers:e=>`Lagen van ${e}`,imagePull:e=>`${e} opnieuw ophalen`,imageRemove:e=>`${e} verwijderen\u2026`,volumeBackup:e=>`Back-up van ${e}\u2026`,composeLogs:e=>`De logs van ${e} volgen`,prune:`Opruimen…`,space:`Waar zit de ruimte?`,mute:e=>`Geen meldingen: ${e}`,unmute:e=>`Meldingen weer aan: ${e}`,volumeSchedule:e=>`Vanzelf een back-up van ${e}\u2026`,checkUpdates:`Images op updates controleren`,theme:`Wisselen tussen licht en donker`,useContext:e=>`Wisselen naar ${e}`,copied:e=>`Gekopieerd: ${e}`,askClaude:e=>`Vraag Claude: ${e}`,askNote:`Alleen je vraag gaat naar Claude`,thinking:`Claude denkt na…`,claudeSays:e=>`Claude: ${e}`,questionNote:`Hiervoor keek Claude in je containers, met dezelfde tools als de tab Claude.`,commandNote:`Hiervoor kreeg Claude de namen en de toestand van je containers.`,aiNothing:`Claude vond niets dat hierbij past.`,aiMatches:e=>e===1?`1 treffer`:`${e} treffers`,noContainerSize:`Van containers kent het palet de grootte niet; van images en volumes wel.`,updateProject:e=>`${e} bijwerken`,copyCommand:e=>`Kopi\xEBren: ${e}`,proposal:(e,n)=>`${e} ${n}`,start:e=>`${e} starten`,stop:e=>`${e} stoppen`,restart:e=>`${e} herstarten`,diagnose:e=>`${e} diagnose`,imageInUse:e=>`Image \xB7 in gebruik door ${String(e)}`,imageUnused:`Image · ongebruikt`,network:e=>`Netwerk \xB7 ${e}`,composeDetail:(e,n)=>`Compose \xB7 ${String(e)} van ${String(n)} draaien`,composeUp:e=>`${e}: up`,composeFile:e=>`${e}: compose-bestand tonen`,composeDown:e=>`${e}: down\u2026`,recreate:e=>`${e} opnieuw opbouwen`,recreateDetail:`up --force-recreate voor alleen deze service`,volumeBrowse:e=>`Bestanden in ${e}`,networkMembers:e=>`Wie hangt aan ${e}`}}});var Dy;var Cy=p(()=>{Dy={title:`Terminal`,intro:{start:`Een shell op de machine waar de Docker-daemon draait, zoals je WSL-distro.`,afterDocker:` werkt hier gewoon. Je bent `,afterRoot:`: de shell loopt via een kortstondige, privileged `,afterAlpine:`-container die verdwijnt zodra je de shell of deze pagina sluit.`},tabsLabel:`Terminal`,tabs:{terminal:`Terminal`,assistant:`Claude`},loading:`Terminal laden…`}});var Iy;var Ey=p(()=>{Iy={title:`Volumes`,diskSpace:`Schijfruimte`,calculating:`berekenen…`,unused:`Ongebruikt`,menuLabel:`Acties voor volumes`,searchLabel:`Zoeken op naam`,onlyUnused:`Alleen ongebruikte volumes`,refreshing:`Bijwerken…`,selected:e=>`${String(e)} geselecteerd`,empty:`Geen volumes gevonden.`,columns:{name:`Naam`,driver:`Driver`,inUse:`In gebruik`,created:`Aangemaakt`,size:`Grootte`,actions:`Acties`},containerCount:e=>`${String(e)} container${e===1?``:`s`}`,rowMenu:e=>`Acties voor ${e}`,rowBrowse:`Inhoud bekijken…`,browse:{title:e=>`In ${e}`,description:`Bladeren is alleen lezen, via een kortlevende hulpcontainer die weggaat als je dit sluit. Opslaan en uploaden gebruiken elk een eigen.`,loading:`Ophalen…`,empty:`Deze map is leeg.`,up:`Map omhoog`,path:`Pad in het volume`,upload:`Uploaden…`,edit:e=>`${e} bewerken`,uploaded:(e,n)=>`${String(e)} ${e===1?`bestand`:`bestanden`} in ${n} gezet.`},rowBackup:`Back-up maken (.tar)`,rowRestore:`Back-up terugzetten…`,rowCopy:`Kopiëren naar nieuw volume…`,rowSchedule:`Vanzelf een back-up…`,schedule:{title:e=>`Vanzelf een back-up van ${e}`,description:`Dezelfde .tar als Back-up maken, zonder elke keer te vragen waarheen. Terugzetten gaat met Back-up terugzetten.`,every:`Hoe vaak`,daily:`Elke dag`,weekly:`Elke week`,folder:`Map`,noFolder:`Nog geen map gekozen`,chooseFolder:`Kiezen…`,keep:`Hoeveel er blijven`,inUse:`Als een draaiende container het volume gebruikt`,skip:`Overslaan, en het elk uur opnieuw proberen`,skipHint:`Een database die tijdens de back-up schrijft, levert een .tar die niet altijd terug te zetten is.`,pause:`Die containers pauzeren tijdens de back-up`,pauseHint:e=>`Een paar seconden stil: ${e}.`,pauseHintNone:`Een paar seconden stil voor de containers die het gebruiken. Nu draait er geen.`,save:`Opslaan`,remove:`Geen back-ups meer`,saved:e=>`${e} krijgt vanzelf een back-up. De eerste volgt meteen.`,removed:e=>`Geen back-ups meer van ${e}. Die er al zijn, blijven staan.`,lastOk:(e,n)=>`Laatste back-up: ${e}, ${n}.`,lastSkipped:(e,n)=>`Overgeslagen op ${e}: in gebruik door ${n}.`,lastFailed:(e,n)=>`Mislukt op ${e}: ${n}`,badgeNone:e=>`Vanzelf een back-up: ${e}. Nog geen gemaakt.`,badgeOk:(e,n)=>`Vanzelf een back-up: ${e}. Laatste: ${n}.`,badgeSkipped:(e,n,t)=>`Vanzelf een back-up: ${e}. Overgeslagen op ${n}, in gebruik door ${t}.`,badgeFailed:(e,n,t)=>`Vanzelf een back-up: ${e}. Mislukt op ${n}: ${t}`},backupTitle:e=>`Back-up van ${e} als .tar`,backupTitleInUse:e=>`Back-up van ${e}. Het is in gebruik: een database die tijdens de back-up schrijft, levert een back-up op die niet altijd terug te zetten is. Stop die container eerst, of gebruik zijn eigen dump.`,restoreTitle:e=>`Een back-up terugzetten in ${e}`,inUseReason:e=>`In gebruik door ${String(e)} container(s); verwijder of stop die eerst`,menu:{create:`Volume aanmaken…`,pruneAnonymous:`Anoniem opruimen`,pruneUnused:`Ongebruikt opruimen`},createDialog:{title:`Volume aanmaken`,description:`Een leeg volume met een naam, om later aan een container te koppelen.`,nameLabel:`Naam`,namePlaceholder:`mijn-data`,storageLabel:`Waar komen de gegevens te staan?`,storage:{docker:`Door Docker beheerd`,dockerHint:`Aanbevolen. Docker bepaalt zelf waar de gegevens staan.`,folder:`Een map op de Docker-machine`,folderHint:`Een bestaande map, bijvoorbeeld om bestanden met een container te delen.`,nfs:`Een NFS-share op het netwerk`,nfsHint:`Een gedeelde map op een NAS of server.`},folderLabel:`Map`,folderHint:`De map moet al bestaan op de machine waar Docker draait. Onder WSL is C:\\data /mnt/c/data.`,nfsServerLabel:`Server`,nfsPathLabel:`Gedeelde map`,nfsHint:`Dit wordt pas gecontroleerd als een container dit volume gaat gebruiken.`,advanced:`Geavanceerd`,driverLabel:`Driver`,driverHint:`Laat dit op local staan, tenzij je een volume-plugin gebruikt.`,submit:`Aanmaken`,creating:`Aanmaken…`},copy:{title:e=>`${e} kopi\xEBren`,description:`Alles in dit volume gaat naar een nieuw volume, met eigenaars en rechten. Het origineel blijft zoals het is.`,name:`Naam van het nieuwe volume`,taken:`Er is al een volume met deze naam; kies een andere naam.`,running:e=>`In gebruik door ${e}, en dat draait. Een database die tijdens het kopi\xEBren schrijft, levert een kopie op die hij zelf misschien niet meer leest: stop hem eerst.`,stopped:e=>`Gebruikt door ${e}, en dat staat stil: er schrijft niets tijdens het kopi\xEBren.`,copy:`Kopiëren`,copying:`Kopiëren…`,copied:(e,n)=>`${e} is gekopieerd naar ${n}.`},restore:{title:e=>`Back-up terugzetten in ${e}?`,description:e=>`Bestanden met dezelfde naam worden overschreven; wat niet in de back-up zit, blijft staan. `+(e>0?`Stop eerst de ${String(e)} container(s) die dit volume gebruiken: een database die draait, merkt niet dat zijn bestanden veranderd zijn. `:``)+`Je kiest het bestand hierna.`,confirm:`Bestand kiezen`},remove:{title:`Volume verwijderen?`,description:e=>`Alle gegevens in '${e}' gaan verloren. Dit kan niet ongedaan gemaakt worden.`,manyTitle:`Volumes verwijderen?`,manyDescription:e=>`Alle gegevens in ${String(e)} volumes gaan verloren. Volumes die nog in gebruik zijn worden overgeslagen.`},prune:{allTitle:`Alle ongebruikte volumes opruimen?`,allDescription:`Elk volume waar geen container aan hangt wordt verwijderd, ook de volumes met een naam die je zelf hebt aangemaakt. De gegevens erin zijn daarna weg.`,anonymousTitle:`Anonieme volumes opruimen?`,anonymousDescription:`Volumes zonder naam die geen container meer gebruikt worden verwijderd. Dat zijn meestal restanten van containers die al weg zijn.`,confirm:`Opruimen`},created:e=>`Volume ${e} is aangemaakt.`,pruned:(e,n)=>`${String(e)} volumes verwijderd, ${n} vrijgemaakt.`,backedUp:(e,n)=>`Back-up van ${e} opgeslagen als ${n}.`,restored:(e,n)=>`${e} is teruggezet in ${n}.`}});var ky;var Sy=p(()=>{ty();oy();sy();ly();uy();py();my();hy();yy();wy();Cy();Ey();ky={common:ny,compose:ry,containers:iy,dashboard:ay,format:cy,images:dy,logs:fy,networks:gy,settings:vy,shell:by,terminal:Dy,volumes:Iy}});function Ty(e){Yi.set(e),document.documentElement.lang=e}var Yi;var nS;var JF;var tS;var rS;var oS;var iS;var Ny;var sS=p(()=>{Qr();gh();Wh();Iv();ey();Sy();Qr();Yi=wt(`en`),nS=Yi.asReadonly(),JF={en:`English`,nl:`Nederlands`,de:`Deutsch`,fr:`Français`,es:`Español`},tS={en:Xv,nl:ky,de:mh,fr:Cv,es:qh},rS={en:`en-GB`,nl:`nl-NL`,de:`de-DE`,fr:`fr-FR`,es:`es-ES`},oS=Ot(()=>tS[Yi()]),iS=Ot(()=>rS[Yi()]);Ny=class e{language=nS;t=oS;locale=iS;async load(){try{Ty((await window.electron.settings.get()).language)}catch{Ty(`en`)}}static ɵfac=function(t){return new(t||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`root`})}});function eH(e){return(e instanceof Error?e.message:String(e)).replace(aS,``)}var aS;var lS=p(()=>{aS=/^Error invoking remote method '[^']*': (?:[A-Za-z]*Error: )?/});function cS(e,n){if(e&1&&(vr(),Ki(0,`path`)),e&2){let t=n.$implicit;Br(`d`,t)}}var uS;var My;var dS=p(()=>{Qr();Qr();uS={dashboard:[`M4 4h7v7H4z`,`M13 4h7v4h-7z`,`M13 10h7v10h-7z`,`M4 13h7v7H4z`],containers:[`M12 2.5 20.5 7v10L12 21.5 3.5 17V7z`,`M3.5 7 12 11.5 20.5 7`,`M12 11.5V21.5`],images:[`M12 3 3 7.5l9 4.5 9-4.5z`,`M3 12.5 12 17l9-4.5`],volumes:[`M12 3c4.4 0 8 1.1 8 2.5S16.4 8 12 8 4 6.9 4 5.5 7.6 3 12 3z`,`M4 5.5v13C4 19.9 7.6 21 12 21s8-1.1 8-2.5v-13`,`M4 12c0 1.4 3.6 2.5 8 2.5s8-1.1 8-2.5`],networks:[`M12 2.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M5 16.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M19 16.5a2.5 2.5 0 100 5 2.5 2.5 0 100-5`,`M12 7.5v4M12 11.5 5.9 15.6M12 11.5l6.1 4.1`],compose:[`M8 3h13v13H8z`,`M3 8v13h13`],ports:[`M9 3.5v4M15 3.5v4`,`M6.5 7.5h11v4a5.5 5.5 0 01-11 0z`,`M12 17v3.5`],sun:[`M12 7.5a4.5 4.5 0 100 9 4.5 4.5 0 100-9`,`M12 1.5v2M12 20.5v2M1.5 12h2M20.5 12h2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4`],moon:[`M20 14.5A8.5 8.5 0 019.5 4a8.5 8.5 0 1010.5 10.5z`],power:[`M12 3v8.5`,`M7 5.8a8 8 0 1010 0`],refresh:[`M20 11a8 8 0 10-.7 4.3`,`M20 5v6h-6`],play:[`M8 5.5v13l11-6.5z`],stop:[`M7 7h10v10H7z`],pause:[`M9.5 5.5v13M14.5 5.5v13`],trash:[`M4 7h16`,`M10 7V4.5h4V7`,`M6 7l1 12.5h10L18 7`,`M10.5 11v5M13.5 11v5`],search:[`M11 3.5a7.5 7.5 0 100 15 7.5 7.5 0 100-15`,`M16.5 16.5 21 21`],external:[`M14 4h6v6`,`M20 4l-8.5 8.5`,`M18 13.5V19a1 1 0 01-1 1H5a1 1 0 01-1-1V7a1 1 0 011-1h5.5`],warning:[`M12 3.5 22 20H2z`,`M12 10v4.5`,`M12 17.2v.1`],chevronRight:[`M9.5 5.5 16 12l-6.5 6.5`],chevronDown:[`M5.5 9.5 12 16l6.5-6.5`],chevronUp:[`M5.5 14.5 12 8l6.5 6.5`],plus:[`M12 5.5v13`,`M5.5 12h13`],close:[`M6.5 6.5l11 11`,`M17.5 6.5l-11 11`],check:[`M5 12.5 10 17.5 19 6.5`],download:[`M12 4v10`,`M7.5 9.5 12 14l4.5-4.5`,`M4.5 19h15`],upload:[`M12 14V4`,`M7.5 8.5 12 4l4.5 4.5`,`M4.5 19h15`],folder:[`M3.5 6.5a1 1 0 0 1 1-1h4.8l2 2.2h8.2a1 1 0 0 1 1 1v9.8a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1z`],file:[`M6 3.5h8l4 4v13H6z`,`M14 3.5v4h4`],pencil:[`M4.5 19.5h4L20 8a2.1 2.1 0 0 0-3-3L5.5 16.5z`,`M15.5 6.5l3 3`],"arrow-up":[`M12 19V5`,`M6.5 10.5 12 5l5.5 5.5`],sliders:[`M4 7h9`,`M17 7h3`,`M4 17h3`,`M11 17h9`,`M15 5v4`,`M9 15v4`],copy:[`M9 8.5h10.5V19H9z`,`M15 8.5V5H4.5v10.5H9`],broom:[`M16 22l-1-4`,`M19 14a1 1 0 001-1v-1a2 2 0 00-2-2h-3a1 1 0 01-1-1V4a2 2 0 00-4 0v5a1 1 0 01-1 1H6a2 2 0 00-2 2v1a1 1 0 001 1`,`M5 14h14l2 6.8a1 1 0 01-1 1.2H4a1 1 0 01-1-1.2z`,`M8 22l1-4`],eraser:[`M7 21l-4.3-4.3a2.4 2.4 0 010-3.4l9.6-9.6a2.4 2.4 0 013.4 0l5.6 5.6a2.4 2.4 0 010 3.4L13 21`,`M22 21H7`,`M5 11l9 9`],clock:[`M12 3.5a8.5 8.5 0 100 17 8.5 8.5 0 100-17`,`M12 7v5.3l3.5 2`],terminal:[`M5 17l6-5.5L5 6`,`M12.5 18h6.5`],code:[`M16 18l6-6-6-6`,`M8 6l-6 6 6 6`],chart:[`M4 3.5v15a2 2 0 002 2h14`,`M19 9.5l-4.5 4.5-3.5-3.5-3 3`],lines:[`M5 7h14`,`M5 12h14`,`M5 17h9`],menu:[`M4 6h16`,`M4 12h16`,`M4 18h16`],sparkle:[`M12 3.5l1.8 5.2 5.2 1.8-5.2 1.8L12 17.5l-1.8-5.2L5 10.5l5.2-1.8z`,`M18.5 15v5`,`M16 17.5h5`],pulse:[`M3 12h4l2.5-6.5L14 18l2.5-6H21`],"folder-plus":[`M3.5 6.5a1 1 0 0 1 1-1h4.8l2 2.2h8.2a1 1 0 0 1 1 1v9.8a1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1z`,`M12 11v5`,`M9.5 13.5h5`],rename:[`M4 8h9`,`M4 12h6`,`M4 16h4`,`M17 5v14`,`M15 5h4`,`M15 19h4`],bell:[`M6 8.5a6 6 0 0112 0c0 6.5 2.5 8.5 2.5 8.5h-17S6 15 6 8.5`,`M10.2 20.5a2 2 0 003.6 0`],"bell-off":[`M8.8 3.4A6 6 0 0118 8.5c0 2.6.5 4.5 1.1 5.8`,`M16.5 17h-13S6 15 6 8.5c0-.6.1-1.1.2-1.6`,`M10.2 20.5a2 2 0 003.6 0`,`M3 3l18 18`]},My=class e{name=jc.required();size=jc(18);paths=Ot(()=>uS[this.name()]);static ɵfac=function(t){return new(t||e)};static ɵcmp=wc({type:e,selectors:[[`app-icon`]],hostAttrs:[1,`inline-flex`,`shrink-0`],inputs:{name:[1,`name`],size:[1,`size`]},decls:3,vars:2,consts:[[`viewBox`,`0 0 24 24`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.6`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`,`focusable`,`false`]],template:function(t,r){t&1&&(vr(),qr(0,`svg`,0),Sc(1,cS,1,1,`:svg:path`,null,kc),Wr()),t&2&&(Br(`width`,r.size())(`height`,r.size()),ec(),Tc(r.paths()))},encapsulation:2})}});export{Od as $,sg as $n,bj as $t,Ib as A,mb as An,W as At,LI as B,ow as Bn,Zt as Bt,Gi as C,jc as Cn,yk as Cr,UE as Ct,HE as D,ke as Dn,VE as Dt,Gu as E,kc as En,zw as Er,Ur as Et,Jm as F,np as Fn,X as Ft,My as G,pk as Gn,_m as Gt,M as H,pS as Hn,_c as Ht,KC as I,nr as In,Xm as It,Nk as J,qy as Jn,aw as Jt,Nc as K,qr as Kn,ag as Kt,Ki as L,oS as Ln,Yw as Lt,Ik as M,mj as Mn,Wr as Mt,Iw as N,ng as Nn,Ws as Nt,Ho as O,kk as On,Vm as Ot,JF as P,nk as Pn,Wt as Pt,OE as Q,sS as Qn,bg as Qt,Km as R,ob as Rn,Zd as Rt,Ge as S,jI as Sn,yc as Sr,Ty as St,Gn as T,kE as Tn,zs as Tr,Un as Tt,Mg as U,pb as Un,_f as Ut,Ld as V,p as Vn,_E as Vt,Mn as W,pj as Wn,_k as Wt,Ny as X,rg as Xn,bb as Xt,Nn as Y,rb as Yn,bD as Yt,OD as Z,rp as Zn,bc as Zt,Eb as _,hD as _n,xc as _r,Tb as _t,Am as a,dm as an,ue as ar,Pk as at,Fs as b,hj as bn,y_ as br,Ti as bt,Bs as c,fE as cn,vg as cr,Qr as ct,Cb as d,gb as dn,vr as dr,SE as dt,bk as en,sw as er,Oi as et,Cj as f,ge as fn,wD as fr,Sc as ft,Dj as g,gn,wt as gr,TE as gt,Db as h,gl as hn,wj as hr,T as ht,Ak as i,df as in,tp as ir,PI as it,Ij as j,mg as jn,Wm as jt,IE as k,lS as kn,Vr as kt,C as l,fg as ln,vj as lr,RI as lt,DE as m,gj as mn,wc as mr,Sm as mt,$m as n,cr as nn,te as nr,Ot as nt,BE as o,eH as on,va as or,Pr as ot,Cr as p,gg as pn,wb as pr,Se as pt,Ng as q,qt as qn,ap as qt,$r as r,dS as rn,tg as rr,PE as rt,Br as s,ec as sn,ve as sr,Qm as st,$k as t,br as tn,tb as tr,Or as tt,CE as u,fj as un,vk as ur,Re as ut,Ej as v,hb as vn,xo as vr,Tc as vt,Gm as w,k as wn,zE as wr,Ue as wt,G as x,iS as xn,yb as xr,Tt as xt,Ek as y,hg as yn,xr as yr,Tg as yt,Kn as z,on as zn,Zo as zt};
|